请求指点在分布式(ADO + TSocketConnection)中客户端程序和服务端程序经常出现没响应,先多谢大家了!
请求指点在分布式(ADO + TSocketConnection)中客户端程序和服务端程序经常出现没响应,先谢谢大家了!!!!
服务器配置: IBM 206 单CPU单核的 内存1G
ScktSrvr.exe: Thread Cache Size=10, Inactive Timeout=0
数据库: 采用 ms sql 2000,服务器端的数据集控件都采用ADO的(和TDataSetProvider都放在远程数据模块上), 所有的ADO数据集控件连接到一个DataModule上的TADOConnection;
远程数据模块: 采用ciMultiInstance实例, 线程模型为tmApartment,
在initialization使用多线程来创建的,以成为多线程的应用服务器程序.
客户端数据提交和更新大部都通过SQL语句实现的,所以远程数据模块实现了方法function ExecuteSQL(const stSQL: WideString): Integer; safecall;以供客户端远程调用, 为了加快响应速度,
函数ExecuteSQL采用了win32 API CreateThread函数 创建多线程来执行SQL 语句.
这样一来,就不必要一定要等到服务端执行完SQL才响应客户端程序,也实现了多条SQL语句并行执行,客户端的数据提交和更新速度就明显加快.
目前客户端的连接数为10个左右,客户端的速度还不慢,但经常出现以下现象:
1.客户端程序在向服务器端提交数据或从服务器获取稍大量数据就会出现没响应,但不会影响其它客户端的正常使用,从任务管理器关掉后再打开又可正常使用了
2.某客户端在向服务器端提交数据或从服务器获取稍大量数据就会出现没响应,其它客户端程序和服务器端程序也都没响应,,必须重新启动服务器端程序才可使用.
请大家谈谈如何解决服务器端和客户端经常出没响应的问题,
如何使分布式系统更加稳定, 先谢谢了 ^_^
------解决方案--------------------
1.多线程的同步问题;
2.D7的ScktSrve.exe好像有问题;
------解决方案--------------------
呵呵,接分
------解决方案--------------------
我觉得你的结构设计存在不合理性。
------解决方案--------------------
楼主,我在做的和你的模式差不多,也是分布式,通过socket。我想问一下你,你那个在客户端改了数据,如何把数据可以提交到服务器上的数据库呢?
------解决方案--------------------
没做过三层的,学习
------解决方案--------------------
你把timeout=0改成timeout=30致100间的一个合适的值,根据你的网络状况改
------解决方案--------------------
客户端用阻塞式SOCKET向服务端提交数据
服务器配置: IBM 206 单CPU单核的 内存1G
ScktSrvr.exe: Thread Cache Size=10, Inactive Timeout=0
数据库: 采用 ms sql 2000,服务器端的数据集控件都采用ADO的(和TDataSetProvider都放在远程数据模块上), 所有的ADO数据集控件连接到一个DataModule上的TADOConnection;
远程数据模块: 采用ciMultiInstance实例, 线程模型为tmApartment,
在initialization使用多线程来创建的,以成为多线程的应用服务器程序.
客户端数据提交和更新大部都通过SQL语句实现的,所以远程数据模块实现了方法function ExecuteSQL(const stSQL: WideString): Integer; safecall;以供客户端远程调用, 为了加快响应速度,
函数ExecuteSQL采用了win32 API CreateThread函数 创建多线程来执行SQL 语句.
这样一来,就不必要一定要等到服务端执行完SQL才响应客户端程序,也实现了多条SQL语句并行执行,客户端的数据提交和更新速度就明显加快.
目前客户端的连接数为10个左右,客户端的速度还不慢,但经常出现以下现象:
1.客户端程序在向服务器端提交数据或从服务器获取稍大量数据就会出现没响应,但不会影响其它客户端的正常使用,从任务管理器关掉后再打开又可正常使用了
2.某客户端在向服务器端提交数据或从服务器获取稍大量数据就会出现没响应,其它客户端程序和服务器端程序也都没响应,,必须重新启动服务器端程序才可使用.
请大家谈谈如何解决服务器端和客户端经常出没响应的问题,
如何使分布式系统更加稳定, 先谢谢了 ^_^
------解决方案--------------------
1.多线程的同步问题;
2.D7的ScktSrve.exe好像有问题;
------解决方案--------------------
呵呵,接分
------解决方案--------------------
我觉得你的结构设计存在不合理性。
------解决方案--------------------
楼主,我在做的和你的模式差不多,也是分布式,通过socket。我想问一下你,你那个在客户端改了数据,如何把数据可以提交到服务器上的数据库呢?
------解决方案--------------------
没做过三层的,学习
------解决方案--------------------
你把timeout=0改成timeout=30致100间的一个合适的值,根据你的网络状况改
------解决方案--------------------
客户端用阻塞式SOCKET向服务端提交数据