21.6.2. EJB3 タイマーサービスの設定
EJB3 タイマーサービスは、管理コンソールまたは管理 CLI で設定できます。スケジュールされた Bean 呼び出しに使用されるスレッドプールと、Timer Service データの保存に使用されるディレクトリーまたはデータソースのいずれかを設定できます。デフォルトのディレクトリーよりも高速ストレージが利用可能な場合は、デフォルトの Timer Service ディレクトリーを変更することができます。
手順21.21 管理コンソールを使用した EJB3 タイマーサービススレッドプールの設定
前提条件
- EJB3 タイマーサービスによって使用されるスレッドプールが作成済みである必要があります。
- 管理コンソールへログインします。
- 画面上部のタブをクリックします。 メニューを展開し、 を選択します。 タブを選択し、 をクリックします。 をクリックします。
- EJB3 Thread Pool ドロップダウンリストをクリックし、優先スレッドプールの名前をクリックします。
- JBoss EAP インスタンスを再起動します。
手順21.22 管理 CLI での EJB3 タイマーサービススレッドプールの設定
注記
管理対象ドメインのコマンドに
/profile=PROFILE_NAME
というプレフィックスを追加します。
- 以下の管理 CLI コマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=ejb3/service=timer-service:write-attribute(name=thread-pool-name,value="thread-pool-name")
/subsystem=ejb3/service=timer-service:write-attribute(name=thread-pool-name,value="thread-pool-name")
- JBoss EAP インスタンスを再起動します。
手順21.23 管理コンソールを介した EJB3 タイマーサービスディレクトリーの設定
- 管理コンソールへログインします。
- 画面上部のタブをクリックします。 メニューを展開し、 を選択します。 タブを選択し、 をクリックします。 をクリックします。
- 希望する値を
Path
フィールドおよびRelative To
フィールドに入力します。 - JBoss EAP インスタンスを再起動します。
手順21.24 管理 CLI を介した EJB3 タイマーサービスディレクトリーの設定
- 変更するパスに応じて、以下の管理 CLI コマンドの 1 つまたは両方を実行します。いずれのパスでもシステム値を使用できます(例:
${jboss.server.data.dir}
)。注記管理対象ドメインのコマンドに/profile=PROFILE_NAME
というプレフィックスを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=ejb3/service=timer-service/file-data-store=default-file-store:write-attribute(name=path,value="path")
/subsystem=ejb3/service=timer-service/file-data-store=default-file-store:write-attribute(name=path,value="path")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=ejb3/service=timer-service/file-data-store=default-file-store:write-attribute(name=relative-to,value="relative-path")
/subsystem=ejb3/service=timer-service/file-data-store=default-file-store:write-attribute(name=relative-to,value="relative-path")
- JBoss EAP インスタンスを再起動します。
手順21.25 管理 CLI よりデータソースを使用するよう EJB3 タイマーサービスを設定
JBoss EAP 6.4 以降、EJB3 タイマーサービスをローカルディレクトリーの代わりにデータソースを使用するように設定できます。このオプションにはパフォーマンスコストが若干ありますが、ローカルストレージの問題の発生時にタイマーデータに対するリスクを減らすという利点があります。
EJB3 タイマーサービスがデータソースを使用するよう設定したら、データストアを使用するように EJB デプロイメントを設定するか、すべてのデプロイメントのデフォルトとして設定する必要があります。手順は、「データソースを 『使用するよう 1 つまたはすべての EJB3 デプロイメントを設定」の手順を参照してください』。
前提条件
- EJB3 タイマーサービスによって使用されるデータソースがすでに存在し、基礎となるデータベースが READ_COMMITTED または SERIALIZABLE 分離モード用にサポートされ、設定する必要があります。
注記
管理対象ドメインのコマンドに
/profile=PROFILE_NAME
というプレフィックスを追加します。
- 以下の管理 CLI コマンドを実行します。
- datastore_name: 任意の名前。
- DATASOURCE_NAME: ストレージに使用されるデータソースの名前。
- データベース -
postgresql
、mssql
、sybase
、mysql
、oracle
、db2
、またはhsql
のいずれか。 - partition_name - 任意の名前。この属性は、複数の JBoss EAP インスタンスが EJB タイマーを保存するために同じデータベースを共有する場合に、特定のサーバーインスタンスに関連するタイマーを区別するために使用されます。この場合、すべてのサーバーインスタンスには独自のパーティション名が必要です。データベースが 1 つのサーバーインスタンスによってのみ使用される場合は、この属性を空白のままにすることができます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=ejb3/service=timer-service/database-data-store=datastore_name:add(datasource-jndi-name='java:/datasource_name', database='database', partition='partition_name')
/subsystem=ejb3/service=timer-service/database-data-store=datastore_name:add(datasource-jndi-name='java:/datasource_name', database='database', partition='partition_name')
手順21.26 データソースを使用するように 1 つまたはすべての EJB3 デプロイメントを設定
EJB3 デプロイメントを、Timer サービスのデータソースを使用するように設定するか、すべて のデプロイメントのデフォルトとして設定します。
- EJB3 デプロイメントをデータソースを使用するように設定するには、デプロイメントの
jboss-ejb3.xml
を編集して、タイマー
セクションが以下のようにします。datastore_name
をデータストアの名前に置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [<assembly-descriptor> <timer:timer> <ejb-name>*</ejb-name> <timer:persistence-store-name>datastore_name</timer:persistence-store-name> </timer:timer> </assembly-descriptor>
[<assembly-descriptor> <timer:timer> <ejb-name>*</ejb-name> <timer:persistence-store-name>datastore_name</timer:persistence-store-name> </timer:timer> </assembly-descriptor>
- すべて のデプロイメントのデフォルトとしてデータソースを設定するには、以下の管理 CLI コマンドを実行してから JBoss EAP インスタンスを再起動します。
datastore_name
をデータストアの名前に置き換えます。注記管理対象ドメインのコマンドに/profile=PROFILE_NAME
というプレフィックスを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [/subsystem=ejb3/service=timer-service:write-attribute(name=default-data-store,value=datastore_name)
[/subsystem=ejb3/service=timer-service:write-attribute(name=default-data-store,value=datastore_name)