繁体   English   中英

Oracle在另一台机器上调用Java方法

[英]Oracle call to Java method on another machine

根据架构师的要求,我不允许将java类编译到我们正在运行的Oracle实例中,因此我正在寻找替代方案。 要求是利用位于网络上的应用程序服务器上的Java库。 是否可以从PL / SQL调用位于另一台机器上的java方法? 我发现这篇文章讨论了Oracle中的外部过程,但我不确定它是否允许这样做。 另一方面,性能还必须足够快,以便用于数千或数百万次呼叫的批处理。

我怀疑你能做的最好的事情是将条目添加到另一个表中,你的Java进程轮询它以获取每个或多批消息。 Oracle并不是真正用于消息处理的。

无论如何,我会和你的建筑师讨论这个问题,因为他是专家。 ;)

如果您的Oracle系统无法完成这项工作,您可能需要一个不使用Oracle的解决方案。

你有三个选择:

1.)我们通过使用UTL_HTTP使PL / SQL调用HTTP然后让app-server调用java过程来解决类似的问题。 我们这样做是为了将我们的Oracle数据库与Oracle Reports连接起来。 PL / SQL触发了一个HTTP请求,该请求由app-server接收,称为Java。 Java可以通过普通的JDBC回调PL / SQL。

2.)您可能无法加载该java proc,但也许您可以创建一些可以使用RMI调用它的其他Java存储过程。

3.)AQ是另一种方法。 基本上,您可以使用AQ对消息进行排队,并在App Server上使用JMS对其进行出列并使用它。

选项3将是最快的,尽管我们已经尝试了选项1,并且延迟时间并不像您那样多。 它还提供了一种通过并行运行多个请求来进行并行处理的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM