我的应用程序是一个交易转发接口,通过客户机连接到mq 服务端,本身接受tcp 请求,应用程序是个多进程程序,每个进程, 进程接到tcp 请求后, 通过MQCONN MQOPEN, MQPUT MQGET MQCLOSE ,MQDISC 等一系列动作完成一个发送/接收MQ操作, 再返回应答给前台,. 这样做每次收发都要执行 MQCONN, MQOPEN, MQCLOSE , MQDISC 操作, 代价比较大, 因此我把 MQCONN/MQDISCMQOPEN/MQCLOSE 对 放在了收发循环之外, 每个进程只建立一个MQ连接, 接收tcp 请求、 转发/接收mq 、应答tcp等操作作为一个单独的循环单元。这样的程序在服务器对服务器模式下, 通过使用触发器, 通道能够自动重起, 没发现什么问题。
但是在客户端对服务器的模式下,如果服务器和客户机出现了网络故障,服务器器和客户机的连接被破坏, 恢复后,除非我的程序重新启动,否则无法再连接服务器, 错误码是2009 ,
请问有什么办法保证在这种情况客户机和服务器能够自动恢复?或者能否提供一下如何在这类模式下提高性能? 不胜感激。
[ 本帖最后由 michael_cdh 于 2008-3-27 09:43 编辑 ]
|