2017-05-31 103 views
1

我試圖在Oracle DB中剖析Java存儲過程。我已授予用戶的角色JMXSERVER,但是當我運行call dbms_java.start_jmx_agent('22222', 'false', 'false');我得到:Oracle 11g dbms_java.start_jmx_agent拋出異常

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 

我跟蹤的誤差這一行JDK:https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/management/Agent.java#L483,以及異常的詳細信息被打印到System.err,但在哪裏呢甲骨文寫它的stderr?

回答

1

你要輸出重定向這樣的:

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

那麼錯誤將被打印到SQL會話輸出。在我的情況下,罪魁禍首是一個丟失的文件javavm//lib/management/management.properties,所以我去服務器管理員。