zoukankan      html  css  js  c++  java
  • datasnap 关于lifecycle的问题

    首先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模式都不会提示内存溢出现象。

  • 相关阅读:
    Linux分区
    Vim 基本配置
    Ubuntu几种常见乱码解决方法
    ADB
    ubuntu下安装配置ADB
    Tinyos学习笔记(三)
    Tinyos学习笔记(二)
    Codeforces Round #249 (Div. 2) A题
    poj 2007 Scrambled Polygon(极角排序)
    MemSQL Start[c]UP 2.0
  • 原文地址:https://www.cnblogs.com/hejoy91/p/5950183.html
Copyright © 2011-2022 走看看