gpt4 book ai didi

java - 无状态 ejb 中的客户端特定状态

转载 作者:行者123 更新时间:2023-12-01 11:28:52 26 4
gpt4 key购买 nike

我不明白stateless session beans 。文档说实例变量可能包含客户端特定状态,然后说当方法完成时不应保留状态。

假设有一个方法 X 和两个客户端同时调用。方法 X 将客户端名称保存在实例变量中。我发现当多个线程同时调用同一个方法时会出现问题。

T1 访问 X,X 在实例变量中设置客户端名称并 hibernate 。T2 访问 X,X 在实例变量中设置客户端名称并 hibernate 。T1 恢复,X 现在可以看到 T2 的数据。

这不是问题吗?或者,容器是否为每个客户端创建一个新实例,并在调用返回后销毁 ejb?

Secondly-- Clients may, however, change the state of instance variables in pooled stateless beans, and this state is held over to the next invocation of the pooled stateless bean.

这是否意味着同一个客户端可以通过不同的方法调用查看其数据?或者这是否意味着不同的客户端可以通过方法调用看到彼此的数据?

最佳答案

这不是一个问题吗?不,不是,在第一个客户端完成其请求之前,第二个客户端不会获得对同一个 bean 实例的引用(它与线程无关)调度机制,它基于每个请求工作)。

这是否意味着同一个客户端可以通过不同的方法调用查看其数据?或者这是否意味着不同的客户端可以跨方法调用看到彼此的数据? 对于这两个问题,如果从池中为两个不同的请求获取相同的 bean 实例,则确实如此。

关于java - 无状态 ejb 中的客户端特定状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30600111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com