tuxedo测试遇到古怪问题,tperrno=9_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
11
每页帖数
101/2页12
返回列表
0
发起投票  发起投票 发新帖子
查看: 8462 | 回复: 10   主题: tuxedo测试遇到古怪问题,tperrno=9        上一篇   下一篇 
leanhardt
注册用户
等级:下士
经验:153
发帖:3
精华:0
注册:2015-4-20
状态:离线
发送短消息息给leanhardt 加好友    发送短消息息给leanhardt 发消息
发表于: IP:您无权察看 2015-4-20 11:57:34 | [全部帖] [楼主帖] 楼主

在公司模拟环境做测试,服务端为linux,客户端为aix5.3;tuxedo为11G版本。客户端执行tpcall时,服务端报错如下:
LIBTUX_CAT:6820: ERROR: A workstation client(ip address //192.168.2.205:62460) does not have a proper application password
客户端日志报错信息

103308.aix!?proc.278654.1.-2: 04-20-2015: Tuxedo Version 11.1.1.2.0, 64-bit

103308.aix!?proc.278654.1.-2: Call GET_BY_NBR_IN Error !

tperrno=9 tperrmsg=TPEPROTO - protocol erro

这个是否跟配置有关?还是和代码有关呢?
客户端的程序是通过makefile编译的。




赞(0)    操作        顶端 
hui.chen
注册用户
等级:大校
经验:6070
发帖:48
精华:4
注册:2014-2-7
状态:离线
发送短消息息给hui.chen 加好友    发送短消息息给hui.chen 发消息
发表于: IP:您无权察看 2015-4-21 11:00:34 | [全部帖] [楼主帖] 2  楼

貌似是密码认证不对,或者配置文件有问题吧


u=2871144702,1362725177&fm=21&gp=0.jpg.gif


赞(0)    操作        顶端 
chengpeng.gong
注册用户
等级:中尉
经验:400
发帖:9
精华:0
注册:1970-1-1
状态:离线
发送短消息息给chengpeng.gong 加好友    发送短消息息给chengpeng.gong 发消息
发表于: IP:您无权察看 2015-4-21 11:03:50 | [全部帖] [楼主帖] 3  楼

检查下环境是否TUXEDO 配置了安全APP_PW ,如果有配置安全检查密码是否正确。



赞(0)    操作        顶端 
icefenny
注册用户
等级:上士
经验:252
发帖:5
精华:0
注册:2015-3-24
状态:离线
发送短消息息给icefenny 加好友    发送短消息息给icefenny 发消息
发表于: IP:您无权察看 2015-4-21 11:53:33 | [全部帖] [楼主帖] 4  楼

还是你这个IP用户没有正确的应用程序的密码

这种情况的原因是:某个应用程序中包含了一个rollback()commit()或类似函数也一起运行了,即一个“取消所有”的取消事件在进程中,或者是非用户的访问造成的。



赞(0)    操作        顶端 
leanhardt
注册用户
等级:下士
经验:153
发帖:3
精华:0
注册:2015-4-20
状态:离线
发送短消息息给leanhardt 加好友    发送短消息息给leanhardt 发消息
发表于: IP:您无权察看 2015-4-21 14:58:19 | [全部帖] [楼主帖] 5  楼

检查下环境是否TUXEDO 配置了安全APP_PW ,如果有配置安全检查密码是否正确。

服务端的ubb并没有配置SECURITY APP_PW这个



赞(0)    操作        顶端 
koei123
注册用户
等级:大校
经验:4196
发帖:16
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei123 加好友    发送短消息息给koei123 发消息
发表于: IP:您无权察看 2015-4-21 17:50:02 | [全部帖] [楼主帖] 6  楼

他这个是tperrno=9,不是xa_start=-9,后者跟全局事务有关,前面那个不能照rollback和commit的思路来。。。



赞(0)    操作        顶端 
koei123
注册用户
等级:大校
经验:4196
发帖:16
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei123 加好友    发送短消息息给koei123 发消息
发表于: IP:您无权察看 2015-4-21 17:51:11 | [全部帖] [楼主帖] 7  楼

服务端的报错,需要tmunloadcf动态的把ubb反编译出来,楼主截出*RESOURCE那一段就知道是否配了校验了;



赞(0)    操作        顶端 
koei123
注册用户
等级:大校
经验:4196
发帖:16
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei123 加好友    发送短消息息给koei123 发消息
发表于: IP:您无权察看 2015-4-21 17:53:19 | [全部帖] [楼主帖] 8  楼

另一个比较搞的地方是,客户端的错误是在tpcall()的时候报出来的,所以要校验的第二个地方是tpinit()在客户端代码里是否正常调用了,是否用到了多上下文;



赞(0)    操作        顶端 
koei123
注册用户
等级:大校
经验:4196
发帖:16
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei123 加好友    发送短消息息给koei123 发消息
发表于: IP:您无权察看 2015-4-21 17:58:00 | [全部帖] [楼主帖] 9  楼

总的来讲,他这个报了TPEPROTO,在Tuxedo产品源代码里,还是上下文不对造成的,至于上下文不对的原因,有两边的安全等级、初始化建链参数、是否代码中截获了非提示消息,不过最后这点不像,国内用到tpsetunsol()的估计没有几个。。。

一般是:

/* Can't be in application unsolicited message handler */

if (TUX->_TUX__tminunsolhndlr) {

    SET_TPERRNO(TPEPROTO);

    (void) _tmatmileave(_TCARG,0);

    TMDBG_SET(TUX->_TUX__tmdbg_retid,20); goto retm1;

}

客户端还有:

 if (WSC->_WSC_wsc.wsflags&WSCINUNSOL) {

SET_TPERRNO(TPEPROTO);

(void)_wsc_atmileave(_TCARG,0);

TMDBG_SET(WSC->_WSC__tmdbg_retid,30); goto retlab;



赞(0)    操作        顶端 
leanhardt
注册用户
等级:下士
经验:153
发帖:3
精华:0
注册:2015-4-20
状态:离线
发送短消息息给leanhardt 加好友    发送短消息息给leanhardt 发消息
发表于: IP:您无权察看 2015-4-22 9:02:41 | [全部帖] [楼主帖] 10  楼

另一个比较搞的地方是,客户端的错误是在tpcall()的时候报出来的,所以要校验的第二个地方是tpinit()在客户端代码里是否正常调用了,是否用到了多上下文;


您好,多上下文是什么意思呢?
我代码基本就是这样

if (tpinit((TPINIT *) NULL) == -1)
{
      printf("tpinit Error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno)); // 系统错误
      userlog("tpinit Error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno));
      fclose(fp);
      return retFailInfo;
}
sendbuf=(FBFR32 *) tpalloc("FML32",NULL,lSendLen+1); // 申请FML32缓冲区10k
if(sendbuf==NULL)
{
      printf("tpalloc send buffer error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno)); // 系统错误
      userlog("tpalloc send buffer error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno));
      fclose(fp);
      tpterm();
      return retFailInfo;
}
rcvbuf=(FBFR32 *) tpalloc("FML32",NULL,lRcvLen+1); // 申请FML32缓冲区20k
if(rcvbuf==NULL)
{
      printf("tpalloc rev buffer error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno)); // 系统错误
      userlog("tpalloc rev buffer error!\ntperrno=%d tperrmsg=%s\n",tperrno, tpstrerror(tperrno));
      fclose(fp);
      tpfree((char *)sendbuf);
      tpterm();
      return retFailInfo;
}
//给FML32缓冲赋值
//if(strcmp(strAreaCode,"null")!=0)
Fchg32(sendbuf,AREA_CODE,0,strAreaCode,0);
//if(strcmp(strAccNbr,"null")!=0)
Fchg32(sendbuf,ACC_NBR,0,strAccNbr,0);
//if(strcmp(strAcctNbr,"null")!=0)
Fchg32(sendbuf,ACCT_NBR_97,0,strAcctNbr,0);
//if(lStaffId != -1)
Fchg32(sendbuf,STAFF_ID,0,(char *)&lStaffId,0);
//if(lGetFlag != -1)
Fchg32(sendbuf,GET_FLAG,0,(char *)&lGetFlag,0);
//if(lAdslFlag != -1)
Fchg32(sendbuf,ADSL_FLAG,0,(char *)&lAdslFlag,0);
//if(strcmp(strExchNo,"null")!=0)
Fchg32(sendbuf,EXCH_NO,0,strExchNo,0);
Fchg32(sendbuf, CHANNEL_ID, 0, strChannel_Id, 0);
Fchg32(sendbuf, ENCODE, 0, strEncode, 0);
#ifdef DEBUG
printf("Send fields in calling GET_BY_NBR_IN:\n");
Fprint32(sendbuf);
//调用查询欠费服务
SCFERROR("invoke tpcall()");
#endif
sprintf(strSendbuf, "%04d%02d%02d%02d%02d%02d ", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
sprintf(strSendbuf+strlen(strSendbuf), "%s send querybynbr ExchNo %s AreaCode %s AccNbr %s AcctNbr97 %s StaffId %ld GetFlag %ld AdslFlag %ld Channel_id %s Encode %s",
strInesName, strExchNo, strAreaCode, strAccNbr, strAcctNbr, lStaffId, lGetFlag, lAdslFlag, strChannel_Id, strEncode);
if(fprintf(fp, "%s\n", strSendbuf) < 0){
      userlog("WARNING: writing log by send querybynbr error!\ntperrno = %d tperrmsg = %s\n", tperrno, tpstrerror(tperrno));
}
fflush(fp);
printf("tpcall now!");
ret=tpcall("GET_BY_NBR_IN",(char *)sendbuf,0,(char **)&rcvbuf,&lRcvLen,(long)0);


如何检验您说的上下文问题呢?



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