2011-11-11 68 views
1

我有一個無狀態會話bean,它有一個實例變量和兩個公共方法。下面是它的僞代碼。無狀態會話bean中的實例變量

private int instanceVar; 

public void methodA(int x) { 
    instanceVar = x; 
} 

public void methodB() { 
    print instanceVar; 
} 

這兩種方法都是從客戶端一個接一個地調用的。客戶端代碼和無狀態會話bean部署在Websphere上。它觀察到從methodB打印的instanceVar的值與在methodA中的值相同,當它是Application Server的單個實例或具有2個應用程序服務器的羣集時。但在具有3個應用程序服務器的環境中,打印的instanceVar值包含較舊的值。 任何人都可以解釋這種行爲嗎?

在此先感謝!

問候, Sudhu

回答

0

即使是單一應用程序服務器上,EJB容器可以創建無狀態會話bean的多個實例。因此,使用僞代碼中顯示的實例屬性將永遠不能保證給出預期的結果。

相關問題