Z
ziyu
Unregistered / Unconfirmed
GUEST, unregistred user!
小弟近日在开发一套商场pos系统 Remote Data Module + SocketConnection ,
两台机器同时向Application server提交(ApplyUpdates)Pos单据时,经常会造成一个机器的
进程死掉.
在DataSetProvider的OnUpdateData事件中代码如下:
procedure TDtm_Global.PMast140UpdateData(Sender: TObject;
DataSet: TClientDataSet);
begin
WaitForSingleObject(hMutex,INFINITE);
end;
在DataSetProvider的OnAfterApplyUpdates事件中代码如下:
procedure TDtm_Global.PMast140AfterApplyUpdates(Sender: TObject;
var OwnerData: OleVariant);
begin
ReleaseMutex(hMutex);
end;
我开始怀疑是以上的问题,(一个线程没有把hMutex释放掉).但注释掉这段代码以后,照样行不通.
我的Application Server 用的线程模式是Apartment,实例模式是MultiInstance.
改换其他的线程模式:Free或Both ,问题依旧.
是不是改用MTS Data Module 会好一些?
以下是提交时,引发异常时的错误代码(有三种情况)
1. 无法手动或自动的创建连接 (大意)
2 无法在此会话中创建更多的连接 -----此种情况最多
3 连接占线导致另一个命令
各位大哥快帮帮我,工期就快到了
两台机器同时向Application server提交(ApplyUpdates)Pos单据时,经常会造成一个机器的
进程死掉.
在DataSetProvider的OnUpdateData事件中代码如下:
procedure TDtm_Global.PMast140UpdateData(Sender: TObject;
DataSet: TClientDataSet);
begin
WaitForSingleObject(hMutex,INFINITE);
end;
在DataSetProvider的OnAfterApplyUpdates事件中代码如下:
procedure TDtm_Global.PMast140AfterApplyUpdates(Sender: TObject;
var OwnerData: OleVariant);
begin
ReleaseMutex(hMutex);
end;
我开始怀疑是以上的问题,(一个线程没有把hMutex释放掉).但注释掉这段代码以后,照样行不通.
我的Application Server 用的线程模式是Apartment,实例模式是MultiInstance.
改换其他的线程模式:Free或Both ,问题依旧.
是不是改用MTS Data Module 会好一些?
以下是提交时,引发异常时的错误代码(有三种情况)
1. 无法手动或自动的创建连接 (大意)
2 无法在此会话中创建更多的连接 -----此种情况最多
3 连接占线导致另一个命令
各位大哥快帮帮我,工期就快到了