2017-05-31 5 views
1

Ich versuche ein Java gespeichertes proc in einer Oracle DB zu profilieren. Mein Benutzer wurde Rolle gewährt JMXSERVER, aber wenn ich call dbms_java.start_jmx_agent('22222', 'false', 'false'); laufen erhalte ich:Oracle 11g dbms_java.start_jmx_agent löst eine Ausnahme aus

ORA-29532: Java call terminated by uncaught Java exception: java.lang.RuntimeException: java.lang.RuntimeException: Management agent class failed 
ORA-06512: at "SYS.DBMS_JAVA", line 803 
ORA-06512: at "SYS.DBMS_JAVA", line 812 
ORA-06512: at line 1 

ich den Fehler auf dieser Linie in JDK verfolgt haben: https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/management/Agent.java#L483 und die Ausnahmedetails sind System.err gedruckt, aber wo tut Oracle schreibe seinen stderr auf?

Antwort

1

Sie haben die Ausgabe wie folgt umgeleitet werden:

select DBMS_JAVA.SET_OUTPUT_TO_SQL('1', 'begin dbms_output.put_line(:1); end;','TEXT') from dual; 

Dann wird der Fehler auf die SQL-Sitzung Ausgabe gedruckt werden. In meinem Fall war der Täter eine fehlende Datei javavm//lib/management/management.properties, also ging ich zu Server Admins.