我们有一个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这种错误代码在哪里可以查得到,出错很难定位问题).
--转自