21.2.5. セッションおよびメッセージ駆動型 Bean に対する Bean プールの割り当て
JBoss 管理者は、セッション Bean およびメッセージ駆動型 Bean によって使用される個別の Bean プールを割り当てることができます。管理コンソールまたは管理 CLI を使用すると Bean プールを割り当てることができます。
デフォルトでは、ステートレスセッション Bean とメッセージ駆動型 Bean の
slsb-strict-max-pool
と mdb-strict-max-pool
の 2 つの Bean プールが提供されます。
Bean プールを作成または編集するには、「Bean プールの作成」 および 「Bean プールの編集」 を参照してください。
また、EJB で
@Pool
アノテーションを使用して、その EJB に使用するプールを特定できます。
注記
特定の EJB で
@Pool
アノテーションを使用すると、管理インターフェースを使用して指定されたデフォルト設定が上書きされます。
手順21.7 管理コンソールを使用したセッションおよびメッセージ駆動型 Bean に対する Bean プールの割り当て
- 管理コンソールへログインします。「管理コンソールへのログイン」
- 画面上部のタブをクリックします。 メニューを展開し、 を選択します。 タブを選択します。
- 適切なコンボボックスから、Bean の各タイプに使用する Bean プールを選択します。
手順21.8 CLI を使用したセッションおよびメッセージ駆動型 Bean に対する Bean プールの割り当て
- CLI ツールを起動し、サーバーに接続します。「管理 CLI を使用した管理対象サーバーインスタンスへの接続」 を参照してください。
- 次の構文で write-attribute 操作を使用します。
/subsystem=ejb3:write-attribute(name="BEANTYPE", value="BEANPOOL")
Copy to clipboardCopied/subsystem=ejb3:write-attribute(name="BEANTYPE", value="BEANPOOL")
- BEANTYPE は、メッセージ駆動型 Bean の
default-mdb-instance-pool
、ステートレスセッション Bean のdefault-slsb-instance-pool
に置き換えます。 - BEANPOOL を割り当てる Bean プールの名前に置き換えます。
- read-resource 操作を使用して変更を確認します。
/subsystem=ejb3:read-resource
Copy to clipboardCopied/subsystem=ejb3:read-resource
例21.5 CLI を使用したセッション Bean に対する Bean プールの割り当て
[standalone@localhost:9999 /] /subsystem=ejb3:write-attribute(name="default-slsb-instance-pool", value="LV_SLSB_POOL") {"outcome" => "success"}
[standalone@localhost:9999 /] /subsystem=ejb3:write-attribute(name="default-slsb-instance-pool", value="LV_SLSB_POOL")
{"outcome" => "success"}
Copy to clipboardCopied例21.6 XML 設定の例
<subsystem xmlns="urn:jboss:domain:ejb3:1.2"> <session-bean> <stateless> <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> </stateless> <stateful default-access-timeout="5000" cache-ref="simple"/> <singleton default-access-timeout="5000"/> </session-bean> <mdb> <resource-adapter-ref resource-adapter-name="hornetq-ra"/> <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> </mdb> </subsystem>
<subsystem xmlns="urn:jboss:domain:ejb3:1.2">
<session-bean>
<stateless>
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
</stateless>
<stateful default-access-timeout="5000" cache-ref="simple"/>
<singleton default-access-timeout="5000"/>
</session-bean>
<mdb>
<resource-adapter-ref resource-adapter-name="hornetq-ra"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
</subsystem>
Copy to clipboardCopied手順21.9 @Pool
アノテーションを使用したセッションまたはメッセージ駆動型 Bean に対する Bean プールの割り当て
@Pool
アノテーションを Bean に追加し、使用される Bean プールの名前を指定します。 これにより、管理インターフェースで作成されたデフォルト設定が上書きされます。@Stateless @Pool("slsb-strict-max-pool") public class HelloBean implements HelloBeanRemote {
Copy to clipboardCopied@Stateless @Pool("slsb-strict-max-pool") public class HelloBean implements HelloBeanRemote {
@org.jboss.ejb3.annotation.Pool
アノテーションは JBoss EJB3 外部 API の一部であり、依存関係として追加する必要があります。Maven を使用している場合は、以下の依存関係をpom.xml
ファイルに追加する必要があります。<dependency> <groupId>org.jboss.ejb3</groupId> <artifactId>jboss-ejb3-ext-api</artifactId> <version>2.1.0</version> </dependency>
Copy to clipboardCopied<dependency> <groupId>org.jboss.ejb3</groupId> <artifactId>jboss-ejb3-ext-api</artifactId> <version>2.1.0</version> </dependency>