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

Z_GladiatoR 2013-01-31 09:29:22
我自己写的一个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这关。。。。。。

...全文
545 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧