Ovenstående oracle fejl, forekommer på 2 af mine databaser gennem de sidste par døgn! Der sker næsten altid omkring kl 19:40.

Tracen der kommer ser ud som følger:

*** SERVICE NAME:(SYS$USERS) 2010-03-30 19:43:01.058
*** SESSION ID:(1785.10099) 2010-03-30 19:43:01.058
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x2, PC: [0xffffffff76a33e64, jtcfs_108b3b90fb8_java_lang_reflect_Method__copy()+548]
*** 2010-03-30 19:43:01.069
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [jtcfs_108b3b90fb8_java_lang_reflect_Method__copy()+548] [SIGSEGV] [Address not mapped to object] [0x000000002] [] []
Current SQL statement for this session:
SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM2) SYNNAM2, DBMS_JAVA.LONGNAME(SYNTAB) SYNTAB, TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO FROM SYS.EXU9PTS

Rent umiddelbart ligner det noget Java! Men lad os se om DBMS_JAVA egentlig er valid ?

SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS FROM DBA_OBJECTS WHERE OBJECT_NAME='DBMS_JAVA';

OWNER                          OBJECT_NAME       OBJECT_TYPE         STATUS
------------------------------ ----------------- ------------------- -------
SYS                            DBMS_JAVA         PACKAGE             VALID
SYS                            DBMS_JAVA         PACKAGE BODY        VALID
PUBLIC                         DBMS_JAVA         SYNONYM             VALID

Lad os også lige checke JVM delen

SQL> SELECT OWNER, STATUS, COUNT(*) FROM DBA_OBJECTS WHERE  OBJECT_TYPE LIKE '%JAVA%' GROUP BY OWNER, STATUS;
 
OWNER                          STATUS    COUNT(*)
------------------------------ ------- ----------
EXFSYS                         VALID           42
SYS                            VALID        15507

Det ser jo meget godt ud umiddelbart! Hvis jeg så forsøger at udføre den SQL der forudsager tracen i hånden

SQL> SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM2) SYNNAM2, DBMS_JAVA.LONGNAME(SYNTAB) SYNTAB, TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO FROM SYS.EXU9PTS;
SELECT SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM2) SYNNAM2, DBMS_JAVA.LONGNAME(SYNTAB) SYNTAB, TABOWN, TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO FROM SYS.EXU9PTS
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel

Kigger jeg i user dump dest, er resultatet af ovenstående et trace der er identisk med ovenstående trace. Lad os prøve helt simpelt

SQL> SELECT SYS.DBMS_JAVA.LONGNAME('FOO') FROM DUAL;
ERROR:
ORA-03114: not connected to ORACLE

Der sker fuldstændigt det samme. Argumentet jtcfs_108b3b90fb8_java_lang_reflect_Method__copy()+548 finder jeg ingenlunde på metalink. Jeg har søgt på omliggende maskiner om der
omkring tidspunktet kører noget statestik, mmon, cronjob men finder intet.

Den lette løsning var at klone produktion ned i pågældende miljø, så gik problemmet væk - jeg fandt aldrig løsningen.