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

DB2建立nickname導致CRASH解決方法

編輯:DB2教程

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

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

在使用 II4O時,創建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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved