2012-04-13 53 views
3

我有一個Java應用程序服務器與使用JDBC的Oracle 11.2數據庫服務器進行通信。客戶端的請求被髮送到應用程序服務器,該服務器運行一個調用數據庫中第一個存儲過程的java方法。Oracle數據庫:與java應用程序的DBMS_ALERT用法

我希望java方法在調用存儲過程後坐下並等待來自數據庫的信號(該信號指示某個結果已準備好從數據庫中檢索)。

爲了避免輪詢數據庫,可以使用DBMS_ALERT通知java方法(或多個方法,因爲多個實例可能正在運行,每個唯一用戶有一個實例)結果準備檢索,在這種情況下,java方法可以繼續執行其餘的代碼?

有人可以提供一個在這種情況下使用DBMS_ALERT的簡單例子嗎?也就是說,如何在數據庫中對其進行配置,以便在表中的預定字段發生變化(例如,達到預定值,例如'done')時發送警報,以及如何配置java方法以使其可以接收警告消息(包括如何處理此消息以檢查其內容,例如if (received_message == 'done')等)?

+1

你有沒有看着[數據庫更改通知(http://docs.oracle.com/cd /E14072_01/java.112/e10589/dbchgnf.htm)? – 2012-04-13 08:24:02

+0

你確定你不想使用QA(高級排隊)嗎?它是爲此目的而設計的Oracle消息傳遞系統。它甚至有一個JMS包裝庫。 – ibre5041 2013-05-18 07:11:12

回答

3
+0

您也可以查看[上一個問題](http://stackoverflow.com/q/4453428);它是C#,但接受的答案看起來像它可以相當簡單地移植。 – 2012-04-13 17:21:32

+0

oracleutilities.com的第一個鏈接現在似乎被破壞了。看起來網站已經消失。 – 2013-11-19 13:47:53

相關問題