簡體   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