

I den senere tid har Oracle JVM - gentagne gange på flere Oracle 10 databaser lige pludselig stået af med bl.a. denne slags fejl ORA-29516: Aurora assertion failure: Assertion failure at eox.c:317.
Et sted jeg opdager det er f.eks i forbindelse med Export, der kører om natten, og ser nogenlunde således ud.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
Export done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set
About to export the entire database ...
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting roles
. exporting resource costs
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces
. exporting foreign function library names
. exporting PUBLIC type synonyms
EXP-00008: ORACLE error 29516 encountered
ORA-29516: Aurora assertion failure: Assertion failure at eox.c:317
Uncaught exception Thread is dying: java.lang.NullPointerException
EXP-00000: Export terminated unsuccessfully
Følgende mest præsise beskrivelse, fandt jeg på OraFAQ, der vist kommer fra Oracle Metalink.
Hvis jeg lige kort kigger på DBMS_JAVA, som de nævner i linket, ser det således ud hos undertegnede:
[workday:ORACLE_SID:/home1/usr/oradrift/log] sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Mon Jul 28 13:06:46 2008
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL> select status,substr(object_name,1,20),object_type from dba_objects where object_name="DBMS_JAVA";
STATUS SUBSTR(OBJECT_NAME,1 OBJECT_TYPE
------- -------------------- -------------------
VALID DBMS_JAVA PACKAGE
VALID DBMS_JAVA PACKAGE BODY
VALID DBMS_JAVA SYNONYM
Jeg checker lige om der overhovedet bruges Java, og om klasserne er invalide med følgende SQL.
SQL> select dbms_java.longname (object_name) from user_objects where object_type = "JAVA CLASS" and status = "INVALID";
no rows selected
SQL> exit;
Ok lad os slette JVM, kort og godt.
[workday:ORACLE_SID:/home1/usr/oradrift/log] sid <dbname>
[workday:ORACLE_SID:/home1/usr/oradrift/log] cd $ORACLE_HOME/javavm/install
[workday:ORACLE_SID:/home1/usr/oradrift/log] sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Mon Jul 28 13:06:46 2008
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL> @rmjvm
SQL> drop package DBMS_JVM_EXP_PERMS;
SQL> drop public synonym DBMS_JVM_EXP_PERMS;
SQL> exit;
Ovenstående 2 drops kan medfører at export nu afslutter med
EXP-00008: ORACLE error 6550 encountered
ORA-06550: line 1, column 13:
PLS-00201: identifier 'SYS.DBMS_JVM_EXP_PERMS' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
EXP-00083: The previous problem occurred when calling SYS.DBMS_JVM_EXP_PERMS.audit_sysprivs_exp
. exporting statistics
Det er som om man ikke 100% får JVM af systemet. Ovenstående exports kan dog sagtens bruges ved import, men har du det som mig, er det ret irreterende at få export terminated with warnings.
Havde det været en geninstallation ville det have set ud som følger
[workday:ORACLE_SID:/home1/usr/oradrift/log] sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Mon Jul 28 13:06:46 2008
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL> @rmjvm
SQL> shutdown immediate
SQL> startup
SQL> @initjvm
SQL> exit;