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;