zoukankan      html  css  js  c++  java
  • DataSnap探询

    在XE3中,我们可以考滤用DataSnap开发多层应用。

    本记录主要查看DataSnap服务端连接及断开事件,这样能更好的理解服务端如何进行控制,即主要了解以下图中几个控件的事件触发顺序。

    以上几个控件作用说明:

      DSSerever:提供基本的DataSnap服务功能

      DSTCPServerTransport:提供TCP/IP通讯协议的支持,http(s)用不上

      DSHTTPService:提供http(s)通讯协议和RESTFUL架构的基本支持

      DSAuthenticationManager:提供安全认证的功能

      DSServerClass:提供自动输出的服务端类别让客户端调用的基本功能,它是TDSServerModule的类别

    以下为实例的服务端和客户端截图:

    服务端:

    客户端:

    以下为分别为远程连接和断开时的事件顺序图,如果不是tcp/ip协议,则服务端不会执行DSTCPServerTransport的事件。

    远程连接事件执行顺序

    远程断开执行顺序

    后记:

        根据以上的顺序,我们在开发服务端时可以在服务端建立数据库连接池,在DSServer的连接事件中一给用户分配数据库的连接,在断开事件中把分配给用户的数据库连接放回连接池即可。

       在用到DSTCPServerTransport的心跳包时,发现如果是tcp/ip连接协议,在心跳包的特定时间内没有回应时,服务端会自动调用DSTCPServerTranspor的DisConnect事件,但不会执行DSServer的disconnect.而http则没有什么反应。

    综上所述,我们在开发中间层时,在DSServer中给用户分配数据库连接池,可以把sqlconnection\adoconnection\uniconnection等连接的控件放在ServerContainer窗体中,其它的连接控件如uniDataSet\AdoDataSet\DataSetProvider等放在TServerMethods(TDSServerModule)的窗体上.

    客户端在连接时最好在调用某个事件时就打开客户端的sqlconnection,调用完后就断开客户端的sqlconnection即可。

    服务端的最大连接数与cpu有关系,好像是200*cup的核数*系数

     

    以上不对的地方请指正

    源码地址:http://download.csdn.net/detail/yagzh2000/5294600

     

  • 相关阅读:
    Tabs 选项卡插件(续)
    Menu 菜单插件
    jquery Star Rating - 星形评级插件
    Tabs 选项卡插件
    jQuery Tooltips插件
    jQuery信息提示插件(jQuery Tooltip Plugin)
    Accordion 手风琴 折叠菜单插件
    Calendars 日历插件
    Microsoft Windows 2000 professional(集成SP4)简体中文专业版下载
    俄罗斯商务资讯网(门户网站)
  • 原文地址:https://www.cnblogs.com/yagzh2000/p/3039757.html
Copyright © 2011-2022 走看看