科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道DB2建立nickname导致CRASH解决方法

DB2建立nickname导致CRASH解决方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

DB2建立nickname导致CRASH解决方法

作者:dev.21tx.com 来源:dev.21tx.com 2007年9月11日

关键字: DB2 Linux 数据库 IBM

  • 评论
  • 分享微博
  • 分享邮件

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
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章