当前位置:编程学习 > 网站相关 >>

关于 tpinit 的问题,哪位大神可以帮个忙~

   我自己写的一个java通信系统,将tuxedo客户端逻辑以JNI的形式作为主系统的一个通信模块,tuxedo客户端的编程方式采取标准的流程,在tpcall之前做了,环境变量的初始化后开始调用tpinit(),成功之后给sendbuf和recvbuff分配初始化空间,tpcall结束之后,取得recvbuff中的返回,然后断开连接,总之就是采取短连接和同步tpcall的方式。
    
   下面是我遇到的窘境:在实际企业级应用中,由于我的通信系统会接受前台发送过来给不同第三方tuxedo服务的报文信息,因为为保证在并发下事务的一致性,我采取对象锁的机制syncnoized给native方法,而当其中一个第三方服务挂死,或者根本是网络ping不通的时候,tpinit就会阻塞,如果是网络ping不通,tpinit阻塞会持续3分钟的时间,服务挂死的情况tpinit的等待时间难以统计。
   
   于是我查了许多资料,都没有明确阐明作为tuxedo客户端单方面的超时控制机制,我用的tuxedo版本是8,难道这么强大的中间件技术,连网络不通的情况下,tpinit都不能立马报错返回吗,求教各位大神tpinit的客户端超时控制机制~~~~

   PS: 目前发现有使用异步tpacall和tpgetrply的机制,但是其实tpgetrply也是会阻塞的。不过不管怎么说,按照正常流程得先过了tpinit这关。。。。。。

tpinit  超时 tpacall
补充:企业软件 ,  中间件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,