程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2建立nickname,導致CRASH的破解方案

DB2建立nickname,導致CRASH的破解方案

編輯:DB2教程

我們今天是要和大家一起討論的是DB2建立nickname,導致CRASH的解決方案,在對II4O進行使用時,對Wrapper, user mapping的創建可以說都是沒問題的,但是,當創建nickname時,DB2 crash。

DB2 II V8.2 for Oracle 創建nickname時導致DB2 CRASH的解決方法(Linux)

(注:DB2 II 已經改名為Websphere II)

在使用 II4O時,創建Wrapper, user mapping都沒問題,但是,當創建nickname時,DB2 crash。

在db2diag.log 中,有如下信息:

  1. 2005-03-13-14.22.36.412133+480 E7747G606 LEVEL: Severe   
  2. PID : 19883 TID : 3007177376 PROC : db2agent   
  3. (SAMPLE)   
  4. INSTANCE: db2inst1 NODE : 000 DB : SAMPLE   
  5. APPHDL : 0-14 APPID: GAC80471.NE04.00F483062900   
  6. FUNCTION: DB2 UDB, oper system services, sqloEDUCodeTrapHandler,   
  7. probe:10   
  8. MESSAGE : ADM0503C An unexpected internal processing error has occurred. ALL   
  9. DB2 PROCESSES ASSOCIATED WITH THIS INSTANCE HAVE BEEN SHUTDOWN.   
  10. Diagnostic information has been recorded. Contact IBM Support for   
  11. further assistance.   
  12. .   
  13. .   
  14. .   
  15. 2005-03-13-14.22.36.421935+480 I16005G624 LEVEL: Severe   
  16. PID : 19883 TID : 3007177376 PROC : db2agent   
  17. (SAMPLE)   
  18. INSTANCE: db2inst1 NODE : 000 DB : SAMPLE   
  19. APPHDL : 0-14 APPID: GAC80471.NE04.00F483062900   
  20. MESSAGE : RDS UCINTFC: pStatementText =   
  21. DATA #1 : Hexdump, 59 bytes   
  22. 0xB33849E0 : 4352 4541 5445 204E 4943 4B4E 414D 4520 CREATE NICKNAME   
  23. 0xB33849F0 : 4442 3249 4E53 5431 2E4F 5241 4C4F 4341 DB2INST1.ORALOCA   
  24. 0xB3384A00 : 4C20 464F 5220 5453 4831 2E44 4232 494E L FOR TSH1.DB2IN   
  25. 0xB3384A10 : 5354 312E 224C 4F43 414C 22 ST1."LOCAL"   
  26. .   
  27. .   
  28. .   
  29. 2005-03-13-14.22.36.476913+480 I39423G431 LEVEL: Severe   
  30. PID : 19824 TID : 3007177376 PROC : db2tcpcm   
  31. INSTANCE: db2inst1 NODE : 000   
  32. FUNCTION: DB2 UDB, oper system services, sqloEDUSIGCHLDHandler, probe:50   
  33. DATA #1 : String, 158 bytes   
  34. Detected the death of an EDU with process id 19883   
  35. The signal number that terminated this process was 11   
  36. Look for trap files (t19883.*) in the dump directory  

檢查trap文件, t19883.000, 在 call stack,會發現:

  1. -FRAME-- --CODE-- --LOCATION--   
  2. BFFE8E70 83C4286A 0x0083 + A_SHAFinalCommon   
  3. (/opt/IBM/db2/V8.1/lib/libdb2e.so.1)   
  4. BFFE8F00 8B55E48D 0x00ae + A_X931RandomUpdate   
  5. (/home/oracle/OraHome1/lib/libclntsh.so.9.0)   
  6. BFFE8F60 83C40CEB 0x00d0 + ztcrseed3   
  7. (/home/oracle/OraHome1/lib/libclntsh.so.9.0)  

DB2建立nickname導致CRASH解決方法,這是DB2 II V8.2 和 Oracle 9i/10g 的一個兼容性問題.

如果是ORACLE 9i Workaround:

  1. 1) Back up your $ORACLE_HOME/lib/libclntsh.so and   
  2. $ORACLE_HOME/bin/genclntsh   
  3. 2) Add '-Wl,-Bsymbolic' to the link line of $ORACLE_HOME/bin/genclntsh:   
  4. LD="gcc -shared -Wl,-relax -L${ORACLE_HOME}/lib -Wl,-Bsymbolic"   
  5. # shared library link command   
  6. 3) Run genclntsh to create libclntsh.so   
  7. 4) Execute djxlinkOracle   
  8. 5) Stop and Start the instance  

如果是ORACLE 10g Workaround:

  1. 1) back up $ORACLE_HOME/bin/genclntsh,   
  2. $ORACLE_HOME/lib/libclntsh.so.10.1, $ORACLE_HOME/lib32/libclntsh.so.10.1   
  3. 2) cd $ORACLE_HOME/lib; mv libnnz10.so libnnz10.so.orig   
  4. (so libnnz10.so not exist in lib)   
  5. 3) cd $ORACLE_HOME/bin; modify the script genclntsh:   
  6. a). Add "-Wl, -Bsymbolic" to linker line, .... make sure there is no   
  7. spaces between the comma and -B.   
  8. ex. LD="gcc -shared -Wl,-relax -L${ORACLE_HOME}/lib -Wl,   
  9. -Bsymbolic" # shared library link command   
  10. b) Change libnnz10.so ==> libnnz10.a in following line   
  11. * -r ${OLIB}/libnnz10.so * && LNZ="-lnnz10  

以上的相關內容就是對DB2建立nickname導致CRASH解決方法的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved