在使用 II4O(注:DB2 II 已经改名为Websphere II)时,创建Wrapper, user mapping都没问题,但是,当创建nickname时,DB2 crash。
在db2diag.log 中,有如下信息:
2005-03-13-14.22.36.412133+480 E7747G606 LEVEL: Severe PID : 19883 TID : 3007177376 PROC : db2agent (SAMPLE) INSTANCE: db2inst1 NODE : 000 DB : SAMPLE APPHDL : 0-14 APPID: GAC80471.NE04.00F483062900 FUNCTION: DB2 UDB, oper system services, sqloEDUCodeTrapHandler, probe:10 MESSAGE : ADM0503C An unexpected internal processing error has occurred. ALL DB2 PROCESSES ASSOCIATED WITH THIS INSTANCE HAVE BEEN SHUTDOWN. Diagnostic information has been recorded. Contact IBM Support for further assistance. . . . 2005-03-13-14.22.36.421935+480 I16005G624 LEVEL: Severe PID : 19883 TID : 3007177376 PROC : db2agent (SAMPLE) INSTANCE: db2inst1 NODE : 000 DB : SAMPLE APPHDL : 0-14 APPID: GAC80471.NE04.00F483062900 MESSAGE : RDS UCINTFC: pStatementText = DATA #1 : Hexdump, 59 bytes 0xB33849E0 : 4352 4541 5445 204E 4943 4B4E 414D 4520 create NICKNAME 0xB33849F0 : 4442 3249 4E53 5431 2E4F 5241 4C4F 4341 DB2INST1.ORALOCA 0xB3384A00 : 4C20 464F 5220 5453 4831 2E44 4232 494E L FOR TSH1.DB2IN 0xB3384A10 : 5354 312E 224C 4F43 414C 22 ST1.”LOCAL” . . . 2005-03-13-14.22.36.476913+480 I39423G431 LEVEL: Severe PID : 19824 TID : 3007177376 PROC : db2tcpcm INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, oper system services, sqloEDUSIGCHLDHandler, probe:50 DATA #1 : String, 158 bytes Detected the death of an EDU with process id 19883 The signal number that terminated this process was 11 Look for trap files (t19883.*) in the dump directory |
检查trap文件, t19883.000, 在 call stack,会发现:
-FRAME– –CODE– –LOCATION– BFFE8E70 83C4286A 0x0083 + A_SHAFinalCommon (/opt/IBM/db2/V8.1/lib/libdb2e.so.1) BFFE8F00 8B55E48D 0x00ae + A_X931Randomupdate (/home/oracle/OraHome1/lib/libclntsh.so.9.0) BFFE8F60 83C40CEB 0x00d0 + ztcrseed3 (/home/oracle/OraHome1/lib/libclntsh.so.9.0) |
这是DB2 II V8.2 和 Oracle 9i/10g 的一个兼容性问题.
如果是ORACLE 9i Workaround:
============ 1) Back up your $ORACLE_HOME/lib/libclntsh.so and $ORACLE_HOME/bin/genclntsh 2) Add ’-Wl,-Bsymbolic’ to the link line of $ORACLE_HOME/bin/genclntsh: LD=”gcc -shared -Wl,-relax -L${ORACLE_HOME}/lib -Wl,-Bsymbolic” # shared library link command 3) Run genclntsh to create libclntsh.so 4) execute djxlinkOracle 5) Stop and Start the instance |
如果是ORACLE 10g Workaround:
============ 1) back up $ORACLE_HOME/bin/genclntsh, $ORACLE_HOME/lib/libclntsh.so.10.1, $ORACLE_HOME/lib32/libclntsh.so.10.1 2) cd $ORACLE_HOME/lib; mv libnnz10.so libnnz10.so.orig (so libnnz10.so not exist in lib) 3) cd $ORACLE_HOME/bin; modify the script genclntsh: a). Add “-Wl, -Bsymbolic” to linker line, …. make sure there is no spaces between the comma and -B. ex. LD=”gcc -shared -Wl,-relax -L${ORACLE_HOME}/lib -Wl, -Bsymbolic” # shared library link command b) Change libnnz10.so ==> libnnz10.a in following line * -r ${OLIB}/libnnz10.so * && LNZ=”-lnnz10 |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
DB2与非DB2数据库之间的远程复制分析
DB2 联合数据库是分布式数据库管理的特殊形式。在联合数据库系统中,可以通过一个 SQL 命令来发出对多个数据源的命令请求。