关于 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这关。。。。。。

...全文
475 回复 点赞 打赏 收藏 举报
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
中间件
加入

1205

社区成员

企业软件 中间件技术
申请成为版主
帖子事件
创建了帖子
2013-01-31 09:29
社区公告
暂无公告