datasnap的初步 生命期LifeCycle

 
TDSServerClass有一个属性LifeCycle,这个属性有三个值,很好理解
1.Session,这是默认值。
就是一个连接,一个Session,一个Session的意思就是连接上来后,服务器端就创建一个DSServerClassGetClass里返回的PersistentClass一个实例,并一直保持到连接断开,所有这期间的ServerMethod调用,都是这个实例的调用。所以这是线程安全的。

2.Server
顾名思义,就是全局就一个PersistentClass的实例,所有的连接Call上来的ServerMethod都是这唯一实例的调用,单例模式,当然,这也就不是线程安全的,需要自己来实现线程安全。

3.Invocation
这个更细,每次ServerMethod的Call,都将创建和销毁一PersistentClass的实例。由于创建销毁比较耗资源,可以操作TDSServerClass的OnCreateInstance和OnDestroyInstance事件,在这两个事件里面做缓存池。代码如下

procedure TServerContainer1.DSServerClass1CreateInstance(
DSCreateInstanceEventObject: TDSCreateInstanceEventObject);
begin
DSCreateInstanceEventObject.ServerClassInstance := 缓存池取一个实例
end; procedure TServerContainer1.DSServerClass1DestroyInstance(
DSDestroyInstanceEventObject: TDSDestroyInstanceEventObject);
begin
将DSCreateInstanceEventObject.ServerClassInstance的实例还给缓存池
end;

缓存池的实现很简单了,就不写了。

最新文章

  1. 装饰者模式 Decoration
  2. Light Pre-Pass相关链接
  3. 【回文串-Manacher】
  4. WP8_给图片、按钮设置自定义图片
  5. LaTex中让页码从正文开始编号
  6. 苹果HomeKit如何牵动全国智能硬件格局
  7. 进程间通信的WM_COPYDATA的使用
  8. 脚本AI与脚本引擎
  9. SWT中的GridLayout(转)例子不错
  10. 大数据系列修炼-Scala课程11
  11. ThinkPHP 模板的包含、渲染、继承
  12. 速卖通AE平台+聚石塔+奇门 完整教程V2
  13. python 面向对象设计思想发展史
  14. 【Android学习笔记】布局的简单介绍
  15. 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
  16. 【原创】大数据基础之HDFS(1)HDFS新创建文件如何分配Datanode
  17. python元祖操作和内置方法
  18. MySQL--3约束和修改数据表总结
  19. 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。
  20. cocos2dx 3.x(绘制线条)

热门文章

  1. 防止在iOS设备中的Safari将数字识别为电话号码
  2. [转载]ARM协处理器CP15寄存器详解
  3. linux下搭建sock5代理
  4. (dp)343. Integer Break
  5. windows下CMake使用图文手册 Part 1
  6. HEVC学习之一编码框架
  7. Python-9 函数
  8. 慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组
  9. angularJS全选功能实现
  10. 洛谷P1710 地铁涨价