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