GP_CAT:1585: ERROR: Conversion open failure 22 for source _MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3873 | 回复: 3   主题: GP_CAT:1585: ERROR: Conversion open failure 22 for source         下一篇 
张伟
注册用户
等级:列兵
经验:110
发帖:81
精华:0
注册:2011-12-22
状态:离线
发送短消息息给张伟 加好友    发送短消息息给张伟 发消息
发表于: IP:您无权察看 2014-12-26 15:02:52 | [全部帖] [楼主帖] 楼主

我们有一个java调用tuxedo的应用:

java (tomcat / windows) -> jolt-> tuxedo11g (linux), 根据官方文档建议采用了mbstring解决中文问题.

JAVA运行环境设置:

-Dbea.jolt.mbencoding = GB18030


Tuxedo运行环境设置:

export TPMBENC = GB18030
export TPMBACONV = Y


在执行调用时,tuxedo打印错误日志如下:

173003.dev159!JSH.6441.2407801072.-2: GP_CAT:1585: ERROR: Conversion open failure 22 for source t":"CustDesc":"红名单客户 ""CUST_ID":"1111","CUST_NUMBER":"JT001","CUST_NAME":"红名单客户 "},{"CUST_ID":"222","CUST_NUMBER":"JT002","CUST_NAME":"金卡会员"}]}]} and target GB18030

173013.dev159!JSL.6439.4172387952.0: JOLT_CAT:1066: "ERROR: Jolt Handler died, attempting restart"
173013.dev159!JSH.6467.3565797616.-2: 12-23-2010: Tuxedo Version 11.1.1.2.0, 64-bit
173013.dev159!JSH.6467.3565797616.-2: JOLT_CAT:1030: "INFO: Jolt Handler joining application"
173013.dev159!JSH.6467.3565797616.-2: INFO: JOLT Handler version-Oracle Jolt 11.1.1.1.0


我们发现在代码里加入 Fmbpack32 ("GB18030 "......), 是能够正确运行的,这样做意味着我们的每一处代码中都要加入这些额外信息,因此想通过文档中介绍的那样设置环境变方式对mbstring类型的参数进行自动转换。

如何解决?(另JOLT_CAT:1066这种错误代码在哪里可以查得到,出错很难定位问题).

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
dawei.hu
注册用户
等级:上尉
经验:590
发帖:4
精华:0
注册:1970-1-1
状态:离线
发送短消息息给dawei.hu 加好友    发送短消息息给dawei.hu 发消息
发表于: IP:您无权察看 2015-7-17 15:17:18 | [全部帖] [楼主帖] 2  楼

可以通过设置环境变量TPMBENC来启用Tuxedo自动编码转换,

如果 TPMBENC 环境变量已设置,Oracle Tuxedo  的类型开关元素会自动将客户端的编码名称和服务器端的编码名称进行比较。如果这两个编码名称不同,Oracle Tuxedo 会使用基于 GNU iconv 的库例程或用户创建的自定义转换例程,自动将传入消息的编码转换为服务器计算机支持的编码。 Oracle Tuxedo 将转换后的数据传送给服务,然后将控制传递给服务。
若该环境变量未设置,Oracle Tuxedo将 MBSTRING 缓冲区中的数据传送到服务器,但不会进行编码转换


赞(0)    操作        顶端 
dawei.hu
注册用户
等级:上尉
经验:590
发帖:4
精华:0
注册:1970-1-1
状态:离线
发送短消息息给dawei.hu 加好友    发送短消息息给dawei.hu 发消息
发表于: IP:您无权察看 2015-7-17 15:17:20 | [全部帖] [楼主帖] 3  楼

可以通过设置环境变量TPMBENC来启用Tuxedo自动编码转换,

如果 TPMBENC 环境变量已设置,Oracle Tuxedo  的类型开关元素会自动将客户端的编码名称和服务器端的编码名称进行比较。如果这两个编码名称不同,Oracle Tuxedo 会使用基于 GNU iconv 的库例程或用户创建的自定义转换例程,自动将传入消息的编码转换为服务器计算机支持的编码。 Oracle Tuxedo 将转换后的数据传送给服务,然后将控制传递给服务。
若该环境变量未设置,Oracle Tuxedo将 MBSTRING 缓冲区中的数据传送到服务器,但不会进行编码转换


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

以后的问题,最好能隐去一些敏感信息,只留下技术信息 :-)



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