1

我有一个无状态会话 bean,它有一个实例变量和两个公共方法。下面是它的伪代码。

private int instanceVar;

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

public void methodB() {
    print instanceVar;
}

这两种方法都是从客户端依次调用的。客户端代码和无状态会话 bean 部署在 Websphere 上。它观察到,从 methodB 打印的 instanceVar 的值与 methodA 中的值相同,当它是 Application Server 的单个实例或具有 2 个 Application Server 的集群时。但是在具有 3 个应用程序服务器的环境中,打印的 instanceVar 的值包含一个较旧的值。谁能为我解释这种行为?

提前致谢!

问候, 苏杜

4

1 回答 1

0

即使在单个应用程序服务器上,EJB 容器也可以创建无状态会话 bean 的多个实例。因此,使用伪代码中显示的实例属性永远不能保证给出预期的结果。

于 2011-11-11T21:10:24.397 回答