典型的简单POINT-TO-POINT模式,写一个CLIENT根据你的要求往QUEUE里写MESSAGE(TEXT,XML OR OBJECT), 缺省情况下应是PERSISTENT MESSAGE.
另写一个LISTERNER,从QUEUE里拿MESSAGE,转换成SQL命令,检查DATABASE,如ACTIVE, 把SQL发到SQL DATABASE去运行.在DATABASE INACTIVE或SQL运行出错,MESSAGE会放回QUEUE里,等待下一次的运行.
如是关键业务,要考虑TRANSACTION,而且最好是TWO PHASE COMMIT PROTOCOL.
1) MESSQGE PROVIDER是不是XA-COMPLIANT的.
2) 需要TRANSACTION SERVER (TX & XA).,有FAILURE RECOVERY功能.
3) XA-COMPLIANT DATABASE DRIVER
4) SQL DATABASE是否能FAILURE RECOVERY.
5) 如不能支持DISTRIBUTED TRANSACTION,可以分别用MESSAGE PROVIDER和
SQLSERVER的LOCAL TRANSACTION.另外,需要写COMPENSACTION TRANSACTION.
另写一个LISTERNER,从QUEUE里拿MESSAGE,转换成SQL命令,检查DATABASE,如ACTIVE, 把SQL发到SQL DATABASE去运行.在DATABASE INACTIVE或SQL运行出错,MESSAGE会放回QUEUE里,等待下一次的运行.
如是关键业务,要考虑TRANSACTION,而且最好是TWO PHASE COMMIT PROTOCOL.
1) MESSQGE PROVIDER是不是XA-COMPLIANT的.
2) 需要TRANSACTION SERVER (TX & XA).,有FAILURE RECOVERY功能.
3) XA-COMPLIANT DATABASE DRIVER
4) SQL DATABASE是否能FAILURE RECOVERY.
5) 如不能支持DISTRIBUTED TRANSACTION,可以分别用MESSAGE PROVIDER和
SQLSERVER的LOCAL TRANSACTION.另外,需要写COMPENSACTION TRANSACTION.