我试图在Oracle 11g中创建一个Java存储过程来检索Google Analytics信息。Oracle java存储过程
现在工作了三天,但没有成功。使用
上传的5个所需的JAR文件,here link,到数据库:这是一步一步我做了什么
loadjava -user scott/[email protected] gdata-analytics-2.1.jar
然后,我创建Java源文件(在PL/SQL开发IDE)并使用上面链接中的示例代码。编译它(f8),它出现在Java类树中(与使用jar文件创建的类相同)。
后,我写的程序来调用java类:
create or replace procedure KEVIN_PROCEDURE_ANALYTICS AS LANGUAGE JAVA NAME 'Kevin_Analytics.main(java.lang.String[])';
最后我打电话的过程:
exec KEVIN_PROCEDURE_ANALYTICS();
和我得到的错误:
ORA-29532: Java call terminated by uncaught Java exception: java.lang.IllegalStateException: Cannot call dirty() without holding the lock on the registry.
使用谷歌,我发现this link(一个类的Java代码,其中有一种方法,完全打印此错误消息),我想我必须使用同步方法,请检查链接,我想你也会发现。
现在的问题是,我真的不知道如何以及在哪里必须放置这个同步的代码。如果你们中的某个人能够告诉我,我会真的。
感谢您阅读这篇文章,如果有人可以帮助我,将不胜感激。
凯文Vermaat
您需要完整的stacktrace进行取证分析。这听起来像是学习如何检索的好时机。 –
如果您下次登录时,请阅读我对您的回答的评论:) –
我不熟悉Oracle数据库内JVM的更精细的工作方式,并且无法帮助您了解这一点。你可能想要打开一个新的问题,明确地询问,只是为了做到这一点。 –