【问题标题】:How to create multithreading in a stateless session bean?如何在无状态会话 bean 中创建多线程?
【发布时间】:2012-11-08 11:21:57
【问题描述】:

我已经使用 JAXWS 创建了 Web 服务,并将它作为无状态会话 bean 托管在 jboss6 中。 以下是网络服务代码:

@Stateless
@WebService(serviceName = "CommonSmsServices", name = "CommonSmsServices", wsdlLocation = "META-INF/wsdl/CommonSmsServices.wsdl", endpointInterface = "com.sms.webservice.common.CommonServices")
public class CommonServicesImpl implements CommonServicesLocal,CommonServicesRemote {
      //.....
      // methods
      //.....

}

这适用于单个 Http 会话。现在我在运行多个会话时遇到问题,响应时间变得非常慢。 我为内存和线程采样做了YourKit porfiling。内存利用率看起来不错。但在线程部分它显示一个 htpp 线程正在等待其他线程完成。

我还阅读了 Java EE 会话 bean 文档。它说会话 bean 是单线程的。同时处理多个 Http 会话的会话 bean 是否存在性能问题?

在 JBoss AS 6 中有没有办法或配置来提高我的 Web 服务性能?

【问题讨论】:

  • “无状态会话 bean”中的“会话”与您在“多个会话”中似乎引用的用户会话无关。另一方面,SSB 支持多线程,您无需付出任何努力。
  • 我更新了我的应用问题。请调查一下。

标签: java ejb-3.0


【解决方案1】:

在 EJB(包括无状态的)中,容器支持多线程。如果您希望将数据存储在不同的调用之间,您可能应该使用 Statefull bean;这也支持多线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多