簡體   English   中英

如何通過wildfly 10 standalone-full.xml限制ejb mdb(messsage驅動的bean)實例

[英]How to restrict the ejb mdb(messsage driven beans) instances via wildfly 10 standalone-full.xml

我們在wildfly10的standalone-full.xml中有以下配置。

 <subsystem xmlns="urn:jboss:domain:ejb3:4.0">
            <session-bean>
                <stateless>
                    <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
                </stateless>
                <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>
                <singleton default-access-timeout="5000"/>
            </session-bean>
            <mdb>
                <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
                <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
            </mdb>
            <pools>
                <bean-instance-pools>
                    <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
                    <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
                    <strict-max-pool name="ExchangeMessagePool" max-pool-size="10" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
                    </bean-instance-pools>
            </pools>
            </subsystem>

我們有以下消息驅動bean,它與交換消息池鏈接。在standalone-full.xml中,我們將max-pool-size設置為10但是在服務器啟動期間創建的實例數是30但是我不知道知道它來自哪里。有什么辦法可以限制它。如果有任何方法可以限制在獨立完整文件中訪問這個bean的並發線程數。

@MessageDriven(name = "ExchangeMessage", activationConfig = {@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "jms/queue/ExchangeMessageQueue")})
@PermitAll
@Pool("ExchangeMessagePool")
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class ExchangeMessageBean implements MessageListener
{
...
}

如果你沒有指定@ResourceAdapter它使用名為“activemq-ra”的默認pooled-connection-factory,它有自己的默認值,並且除了你指定的池之外還使用它的默認值(我認為是15),或者都。 您可以使用maxSessions =“n”注釋MDB,這會將並行實例的數量限制為n。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM