datasnap 关于lifecycle的问题

Posted 胖达没有海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datasnap 关于lifecycle的问题相关的知识,希望对你有一定的参考价值。

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


简单叙述一下三点区别:

  1. server:应该是datasnap只初始化一个TDSServerModule对象,对外提供方法的访问;
  2. Session:客户端每次链接时会自动创建TDSServerModule,断开时会自动释放这个对象;
  3. Invocation:搜了半天,看起来与session差别不大,是不是针对长连接时效果不同,当每次客户端发送数据时就会自动创建TDSServerModule对象?因为我是用http方法调用,所以没有感觉出来;

另外需要注意的是:

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

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

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

 

以上是关于datasnap 关于lifecycle的问题的主要内容,如果未能解决你的问题,请参考以下文章

datasnap rest Windows客户端编写

DELPHI DATASNAP 2010入门操作(1)为啥要用datasnap 2010

关于npm包,react-lifecycles-compat

delphi 中的datasnap 是啥意思 Developing Datasnap Application 中文意思是啥

Android Jetpack 组建介绍——Lifecycler

React 入门 -- 生命周期 LifeCycle