2.12.1 ユーザスレッドでの機能の使用可否
ここでは,ユーザスレッドで使用できるアプリケーションサーバの機能について説明します。ユーザスレッドの使用方法については,「8.2.1(15) ユーザスレッドの使用方法」を参照してください。
アプリケーションサーバで提供される各機能について,ユーザスレッドで使用できるかどうかを次の表に示します。
機能名 |
使用可否 |
参照先 |
---|---|---|
サーブレットAPIの利用 |
△ |
|
Enterprise Beanの呼び出し |
× |
− |
ネーミングサービス |
○ |
|
リソース接続 |
△ |
|
トランザクションサービス |
△ |
|
統合ユーザ管理 |
× |
− |
ログ運用および障害検知 |
○ |
|
J2EEアプリケーション運用 |
△ |
|
コンテナ拡張ライブラリの利用 |
○ |
ユーザスレッドで使用できる機能をさらに詳細機能に分類し,各機能についてサーブレット/JSP,およびユーザスレッドで使用できるかどうかを示します。また,ユーザスレッドで使用する場合の注意事項についても示します。
- 〈この項の構成〉
(1) サーブレットAPI
サーブレットAPIをユーザスレッドで使用する場合,リクエストオブジェクトおよびレスポンスオブジェクトは使用できません。リクエスト処理スレッドでだけ使用してください。詳細は,サーブレット仕様書のThread Safetyの項を参照してください。
(2) ネーミングサービス
ネーミングサービスとして提供される機能が,サーブレット/JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。
分類/機能名 |
サーブレット/JSP |
ユーザスレッド |
||
---|---|---|---|---|
JNDIのルックアップ |
リソースアダプタ |
DB Connector |
○ |
○ |
DB Connector for Reliable MessagingとReliable Messaging |
○ |
○ |
||
TP1/Message Queue-Access |
○ |
○ |
||
TP1 Connector |
○ |
○ |
||
Java Mail |
○ |
○ |
||
JavaBeansリソース |
○ |
○ |
||
ユーザトランザクション |
○ |
○ |
ネーミングサービスを使用する場合,ユーザスレッドの実行中にアプリケーションを停止しないでください。
(3) リソース接続およびトランザクションサービス
リソース接続およびトランザクションサービスとして提供される機能が,サーブレット/JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。
分類/機能名 |
サーブレット/JSP |
ユーザスレッド |
|
---|---|---|---|
コネクションプーリング |
DB Connectorによるコネクションプーリング |
○ |
○ |
DB Connector for Reliable MessagingとReliable Messagingによるコネクションプーリング |
○ |
○ |
|
TP1 Connectorとのコネクションプーリング |
○ |
○ |
|
TP1/Message Queue - Accessとのコネクションプーリング |
○ |
○ |
|
SMTPサーバとのコネクションプーリング |
× |
× |
|
コネクションプールのウォーミングアップ |
○ |
○ |
|
コネクション数調節 |
○ |
○ |
|
コネクションシェアリング |
○ |
○ |
|
コネクションアソシエーション |
○ |
○ |
|
ステートメントプーリング(DB Connector) |
○ |
○ |
|
ライトトランザクション |
○ |
○ |
|
インプロセストランザクションサービス |
○ |
○ |
|
DataSourceオブジェクトのキャッシング |
○ |
○ |
|
DB Connectorのコンテナ管理でのサインオンの最適化 |
○ |
○ |
|
受信バッファのプーリング |
○ |
○ |
|
コネクションの障害検知 |
DB Connectorによる障害検知 |
○ |
○ |
DB Connector for Reliable MessagingとReliable Messagingによる障害検知 |
○ |
○ |
|
TP1 Connectorとのコネクション障害検知 |
× |
× |
|
TP1/Message Queue - Accessとのコネクション障害検知 |
× |
× |
|
SMTPサーバとのコネクション障害検知 |
× |
× |
|
コネクション枯渇時のコネクション取得待ち |
○ |
○ |
|
コネクションの取得リトライ |
DB Connectorによるコネクション取得リトライ |
○ |
○ |
DB Connector for Reliable MessagingとReliable Messagingによるコネクション取得リトライ |
○ |
○ |
|
TP1 Connectorとのコネクション取得リトライ |
○ |
○ |
|
TP1/Message Queue - Accessとのコネクション取得リトライ |
○ |
○ |
|
SMTPサーバとのコネクション取得リトライ |
× |
× |
|
コネクションプールクリア |
○ |
○ |
|
コネクションのクローズ・解放 |
コネクション自動クローズ(Webコンテナ) |
○ |
× |
コネクションスイーパ |
○ |
○ |
|
トランザクションタイムアウト |
○ |
○ |
|
トランザクションリカバリ |
○ |
○ |
|
トランザクションの自動決着※ |
○ |
× |
|
障害調査用SQLの出力 |
○ |
○ |
|
クラスタコネクションプール(互換機能) |
○ |
○ |
ユーザスレッドでリソース接続およびトランザクションサービスを使用する場合の注意事項を示します。
-
SingleThreadModelインタフェースを実装したサーブレットで生成したスレッド上で,トランザクションの開始と決着,およびコネクションの取得と解放はできません。
-
スレッド生成時にトランザクションを引き継ぐことはできません。
-
トランザクションは,同じスレッド上で開始または決着してください。
-
スレッド間でコネクションを渡すことはできません。コネクションを使用すると,動作不正となります。
-
ユーザスレッドでコネクションを取得した場合,コネクションを取得したスレッド上で確実にコネクションをクローズしてください。
(4) ログ運用および障害検知
ログ運用および障害検知として提供される機能が,サーブレット/JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。
分類/機能名 |
サーブレット/JSP |
ユーザスレッド |
---|---|---|
Managementイベントによる処理の自動実行 |
○ |
○ |
JP1イベントによるシステムの監視 |
○ |
○ |
ユーザログ出力 |
○ |
○ |
性能解析トレース |
○ |
○ |
CTMの稼働情報の監視 |
○ |
○ |
(5) J2EEアプリケーション運用
J2EEアプリケーション運用機能として提供される機能が,サーブレット/JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。
分類/機能名 |
サーブレット/JSP |
ユーザスレッド |
|
---|---|---|---|
Webコンテナでの同時実行スレッド数の制御 |
○ |
× |
|
スケジュールキュー単位の同時実行数の動的変更 |
○ |
○ |
|
J2EEアプリケーションの実行時間監視 |
メソッドタイムアウト機能 |
○ |
× |
メソッドキャンセル機能 |
○ |
× |
|
J2EEアプリケーションの停止 |
通常停止 |
○ |
○※1 |
強制停止 |
○ |
○※1 |
|
J2EEアプリケーションの入れ替え |
リデプロイ機能による入れ替え |
○ |
○※2 |
リロード機能による入れ替え |
○ |
○ |
(6) コンテナ拡張ライブラリ
コンテナ拡張ライブラリは,サーブレット/JSPおよびユーザスレッドのどちらでも使用できます。