您好:这是关于Datasnap XE2 Tcp传输的重要问题
我有一个老问题,我在此之前要求它,但没有回复
DataSnap XE2,与同一客户端中的第二个连接断开连接:
简单的Datasnap服务器,简单的客户端,(只是调用反向方法),几秒钟后服务器销毁一个或所有的servermethods类,datasnapserver是tcp协议,lifecycle = Session,statefull服务器。
我在另一台机器和另一台操作系统上测试相同的二进制文件,我注意到这些:
1-在连接到路由器的计算机上运行服务器时发生同样的问题一些用WiFi(有/没有dhcp)所有操作系统(server2003,Win7,Winxp)都给出了同样的问题
2-在虚拟机(所有操作系统)上运行相同的服务器时没有任何问题,我使用的是Oracle Virtual Box,为什么!
3-在服务器实现中我将TCP传输更改为http传输,然后我完全没有问题!
4-我测试并尝试一切可能(网络配置,重新格式化,新操作系统 - 所有Windows版本 - )tcp服务器传输上的问题仍然
5-在两个连接中调用客户端方法几次之后(20秒-2分钟)发生。
6-我制作并测试了新的tcp服务器(不是datasnap)并且工作正常,但DataSnapXE2 TCP服务器出现了这个问题
是否有一些事要做,我只需要知道为什么,我需要期望测试,我几乎尝试所有可能的事情
我使用C ++ Builder XE2,没有更新,所有可用的更新都没有关于此问题 我还在Delphi XE2中重建了这个问题
有人知道为什么,好的建议,请回复
注意:DataSnap 2010,相同的代码,工作正常!!
感谢您先进的回复
答案 0 :(得分:2)
XE2中的clientdataset确实存在一些问题,其中存在以下问题:
套接字服务器(scktsrvr)由于来自.data或olevariant的数据过多而终止。
XE2中没有任何理由的灾难性失败。在D2010中使用相同的代码根本不起作用 在XE2
您将无法将现有的DATASNAP从D2010或XE移至XE2。即使你 从头开始完全重写你会遇到问题。
新的Datasnap或Old Datasnap在移动之前更好地三思而后行,或等到XE2中的错误得到解决。