免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4432 | 回复: 3

[Tuxedo] Tuxedo 的一个问题 大侠请进 [复制链接]

论坛徽章:
0
发表于 2010-05-13 11:17 |显示全部楼层
本帖最后由 unix_neu 于 2010-05-13 17:27 编辑

我最近在编写一个Tuxedo服务, 具体内容包括 1:创建一个socket服务,2使用多线程。但是编程调试的时候却意外发现服务无法用tmshutdown -s +服务名  正常关闭。。经过多次调试,我发现由于在CommM(服务名)中使用accept函数导致的这个问题。同理我尝试将accept放在tpsvrinit函数中,结果服务编程无法正常启动。 所以问题出来了 ,我现在不知道 到底应该把 accept这个函数放在什么位置?或者有什么方法可以使得tmshutdown能够正常关闭CommM服务~~  在线等~~谢谢各位大虾..

我觉得无法关闭的原因这样:tmshutdown 发送的SIGTERM信号 被阻塞的accept函数忽略,导致服务无法关闭。继续等待高手的出现~~~

论坛徽章:
0
发表于 2010-05-17 10:57 |显示全部楼层
本帖最后由 春日 于 2010-05-17 10:59 编辑

回复 1# unix_neu


    accept放tpsvrinit里没意义阿,除非你的service不需要client驱动
    即使放在服务里,理论上你的流程应该是:client call->service routine->blablabla->accept->blabla->tpreturn->client call finishes
    shutdown指定server的话,Tuxedo会等到当前这个request完成才停server,之后q里的请求作废。在你的例子里就是accept结束后自动shutdown掉

    总而言之,Tuxedo service是交易式的,即一次请求、一次服务、一次回复。亦即service由client请求来驱动

    而你的问题在于:看起来你的Tuxedo服务不是为提供交易,而是作为一个监听进程独立提供某种网络服务。这和Tuxedo service的思路是冲突的

    回到你问的问题,就事论事的说,我记得有个环境变量可以强制杀掉停的很慢的Tuxedo server。你可以联系一下你的support工程师,让他们给你查一下

论坛徽章:
0
发表于 2010-05-21 14:28 |显示全部楼层
回复 2# 春日


    thanks~~茅塞顿开

论坛徽章:
0
发表于 2010-05-21 17:22 |显示全部楼层
不客气
后来查了一下:杀掉响应很慢的server进程,不是通过环境变量,而是tmshutdown的时候加以下参数: -w <expected_delay_time>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP