2013-04-05 61 views
0

我有一個Web應用程序與EJB服務通信以檢索數據並將其顯示給客戶端。通過Java EE應用程序通知數據庫更改

Web應用程序和EJB服務的數據庫是不同的。我使用ehcache在我的web-app中緩存從EJB服務中檢索的任何數據。現在,無論何時在DB(Oracle)級別上由EJB服務提供的數據發生變化,我的web應用中的緩存都需要得到通知。

無論如何,我的緩存是否可以接收此類通知並使用新數據進行刷新?

+0

你的問題是緩存失效,請參閱http://stackoverflow.com/questions/1188587/cache-invalidationis-there-a-general-solution – Qwerky 2013-04-05 15:09:39

+0

我不知道它是如何與JDBC,但使用OCI時可以使用「客戶端結果緩存」之類的東西。那麼您可以讓Oracle通知您底層表已更改。我認爲Oracle對於WebLogic也有類似的東西。 – ibre5041 2013-04-05 16:01:04

+0

查看更改通知:http://docs.oracle.com/cd/E11882_01/java.112/e16548/dbchgnf.htm – 2013-04-06 22:22:46

回答

0

讓一個監聽器在您從ejb接收到任何數據時得到通知,因爲這可以使用觀察者設計模式或通過jms。在偵聽器中,您可以重新加載Ehcache中的特定元素。

相關問題