首先DSServerClass的lifecycle属性有Invocation、Server、Session三种模式;


简单叙述一下三点区别:

  1. server:datasnap只初始化一个TDSServerModule对象,对外提供方法的访问,需要自己做访问互斥等操作;
  2. Session:客户端每次链接时会自动创建TDSServerModule,断开时会自动释放这个对象,线程级调用;
  3. Invocation:操作更细化,长连接时,每次服务器方法调用都会创建TDSServerModule对象,比较废资源;

另外需要注意的是:

当使用session模式时,请不要重写DSServerClass1的OnDestroyInstance事件,写了系统就不会自动释放建立的TDSServerModule对象。

当使用Invocation模式时,请不要手动创建DSServerClass1CreateInstance实例,系统会自动创建,你所需要做的就是重写OnDestroyInstance方法,在方法里加上一句代码DSDestroyInstanceEventObject.ServerClassInstance.Free;就可以完成自动创建对象的释放工作。

我的IDE环境是XE8,经过这样的测试session、invocation模式都不会提示内存溢出现象。

最新文章

  1. PAT 1043. 输出PATest(20)
  2. [Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
  3. springmvc+spring+hibernate
  4. 【BZOJ】2330: [SCOI2011]糖果(差分约束+spfa)
  5. activiti自定义流程之整合(一):整体环境配置
  6. 【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)
  7. How do I create an installation log?
  8. 一般处理程序(ashx)和页面处理程序(aspx)的区别
  9. Xcode7真机调试iOS应用程序
  10. 将odbc扩展编译至nodejs程序集中
  11. WebX框架学习笔记之二----框架搭建及请求的发起和处理
  12. 【Android】屏幕尺寸的表示
  13. Bean之间的关系
  14. 当前主流电脑的BIOS调出键
  15. laravel中migration 数据迁移
  16. 关于WebAPI跨域踩到的一点坑
  17. How to use Nissan consult 3 plus to check, make key and program?
  18. centos 7 安装使用 redis
  19. JS的压缩、混淆、加密
  20. 03_Spark集群部署

热门文章

  1. beans.xml的用法
  2. 禁止Chrome浏览器自动升级
  3. 工作流Activiti的学习总结(十二) activiti官方十分钟快速学习 (zhuan)
  4. SAP ECC6安装系列五:安装后 License 的处理
  5. Linux IO实时监控iostat命令详解(转载)
  6. dp之01背包hdu2639(第k优解)
  7. Entity Framework(三):使用特性(数据注解)创建表结构
  8. 数据库 Proc编程一
  9. erlang-sunface的博客地址
  10. xsocket:空闲超时问题。