您的位置:首页 > 编程语言 > Delphi

Delphi XE2 DataSnap服务器时序

2013-06-05 16:04 483 查看
属性设置前提:(生命周期:Session)

DataSnap Server启动:

ServerContainerUnit->DSServerClass1GetClass

ServerContainerUnit->DataModuleCreate

DataSnap Client连接服务器:

ServerContainerUnit->DSAuthenticationManager1UserAuthorize

ServerContainerUnit->DSServer1Connect

DataSnap Client调用服务器方法:

ServerContainer->DSServerClass1CreateInstance

ServerMethods->DSServerModuleCreate(如果通过对象池获取,这里就不需要创建了。)

ServerContainer->DSAuthenticationManager1UserAuthorize

ServerMethods->方法代码

DataSnap Client第二次调用服务器方法:

ServerContainer->DSAuthenticationManager1UserAuthorize

ServerMethods->方法代码

----------

由此可以看出,ServerContainer只会创建一次,在服务器启动时创建,可以在这里初始化数据库连接池等操作;

ServerMethods在客户端连接服务器时,不会创建,而是在第一次调用服务器的方法时才会创建,在实际调用方法前会有一个权限检测的机制。

换种说法,就是每个客户端对应服务器的一个[b]ServerMethods,因此可以在DSServerModuleCreate做数据集池的初始化处理,数据集的连接通过[b]ServerContainer[/b][/b][b]中初始化的数据库连接池获取。[/b]

[b]数据库连接池的数量不应小于DSTCPServerTransport1的PoolSize属性。[/b]

[b]----[/b]

粗略见解,错疏难免,欢迎大家指教讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: