配置Geronimos MDB InstanceLimit

我不能够配置Geronimo的/ ActiveMQ的让超过10条消息一次过处理。配置Geronimos MDB InstanceLimit

我尝试了这个mailing list, 的建议,但将maxSessions设置为高于10的值并没有任何效果。将其设置为较低的东西比有效果,但...

而且I'tried通过设置来设置InstanceLimit

<module name="org.apache.geronimo.configs/j2ee-server/2.1.4/car"> 

<gbean name="org.apache.geronimo.configs/j2ee-server/2.1.4/car?ServiceModule=org.apache.geronimo.configs/j2ee-server/2.1.4/car,j2eeType=GBean,name=CustomPropertiesGBean"

gbeanInfo="org.apache.geronimo.system.properties.SystemProperties">

<attribute name="systemProperties">Default\ MDB\ Container.InstanceLimit=50</attribute>

</gbean>

</module>

回答:

好吧,我终于得到了它!这是一个冗长的解释,希望能帮助别人。

与these examples周围修修补补之后我想通了,ActiveMQ的激活参数犯规限制的上限,我们虽然可以减少并行实例:

<activation-config-property> 

<activation-config-property-name>destinationType</activation-config-property-name>

<activation-config-property-value>javax.jms.Queue</activation-config-property-value>

</activation-config-property>

<activation-config-property>

<activation-config-property-name>maxSessions</activation-config-property-name>

<activation-config-property-value>3</activation-config-property-value>

</activation-config-property>

<activation-config-property>

<activation-config-property-name>maxMessagesPerSessions</activation-config-property-name>

<activation-config-property-value>2</activation-config-property-value>

</activation-config-property>

所以我决定走开放源代码之路!连接所涉及的组件的所有所需的源代码后:

  • Geronimo的
  • ActiveMQ的
  • OpenEJB的

中去了,我想通了堆栈跟踪,该InstanceLimit是GBean的属性,它是明确询问。它的缺省值是10,它在Geronimo中硬编码。通过在调试器中调用这个值,我得到了希望的结果!

但设置InstanceLimit还建议,其中建议将它添加到Geronimos config.xml中

<module name="org.apache.geronimo.configs/j2ee-server/2.1.4/car"> 

<gbean name="org.apache.geronimo.configs/j2ee-server/2.1.4/car?ServiceModule=org.apache.geronimo.configs/j2ee-server/2.1.4/car,j2eeType=GBean,name=CustomPropertiesGBean"

gbeanInfo="org.apache.geronimo.system.properties.SystemProperties">

<attribute name="systemProperties">Default\ MDB\ Container.InstanceLimit=50</attribute>

</gbean>

</module>

(当然用正确的版本号) 的mailing list但是这并没有任何效果。经过仔细的阅读此hint:

尝试MdbContainer的InstanceLimit属性设置为0,从而没有创建的实例相匹配的无AMQ会话使用。设置此,你需要设置为系统财产,是财产应containerId.InstanceLimit其中数据筒的格式为

<artifactId>.<Resource Group Name>-<listener interface>

如:org.apache.geronimo.configs/ActiveMQ的-ra/2.2-SNAPSHOT/car.ActiveMQ RA-一个javax.jms.MessageListener

  • 的JMS RA的<artifactId> = artifactId的
  • <Resource Group Name> - 资源组名称在创建RA
  • <listener interface>ü给 - 的javax.jms。消息监听在这种情况下

和检查Geronimos代码和运行状态,我想通了,它是在org.apache.geronimo.openejb.OpenEjbSystemGBean线309寻找InstanceLimit,具有destinct ID这是在示例项目:

org.apache。 geronimo.configs/ActiveMQ的-RA/2.2.1/car.ActiveMQ RA-一个javax.jms.MessageListener

配备有这个信息,我这个做了尝试:

<module name="org.apache.geronimo.configs/j2ee-server/2.2.1/car"> 

<gbean name="org.apache.geronimo.configs/j2ee-server/2.2.1/car?ServiceModule=org.apache.geronimo.configs/j2ee-server/2.2.1/car,j2eeType=GBean,name=CustomPropertiesGBean"

gbeanInfo="org.apache.geronimo.system.properties.SystemProperties">

<attribute name="systemProperties">org.apache.geronimo.configs/activemq-ra/2.2.1/car.ActiveMQ\ RA-javax.jms.MessageListener.InstanceLimit=50</attribute>

</gbean>

</module>

和我工作!因此,我从调试会话中获得了使用的ID ...现在我们可以设置InstanceLimit = 0,并可以通过ActiveMQ的maxSessions属性配置并行工作的MDB!

以上是 配置Geronimos MDB InstanceLimit 的全部内容, 来源链接: utcz.com/qa/263188.html

回到顶部