在JBoss EAP 6.1中将池分配给特定的无状态bean

时间:2014-06-09 08:16:03

标签: java java-ee jboss jboss7.x stateless-session-bean

我可以看到如何控制所有无状态会话bean的全局池大小。

但是,我希望能够拥有一个仅适用于一种无状态bean的新池。这样,我的所有无状态bean都将从通常的slsb-strict-max-pool汇集,并且一个bean将拥有自己的池。

是否可以在JBoss EAP 6.1中实现?

2 个答案:

答案 0 :(得分:3)

使用

@org.jboss.ejb3.annotation.Pool(value="myPoolName")
引用自定义池的EJB上的

注释,如standalone.xml中所定义:

<pools>
     <bean-instance-pools>
                <strict-max-pool name="slsb-strict-max-pool"
                                 max-pool-size="20" instance-acquisition-timeout="5"
                                 instance-acquisition-timeout-unit="MINUTES" />
                <strict-max-pool name="mdb-strict-max-pool"
                                 max-pool-size="80" instance-acquisition-timeout="1"
                                 instance-acquisition-timeout-unit="MINUTES" />
                <strict-max-pool name="myPoolName"
                                 max-pool-size="20" instance-acquisition-timeout="5"
                                 instance-acquisition-timeout-unit="SECONDS" />
            </bean-instance-pools>
</pools>
没有注释的

[编辑]:

在jboss-ejb3.xml中使用池命名空间(urn:ejb-pool:1.0)(特定于jboss的ejb描述符)

<p:pool>
 <ejb-name>myEjbName</ejb-name>
 <p:bean-instance-pool-ref>myPoolName</p:bean-instance-pool-ref>
</p:pool>

答案 1 :(得分:0)

最后,看来您还必须在MDB中相应地配置“ maxSession”激活配置属性。默认的maxSession值为15。 https://docs.jboss.org/ejb3/docs/tutorial/1.0.7/html/Message_Driven_Beans.html

例如

public class Employee
{
    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<Skills> Skills { get; set; }
}

public class Skills
{
    public long Id { get; set; }
    public string Skill { get; set; }
}