2011-11-12

qmkmgetConfig

ORA-07445 [qmkmgetConfig()+52] During Catupgrd.sql (11.2.0.1) [ID 1127179.1]

 

Applies to:

Oracle Server - Enterprise Edition - Version: 11.2.0.1 and later   [Release: 11.2 and later ]
Information in this document applies to any platform.

Symptoms

While running catupgd.sql to upgrade a database from 10.2.0.4.0 to 11.2.0.1, an error was encountered.

SQL>@?/rdbms/admin/catupgrd.sql
...
...
SQL>@@xdbuud
SQL>Rem
SQL>Rem $Header: xdbuud.sql 12-nov-2007.16:03:02 yifeng Exp $
SQL>Rem
SQL>Rem xdbuud.sql
...
...
SQL>Rem TODO - We should do the XDBCONFIG Upgrade here
SQL>
SQL>Rem Add new servlets
SQL>declare
  2   cfg_data XMLTYPE;
  3 begin
  4   cfg_data := dbms_xdb.cfg_get();
...
...
 54
 55   dbms_xdb.cfg_update(cfg_data);
 56 end;
 57 /
ERROR:
ORA-03114: not connected to ORACLE
ERROR:
ORA-03114: not connected to ORACLE

An internal error is logged in the alert<sid>.log:

Mon Jun 14 10:57:46 2010
Archived Log entry 2274 added for thread 1 sequence 2332 ID 0x2c15a752 dest 1:
Mon Jun 14 11:01:24 2010
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x18] [PC:0x103FFEC34, qmkmgetConfig()+52] [flags: 0x0, count: 1]
Errors in file /apps/dbms/database/trace/diag/rdbms/mydb/MYDB/trace/MYDB_ora_4114.trc (incident=145):
ORA-07445: exception encountered: core dump [qmkmgetConfig()+52] [SIGSEGV] [ADDR:0x18] [PC:0x103FFEC34] [Address not mapped to object] []
Incident details in: /apps/dbms/database/trace/diag/rdbms/mydb/MYDB/incident/incdir_145/MYDB_ora_4114_i145.trc

The incident trace file shows the current sql is

declare
  cfg_data XMLTYPE;
begin
  cfg_data := dbms_xdb.cfg_get();
  -- Report framework servlet
  SELECT appendchildxml(
     cfg_data,
     '/xdbconfig/sysconfig/protocolconfig/httpconfig/webappconfig' ||
       '/servletconfig/servlet-mappings',
     xmltype(
       '<servlet-mapping xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
         <servlet-pattern>/orarep/*</servlet-pattern>
         <servlet-name>ReportFmwkServlet</servlet-name>
        </servlet-mapping>'))
  INTO cfg_data
  FROM dual;
  SELECT appendchildxml(
     cfg_data,
     '/xdbconfig/sysconfig/protocolconfig/httpconfig/webappconfig' ||
       '/servletconfig/servlet-list',
     xmltype(
       '<servlet xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
         <servlet-name>ReportFmwkServlet</servlet-name>
         <servlet-language>C</servlet-language>
         <display-name>REPT</display-name>
         <description>Servlet for accessing reports</description>
         <security-role-ref>
          <role-name>authenticatedUser</role-name>
          <role-link>authenticatedUser</role-link>
         </security-role-ref>
        </servlet>'))
  INTO cfg_data
  FROM dual;
  -- Set anonymousServletRole security-role-ref for PL/SQL servlets using
  -- static or anonymous authentication, which have database-username set.
  SELECT appendchildxml(
     deletexml(
      cfg_data,
      '/xdbconfig/sysconfig/protocolconfig/httpconfig/webappconfig' ||
        '/servletconfig/servlet-list/servlet[plsql/database-username]'||
        '/security-role-ref'),
      '/xdbconfig/sysconfig/protocolconfig/httpconfig/webappconfig' ||
        '/servletconfig/servlet-list/servlet[plsql/database-username]',
      xmltype(
      '<security-role-ref xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
        <role-name>anonymousServletRole</role-name>
        <role-link>anonymousServletRole</role-link>
       </security-role-ref>'))
  INTO cfg_data
  FROM dual;
  dbms_xdb.cfg_update(cfg_data);
end;

And the stack trace

ssexhd <- sighndlr <- call_user_handler <- qmkmgetConfig <- qmpxCfgGet
<- spefcpfa <- spefmccallstd <- peftrusted <- psdexsp <- rpiswu2 <- psdextp

Cause

shared_pool_size and java_pool_size were configured too small during the upgrade.

Solution

  1. Restore a backup of the 10.2.0.4.0 database.
  2. Set SHARED_POOL_SIZE = 250M and JAVA_POOL_SIZE = 250M.
  3. Do the upgrade.
Note that rerunning catupgrd.sql after the error has already occurred will not help.  A restore of the pre-upgrade database has to be done.

Niciun comentariu:

Trimiteți un comentariu