2014-07-03 51 views
4

我在我的應用程序中使用InitialContext來查找遠程EJB。有一些外部系統通知我有關某些事件,並在發生這種情況時將此通知委託給適當的遠程EJB。應該InitialContext實例是否被緩存?

我一直認爲我應該爲每個查找組創建一個新的InitialContext(甚至可能在這些之後關閉初始上下文)。在上面的例子中,每個查詢都是一個InitialContext實例。儘管我的團隊中有些成員並不確定。

所以問題是: 應該InitialContext實例緩存?如果是,那麼我應該保留這個實例多長時間,爲什麼?

+0

有一點需要注意,遠程服務器的JNDI穩定與否。 –

回答

3

採取記住,InitialContext實例不同步,因此,緩存可如果同一個實例是通過併發線程訪問是危險的。

也許你已經知道了,但爲防萬一,有效提高遠程方法調用過程性能的常見做法是緩存查找操作獲取的ejb引用。

2

由於您的IntialContext只是對命名空間起點的引用,因此每次執行新操作或將此引用存儲在何處都無關緊要。

只有當它背後的服務提供商在初始化時做了大量工作,並因此如果反覆進行時會降低性能,它可能只是很重要。

延伸閱讀:JNDI trail of Java Tutorial

相關問題