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

在aix下用c调用动态库封装tuxedo调用可以成功,可是改为java通过jni调用却报错:

 LIBTUX_CAT:6031: ERROR: Unable to pre-process buffer before tranmission. Error code(4/3606)

LIBWSC_CAT:1045: ERROR: Presend on message failed

LIBWSC_CAT:1011: ERROR: tpcall() message send failure

编译so文件是根据buildclient参数复制的:

 xlc -c test.c -I$TUXDIR/include -I/usr/java14/include

xlc -G -I$TUXDIR/include -o libtest.so test.o -L${TUXDIR}/lib $TUXDIR/lib/wstpinit.o -lwsc -lbuft -lwsc -lgpnet -lfml -lfml32 -lengine -lpthread

实在没招了,希望了解的高手帮下忙,谢谢!




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

有两个建议:
1. 这个动态库,先让C调通,然后再拿Java的JNI调用,并确保Tuxedo的库也在路径上;
2. 对于JNI传入的Buffer数据,最好打印校验一下,看是否有额外的符号夹杂在其中;一个可行的办法是,在.so中再重新拼装需要传给Tuxedo的数据;



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