Cound我創建一個觸發器來向JMS發送記錄消息?如果是,我該怎麼辦? 在此先感謝!數據庫觸發器和JMS
回答
我會總結你的選項如下:
數據庫支持JMS
Oracle是我所知道的,支持JMS本身在Oracle Advanced Queueing形式的唯一數據庫。如果您的消息接收者對該JMS實現不太感興趣,通常可以找到某種消息橋接器,將消息從一個JMS實現轉換並轉發到另一個JMS實現。例如:
數據庫支持Java
一些數據庫如Oracle和DB2有一個內置的Java虛擬機,並支持第三方的加載庫(Jars)和可以由觸發器代碼調用的自定義類。根據您的JMS客戶端的要求,考慮到Java支持的版本(如果您需要Java 5+,但該數據庫僅支持Java 3),這是一個問題。另外請記住,對這些嵌入式JVM中的某些嵌入式JVM進行線程化是not what you might expect it to be,但也可能期望JMS消息的發送可能比接收相同的消息更加寬容。
數據庫支持外部調用(但不是在爪哇)
幾個數據庫支持觸發異步事件,以從事件的有效負載建立連接的客戶端,其可以反過來向前JMS消息的不同的手段:
- 甲骨文:DBMS_ALERT(同步),DBMS_PIPE,DCN
- Postgres的:SQLNotify
某些數據庫(以上所有和包括SQLServer)都允許您從數據庫過程代碼(可以通過觸發器調用)發送SMTP消息。雖然它不是JMS,但郵件偵聽器可能偵聽郵件消息(可能方便地具有JSON或XML消息正文),並將此內容作爲JMS消息轉發。
這是一個基本的替代方案,它允許HTTP帖子向外部源發出呼叫,在這些外部源可能有一個servlet偵聽並將提交的內容作爲JMS消息轉發。
其他數據庫如Postgres的支持非Java語言,如Perl,Python和Tcl,你可能會使用一些聰明的腳本將消息發送到外部消息的變壓器,將作爲轉發JMS。活動MQ(以及其消息橋)支持包含Python和Perl(和many others)的多語言JMS客戶端。
最小公分母
短的一切,你的觸發器可以將事件寫入表和外部客戶端可以查詢表的內容,尋找新的數據和轉發JMS消息時,發現它。 JMS消息既可以包含內容,也可以簡單地表明內容存在以及PK的內容,並且消費者可以來獲取它。
這是專門爲輪詢數據庫廣泛支持Apache Camel一種技術,其具有適配器(技術上稱爲組件):
然後可以轉換Camel從數據庫表中讀取的事件,並將其路由到各種目標,包括JMS服務器(以JMS消息的形式)。實施這個駱駝是相當直接和有據可查的,所以這不是一個壞的路要走。
我希望這是有幫助的。
- 1. 數據庫觸發器和計算
- 2. 數據庫觸發器和Hibernate
- 3. H2數據庫觸發器
- 4. Informix數據庫觸發器
- 5. SQL服務器:觸發VS數據庫觸發器
- 6. 使用MySQL數據庫觸發器
- 7. 數據庫觸發器何時壞?
- 8. Mysql中的跨數據庫觸發器
- 9. 數據庫觸發器,它是異步?
- 10. 數據庫觸發器不保存
- 11. 使用HR數據庫的觸發器
- 12. 替換數據庫觸發器機制
- 13. Django版本的數據庫觸發器?
- 14. 數據庫phpmyadmin插入觸發器
- 15. Azure Cosmos /文檔數據庫觸發器
- 16. Magento EE數據庫沒有觸發器
- 17. 數據庫死鎖時觸發觸發器
- 18. 觸發兩個數據庫
- 19. 數據觸發器將不會觸發
- 20. 數據觸發器未觸發
- 21. 樣式,數據類型和觸發器
- 22. WPF數據觸發器和故事板
- 23. Azure數據同步和觸發器
- 24. 非規範化字段的Doctrine2和數據庫端觸發器
- 25. 數據庫中的存儲過程和觸發器
- 26. 有趣的數據庫觸發器和RDB中的遞歸
- 27. Eclipselink和更新觸發器多次訪問數據庫
- 28. 用derby數據庫和netbeans創建觸發器ide
- 29. mysql數據庫中外鍵和觸發器的基本用法
- 30. 關於數據庫觸發器和存儲過程
你在使用什麼數據庫引擎?不同的數據庫引擎可能有內置的API。 –
@anhdv:你可以很好地從DB觸發器調用java函數,一旦你在java函數中,你可以編寫你想要的所有java代碼... – ag112