我可以看到如何控制所有无状态会话bean的全局池大小。
但是,我希望能够拥有一个仅适用于一种无状态bean的新池。这样,我的所有无状态bean都将从通常的slsb-strict-max-pool
汇集,并且一个bean将拥有自己的池。
是否可以在JBoss EAP 6.1中实现?
答案 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; }
}