[转帖]  Tuxedo 编程整理系列_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5002 | 回复: 0   主题: [转帖]  Tuxedo 编程整理系列        下一篇 
红与黑
注册用户
等级:上尉
经验:644
发帖:51
精华:1
注册:2013-2-25
状态:离线
发送短消息息给红与黑 加好友    发送短消息息给红与黑 发消息
发表于: IP:您无权察看 2013-3-1 11:21:41 | [全部帖] [楼主帖] 楼主

Not encought license due to no tpterm for tpinit
[bugu ]


连续调用10次有不同的含义:比如,做一次tpinit(),然后连续调用10次service是连续调用10次;做一次tpinit(),调用一次 service,这样做10次,也是连续调用10次。但是,从lic的角度而言,这两种方式是不同的。tpinit()负责建立连接,tpterm()负责断开连接,一个tpinit()对应与一个lic,所以tpinit()与tpterm()是一对操作。如果使用前者的调用方式,同一时刻只占用了一个 lic;如果使用后者的并发调用方式,同一时刻占用了10了lic。所以,在做应用的时候,可以考虑客户端同时采用长连接与短连接两种方式。

[hanker1999]


tpterm ()只负责断开连接,不负责应用自己分配的内存的释放动作。所以,在tpterm()之前,必须用tpfree()释放那些用tpalloc分配的内存。当然,如果某buffer是用tpalloc()分配的,而你在tpreturn()中使用了此buffer,就不用再执行tpalloc()释放了。

The maximum length of string buffer


使用tpcall同步调用,并用string类型的buffer能传递的string最大长度是多少?

如果你对一个STRING类型使用tpalloc创建时,如果不指定大小,Tuxedo默认为512 bytes。对于可以创建的最大值,好像没有要求,根据系统的物理情况而定。与tpcall无关。

If not specified, by default it is 512 bytes. As to the maximum lenght , I think depends on kernel parameters's setting.
client long connection


在打印printclient 的时候 ,为什么有状态为IDLE/W 的连接,而且他的连接时间达到了几个小时? 是因为客户段程序死掉了吗,BBL 为什么不清理掉它?
另外有什么办法可以让IDLE/W的数量减少,让客户段尽快释放连接.好让别的请求可以得到响应.可以少点LIC
感觉系统很忙,感觉要加LIC了.

那种几个小时的链接可以肯定的判断,进程已经被挂死了,这时需要人工的干预才能清除,使用bbc或是在后台使用kill将进程杀掉,另外,你可以人工控制客户端的链接时间,如果超时,就断开,让别的等待进程继续,一般都是几十妙的时间,最大就是600S了,因为tuxedo本身的最长时间也就是 600S。

UBBCONFIG->WSL中加入-T number(单位:小时),客户端的空闲连接时长。如果已连接的客户端在此时间内没有任何动作,BBL自动清除此连接。
建议考虑客户端根据具体业务需要,可采用长连接和短连接共用的方式,可有效节省lic的数目,也可避免不必要的开销。

printclient的一个问题

我发现了另外一个办法,那就是在server 上用

netstat -n


看连接情况,有长期连上来不断开的地址,再
看机器上运行了什么程序.
或者利用webgui看client的情况,还可以通过这个工具将长期连上来的client kill掉.
通过IP地址的办法,已经查到是经常在这些机器上运行的一个应用有问题.这个应用没有运行 tpterm(),已经与应用程序提供商交涉.
准备在WSL的参数中加上 -T 参数,避免这类问题.
谢谢大家.

How to retrive TUXEDO client's ip and port at server side


我的系统中能在ULOG.DDMMYY中可以发现客户端的IP和端口。
另外一个办法就是需要系统管理员的帮忙。
1. find the PID of WSH.
2. using "lsof -p " to find the listening port of WSH.
3. using "netstat -an |grep " to find current connecting clients's ip&port.

http://e-docs.bea.com/tuxedo/tux81/rf5/rf566.htm#1507139
T_CLIENT
TA_NADDR


TUXEDO客户端多线程调用

TPINIT * tpinitbuf;
tpinitbuf=tpalloc("TPINIT",NULL,TPINITNEED(0));
tpinitbuf->flags = TPMULTICONTEXTS;
ret = tpinit((TPINIT *) tpinitbuf);


转自:http://bbs.weblogicfans.net/thread-182-1-4.html




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论