簡體   English   中英

您如何配置無狀態EJB(JBOSS)的最小實例?

[英]How do you configure the min instances of Stateless EJB (JBOSS)?

我有一個無狀態的ejb,需要一些時間來初始化。 為了避免這種花費,我希望實例化的EJB始終保持最小數量。 是否可以在bean的基礎上配置類似於minInstances的東西,類似於MDB minInstances? 我該怎么做?

看一下Wildfly 10.x中使用的StrictMaxPool 實現 ,沒有設置最小大小的選項。

XSD wildfly-ejb3_4_0.xsd也不了解最小大小:

<xs:complexType name="strict-max-poolType">
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="max-pool-size" type="xs:positiveInteger" default="20" use="optional"/>
    <xs:attribute name="derive-size" type="xs:string" use="optional"/>
    <xs:attribute name="instance-acquisition-timeout" type="xs:positiveInteger" default="5" use="optional"/>
    <xs:attribute name="instance-acquisition-timeout-unit" type="timeout-unitType"
                  default="MINUTES" use="optional"/>
</xs:complexType>

另一方面, StricMaxPoolrelease方法會將所有已發布的bean放回原處:

public void release(T obj) {
        if (ROOT_LOGGER.isTraceEnabled()) {
            ROOT_LOGGER.tracef("%s/%s Free instance: %s", pool.size(), maxSize, this);
        }

        pool.add(obj);

        semaphore.release();
    }

這意味着一旦創建了max-pool-size bean,池就不會縮小。 因此,您可以實現一些@Startup bean,以在啟動期間填充池。

暫無
暫無

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

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