gpt4 book ai didi

java - JAX-WS Web 服务线程模型

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:54 26 4
gpt4 key购买 nike

(1) 好吧,我对 JAX-WS Java Web 服务的线程模型很困惑。我读到它们不是线程安全的。那么他们应该如何服务于多个并行请求呢?鉴于它总是已知的(大部分),他们将同时从多个客户端调用。

(2) 应用服务器是否为每个请求创建一个新的 Web 服务实例(就像它维护一个无状态 session bean 池,为一个请求分配一个,一旦请求完成,它就返回到池中).您可以在应用程序服务器控制台(GlassFish 或 JBoss 或 WebSphere)中配置该池大小吗?

(3) 我还在这里发现了 @Threadsope 注释,它为每个请求创建新线程..
http://jax-ws-commons.java.net/thread-scope/
这是一个好的选择吗?我确信人们正在以其他一些标准方式解决线程安全和并行请求问题——请指教。

最佳答案

应用程序服务器包含一个 bean 池。
使用无状态 session bean 时,不能保证您在使用 session 时会获得相同的实例。
然而,正如我所提到的,bean 由一个池管理,在其中保存一个状态,这是一个坏主意。
不过,我认为 EJB bean 与您的需要没有任何关系。
请注意,在您提供的示例中,DataService 和连接都是根据请求创建的。这个有点贵。
我会考虑仅将 ThreadLocal API 用于连接,并从连接池中获取它。
您可以通过阅读 ThreadLocal 自行实现这些并通过阅读 DB connection pools.


总而言之——我认为 EJB 与此无关。
不要在本地线程中同时保留您的服务类和字段,而只保留您将为每个请求分配的必要字段。 (在您展示的示例中 - 这是连接)

关于java - JAX-WS Web 服务线程模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475876/

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