Cosminexus V9 アプリケーションサーバ 機能解説 互換編

解説書

3020-3-Y12-60

目　　次

前書き

変更内容

はじめに

1.　アプリケーションサーバの機能

1.1　機能の分類

1.1.1　アプリケーションの実行基盤としての機能

1.1.2　アプリケーションの実行基盤を運用・保守するための機能

1.1.3　機能とマニュアルの対応

1.2　互換のための機能の一覧

1.2.1　動作モードに関する機能

1.2.2　基本・開発機能に関する互換機能

1.2.3　拡張機能に関する互換機能

1.3　このマニュアルに記載している機能の説明

1.3.1　分類の意味

1.3.2　分類を示す表の例

1.4　アプリケーションサーバ 09-70での主な機能変更

1.5　推奨機能との対応

2.　ベーシックモード

2.1　この章の構成

2.2　ベーシックモードの概要

2.3　使用できる機能の一覧

2.3.1　使用できるJava EEおよびJ2EEの機能

2.3.2　使用できるアプリケーションサーバの機能

2.4　ベーシックモードでのリソース接続

2.4.1　接続できるリソースとトランザクションの管理方法

2.4.2　データベース接続の前提条件

2.4.3　データソースによるデータベースへの接続で使用できる機能

2.4.4　リソースへの接続テスト

2.4.5　JTAによるトランザクション実装時の注意事項

2.5　プロセスの依存関係とプロセスの再起動方法

2.5.1　ベーシックモードの場合のプロセスの依存関係

2.5.2　ベーシックモードの場合のプロセスの再起動方法

2.6　データソースからDB Connectorへの移行方法

2.7　パフォーマンスチューニング

2.7.1　チューニング項目

2.7.2　データベースへのアクセス方法を最適化するためのチューニングパラメタ

2.8　データベースとアプリケーション間の文字コード変換（ベーシックモード）

2.9　下位互換用のクラスローダ構成

2.10　ベーシックモードの設定

2.10.1　データソースの設定

2.10.2　データベースと接続するための設定（データソースを使用する場合）

2.11　ベーシックモードで使用するファイル

2.11.1　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）

2.11.2　usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）

2.11.3　データソース設定ファイル

2.11.4　データソース属性ファイル

2.11.5　コネクションプーリングとコネクションスイーパの動作

2.11.6　データソースへのリファレンス定義

2.12　ベーシックモードでデータベースに接続する場合の運用管理（互換用機能）

2.12.1　データソース管理

2.12.2　データソースの稼働情報監視

2.13　J2EEサーバで使用するリソース操作コマンド

cjclosecn（J2EEサーバのコネクションクローズまたはコネクションの状態表示）

2.14　ベーシックモード使用時の注意事項

2.14.1　サーブレットおよびJSP実装時共通の注意事項

2.14.2　Stateful Session Bean実装時の注意事項

3.　サーブレットエンジンモード

3.1　この章の構成

3.2　使用できる機能の一覧

3.2.1　使用できるJava EEおよびJ2EEの機能

3.2.2　使用できるアプリケーションサーバの機能

3.3　サーブレットエンジンモードとJ2EEサーバモードの比較

3.3.1　システムの構築方法

3.3.2　Webアプリケーションのデプロイと設定

3.3.3　Webサーバの使用方法

3.3.4　データベースとの接続

3.3.5　Webアプリケーションに組み込むサーブレットフィルタ

3.3.6　Webアプリケーションのリロード

3.3.7　システムの起動および停止方法

3.3.8　使用するメモリ，スレッド数，ポート番号

3.4　サーブレットエンジンモードで使用できるWebコンテナの機能

3.4.1　Webアプリケーションの実行

3.4.2　Webアプリケーションの更新検知とリロード

3.4.3　JSPファイルのコンパイル結果の保持

3.4.4　アプリケーションのイベントリスナ

3.4.5　リクエストおよびレスポンスのフィルタリング

3.4.6　Webコンテナのセキュリティ管理

3.4.7　EJBコンテナとの連携

3.4.8　データベースとの接続

3.4.9　Webコンテナによるスレッドの作成

3.4.10　同時実行スレッド数の制御

3.4.11　ユーザスレッドで使用できるアプリケーションサーバの機能

3.4.12　ドメイン名指定でのトップページの表示

3.4.13　静的コンテンツのキャッシュ

3.4.14　簡易Webサーバ機能

3.5　サーブレットエンジンモードで動作するアプリケーションの実装

3.5.1　利用できるアプリケーションサーバのAPIの種類

3.5.2　web.xml編集時の注意事項

3.5.3　そのほかの注意事項

3.6　サーブレットエンジンモードでのリソース接続

3.6.1　接続できるリソースとトランザクションの管理方法

3.6.2　データベース接続の前提条件

3.6.3　Webコンテナコネクションプール機能によるデータベース接続

3.7　サーブレットエンジンモードの利用方法

3.7.1　サーブレットエンジンモードでのシステム設計

3.7.2　サーブレットエンジンモードでのシステム構築

3.7.3　Webコンテナサーバのセットアップ

3.7.4　Webコンテナサーバの動作設定のカスタマイズ

3.7.5　トラブルシューティングの資料取得の設定

3.7.6　統合ユーザ管理機能の設定

3.7.7　Webアプリケーションの設定

3.7.8　Webコンテナサーバの作業ディレクトリ

3.8　サーブレットエンジンモードでのシステム運用

3.8.1　Component Container管理者による運用に関する留意事項

3.8.2　システムの起動

3.8.3　システムの停止

3.8.4　システムの処理性能の解析

3.8.5　トラブルシューティング

3.8.6　資料の調査

3.8.7　トラブルへの対処と回復

3.8.8　トラブルシューティングに関連する留意事項

3.8.9　資料の取得方法

3.9　サーブレットエンジンモードの場合の移行

3.9.1　アプリケーションサーバの移行の概要

3.9.2　アプリケーションサーバの移行の手順

3.9.3　旧バージョンからの仕様変更の確認

3.9.4　移行前の確認

3.9.5　定義などのバックアップ

3.9.6　手動による定義などの修正

3.9.7　Webコンテナサーバの移行コマンドで自動的に追加される定義

3.10　Webコンテナサーバで使用するコマンド

3.10.1　cjdumpweb（Webコンテナサーバのスレッドダンプの取得）

3.10.2　cjstartweb（Webコンテナサーバの開始）

3.10.3　cjstopweb（Webコンテナサーバの停止）

3.10.4　cjwebchangedbid（データベースIDの変更）

3.10.5　cjwebclearpool（プール内のコネクションのクリア）

3.10.6　cjwebclosepool（プール内のコネクションの強制切断）

3.10.7　cjwebdeletepool（プール管理情報の削除）

3.10.8　cjwebeditpool（プール管理情報の登録と変更）

3.10.9　cjweblistpool（プール管理情報の一覧表示）

3.10.10　cjwebsetup（Webコンテナサーバのセットアップとアンセットアップ）

3.11　Webコンテナサーバで使用するファイル

3.11.1　hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）

3.11.2　usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）

3.11.3　usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）

3.11.4　web-users.xml（ユーザ認証情報定義ファイル）

3.11.5　web.policy（SecurityManager定義ファイル）

3.11.6　プール管理情報設定ファイル

4.　基本・開発機能の互換機能（DABroker Libraryを使用したデータベース接続）

4.1　この章の構成

4.2　DABroker Libraryを使用したデータベース接続の概要

4.2.1　DABroker Libraryを使用してデータベースに接続する方法

4.2.2　接続できるデータベース

4.2.3　DABroker Libraryのメモリ所要量

4.3　DABroker Libraryの初期設定

4.3.1　DABroker Libraryのインストールおよび動作環境の設定（Windowsの場合）

4.3.2　DABroker Libraryのインストールおよび動作環境の設定（UNIXの場合）

4.3.3　データベースの設定

4.4　データベースとアプリケーション間の文字コードの変換

4.5　受信バッファのプーリングの設定

4.5.1　受信バッファの管理

4.5.2　受信バッファプール数の指定

4.6　DABroker Libraryを使用する場合のトラブルシュート

4.6.1　snapshotログとして収集できる資料

4.6.2　DABroker Libraryで取得できるログの種類と出力先

4.6.3　DABroker Libraryのスプール情報の内容

4.6.4　資料取得のための設定

4.6.5　DABroker Libraryで取得できるトレース

4.6.6　DABroker Libraryのトレースファイル運用時の留意事項

4.6.7　データベースと接続中にトラブルが発生した場合

4.7　DABroker Libraryを使用したデータベース接続の実装

4.7.1　DABroker Libraryで開発するアプリケーション

4.7.2　JDBC2.0の概要

4.7.3　JDBC2.0拡張機能の概要

4.7.4　データベース接続の設定

4.7.5　JDBC2.0拡張機能を使用したデータベース接続の設定

4.7.6　エラー時のJDBCドライバの処理

4.7.7　データ型の対応

4.7.8　データベース接続の実装時の注意事項

4.8　DB Connectorを使用したデータベースとの接続

4.8.1　DB Connectorで接続できるデータベース

4.8.2　DB Connector（RARファイル）の種類

4.8.3　必要なモジュール

4.8.4　データベースにアクセスする場合の構成

4.8.5　DB Connectorのインポート

4.8.6　DB Connectorのプロパティ定義

4.8.7　データベースと接続するときの注意事項

4.9　DB Connector for Reliable Messagingを使用したデータベース上のキューへの接続

4.9.1　DB Connector for Reliable Messagingで接続できるデータベース

4.9.2　DB Connector for Reliable Messaging（RARファイル）の種類

4.9.3　キューに接続する場合に必要なモジュール

4.9.4　データベースにアクセスする場合の構成

4.9.5　DB Connector for Reliable Messagingのインポートおよびプロパティ定義

4.9.6　データベース上のキューと接続するときの注意事項

4.10　DABroker Libraryで使用するAPIの一覧

4.11　Driverクラス

4.12　Connectionクラス

4.13　Statementクラス

getExecuteDirectModeメソッド

setExecuteDirectModeメソッド

4.14　PreparedStatementクラス

getBlockUpdateメソッド

setBlockUpdateメソッド

4.15　CallableStatementクラス

4.16　ResultSetクラス

4.17　ResultSetMetaDataクラス

4.18　DatabaseMetaDataクラス

4.19　DataSourceクラス

getBlockUpdateメソッド

getBufferPoolSizeメソッド

getBufSizeメソッド

getDatabaseNameメソッド

getDBEnvメソッド

getDBHostNameメソッド

getDescriptionメソッド

getEncodLangメソッド

getExecuteDirectModeメソッド

getHiRDBCursorModeメソッド

getJDBC_IF_TRCメソッド

getLONGVARBINARY_Accessメソッド

getNetworkProtocolメソッド

getNotErrorOccurredメソッド

getOSAuthorizeメソッド

getPasswordメソッド

getPortNumberメソッド

getRowSizeメソッド

getServerNameメソッド

getSQLWarningIgnoreメソッド

getSV_EVENT_TRCメソッド

getTRC_NOメソッド

getUapNameメソッド

getUserメソッド

setBlockUpdateメソッド

setBufferPoolSizeメソッド

setBufSizeメソッド

setDatabaseNameメソッド

setDBEnvメソッド

setDBHostNameメソッド

setDescriptionメソッド

setEncodLangメソッド

setExecuteDirectModeメソッド

setHiRDBCursorModeメソッド

setJDBC_IF_TRCメソッド

setLONGVARBINARY_Accessメソッド

setNetworkProtocolメソッド

setNotErrorOccurredメソッド

setOSAuthorizeメソッド

setPasswordメソッド

setPortNumberメソッド

setRowSizeメソッド

setServerNameメソッド

setSQLWarningIgnoreメソッド

setSV_EVENT_TRCメソッド

setTRC_NOメソッド

setUapNameメソッド

setUserメソッド

getRMIDメソッド

getXACloseStringメソッド

getXALocalCommitModeメソッド

getXAOpenStringメソッド

getXAThreadModeメソッド

setRMIDメソッド

setXACloseStringメソッド

setXALocalCommitModeメソッド

setXAOpenStringメソッド

setXAThreadModeメソッド

4.20　Blobインタフェース

4.21　DABroker Libraryで使用するコマンドの一覧

4.22　dabsetup（DABroker Libraryのセットアップ）

4.23　DABroker Libraryで使用するファイルの一覧

4.24　DABroker Library動作環境定義ファイル

4.25　共通設定項目

DAB_LANG（LANG環境変数）

DABTMP（作業ディレクトリ）

DABSVLOGSIZE（ログファイルサイズ［dabsv.log］）

DABSELECTCOLCNT（表検索カラム数）

DABSELECTINFCNT（更新・検索条件カラム数）

DABORACLE_TYPE（使用するORACLEのバージョン）

DABSQL_HiRDB_DICTIONARY_DATATYPE（HiRDBのディクショナリ表のデータ属性）

DAB_HIRDB_DBINF_ESC（HiRDB環境変数区切り文字）

DABEXSQL_TRC_LINE（拡張データベースアクセストレースを取得する）

トレースファイルサイズ

DABXA_LOG_ERROR（XAトレースを取得する）

4.26　拡張データベースアクセストレース設定項目

DABSQL_TRC_CANCEL（CANCEL）

DABSQL_TRC_CLOSE（CLOSE）

DABSQL_TRC_COMMIT（COMMIT）

DABSQL_TRC_CONNECT（CONNECT）

DABSQL_TRC_DECLARE（DECLARE）

DABSQL_TRC_DESCRIBE（DESCRIBE）

DABSQL_TRC_DISCONNECT（DISCONNECT）

DABSQL_TRC_EXECUTE（EXECUTE）

DABSQL_TRC_FETCH（FETCH）

DABSQL_TRC_LOGGING（LOGGING）

DABSQL_TRC_LOGLESS（LOGLESS）

DABSQL_TRC_PREPARE（PREPARE）

DABSQL_TRC_ROLLBACK（ROLLBACK）

DABSQL_TRC_OPEN（OPEN）

DABSQL_TRC_ATTACH（ATTACH）

DABSQL_TRC_ATTRGET（ATTRGET）

DABSQL_TRC_ATTRSET（ATTRSET）

DABSQL_TRC_BIND（BIND）

DABSQL_TRC_CHARFORM（CHARFORM）

DABSQL_TRC_CHARID（CHARID）

DABSQL_TRC_DEFINE（DEFINE）

DABSQL_TRC_DESALLOC（DESALLOC）

DABSQL_TRC_DESCANY（DESCANY）

DABSQL_TRC_DESFREE（DESFREE）

DABSQL_TRC_DETACH（DETACH）

DABSQL_TRC_ENVCREATE（ENVCREATE）

DABSQL_TRC_ERRGET（ERRGET）

DABSQL_TRC_GETPIECE（GETPIECE）

DABSQL_TRC_HDLALLOC（HDLALLOC）

DABSQL_TRC_HDLFREE（HDLFREE）

DABSQL_TRC_LOBCLOSE（LOBCLOSE）

DABSQL_TRC_LOBLEN（LOBLEN）

DABSQL_TRC_LOBOPEN（LOBOPEN）

DABSQL_TRC_LOBREAD（LOBREAD）

DABSQL_TRC_LOBWRITE（LOBWRITE）

DABSQL_TRC_PARAMGET（PARAMGET）

DABSQL_TRC_SESBEGIN（SESBEGIN）

DABSQL_TRC_SESEND（SESEND）

DABSQL_TRC_SETPIECE（SETPIECE）

DABSQL_TRC_GETDIAG（GETDIAG）

DABSQL_TRC_AUTO_COMMIT_OFF（AUTO COMMIT OFF）

DABSQL_TRC_AUTO_COMMIT_ON（AUTO COMMIT ON）

DABSQL_TRC_GET_INFO（GET INFO）

DABSQL_TRC_SET_INFO（SET INFO）

DABSQL_TRC_EXECUTE_DIRECT（EXECUTE DIRECT）

4.27　リモートアクセス設定項目

DABHIRDBA_BLOBBUFSIZE（HiRDBのBLOB型データ受取バッファサイズ）

DABORADBA_LONGBUFSIZE（ORACLEのLONG型データ受取バッファサイズ）

DABLANGMODE（漢字コードセット）

4.28　for C++設定項目

DABCPP_EVTTRC_SIZE（トレース取得サイズ）

DABCPP_EVTTRC_LEVEL（トレース取得レベル）

4.29　HiRDBの設定項目

4.30　ORACLEの設定項目

4.31　Connector属性ファイルでの設定

4.31.1　DB Connectorに設定する<config-property>タグに指定できるプロパティ

4.31.2　Connector属性ファイルのテンプレートファイル

4.32　DABroker Libraryを使用する場合の注意事項

4.32.1　DABroker Libraryを使用する場合に使用できるJ2EEコンポーネントおよび機能についての注意事項

4.32.2　トランザクションリカバリを使用する場合の注意事項

4.32.3　CMPフィールドとデータベースのマッピングの注意事項

4.32.4　複数の構築済み実行環境を切り替える場合の注意事項

4.32.5　UTF-8を使用する場合の注意事項（Windowsの場合）

4.32.6　SQL実行時の注意事項（Windowsの場合）

4.32.7　HiRDBクライアント経由でXDM/RD E2を使用する場合の注意事項

4.32.8　Windows Server 2008またはWindows Vista使用時の注意事項

5.　基本・開発機能の互換機能（そのほかの機能）

5.1　この章の構成

5.2　簡易Webサーバ機能

5.2.1　簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能）

5.2.2　簡易Webサーバへのアクセスの制御

5.2.3　実行環境での設定

5.2.4　サーブレットおよびJSP実装時の注意事項

5.3　EJBクライアントアプリケーションのログのサブディレクトリ専有モード

5.3.1　サブディレクトリ専有モードとは

5.3.2　ログ出力先のサブディレクトリ数の管理

5.3.3　サブディレクトリ専有モードの場合のシステムログの出力先

5.3.4　動作モードの指定

5.3.5　サブディレクトリ数の管理で使用するコマンド（cjcldellog（システムログ出力先サブディレクトリの削除））

5.3.6　サブディレクトリ専有モード使用時の注意事項

5.4　EJB 2.1とServlet 2.4でのアノテーションの利用

5.4.1　ロード対象のクラスとロード時に必要なクラスパス

5.4.2　EJB 2.1とServlet 2.4でのアノテーション参照抑止機能

5.4.3　javax.annotationパッケージに含まれるアノテーションのサポート範囲

5.4.4　javax.ejbパッケージに含まれるアノテーションのサポート範囲

5.4.5　実行環境での設定（J2EEサーバ単位の設定）

5.4.6　アノテーション参照抑止機能の設定変更

5.4.7　アノテーションの利用時の注意事項

6.　拡張機能の互換機能（メモリセッションフェイルオーバ機能）

6.1　この章の構成

6.2　メモリセッションフェイルオーバ機能の概要

6.2.1　処理の概要

6.2.2　適用手順

6.3　前提条件

6.3.1　前提となる構成

6.3.2　前提となる設定

6.4　グローバルセッションを利用したセッション管理（メモリセッションフェイルオーバ機能）

6.4.1　グローバルセッションID

6.4.2　グローバルセッション情報

6.4.3　グローバルセッションを利用するためのシステム構成要素

6.4.4　グローバルセッション情報が引き継がれるセッションの条件

6.4.5　サーバの状態とグローバルセッション情報の引き継ぎ

6.4.6　グローバルセッションの制御方法

6.4.7　グローバルセッション情報の排他制御

6.4.8　グローバルセッション情報の最大数

6.5　グローバルセッション情報のサイズの見積もり

6.5.1　グローバルセッション情報のサイズ見積もり機能を有効にするための設定（見積もり時に使用する設定）

6.5.2　グローバルセッション情報のサイズの見積もり方法

6.5.3　グローバルセッション情報のサイズ見積もり機能使用時に無効となる処理

6.5.4　グローバルセッション情報のサイズ見積もり機能使用時の注意事項

6.6　HTTP Cookieによるグローバルセッションの制御

6.6.1　HTTP Cookieによる制御の概要

6.6.2　HTTP Cookieによる制御の前提条件

6.6.3　グローバルセッションIDを送信するHTTP Cookieの名称

6.6.4　サーブレットコンテキストへの属性追加

6.6.5　HTTP Cookieの有効期限

6.6.6　グローバルセッション破棄に伴うHTTP Cookie情報の破棄

6.7　URL書き換えによるグローバルセッションの制御

6.7.1　URL書き換えによる制御の概要

6.7.2　URL書き換えによる制御の前提条件

6.7.3　グローバルセッションIDの送信に使用するURLのパスパラメタ

6.7.4　URL書き換えによって制御する場合の負荷分散

6.7.5　リクエストラインの最大サイズの設定

6.7.6　URL書き換えによって制御する場合の注意事項

6.8　グローバルセッションの制御方法が混在する場合のシステム構成

6.8.1　制御方法ごとにWebアプリケーションを分ける場合

6.8.2　制御方法ごとにWebアプリケーションを分けない場合

6.9　メモリセッションフェイルオーバ機能で実施される処理

6.9.1　メモリセッションフェイルオーバ機能で処理が実施されるタイミング

6.9.2　J2EEサーバ起動時の処理

6.9.3　J2EEアプリケーション開始時の処理

6.9.4　リクエスト実行時の処理

6.9.5　HttpSessionオブジェクトの有効期限が切れた場合の処理

6.9.6　無効なグローバルセッションIDが送られた場合の処理

6.9.7　URL書き換えを使用する場合の処理の違い

6.10　メモリセッションフェイルオーバ機能使用時の障害検知

6.11　アプリケーションの実装

6.11.1　実装時の留意事項

6.11.2　URL書き換えによる制御をする場合のアプリケーションの実装

6.11.3　アプリケーションを実行するときに追加される属性

6.12　DDでの定義

6.12.1　DDの作成

6.12.2　DDに定義する項目

6.12.3　DDでの定義例

6.13　cosminexus.xmlでの定義

6.14　J2EEサーバの設定

6.14.1　J2EEサーバの設定内容

6.14.2　簡易構築定義ファイルでの定義

6.14.3　簡易構築定義ファイルのパラメタの設定要否

6.14.4　定義内容の詳細（webserver.sfoから始まるパラメタ）

6.14.5　簡易構築定義ファイルの指定例

6.15　SFOサーバの設定

6.15.1　簡易構築定義ファイルでの定義

6.15.2　SFOサーバの起動オプションの設定

6.16　Webアプリケーションの設定

6.17　Webアプリケーションの設定情報の削除

7.　拡張機能の互換機能（そのほかの機能）

7.1　この章の構成

7.2　複数の構築済み実行環境の切り替え

7.2.1　構築済み実行環境の切り替えの概要

7.2.2　構築済み実行環境の切り替えの流れ

7.2.3　構築済み実行環境を切り替えるための準備

7.2.4　構築済み実行環境の切り替え手順

7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））

7.2.6　構築済み実行環境の切り替えで出力するログの取得

7.2.7　構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合）

7.2.8　構築済み実行環境を切り替える場合の注意事項

7.3　J2EEアプリケーションのテスト機能

7.3.1　テストモードとは

7.3.2　テストモードで動作しているJ2EEアプリケーションに対する処理

7.3.3　テストモードで動作しているJ2EEアプリケーションに対してできる動作

7.3.4　テストモードで動作しているJ2EEアプリケーション情報の取得

7.3.5　テストモードでのJ2EEアプリケーションの動作確認（新規作成時）

7.3.6　テストモードでのJ2EEアプリケーションの動作確認（入れ替え時）

7.3.7　テストモードによるJ2EEアプリケーションの実行手順

7.3.8　アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え））

7.3.9　テストモードでのJ2EEアプリケーション呼び出し時の注意事項

7.3.10　テストモード使用時のそのほかの注意事項

7.4　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java）

7.4.1　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンド（cjjsp2java（JSPソースのチェック））

7.4.2　JSP実装時の注意事項

付録

付録A　各バージョンでの主な機能変更

付録A.1　09-60での主な機能変更

付録A.2　09-50での主な機能変更

付録A.3　09-00での主な機能変更

付録A.4　08-70での主な機能変更

付録A.5　08-53での主な機能変更

付録A.6　08-50での主な機能変更

付録A.7　08-00での主な機能変更

付録B　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.

前書き

■ 対象製品

マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」の前書きの対象製品の説明を参照してください。

■ 輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。
なお、不明な場合は、弊社担当営業にお問い合わせください。

■ 商標類

Active Directoryは，米国Microsoft Corporationの，米国およびその他の国における登録商標または商標です。
AX2000は，A10 Networks, Inc.の商品名称です。
BIG-IP，3-DNS，iControl Services Manager，FirePass　および F5 は F5 Networks, Inc. の商標または登録商標です。
BSAFEは，米国EMC コーポレーションの米国およびその他の国における商標または登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HP-UXは，Hewlett-Packard Development Company,L.P.のオペレーティングシステムの名称です。
IBM，AIXは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
IIOPは，OMG仕様によるORB(Object Request Broker)間通信のネットワークプロトコルの名称です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MyEclipseは，米国Genuitec社の商品名称です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model　Driven　Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
RSAは，米国EMC コーポレーションの米国およびその他の国における商標または登録商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
SQL Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

■ 発行

2015年 4月 3020-3-Y12-60

■ 著作権

All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.

変更内容

変更内容(3020-3-Y12-60) uCosminexus Application Server 09-70，uCosminexus Application Server(64) 09-70，uCosminexus Client 09-70，uCosminexus Developer 09-70，uCosminexus Service Architect 09-70，uCosminexus Service Platform 09-70，uCosminexus Service Platform(64) 09-70

追加・変更内容 | 変更個所
記載内容は変更なし（リンク情報だけを変更した）。 | －

uCosminexus Application Server 09-60，uCosminexus Application Server(64) 09-60，uCosminexus Client 09-60，uCosminexus Developer 09-60，uCosminexus Service Architect 09-60，uCosminexus Service Platform 09-60，uCosminexus Service Platform(64) 09-60

追加・変更内容 | 変更個所
記載内容は変更なし（リンク情報だけを変更した）。 | －

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルをお読みになる際の前提情報については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」のはじめにの説明を参照してください。

1.　アプリケーションサーバの機能

この章では，アプリケーションサーバの機能の分類と目的，および機能とマニュアルの対応について説明します。また，このバージョンで変更した機能についても説明しています。

＜この章の構成＞

1.1　機能の分類

1.2　互換のための機能の一覧

1.3　このマニュアルに記載している機能の説明

1.4　アプリケーションサーバ 09-70での主な機能変更

1.5　推奨機能との対応

1.1　機能の分類

アプリケーションサーバは，Java EE 6に準拠したJ2EEサーバを中心としたアプリケーションの実行環境を構築したり，実行環境上で動作するアプリケーションを開発したりするための製品です。Java EEの標準仕様に準拠した機能や，アプリケーションサーバで独自に拡張された機能など，多様な機能を使用できます。目的や用途に応じた機能を選択して使用することで，信頼性の高いシステムや，処理性能に優れたシステムを構築・運用できます。

アプリケーションサーバの機能は，大きく分けて，次の二つに分類できます。

アプリケーションの実行基盤としての機能

アプリケーションの実行基盤を運用・保守するための機能

二つの分類は，機能の位置づけや用途によって，さらに詳細に分類できます。アプリケーションサーバのマニュアルは，機能の分類に合わせて提供しています。

アプリケーションサーバの機能の分類と対応するマニュアルについて，次の図に示します。

図1-1　アプリケーションサーバの機能の分類と対応するマニュアル

注※1

マニュアル名称の「アプリケーションサーバ」を省略しています。

注※2

アプリケーションサーバでは，SOAP WebサービスとRESTful Webサービスを実行できます。目的によっては，マニュアル「アプリケーションサーバ Webサービス開発ガイド」以外の次のマニュアルも参照してください。

SOAPアプリケーションを開発・実行する場合

アプリケーションサーバ SOAPアプリケーション開発の手引

SOAP WebサービスやSOAPアプリケーションのセキュリティを確保する場合

XML Security - Core ユーザーズガイド

アプリケーションサーバ Webサービスセキュリティ構築ガイド

XMLの処理について詳細を知りたい場合

XML Processor ユーザーズガイド

ここでは，機能の分類について，マニュアルとの対応と併せて説明します。

＜この節の構成＞

1.1.1　アプリケーションの実行基盤としての機能

1.1.2　アプリケーションの実行基盤を運用・保守するための機能

1.1.3　機能とマニュアルの対応

1.1.1　アプリケーションの実行基盤としての機能

アプリケーションとして実装されたオンライン業務やバッチ業務を実行する基盤となる機能です。システムの用途や求められる要件に応じて，使用する機能を選択します。

アプリケーションの実行基盤としての機能を使用するかどうかは，システム構築やアプリケーション開発よりも前に検討する必要があります。

アプリケーションの実行基盤としての機能について，分類ごとに説明します。

＜この項の構成＞

(1)　アプリケーションを動作させるための基本的な機能（基本・開発機能）

(2)　Webサービスを開発するための機能

(3)　信頼性や性能などを向上させるために拡張されたアプリケーションサーバ独自の機能（拡張機能）

(4)　システムのセキュリティを確保するための機能（セキュリティ管理機能）

(1)　アプリケーションを動作させるための基本的な機能（基本・開発機能）

アプリケーション（J2EEアプリケーション）を動作させるための基本的な機能が該当します。主にJ2EEサーバの機能が該当します。

アプリケーションサーバでは，Java EE 6に準拠したJ2EEサーバを提供しています。J2EEサーバでは，標準仕様に準拠した機能のほか，アプリケーションサーバ独自の機能も提供しています。

基本・開発機能は，機能を使用するJ2EEアプリケーションの形態に応じて，さらに三つに分類できます。アプリケーションサーバの機能解説のマニュアルは，この分類に応じて分冊されています。

それぞれの分類の概要を説明します。

Webアプリケーションを実行するための機能（Webコンテナ）
Webアプリケーションの実行基盤であるWebコンテナの機能，およびWebコンテナとWebサーバが連携して実現する機能が該当します。

Enterprise Beanを実行するための機能（EJBコンテナ）
Enterprise Beanの実行基盤であるEJBコンテナの機能が該当します。また，Enterprise Beanを呼び出すEJBクライアントの機能も該当します。

WebアプリケーションとEnterprise Beanの両方で使用する機能（コンテナ共通機能）
Webコンテナ上で動作するWebアプリケーションおよびEJBコンテナ上で動作するEnterprise Beanの両方で使用できる機能が該当します。

(2)　Webサービスを開発するための機能

Webサービスの実行環境および開発環境としての機能が該当します。

アプリケーションサーバでは，次のエンジンを提供しています。

JAX-WS仕様に従ったSOAPメッセージのバインディングを実現するJAX-WSエンジン

JAX-RS仕様に従ったRESTful HTTPメッセージのバインディングを実現するJAX-RSエンジン

(3)　信頼性や性能などを向上させるために拡張されたアプリケーションサーバ独自の機能（拡張機能）

アプリケーションサーバで独自に拡張された機能が該当します。バッチサーバ，CTM，データベースなど，J2EEサーバ以外のプロセスを使用して実現する機能も含まれます。

アプリケーションサーバでは，システムの信頼性を高め，安定稼働を実現するための多様な機能が拡張されています。また，J2EEアプリケーション以外のアプリケーション（バッチアプリケーション）をJavaの環境で動作させる機能も拡張しています。

(4)　システムのセキュリティを確保するための機能（セキュリティ管理機能）

アプリケーションサーバを中心としたシステムのセキュリティを確保するための機能が該当します。不正なユーザからのアクセスを防止するための認証機能や，通信路での情報漏えいを防止するための暗号化機能などがあります。

1.1.2　アプリケーションの実行基盤を運用・保守するための機能

アプリケーションの実行基盤を効率良く運用したり，保守したりするための機能です。システムの運用開始後に，必要に応じて使用します。ただし，機能によっては，あらかじめ設定やアプリケーションの実装が必要なものがあります。

アプリケーションの実行基盤を運用・保守するための機能について，分類ごとに説明します。

＜この項の構成＞

(1)　システムの起動・停止など日常的な運用をするための機能（運用機能）

(2)　システムの利用状況を監視するための機能（監視機能）

(3)　ほかの製品と連携して運用するための機能（連携機能）

(4)　トラブル発生時などに対処するための機能（保守機能）

(5)　旧バージョンの製品から移行するための機能（移行機能）

(6)　旧バージョンの製品との互換のための機能（互換機能）

(1)　システムの起動・停止など日常的な運用をするための機能（運用機能）

システムの起動や停止，アプリケーションの開始や停止，入れ替えなどの，日常運用で使用する機能が該当します。

(2)　システムの利用状況を監視するための機能（監視機能）

システムの稼働状態や，リソースの枯渇状態などを監視するための機能が該当します。また，システムの操作履歴など，監査で使用する情報を出力する機能も該当します。

(3)　ほかの製品と連携して運用するための機能（連携機能）

JP1やクラスタソフトウェアなど，ほかの製品と連携して実現する機能が該当します。

(4)　トラブル発生時などに対処するための機能（保守機能）

トラブルシューティングのための機能が該当します。トラブルシューティング時に参照する情報を出力するための機能も含みます。

(5)　旧バージョンの製品から移行するための機能（移行機能）

旧バージョンのアプリケーションサーバから新しいバージョンのアプリケーションサーバに移行するための機能が該当します。

(6)　旧バージョンの製品との互換のための機能（互換機能）

旧バージョンのアプリケーションサーバとの互換用の機能が該当します。なお，互換機能については，対応する推奨機能に移行することをお勧めします。

1.1.3　機能とマニュアルの対応

アプリケーションサーバの機能解説のマニュアルは，機能の分類に合わせて分冊されています。

機能の分類と，それぞれの機能について説明しているマニュアルとの対応を次の表に示します。

表1-1　機能の分類と機能解説のマニュアルの対応

分類 | 機能 | マニュアル※1
基本・開発機能 | Webコンテナ | 基本・開発編(Webコンテナ)
JSFおよびJSTLの利用
Webサーバ連携
インプロセスHTTPサーバ
サーブレットおよびJSPの実装
EJBコンテナ | 基本・開発編(EJBコンテナ)
EJBクライアント
Enterprise Bean実装時の注意事項
ネーミング管理 | 基本・開発編(コンテナ共通機能)
リソース接続とトランザクション管理
OpenTP1からのアプリケーションサーバの呼び出し（TP1インバウンド連携機能）
アプリケーションサーバでのJPAの利用
CJPAプロバイダ
CJMSプロバイダ
JavaMailの利用
アプリケーションサーバでのCDIの利用
アプリケーションサーバでのBean Validationの利用
アプリケーションの属性管理
アノテーションの使用
J2EEアプリケーションの形式とデプロイ
コンテナ拡張ライブラリ
拡張機能 | バッチサーバによるアプリケーションの実行 | 拡張編
CTMによるリクエストのスケジューリングと負荷分散
バッチアプリケーションのスケジューリング
J2EEサーバ間のセッション情報の引き継ぎ（セッションフェイルオーバ機能）
データベースセッションフェイルオーバ機能
EADsセッションフェイルオーバ機能
明示管理ヒープ機能を使用したFullGCの抑止
アプリケーションのユーザログ出力
スレッドの非同期並行処理
セキュリティ管理機能 | 統合ユーザ管理による認証 | セキュリティ管理機能編
アプリケーションの設定による認証
SSL/TLS通信でのTLSv1.2の使用
APIによる直接接続を使用する負荷分散機の運用管理機能からの制御
運用機能 | システムの起動と停止 | 運用／監視／連携編
J2EEアプリケーションの運用
監視機能 | 稼働情報の監視（稼働情報収集機能）
リソースの枯渇監視
監査ログ出力機能
データベース監査証跡連携機能
運用管理コマンドによる稼働情報の出力
Managementイベントの通知とManagementアクションによる処理の自動実行
CTMの稼働統計情報の収集
コンソールログの出力
連携機能 | JP1と連携したシステムの運用
システムの集中監視（JP1/IMとの連携）
ジョブによるシステムの自動運転（JP1/AJSとの連携）
監査ログの収集および一元管理（JP1/Audit Management - Managerとの連携）
クラスタソフトウェアとの連携
1:1系切り替えシステム（クラスタソフトウェアとの連携）
相互系切り替えシステム（クラスタソフトウェアとの連携）
N:1リカバリシステム（クラスタソフトウェアとの連携）
ホスト単位管理モデルを対象にした系切り替えシステム（クラスタソフトウェアとの連携）
保守機能 | トラブルシューティング関連機能 | 保守／移行編
性能解析トレースを使用した性能解析
製品のJavaVM（以降，JavaVMと略す場合があります）の機能
移行機能 | 旧バージョンのアプリケーションサーバからの移行
推奨機能への移行
互換機能 | ベーシックモード | 互換編※2
サーブレットエンジンモード
基本・開発機能の互換機能
拡張機能の互換機能

注※1　マニュアル名称の「アプリケーションサーバ 機能解説」を省略しています。

注※2　このマニュアルです。

1.2　互換のための機能の一覧

この節では，互換のための機能について，このマニュアルでの参照先を示します。

＜この節の構成＞

1.2.1　動作モードに関する機能

1.2.2　基本・開発機能に関する互換機能

1.2.3　拡張機能に関する互換機能

1.2.1　動作モードに関する機能

動作モードに関する互換機能を次の表に示します。

表1-2　動作モードに関する互換機能

機能 | 参照先
ベーシックモード | 2章
サーブレットエンジンモード | 3章

1.2.2　基本・開発機能に関する互換機能

基本・開発機能に関する互換機能を次の表に示します。

表1-3　基本・開発機能に関する互換機能

機能 | 参照先
DABroker Libraryを使用したデータベース接続 | 4章
簡易Webサーバ機能 | 5.2
EJBクライアントアプリケーションのログのサブディレクトリ専有モード | 5.3
EJB 2.1とServlet 2.4でのアノテーション | 5.4

1.2.3　拡張機能に関する互換機能

拡張機能に関する互換機能を次の表に示します。

表1-4　拡張機能に関する互換機能

機能 | 参照先
メモリセッションフェイルオーバ機能 | 6章
複数の構築済み実行環境の切り替え | 7.2
J2EEアプリケーションのテスト機能 | 7.3
JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java） | 7.4

1.3　このマニュアルに記載している機能の説明

ここでは，このマニュアルで機能を説明するときの分類の意味と，分類を示す表の例について説明します。

＜この節の構成＞

1.3.1　分類の意味

1.3.2　分類を示す表の例

1.3.1　分類の意味

このマニュアルでは，各機能について，次の五つに分類して説明しています。マニュアルを参照する目的によって，必要な個所を選択して読むことができます。

解説
機能の解説です。機能の目的，特長，仕組みなどについて説明しています。機能の概要について知りたい場合にお読みください。

実装
コーディングの方法やDDの記載方法などについて説明しています。アプリケーションを開発する場合にお読みください。

設定
システム構築時に必要となるプロパティなどの設定方法について説明しています。システムを構築する場合にお読みください。

運用
運用方法の説明です。運用時の手順や使用するコマンドの実行例などについて説明しています。システムを運用する場合にお読みください。

注意事項
機能を使用するときの全般的な注意事項について説明しています。注意事項の説明は必ずお読みください。

1.3.2　分類を示す表の例

機能説明の分類については，表で説明しています。表のタイトルは，「この章の構成」または「この節の構成」となっています。

次に，機能説明の分類を示す表の例を示します。

機能説明の分類を示す表の例

表X-1　この章の構成（○○機能）

分類 | タイトル | 参照先
解説 | ○○機能とは | X.1
実装 | アプリケーションの実装 | X.2
DDおよびcosminexus.xml※での定義 | X.3
設定 | 実行環境での設定 | X.4
運用 | ○○機能を使用した運用 | X.5
注意事項 | ○○機能使用時の注意事項 | X.6

注※

cosminexus.xmlについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「11.　アプリケーションの属性管理」を参照してください。

ポイント

cosminexus.xmlを含まないアプリケーションのプロパティ設定

cosminexus.xmlを含まないアプリケーションでは，実行環境へのインポート後にプロパティを設定，または変更します。設定済みのプロパティも実行環境で変更できます。

実行環境でのアプリケーションの設定は，サーバ管理コマンドおよび属性ファイルで実施します。サーバ管理コマンドおよび属性ファイルでのアプリケーションの設定については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.5.2　J2EEアプリケーションのプロパティの設定手順」を参照してください。

属性ファイルで指定するタグは，DDまたはcosminexus.xmlと対応しています。DDまたはcosminexus.xmlと属性ファイルのタグの対応についてはマニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.　アプリケーション属性ファイル（cosminexus.xml）」を参照してください。

なお，各属性ファイルで設定するプロパティは，アプリケーション統合属性ファイルでも設定できます。

1.4　アプリケーションサーバ 09-70での主な機能変更

この節では，アプリケーションサーバ 09-70での主な機能の変更について，変更目的ごとに説明します。

説明内容は次のとおりです。

アプリケーションサーバ 09-70で変更になった主な機能と，その概要を説明しています。機能の詳細については参照先の記述を確認してください。「参照先マニュアル」および「参照個所」には，その機能についての主な記載個所を記載しています。

「参照先マニュアル」に示したマニュアル名の「アプリケーションサーバ」は省略しています。

＜この節の構成＞

(1)　標準機能・既存機能への対応

(2)　運用性の維持・向上

(3)　そのほかの目的

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表1-5　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
運用管理ポータルでのJSPコンパイルバージョンの追加 | J2EEサーバでのJSPから生成されたサーブレットのコンパイル方法に「JDK1.7の仕様に従ったコンパイル」と「JDK7の仕様に従ったコンパイル」を追加する。 | 運用管理ポータル操作ガイド | 10.9.4
リファレンス 定義編(サーバ定義) | 4.14.1
JDK8でのメタスペース対応 | JavaVMの起動で使用しているPermanent領域用のオプションをMetaspace領域用のオプションに変更する。 | システム構築・運用ガイド | 付録A.2
運用管理ポータル操作ガイド | 10.8.3，10.9.8
リファレンス 定義編(サーバ定義) | 5.2，5.3，10.4
統合ユーザ管理でのユーザ認証のSHA-2対応 | 統合ユーザ管理でのユーザ認証のハッシュアルゴリズムとしてSHA-224，SHA-256，SHA-384，SHA-512を追加する。 | 機能解説 セキュリティ管理機能編 | 5.3.1，5.3.9，5.10.6，11.4.3，12.4.3，12.5.3，13.2，14.3

(2)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表1-6　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
V9.7へのバージョンアップ対応 | バージョンアップ時のJavaVMの起動で使用しているPermanent領域用のオプションをMetaspace領域用のオプションに変更する手順を追加する。 | 機能解説 保守／移行編 | 10.4.2，10.4.3，10.4.4，10.4.5

(3)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表1-7　そのほかの目的による変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
snapshotログの収集対象 | snapshotログの収集対象としてJavaVMイベントログとManagement Serverのスレッドダンプを追加する。 | 機能解説 保守／移行編 | 付録A.2

1.5　推奨機能との対応

このマニュアルで説明している機能は，旧バージョンとの互換用機能です。推奨機能への移行をお勧めします。

互換機能と推奨機能の対応を次の表に示します。

表1-8　互換機能と推奨機能の対応

互換機能
推奨機能

ベーシックモード
1.4モードを使用することをお勧めします。

サーブレットエンジンモード

DABroker Libraryを使用したデータベース接続
それぞれのデータベースが提供しているJDBCドライバを使用することをお勧めします。

簡易Webサーバ機能
インプロセスHTTPサーバ機能を使用することをお勧めします。
インプロセスHTTPサーバ機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「5.　インプロセスHTTPサーバ」を参照してください。

EJBクライアントアプリケーションのログのサブディレクトリ専有モード
サブディレクトリ共有モードを使用することをお勧めします。
サブディレクトリ共有モードについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.8.2　システムログの出力先のサブディレクトリ」を参照してください。

EJB 2.1とServlet 2.4でのアノテーションの利用
EJB 3.0以降およびServlet 2.5以降でアノテーションを利用することをお勧めします。

メモリセッションフェイルオーバ機能
データベースセッションフェイルオーバ機能またはEADsセッションフェイルオーバ機能を使用することをお勧めします。
データベースセッションフェイルオーバ機能およびEADsセッションフェイルオーバ機能については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「5.　J2EEサーバ間のセッション情報の引き継ぎ」を参照してください。

複数の構築済み実行環境の切り替え
構築済みの環境を以前の状態に戻す場合は，適用したパッチをアンインストールして対応することをお勧めします。

J2EEアプリケーションのテスト機能
J2EEアプリケーションのテストは本番環境ではなくテスト環境を用意して実行することをお勧めします。

JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java）
cjjspcコマンドを使用してコンパイルして，チェックすることをお勧めします。
cjjspcコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjjspc（JSPの事前コンパイル）」を参照してください。

2.　ベーシックモード

旧バージョンとの互換用機能としてのサーバの動作モードには，ベーシックモードとサーブレットエンジンモードがあります。この章では，ベーシックモードについて説明します。

＜この章の構成＞

2.1　この章の構成

2.2　ベーシックモードの概要

2.3　使用できる機能の一覧

2.4　ベーシックモードでのリソース接続

2.5　プロセスの依存関係とプロセスの再起動方法

2.6　データソースからDB Connectorへの移行方法

2.7　パフォーマンスチューニング

2.8　データベースとアプリケーション間の文字コード変換（ベーシックモード）

2.9　下位互換用のクラスローダ構成

2.10　ベーシックモードの設定

2.11　ベーシックモードで使用するファイル

2.12　ベーシックモードでデータベースに接続する場合の運用管理（互換用機能）

2.13　J2EEサーバで使用するリソース操作コマンド

2.14　ベーシックモード使用時の注意事項

2.1　この章の構成

この章では，ベーシックモードについて説明します。

この章の構成を次の表に示します。

表2-1　この章の構成（ベーシックモード）

分類 | タイトル | 参照先
解説 | ベーシックモードの概要 | 2.2
使用できる機能の一覧 | 2.3
ベーシックモードでのリソース接続 | 2.4
プロセスの依存関係とプロセスの再起動方法 | 2.5
データソースからDB Connectorへの移行方法 | 2.6
パフォーマンスチューニング | 2.7
データベースとアプリケーション間の文字コード変換 | 2.8
下位互換用のクラスローダ構成 | 2.9
設定 | ベーシックモードの設定 | 2.10
ベーシックモードで使用するファイル | 2.11
運用 | ベーシックモードでデータベースに接続する場合の運用管理（互換用機能） | 2.12
J2EEサーバで使用するリソース操作コマンド | 2.13
注意事項 | ベーシックモード使用時の注意事項 | 2.14

注　「実装」について，この章での説明はありません。

2.2　ベーシックモードの概要

ベーシックモードは，J2EEサーバモードの一つです。単一のデータベースだけのリソースをトランザクションで使用するシステムに適用できます。旧バージョンとの互換性を重視したモードです。

なお，ベーシックモードは，1.4モード（06-71までのスタンダードモードまたはアドバンスドモード）に比べて，使用できる機能に制限があります。J2EEサーバモードを使用する場合は，1.4モードを使用することを推奨します。

参考

ベーシックモードから1.4モードへの変更

すでにベーシックモードを使用している場合も，1.4モードへの変更ができます。変更する場合は，次の点に留意してください。

サーバの環境をいったん削除してから，再度サーバの環境をセットアップし直す必要があります。

1.4モードを使用する場合は，トランザクション管理サーバなどが必要となるため，ベーシックモードに比べ，多量のCPU/メモリリソースが必要となります。

また，動作モードの変更によって，変更前の動作モードで使用できたプロパティが使用できなくなることがありますので注意してください。

2.3　使用できる機能の一覧

ベーシックモードで使用できるJava EEおよびJ2EEの機能，ならびにアプリケーションサーバの機能について一覧に示します。

アプリケーションサーバで使用できる機能については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」の「3.2.5(1)　アプリケーションサーバで使用できる機能」を参照してください。

＜この節の構成＞

2.3.1　使用できるJava EEおよびJ2EEの機能

2.3.2　使用できるアプリケーションサーバの機能

2.3.1　使用できるJava EEおよびJ2EEの機能

ベーシックモードで使用できるJava EEおよびJ2EEの機能について，次の表に示します。なお，次の表に記載していない機能は使用できません。

表2-2　互換用の動作モードで使用できるJava EEおよびJ2EEの機能

Java EEおよびJ2EEの機能
ベーシックモード

Servlet 2.2
使用できます。

Servlet 2.3

JSP 1.2

EJB 2.0（CMP 1.1）

JDBC 2.0コア
JDBC 2.0オプションパッケージ

JTA 1.0.1（local）

JavaMail 1.2
JavaMailで使用できるサービスプロバイダはSMTPだけです。メールの送信機能だけを使用できます（メールの受信機能は使用できません）。

2.3.2　使用できるアプリケーションサーバの機能

ベーシックモードでの，アプリケーションサーバの各機能の使用について説明します。

なお，各項目にある表に記載していない機能は使用できません。

＜この項の構成＞

(1)　Webコンテナの機能

(2)　Webサーバ連携の機能

(3)　インプロセスHTTPサーバの機能

(4)　EJBコンテナの機能

(5)　EJBクライアントの機能

(6)　ネーミング管理の機能

(7)　リソース接続とトランザクション管理の機能

(8)　OpenTP1からのアプリケーションサーバを呼び出す機能（TP1インバウンド連携機能）

(9)　アプリケーションサーバで使用するJPAの機能

(10)　CJPAプロバイダの機能

(11)　CJMSプロバイダの機能

(12)　セキュリティ管理の機能

(13)　アノテーションの機能

(14)　J2EEアプリケーションの形式とデプロイの機能

(15)　コンテナ拡張ライブラリの機能

(16)　バッチアプリケーション実行時に使用する機能

(17)　CTMによるEnterprise Beanのスケジューリング機能

(18)　そのほかの拡張機能

(19)　システムの日常運用を支援する機能

(20)　システムの保守を支援する機能

(21)　J2EEアプリケーションの運用機能

(22)　システムの監査を支援する機能

(23)　JP1連携による運用管理機能

(24)　クラスタソフトウェアとの連携による系切り替え機能

(25)　システムの保守のための機能

(26)　JavaVMの機能

(1)　Webコンテナの機能

Webコンテナの機能のベーシックモードでの使用について次の表に示します。Webコンテナの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.　Webコンテナ」を参照してください。

表2-3　Webコンテナの機能のベーシックモードでの使用

Webコンテナの機能 | ベーシックモードでの使用
Webアプリケーションの実行機能 | ◎
JSPの事前コンパイルとコンパイル結果の保持（JSP事前コンパイルを使用しない場合のJSPコンパイル結果） | ◎
デフォルトの文字エンコーディング設定機能 | ◎
セッション管理機能 | Webクライアントが保持する無効なセッションIDの削除 | ◎
HttpSessionオブジェクト数の上限値の設定 | ◎
セッションIDおよびCookieへのサーバIDの付加 | ◎
アプリケーションのイベントリスナ | ○
リクエストおよびレスポンスのフィルタリング | ○
HTTPレスポンス圧縮機能 | ○
EJBコンテナとの連携 | ◎
データベースとの接続 | △
Webコンテナによるスレッドの作成 | ◎
ユーザスレッドの使用 | △※
同時実行スレッド数の制御 | Webコンテナ単位での同時実行スレッド数の制御 | ◎
Webアプリケーション単位での同時実行スレッド数の制御 | ◎
同時実行スレッド数の動的変更 | ◎
エラーページのカスタマイズ | ◎
静的コンテンツのキャッシュ | ◎
簡易Webサーバ機能 | 簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能） | ◎
簡易Webサーバへのアクセスの制御 | ◎
URIのデコード機能 | ◎
Webアプリケーションのバージョン設定機能 | ◎

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※

ユーザスレッドで使用できる機能のうち，ベーシックモードで使用できる機能だけが使用できます。

(2)　Webサーバ連携の機能

Webサーバ連携の機能のベーシックモードでの使用について次の表に示します。Webサーバ連携の機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.　Webサーバ連携」を参照してください。

表2-4　Webサーバ連携の機能のベーシックモードでの使用

Webサーバ連携の機能 | ベーシックモードでの使用
Webサーバ（リダイレクタ）によるリクエストの振り分け | ◎
通信タイムアウト（Webサーバ連携） | ◎
IPアドレスの指定（Webサーバ連携） | ◎
エラーページのカスタマイズ（Webサーバ連携） | ◎
ドメイン名指定でのトップページの表示 | ○
Webコンテナへのゲートウェイ情報の通知 | ○

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(3)　インプロセスHTTPサーバの機能

インプロセスHTTPサーバの機能のベーシックモードでの使用について次の表に示します。インプロセスHTTPサーバの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「5.　インプロセスHTTPサーバ」を参照してください。

表2-5　インプロセスHTTPサーバの機能のベーシックモードでの使用

インプロセスHTTPサーバの機能 | ベーシックモードでの使用
Webクライアントからの接続数の制御 | ◎
リクエスト処理スレッド数の制御 | ◎
Webクライアントからの同時接続数の制御によるリクエストの流量制御 | ◎
同時実行スレッド数の制御によるリクエストの流量制御 | ◎
リダイレクトによるリクエストの振り分け | ◎
Persistent ConnectionによるWebクライアントとの通信制御 | ◎
通信タイムアウト（インプロセスHTTPサーバ） | ◎
IPアドレス指定（インプロセスHTTPサーバ） | ◎
アクセスを許可するホストの制限によるアクセス制御 | ◎
リクエストデータのサイズの制限によるアクセス制御 | ◎
有効なHTTPメソッドの制限によるアクセス制御 | ◎
HTTPレスポンスを使用したWebクライアントへのレスポンスのカスタマイズ | ◎
エラーページのカスタマイズ（インプロセスHTTPサーバ） | ◎
Webコンテナへのゲートウェイ情報の通知 | ◎
ログ・トレースの出力 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(4)　EJBコンテナの機能

EJBコンテナの機能のベーシックモードでの使用について次の表に示します。EJBコンテナの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.　EJBコンテナ」を参照してください。

表2-6　EJBコンテナの機能のベーシックモードでの使用

EJBコンテナの機能 | ベーシックモードでの使用
Enterprise Beanの実行 | ○
EJB仕様準拠のチェック | ○
CMPフィールドとデータ型のマッピング | ○
EJBコンテナのJNDI名前空間へのリファレンス登録 | ○
外部リソースとの接続 | ○
Enterprise Beanでのトランザクション管理 | ○※
Entity Beanのキャッシュモデル（コミットオプション指定） | ○
Stateless Session Bean，Entity Beanのプールの管理 | ◎
Enterprise Beanへのアクセス制御 | ○
EJBコンテナでのタイムアウトの設定 | Stateful Session Beanのタイムアウト | ◎
Entity BeanのEJBオブジェクトのタイムアウト | ◎
RMI-IIOP通信のタイムアウト | ◎
EJBのリモートインタフェースの呼び出し | ◎
EJBコンテナの通信ポートとIPアドレスの固定（TPBrokerのオプション） | ◎

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※

SessionSynchronizationを実装したStateful Session Beanへのトランザクション属性には，Required，RequiresNewおよびMandatoryだけが指定できます。

(5)　EJBクライアントの機能

EJBクライアントの機能のベーシックモードでの使用について次の表に示します。EJBクライアントの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.　EJBクライアント」を参照してください。

表2-7　EJBクライアントの機能のベーシックモードでの使用

EJBクライアントの機能 | ベーシックモードでの使用
EJBクライアントアプリケーションの開始 | ◎
Enterprise Beanの呼び出し | ◎
EJBクライアントアプリケーションでのトランザクションの実装 | ◎
EJBクライアントアプリケーションでのセキュリティの実装 | ◎
RMI-IIOPスタブ，インタフェースの取得 | ◎
EJBクライアントアプリケーションのシステムログ出力 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(6)　ネーミング管理の機能

ネーミング管理の機能のベーシックモードでの使用について次の表に示します。ネーミング管理の機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.　ネーミング管理」を参照してください。

表2-8　ネーミング管理の機能のベーシックモードでの使用

ネーミング管理の機能 | ベーシックモードでの使用
JNDI名前空間へのオブジェクトのバインドとルックアップ | ◎
Enterprise BeanまたはJ2EEリソースへの別名付与（ユーザ指定名前空間機能） | ◎※
ラウンドロビンポリシーによるCORBAネーミングサービスの検索 | ◎
ネーミング管理機能でのキャッシング | ◎
CORBAネーミングサービスの切り替え | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※

リモートホームインタフェースに対する別名だけを使用できます。

ローカルホームインタフェース，リモートビジネスインタフェースまたはローカルビジネスインタフェースに対しても別名は設定できます。ただし，ベーシックモードではこれらのインタフェースがサポートされていないため，設定した別名は使用できません。

(7)　リソース接続とトランザクション管理の機能

リソース接続とトランザクション管理の機能のベーシックモードでの使用について次の表に示します。なお，接続できるリソースやリソース接続で使用できる機能については，「2.4　ベーシックモードでのリソース接続」を参照してください。リソース接続とトランザクション管理の機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.　リソース接続とトランザクション管理」を参照してください。

表2-9　リソース接続とトランザクション管理の機能のベーシックモードでの使用

リソース接続とトランザクション管理の機能 | ベーシックモードでの使用
コネクションプーリング | ◎※1
コネクションシェアリング・アソシエーション（コネクションシェアリング） | ○
DataSourceオブジェクトのキャッシング | ◎
コネクションの取得リトライ | ◎※1
コネクションプールの情報表示 | ◎
コネクションプールのクリア | ◎
コネクションの自動クローズ（EJBコンテナによるコネクション自動クローズ） | ○
コネクションの強制クローズ | ○※2
コネクションスイーパ | ◎
トランザクションタイムアウトとステートメントキャンセル | ○※3
オブジェクトの自動クローズ | ○
リソースへの接続テスト | ◎※4

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※1　データソースを利用する場合に使用できます。詳細については，「2.4.3　データソースによるデータベースへの接続で使用できる機能」を参照してください。

注※2　コネクションの強制クローズについては，「2.4.3　データソースによるデータベースへの接続で使用できる機能」を参照してください。

注※3　トランザクションタイムアウトは使用できます。詳細については，「2.4.3　データソースによるデータベースへの接続で使用できる機能」を参照してください。

注※4　データソースおよびSMTPサーバを利用する場合に使用できます。詳細については，「2.4.4　リソースへの接続テスト」を参照してください。

(8)　OpenTP1からのアプリケーションサーバを呼び出す機能（TP1インバウンド連携機能）

TP1インバウンド連携機能は，ベーシックモードでは使用できません。

(9)　アプリケーションサーバで使用するJPAの機能

アプリケーションサーバで使用するJPAの機能は，ベーシックモードでは使用できません。

(10)　CJPAプロバイダの機能

CJPAプロバイダの機能は，ベーシックモードでは使用できません。

(11)　CJMSプロバイダの機能

CJMSプロバイダの機能は，ベーシックモードでは使用できません。

(12)　セキュリティ管理の機能

セキュリティ管理の機能のベーシックモードでの使用について次の表に示します。セキュリティ管理の機能については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。

表2-10　セキュリティ管理の機能のベーシックモードでの使用

セキュリティ管理の機能 | ベーシックモードでの使用
SSL使用による認証情報とデータの暗号化 | ◎
ロールに基づくWebコンテナのユーザ認証 | ◎
SecurityManagerによるWebコンテナの実行時の保護 | ◎
セキュリティアイデンティティを使用した認証 | △※

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※　サーブレット／JSPからEJBを呼び出す際に，web.xmlに指定した<run-as>タグの情報は使用されません。

(13)　アノテーションの機能

アノテーションの機能は，ベーシックモードでは使用できません。

(14)　J2EEアプリケーションの形式とデプロイの機能

J2EEアプリケーションの形式とデプロイの機能のベーシックモードでの使用について次の表に示します。J2EEアプリケーションの形式とデプロイの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.　J2EEアプリケーションの形式とデプロイ」を参照してください。

表2-11　J2EEアプリケーションの形式とデプロイの機能のベーシックモードでの使用

J2EEアプリケーションの形式とデプロイの機能 | ベーシックモードでの使用
アーカイブ形式によるJ2EEアプリケーションのデプロイ | ○
J2EEアプリケーションの入れ替え | ◎△※1
J2EEアプリケーションのリデプロイ | ◎
リソースアダプタを含むJ2EEアプリケーションの操作 | ○※2

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※1　機能差については，「(21)　J2EEアプリケーションの運用機能」を参照してください。

注※2　リソースアダプタを含むJ2EEアプリケーションのインポートはできますが，J2EEアプリケーションの開始はできません。また，開始状態のJ2EEアプリケーションをインポートした場合，J2EEアプリケーションにリソースアダプタが含まれている場合は開始できません。

(15)　コンテナ拡張ライブラリの機能

注意

コンテナ拡張ライブラリには次のアクセス権が付与されます。アクセス権は変更できません。

java.security.AllPermission

ただし，java.lang.RuntimePermissionのsetSecurityManagerアクセス権は付与されません。

コンテナ拡張ライブラリの機能のベーシックモードでの使用について次の表に示します。コンテナ拡張ライブラリの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「14.　コンテナ拡張ライブラリ」を参照してください。

表2-12　コンテナ拡張ライブラリの機能のベーシックモードでの使用

コンテナ拡張ライブラリの機能 | ベーシックモードでの使用
コンテナ拡張ライブラリ | ◎
サーバ起動・停止フック機能 | ◎
スマートエージェント経由でのCORBAオブジェクトの呼び出し | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(16)　バッチアプリケーション実行時に使用する機能

バッチアプリケーション実行時に使用する機能は，ベーシックモードでは使用できません。

(17)　CTMによるEnterprise Beanのスケジューリング機能

CTMによるEnterprise Beanのスケジューリング機能のベーシックモードでの使用について次の表に示します。CTMによるEnterprise Beanのスケジューリング機能については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「3.　CTMによるリクエストのスケジューリングと負荷分散」を参照してください。

表2-13　CTMによるEnterprise Beanのスケジューリング機能のベーシックモードでの使用

CTMによるEnterprise Beanのスケジューリング機能 | ベーシックモードでの使用
リクエストの流量制御 | ◎
リクエストの優先制御 | ◎
リクエストの同時実行数の動的変更 | ◎
リクエストの閉塞制御 | ◎
リクエストの負荷分散 | ◎
リクエストのキューの滞留監視 | ◎
CTMのゲートウェイ機能を利用したTPBroker／OTMクライアントとの接続 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(18)　そのほかの拡張機能

そのほかの拡張機能のベーシックモードでの使用について次の表に示します。そのほかの拡張機能については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「1.2.3　そのほかの拡張機能」を参照してください。

表2-14　そのほかの拡張機能のベーシックモードでの使用

そのほかの拡張機能 | ベーシックモードでの使用
セッションフェイルオーバ機能（メモリセッションフェイルオーバ） | ◎
明示管理ヒープ機能を使用したFullGCの抑止 | ◎
統合ユーザ管理 | ◎
ユーザログ出力 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(19)　システムの日常運用を支援する機能

システムの日常運用を支援する機能のベーシックモードでの使用について次の表に示します。システムの日常運用を支援する機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.1　システムの日常運用を支援する機能」を参照してください。

表2-15　システムの日常運用を支援する機能のベーシックモードでの使用

システムの日常運用を支援する機能 | ベーシックモードでの使用
システムの起動・停止 | ◎△※
運用管理コマンドによる稼働情報の出力 | ◎
CTMの稼働統計情報の収集 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※　プロセスの依存関係とプロセスの再起動方法がJ2EEサーバモードの場合と異なります。詳細については，「2.5　プロセスの依存関係とプロセスの再起動方法」を参照してください。

(20)　システムの保守を支援する機能

システムの保守を支援する機能のベーシックモードでの使用について次の表に示します。システムの保守を支援する機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.2　システムの保守を支援する機能」を参照してください。

表2-16　システムの保守を支援する機能のベーシックモードでの使用

システムの保守を支援する機能 | ベーシックモードでの使用
コンソールログの出力 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(21)　J2EEアプリケーションの運用機能

J2EEアプリケーションの運用機能のベーシックモードでの使用について次の表に示します。J2EEアプリケーションの運用機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.3　J2EEアプリケーションの運用機能」を参照してください。

表2-17　J2EEアプリケーションの運用機能のベーシックモードでの使用

J2EEアプリケーションの運用機能 | ベーシックモードでの使用
J2EEアプリケーションのサービスの閉塞 | ◎
J2EEアプリケーションの停止（通常停止） | ○
J2EEアプリケーションの入れ替え | Webアプリケーションのサービスの部分閉塞による入れ替え | ○
リデプロイによるJ2EEアプリケーションの入れ替え | ◎

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(22)　システムの監査を支援する機能

システムの監査を支援する機能は，ベーシックモードでは使用できません。

(23)　JP1連携による運用管理機能

JP1連携による運用管理機能のベーシックモードでの使用について次の表に示します。JP1連携による運用管理機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.5　JP1連携による運用管理機能」を参照してください。

表2-18　JP1連携による運用管理機能のベーシックモードでの使用

JP1連携による運用管理機能 | ベーシックモードでの使用
JP1と連携したシステムの運用 | ○
システムの集中監視（JP1/IMとの連携） | ○
ジョブによるシステムの自動運転（JP1/AJSとの連携） | ○
監査ログの収集および一元管理（JP1/Audit Management - Managerとの連携） | ○

（凡例）

○：使用できる

参考

ベーシックモードで動作しているJ2EEサーバはManagement Serverの管理対象となります。このため，ベーシックモードで動作しているJ2EEサーバはJP1連携による管理の対象となります。なお，JP1連携による運用管理機能と動作モードは，直接関係ありません。

(24)　クラスタソフトウェアとの連携による系切り替え機能

クラスタソフトウェアとの連携による系切り替え機能のベーシックモードでの使用について次の表に示します。クラスタソフトウェアとの連携による系切り替え機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.6　クラスタソフトウェアとの連携による系切り替え機能」を参照してください。

表2-19　クラスタソフトウェアとの連携による系切り替え機能のベーシックモードでの使用

クラスタソフトウェアとの連携による系切り替え機能 | ベーシックモードでの使用
1:1系切り替えシステム | アプリケーションサーバの1:1系切り替えシステム | ○
運用管理サーバの1:1系切り替えシステム | ○
相互系切り替えシステム | ○

（凡例）

○：使用できる

(25)　システムの保守のための機能

システムの保守のための機能のベーシックモードでの使用について次の表に示します。

表2-20　システムの保守のための機能のベーシックモードでの使用

システムの保守のための機能 | ベーシックモードでの使用 | 参照先マニュアル | 参照先
トラブルシューティング | ◎※1 | アプリケーションサーバ 機能解説 保守／移行編 | 2章，3章，4章，5章
性能解析トレースを使用したシステムの性能解析 | ◎※2 | 7章，8章

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※1　障害検知時コマンドは使用できません。

注※2　機能レイヤのうち，JTA，JCAコンテナおよびDB Connectorでは性能解析情報を出力しません。

(26)　JavaVMの機能

JavaVMの機能のベーシックモードでの使用について次の表に示します。

表2-21　JavaVMの機能のベーシックモードでの使用

JavaVMの機能 | ベーシックモードでの使用 | 参照先マニュアル | 参照先
クラス別統計機能 | ◎ | アプリケーションサーバ 機能解説 保守／移行編 | 9.3
インスタンス統計機能 | ◎ | 9.4
STATICメンバ統計機能 | ◎ | 9.5
参照関係情報出力機能 | ◎ | 9.6
統計前のGCコレクション選択機能 | ◎ | 9.7
Survivor領域の年齢分布情報出力機能 | ◎ | 9.11
JITコンパイル時のCヒープ確保量の上限値設定機能 | ◎ | 9.13
スレッド数の上限値設定機能 | ◎ | 9.14

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

2.4　ベーシックモードでのリソース接続

ここでは，ベーシックモードでのリソース接続について説明します。

＜この節の構成＞

2.4.1　接続できるリソースとトランザクションの管理方法

2.4.2　データベース接続の前提条件

2.4.3　データソースによるデータベースへの接続で使用できる機能

2.4.4　リソースへの接続テスト

2.4.5　JTAによるトランザクション実装時の注意事項

2.4.1　接続できるリソースとトランザクションの管理方法

ベーシックモードの場合に接続できるリソースの種類とトランザクションの管理方法について説明します。

＜この項の構成＞

(1)　接続できるリソース

(2)　トランザクションの管理方法

(1)　接続できるリソース

ベーシックモードで接続できるリソースについて次の表に示します。

表2-22　接続できるリソース（ベーシックモード）

リソースの種類 | ベーシックモード
データベース | HiRDB | ○
Oracle | ○
SQL Server | ×
XDM/RD E2 | ×
データベース上のキュー | HiRDB | ×
Oracle | ×
OpenTP1 | ×
SMTPサーバ | ○
JavaBeansリソース | ○

（凡例）　○：接続できる　　×：接続できない

参考

リソースアダプタがNon-Managed環境での使用に対応している場合には，接続できる場合があります。ただし，アプリケーションサーバによるコネクションプーリングやトランザクション管理は利用できません。

(2)　トランザクションの管理方法

ベーシックモードでは，次のトランザクションを管理できます。

アプリケーションサーバが管理するトランザクションのローカルトランザクション

アプリケーションサーバが管理しないトランザクション

2.4.2　データベース接続の前提条件

ベーシックモードでデータベースに接続する場合の前提条件を，データベースの種類ごとに示します。

ベーシックモードの場合，データベース接続には，データソースを使用します。使用できるトランザクションの種類は，ローカルトランザクションだけになります。

なお，ベーシックモードでは，次のデータベースには接続できません。

Oracle10g以降

SQL Server

XDM/RD E2

＜この項の構成＞

(1)　HiRDBの場合

(2)　Oracle9iの場合

(3)　DABroker Libraryの文字コード設定

(1)　HiRDBの場合

使用できるJDBCドライバ
使用できるJDBCドライバはDABroker Libraryとなります。
DABroker Libraryを使用する場合，HiRDBクライアントをインストールする必要があります。

接続方法
データソースを使用して接続します。
なお，トランザクションの管理方法は，アプリケーションサーバが管理するトランザクション，またはアプリケーションサーバが管理しないトランザクションのどちらかを選択できます。

(2)　Oracle9iの場合

使用できるJDBCドライバ
使用できるJDBCドライバはDABroker Libraryとなります。Oracle JDBC Thin Driverでは接続できません。
JDBCドライバとしてDABroker Libraryを使用する場合，Oracleクライアントをインストールする必要があります。

接続方法
データソースを使用して接続します。
なお，トランザクションの管理方法は，アプリケーションサーバが管理するトランザクション，またはアプリケーションサーバが管理しないトランザクションのどちらかを選択できます。

(3)　DABroker Libraryの文字コード設定

DABroker Libraryを使用してデータベースに接続する場合，文字コードを設定できます。ベーシックモードの場合，usrconf.propertiesのejbserver.jdbc.propertyInfo.ENCODELANGキーに文字コードを設定します。

usrconf.propertiesの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。

2.4.3　データソースによるデータベースへの接続で使用できる機能

ここでは，データソースによるデータベースへの接続機能について説明します。

なお，データソースの設定については，「2.10　ベーシックモードの設定」を参照してください。

データソースを利用すると，J2EEサーバと連携して，J2EEアプリケーションから次に示す機能を利用できます。

＜この項の構成＞

(1)　サインオン

(2)　コネクション管理

(3)　トランザクション管理

(4)　オブジェクトの自動クローズ

(5)　パフォーマンスチューニングのための機能

(6)　フォールトトレランスのための機能

(7)　データソースを使用するときの注意

(1)　サインオン

データソースを利用した場合，サインオンの方式として，コンテナ管理のサインオンとコンポーネント管理のサインオンの両方を使用できます。ただし，コンポーネント管理でのサインオンの場合，トランザクションの種類によって使用が制限されます。

コンテナ管理でのサインオンの場合

コンテナ管理でのサインオンの場合には，データソースで設定したユーザ名とパスワードを使ってデータベースにアクセスします。

コンポーネント管理でのサインオンの場合

データベースへのアクセスはgetConnectionメソッドで渡されたユーザ名とパスワードを使ってデータベースにアクセスします。

(2)　コネクション管理

データベースの接続情報は，データソースを介してJ2EEサーバで管理され，コネクションプールにプーリングされます。

(3)　トランザクション管理

ローカルトランザクションでトランザクション管理されます。

トランザクションについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.4　トランザクション管理」を参照してください。

(4)　オブジェクトの自動クローズ

データソースは，ユーザハンドル（java.sql.Connection）から生成された，Statementオブジェクト，PreparedStatementオブジェクト，CallableStatementオブジェクト，および各種ステートメントやDatabaseMetaDataから生成されたResultSetオブジェクトを自動クローズできます。

(5)　パフォーマンスチューニングのための機能

ベーシックモードでデータベースに接続する場合に，パフォーマンスチューニングのために使用できる機能を，次の表に示します。

表2-23　ベーシックモードでデータベースに接続する場合に使用できるパフォーマンスチューニングのための機能

機能 | 使用可否 | 機能差※1
コネクションプーリング | ○ | あり
コネクションシェアリング | ○※2 | なし
コネクションのアソシエーション | × | －
ステートメントプーリング | × | －
ライトトランザクション | × | －
インプロセストランザクションサービス | × | －
DataSourceオブジェクトのキャッシング | ○ | なし
DB Connectorのコンテナ管理でのサインオンの最適化 | × | －
受信バッファのプーリング | × | －

（凡例）○：使用できる　×：使用できない　－：該当しない

注※1　1.4モードとの機能差の有無です。

注※2　ベーシックモードでコネクションシェアリング機能を利用するには，コネクションプーリング機能を利用する必要があります。なお，標準DDの<res-sharing-scope>にUnshareableを指定してもコネクションシェアリングは有効です。

以降，ベーシックモードで使用できるパフォーマンスチューニングのための機能について説明します。なお，それぞれの機能の概要および目的については，次の個所を参照してください。

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14　パフォーマンスチューニングのための機能」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1　コネクションプーリング」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.2　コネクションプーリングで使用できる機能」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.3　コネクションシェアリング・アソシエーション」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.4　ステートメントプーリング」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.5　ライトトランザクション」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.6　インプロセストランザクションサービス」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.7　DataSourceオブジェクトのキャッシング」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.8　DB Connectorのコンテナ管理でのサインオンの最適化」

このマニュアルの「4.5　受信バッファのプーリングの設定」

ここでは，ベーシックモードで特有の内容についてだけ説明します。

コネクションプーリング

J2EEサーバでは，JDBCデータソースごとにプールを作成して管理します。JDBCデータソースに最大値，最小値，増加，しきい値などを指定することで，プーリングの動作をカスタマイズできます。

J2EEコンポーネントがJDBCデータソースからJDBCコネクションを取得したとき，最小値分のJDBCコネクションが生成されプーリングされます。また，JDBCコネクションは最大値分までプーリングされます。プール中の未使用JDBCコネクションの数がしきい値分以下になったとき，新たに増加分のJDBCコネクションを取得してプールに補充します。プーリングされるJDBCコネクションの数は，J2EEコンポーネントからのデータベースアクセス量に応じて，最大値と最小値の間になります。

なお，JDBCコネクションプーリングは，同一JDBCデータソースに対して，引数なしのgetConnection()メソッドと引数ありのgetConnection(java.lang.String username,java.lang.String password)メソッド間では，別のプールになります。

また，引数ありのgetConnection(java.lang.String username,java.lang.String password)メソッド間でusernameが異なる場合，別のプールになります。なお，J2EEサーバ間のJDBCコネクションプーリングは，サポートしていません。

コネクションシェアリング

1.4モードとの機能差はありません。

DataSourceオブジェクトのキャッシング

1.4モードとの機能差はありません。

(6)　フォールトトレランスのための機能

ベーシックモードでデータベースに接続する場合に，フォールトトレランスのために使用できる機能を，次の表に示します。

表2-24　ベーシックモードでデータベースに接続する場合に使用できるフォールトトレランスのための機能

機能 | 使用可否 | 機能差※
コネクションの障害検知 | × | －
コネクション枯渇時のコネクション取得待ち | × | －
コネクションの取得リトライ | ○ | なし
コネクションプールの情報表示 | ○ | あり
コネクションプールのクリア | ○ | なし
コネクションの自動クローズ | ○ | あり
コネクションの強制クローズ | ○ | あり
コネクションスイーパ | ○ | あり
トランザクションタイムアウト | ○ | あり
トランザクションリカバリ | × | －
障害調査用SQLの出力 | × | －
クラスタコネクションプール | × | －

（凡例）○：使用できる　×：使用できない　－：該当しない

注※　1.4モードとの機能差です。

以降，ベーシックモードで使用できるフォールトトレランスのための機能について説明します。

なお，それぞれの機能の概要および目的については，次の個所を参照してください。

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15　フォールトトレランスのための機能」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.1　コネクションの障害検知」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.2　コネクション枯渇時のコネクション取得待ち」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.3　コネクションの取得リトライ」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.4　コネクションプールの情報表示」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.5　コネクションプールのクリア」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.6　コネクションの自動クローズ」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.7　コネクションスイーパ」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.8　トランザクションタイムアウトとステートメントキャンセル」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.9　トランザクションリカバリ」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.10　障害調査用SQLの出力」

マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.17　クラスタコネクションプール機能」

ここでは，ベーシックモードで特有の内容についてだけ説明します。

コネクションの取得リトライ

1.4モードとの機能差はありません。マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.3　コネクションの取得リトライ」を参照してください。

コネクションプールの情報表示

コネクションプール内のコネクションの情報を，コマンドを使用して表示できます。コネクションプール情報の表示には，cjclosecnコマンドを使用します。コマンドの詳細については，「cjclosecn（J2EEサーバのコネクションクローズまたはコネクションの状態表示）」を参照してください。

コネクションプールのクリア

1.4モードとの機能差はありません。マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.5　コネクションプールのクリア」を参照してください。

コネクションの強制クローズ

アプリケーションのConnection.closeメソッドの記述もれによってクローズされないコネクションは，コネクションプール内で使用中状態のまま再利用されません。これらのコネクションは，cjclosecnコマンドを使用して強制クローズできます。コマンドの詳細については「cjclosecn（J2EEサーバのコネクションクローズまたはコネクションの状態表示）」を参照してください。

なお，ユーザスレッドでは使用できません。

コネクションの自動クローズ

EJBコンテナによるコネクション自動クローズだけが有効になります。また，対象となるリソースは，データソースだけです。

コネクションスイーパ

一定間隔でコネクションプールを監視し，一定時間使用していない未使用コネクションを破棄します。ベーシックモードでのコネクションスイーパの動作については，「2.11.5　コネクションプーリングとコネクションスイーパの動作」を参照してください。

トランザクションタイムアウト

ローカル呼び出し最適化機能を使用するかどうかによって，トランザクションタイムアウト後のJTAおよびJDBCインタフェースにアクセスできない期間が異なります。
ローカル呼び出し最適化機能を使用しない場合，該当するトランザクションを含むリモートインタフェースのメソッドが終了すればアクセスできます。ローカル呼び出し最適化機能を使用する場合は，リクエスト終了するまでアクセスできません。

トランザクションタイムアウトが発生すると，トランザクションの状態がjavax.transaction.Status.STATUS_NO_TRANSACTIONになるため，Required属性，Supports属性，またはNever属性のビジネスメソッドが呼び出されます。トランザクションタイムアウト後にビジネスメソッドが呼び出されないようにするには，Mandatory属性を使用してください。ただし，ローカル呼び出し最適化機能を使用する場合は，トランザクションタイムアウト後に新しいトランザクションを開始できないので，タイムアウト後にRequired属性またはRequiresNew属性のビジネスメソッドは呼び出されません。

ローカル呼び出し最適化機能を使用して，タイムアウトの発生後にStateful Session Bean（BMT）を呼び出した場合，またはリモートインタフェースのメソッド呼び出し中（トランザクションがサスペンド中）にタイムアウトが発生した場合，J2EEアプリケーションにタイムアウトの発生を通知しません。
J2EEアプリケーションでこの内容を考慮していない場合，意図しないDBMSのアクセスによる，データの不整合などの問題が発生するおそれがあります。この問題を回避するため，ローカル呼び出し最適化機能を使用しないか，または次の対策を行ってください。
JTA，またはJDBCインタフェースのアクセスで例外が発生した場合，およびリモートインタフェースのメソッド呼び出しでRemoteException例外が発生した場合は，リクエストを終了させます。また，Stateful Session Bean（BMT）を使用する場合は，そのメソッド内で，JTA，JDBCインタフェースに対して，必ずアクセスします。

(7)　データソースを使用するときの注意

java.sql.Connectionを，複数のトランザクション間で再利用することはできません。java.sql.Connectionをトランザクション内で利用する場合には，トランザクションごとに，javax.sql.DataSourceからgetConnection()メソッドを使用してコネクションを取得してください。

java.sql.ConnectionのようなJDBCインタフェースのAPIでSQLException例外が発生すると，コネクションクローズで該当コネクションの接続が維持されていても，コネクションプールに戻さないで破棄します。その結果，余分なコネクション生成が発生して性能に影響を与えることがあります。

2.4.4　リソースへの接続テスト

データソースのプロパティ設定後，設定した内容が正しいかどうか，検証することができます。ここでは，接続テストでの検証項目と，接続テストの前提条件について説明します。

なお，接続テストの実行手順や，データソースの設定については，「2.10　ベーシックモードの設定」を参照してください。

接続テストで検証される内容は，接続するリソースごとに異なります。

ベーシックモードの場合に，リソースごとの接続テストで検証できる内容を，次の表に示します。

表2-25　接続テストでの検証内容

リソースの種類
接続方法
接続テストでの検証内容

データベース
データソース

Driverを使用していること

DABroker Libraryの設定が正しいこと

データベースとの接続を確立できること

SMTPサーバ
メールコンフィグレーション

SMTPサーバへの接続を確立できること

2.4.5　JTAによるトランザクション実装時の注意事項

JTAを使用してトランザクションを実装したプログラムは，J2EEサーバの動作モードによって異なる動作をする場合があります。ベーシックモードの場合のプログラムの処理内容，および動作を次に示します。1.4モードの場合については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.4.11　JTAによるトランザクション実装時の注意事項」を参照してください。

表2-26　ベーシックモードの場合のJTAの動作

処理の内容
動作

EJB呼び出しで，java.rmi.RemoteExceptionまたはjava.rmi.RemoteExceptionを継承した例外が発生した場合

CORBAのシステム例外が発生した場合

クライアント側のトランザクションは，ロールバックにマークされません。

トランザクションタイムアウト発生後に，javax.transaction.UserTransaction.commitメソッドを呼び出した場合
java.lang.IllegalStateException例外が発生します。

トランザクションタイムアウト発生後にjavax.transaction.UserTransaction.rollbackメソッドを呼び出した場合
java.lang.IllegalStateException例外が発生します。

トランザクションタイムアウト後のjavax.transaction.UserTransaction.getStatusメソッドの戻り値
javax.transaction.Status.STATUS_NO_TRANSACTIONが返されます。

javax.ejb.SessionSynchronizationを実装したEJBのbeforeCompletionメソッド，またはafterCompletionメソッドからのEJB呼び出し
呼び出せません。呼び出すと，javax.transaction.SystemException例外が発生します。

2.5　プロセスの依存関係とプロセスの再起動方法

ベーシックモードの場合，プロセスの依存関係とプロセスの再起動方法がJ2EEサーバモードの場合と異なります。プロセスの依存関係とプロセスの再起動方法を次に示します。

＜この節の構成＞

2.5.1　ベーシックモードの場合のプロセスの依存関係

2.5.2　ベーシックモードの場合のプロセスの再起動方法

2.5.1　ベーシックモードの場合のプロセスの依存関係

ベーシックモードの場合のプロセスの依存関係を次の表に示します。

表2-27　ベーシックモードの場合のプロセスの依存関係

プロセスの種類
前提プロセス

パフォーマンストレーサ
－

スマートエージェント※1
－

CTMドメインマネジャ※1
スマートエージェント

CORBAネーミングサービス
－

CTMデーモン※1

パフォーマンストレーサ

スマートエージェント

CTMドメインマネジャ

ネーミングサービス

SFOサーバ

パフォーマンストレーサ

J2EEサーバ

パフォーマンストレーサ

スマートエージェント※2

CTMドメインマネジャ※2

CORBAネーミングサービス

CTMデーモン※2

Webサーバ
－

（凡例）

－：前提プロセスがない

注※1

CTMを使用する場合に起動するプロセスです。

注※2

CTMを使用する場合に前提となるプロセスです。

2.5.2　ベーシックモードの場合のプロセスの再起動方法

ベーシックモードの場合のシステムでプロセスが異常終了時のプロセスの再起動方法について説明します。

なお，CTMに関連するプロセスが異常終了して再起動できない場合は，次の手順で対処してください。

ベーシックモードの場合のプロセスの再起動（回復）の手順を次に示します。

表2-28　ベーシックモードの場合の再起動の手順

異常プロセス
開始コマンド
再起動（回復）手順

データベースサーバ
－
DBサーバを再起動してください。

パフォーマンストレーサ
cprfstart
パフォーマンストレーサを再起動してください。

スマートエージェント※1
osagent
スマートエージェントを再起動してください。

CTMドメインマネジャ※1
ctmdmstart
CTMドメインマネジャを再起動してください。

CORBAネーミングサービス
nameserv
次に示す手順で対処してください。なお，CTMを使用しない場合，手順1および手順4は不要です。

CTMデーモンの強制停止

J2EEサーバの強制停止

CORBAネーミングサービスの再起動

CTMデーモンの再起動

J2EEサーバ再起動

CTMデーモン※1
ctmstart
次に示す手順で対処してください。

CORBAネーミングサービスの強制停止

J2EEサーバの強制停止

CORBAネーミングサービスの再起動

CTMデーモンの再起動

J2EEサーバの再起動

CTMレギュレータ
－
CTMデーモンによって自動再起動されるため，再起動は不要です。

SFOサーバ※2
cjstartsv
SFOサーバを再起動してください。

J2EEサーバ
cjstartsv
J2EEサーバを再起動してください。

Webサーバ
－
Webサーバを再起動してください。

（凡例）

－：使用する製品によって開始コマンドが異なる，または該当する開始コマンドがない

注※1

CTMを使用する場合に起動するプロセスです。

注※2

メモリセッションフェイルオーバ機能を使用する場合に起動するプロセスです。

2.6　データソースからDB Connectorへの移行方法

以前のバージョンで，データソースを使用していた場合，J2EEサーバの移行コマンドがデータソースをDB Connectorへ変換します。変換後にコマンドで取得したConnector属性ファイルと旧バージョンでコマンドを使用して取得したデータソース属性ファイルの対応関係を表に示します。表2-29から表2-31は，変換後にcjgetrarpropコマンドで取得したConnector属性ファイルの値を示します。表2-29から表2-31の「値」の列の括弧付きの数字は，表2-32または表2-33の括弧付きの数字に指定されていた値が設定されることを意味します。「デフォルト」はデフォルト値が設定されることを意味します。

表2-29　変換後にcjgetrarpropコマンドを使用して取得したConnector属性ファイル

タグ名 | 値
<hitachi-connector-property> | －
| <description> | 表2-32の(1)
| <display-name> | 表2-32の(2)
| <icon> | －
|  | <small-icon> | デフォルト
|  | <large-icon> | デフォルト
| <vender-name> | デフォルト
| <spec-version> | デフォルト
| <eis-type> | デフォルト
| <version> | デフォルト
| <license> | －
|  | <license-required> | デフォルト
| <resourceadapter> | －
|  | <managedconnectionfactory-class> | デフォルト
|  | <connectionfactory-interface> | デフォルト
|  | <connectionfactory-impl-class> | デフォルト
|  | <connection-interface> | デフォルト
|  | <connection-impl-class> | デフォルト
|  | <transaction-support> | デフォルト
|  | <config-property> | －
|  |  | <description> | デフォルト
|  |  | <config-property-name> | 指定されるプロパティについては表2-30参照
|  |  | <config-property-type> | デフォルト
|  |  | <config-property-value> | 指定される値については表2-30参照
|  | <reauthentication-support> | －
|  | <security-permission> | －
|  |  | <description> | デフォルト
|  |  | <security-permission-spec> | デフォルト
| <runtime> | －
|  | <property> | －
|  |  | <property-name> | 指定されるプロパティについては表2-31参照
|  |  | <property-type> | デフォルト
|  |  | <property-value> | 指定される値については表2-31参照
|  |  | <property-default-value> | デフォルト

（凡例）－：該当しない

表2-30　Connector属性ファイルの<config-property>タグに指定されるプロパティと値

<config-property-name>タグに指定されるプロパティ | <config-property-value>タグに指定される値
loginTimeout | 表2-33の(12)
networkProtocol | 表2-33の(13)
serverName | 表2-33の(14)
portNumber | 表2-33の(15)
databaseName | 表2-33の(16)
description | 表2-33の(17)
DBHostName | 表2-33の(18)
DBEnv | 表2-33の(19)
encodLang | 表2-33の(20)
JDBC_IF_TRC | 表2-33の(21)
SV_EVENT_TRC | 表2-33の(22)
TRC_NO | 表2-33の(23)
uapName | 表2-33の(24)
bufSize | 表2-33の(25)
rowSize | 表2-33の(26)
OSAuthorize | 表2-33の(27)
HiRDBCursorMode | 表2-33の(28)
blockUpdate | 表2-33の(29)
executeDirectMode | 表2-33の(30)
SQLWarningIgnore | 表2-33の(31)
LONGVARBINARY_Access | 表2-33の(32)
XAOpenString | 表2-33の(33)
XACloseString | 表2-33の(34)
RMID | 表2-33の(35)
XAThreadMode | 表2-33の(36)
XALocalCommitMode | 表2-33の(37)
PreparedStatementPoolSize | 0
CallableStatementPoolSize | 0
CancelStatement | false
logLevel | デフォルト

表2-31　Connector属性ファイルの<property>タグに指定されるプロパティと値

<property-name>タグに指定されるプロパティ | <property-value>タグに指定される値
MinPoolSize | 表2-32の(3)
MaxPoolSize | 表2-32の(4)
LogEnabled | デフォルト
User | 表2-33の(38)
Password | 表2-33の(39)
ValidationType | デフォルト
ValidationInterval | デフォルト
RetryCount | 表2-32の(10)
RetryInterval | 表2-32の(11)
ConnectionTimeout | ejbserver.connectionpool.connection.timeoutに値が指定されている場合はその値。指定されていない場合はデフォルト。
SweeperInterval | ejbserver.connectionpool.sweeper.intervalに値が指定されている場合はその値。指定されていない場合はデフォルト。
RequestQueueEnable | false
RequestQueueTimeout | デフォルト
WatchEnabled | デフォルト
WatchInterval | デフォルト
WatchThreshold | デフォルト
WatchWriteFileEnabled | デフォルト

表2-32　旧バージョンでcjgetrespropコマンドによって取得したデータソース属性ファイル

タグ名 | 項目番号
<hitachi-datasource-property> | －
| <description> | (1)
| <display-name> | (2)
| <property> | －
|  | <name> | 指定されるプロパティについては表2-33参照
|  | <XADataSource> | 指定される値については表2-33参照
| <PoolConfiguration> | －
|  | <MinimumSize> | (3)
|  | <MaximumSize> | (4)
|  | <Threshold> | (5)
|  | <GrowthIncrement> | (6)
|  | <WaitTimeout> | (7)
|  | <ConnectionTimeout> | (8)
|  | <SweeperInterval> | (9)
|  | <RetryCount> | (10)
|  | <RetryInterval> | (11)

（凡例）－：該当しない

表2-33　データソース属性ファイルの<property>タグに指定されるプロパティ

<name>タグに指定されるプロパティ | <XADataSource>タグに指定される値
LoginTimeout | (12)
NetworkProtocol | (13)
ServerName | (14)
PortNumber | (15)
DatabaseName | (16)
Description | (17)
DBHostName | (18)
DBEnv | (19)
EncodLang | (20)
JDBC_IF_TRC | (21)
SV_EVENT_TRC | (22)
TRC_NO | (23)
UapName | (24)
BufSize | (25)
RowSize | (26)
OSAuthorize | (27)
HiRDBCursorMode | (28)
BlockUpdate | (29)
ExecuteDirectMode | (30)
SQLWarningIgnore | (31)
LONGVARBINARY_Access | (32)
XAOpenString | (33)
XACloseString | (34)
RMID | (35)
XAThreadMode | (36)
XALocalCommitMode | (37)
User | (38)
Password | (39)

なお，移行コマンドでデータソースからDB Connectorへ変換するときに，すでに同一表示名称（display-name）のDB Connector，またはリソースアダプタが存在した場合には，表示名称の最後に連番を付与し，表示名称を一意にします。DB Connectorによる接続については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.6.1　DB Connectorによる接続の概要」を参照してください。

2.7　パフォーマンスチューニング

ここでは，ベーシックモードで使用できるパフォーマンスチューニングについて説明します。

＜この節の構成＞

2.7.1　チューニング項目

2.7.2　データベースへのアクセス方法を最適化するためのチューニングパラメタ

2.7.1　チューニング項目

ベーシックモードで使用できるパフォーマンスチューニングを次の表に示します。

表2-34　ベーシックモードで使用できるパフォーマンスチューニング

チューニング項目 | 使用可否 | 参照先※1
同時実行数の最適化 | リクエスト処理スレッド数（インプロセスHTTPサーバ使用時） | ○ | 8.3.3
Webアプリケーションの同時実行数 | URLグループ単位 | ○ | 8.3.4
Webアプリケーション単位 | ○
Webコンテナ単位 | ○
Enterprise Beanの同時実行数 | Stateless Session Beanの同時実行数 | ○ | 8.3.5
Stateful Session Beanの同時実行数 | ○
Entity Beanの同時実行数 | ○
Message-driven Beanの同時実行数 | ○
CTMで制御する同時実行数 | ○ | 8.3.6
Enterprise Beanの呼び出し方法の最適化 | ローカルインタフェースの使用 | ○ | 8.4.1
リモートインタフェースのローカル呼び出し機能の使用 | ○ | 8.4.2
リモートインタフェースの参照渡し機能の使用 | ○ | 8.4.3
データベースアクセス方法の最適化 | コネクションプーリング | ○ | 8.5.1
ステートメントプーリング | × | －
タイムアウトの設定 | Webフロントシステムでのタイムアウト | Webサーバ側で設定するクライアントからのリクエスト受信，およびクライアントへのデータ送信のタイムアウト | ○ | 8.6.2
リダイレクタ側で設定するWebコンテナへのデータ送信のタイムアウト | ○
リダイレクタ側で設定するWebコンテナからのデータ受信のタイムアウト | ○
Webコンテナ側で設定するリダイレクタからのデータ受信のタイムアウト | ○
Webコンテナ側で設定するリダイレクタへのデータ受信のタイムアウト | ○
バックシステムでのタイムアウト | EJBクライアント側で設定するEnterprise Beanのリモート呼び出し（RMI-IIOP通信）とJNDIによるネーミングサービス呼び出しのタイムアウト | ○ | 8.6.3
EJBクライアント側で設定するCTMからEnterprise Bean呼び出しのタイムアウト | ○
EJBコンテナ側で設定するデータベースのトランザクションタイムアウト（DB Connectorを使用した場合） | ○※2 | 8.6.4
データベースのタイムアウト | ○ | 8.6.6
J2EEアプリケーションのメソッドタイムアウト | ○ | 8.6.7
Webアプリケーションの動作の最適化 | 静的コンテンツとWebアプリケーションの配置の切り分け | ○ | 8.7.1
静的コンテンツのキャッシュ | ○ | 8.7.2
リダイレクタによるリクエストの振り分け | ○ | 8.7.3
CTMの動作の最適化 | CTMドメインマネジャおよびCTMデーモンの稼働状態を監視する間隔の設定 | ○ | 8.8.1
負荷状況監視間隔の設定 | ○ | 8.8.2
CTMデーモンのタイムアウト閉塞の設定 | ○ | 8.8.3
CTMで振り分けるリクエストの優先順位の設定 | ○ | 8.8.4
そのほかの項目のチューニング | Persistent Connectionについてのチューニング | ○ | 8.9

（凡例）○：使用できる。　×：使用できない。　－：該当しない。

注※1

マニュアル「アプリケーションサーバ システム設計ガイド」の節または項を参照してください。

注※2

ベーシックモードの場合，CMTを使用するときのトランザクションのタイムアウトは，Enterprise Bean，インタフェースまたはメソッドの属性では設定できません。ベーシックモードの場合，CMTを使用するときのトランザクションのタイムアウトは，usrconf.propertiesで定義してください。

これらのチューニング項目のうち，ベーシックモードで使用できる機能や，チューニングパラメタの異なるものについて説明します。

2.7.2　データベースへのアクセス方法を最適化するためのチューニングパラメタ

ベーシックモードの場合に，コネクションプーリングで使用できる機能を次の表に示します。なお，コネクションプーリングで使用できる各機能の設計時の指針については，マニュアル「アプリケーションサーバ システム設計ガイド」の「8.5.1　コネクションプーリングを使用する」を参照してください。

表2-35　コネクションプーリングで使用できる機能（ベーシックモードの場合）

機能 | 使用可否
プールするコネクションの最大値と最小値を指定する | ○
プール内のコネクションを検査して無効なコネクションを破棄する | ○
コネクション取得失敗時にリトライする | △
スイーパによって使わないコネクションをプールから削除する※ | ○
コネクションウォーミングアップによってあらかじめコネクションをプールしておく | ×
コネクション枯渇時のコネクション取得要求を取得待ちキューに入れる | ×
コネクションプール内の不要なコネクションを段階的に減少させる | ×
コネクションプールをクラスタ化する | ×
コネクションプールの未使用コネクションがしきい値以下になったとき，コネクションを追加する | ○
コネクション取得待ち時間を指定する | ○

（凡例）○：使用できる。　△：指定しても無視される。　×：使用できない。

注※

ただし，スイーパを実行する処理は負荷が高いため，性能に影響が出ます。このため，スイーパを使用する場合は，自動削除の間隔を1時間以上の値にすることをお勧めします。

次に，ベーシックモードの場合にコネクションプーリングをチューニングするパラメタについて説明します。これらのチューニングパラメタは，データソース単位に設定します。

チューニングパラメタについて，次の表に示します。これらは，サーバ管理コマンドのCUIで設定します。CUIを使用する場合は，属性ファイルを編集してください。

表2-36　ベーシックモードの場合のコネクションプーリングのチューニングパラメタ

設定項目 | 設定方法 | 設定個所
コネクションプールにプールするコネクションの最小値 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<MinimumSize>タグ
コネクションプールにプールするコネクションの最大値 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<MaximumSize>タグ
コネクションの生成時刻からコネクションを自動破棄するかを判定するまでの時間 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<ConnectionTimeout>タグ
コネクションの自動破棄（コネクションスイーパ）が動作する間隔 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<SweeperInterval>タグ
コネクションプールにコネクションを追加するためのしきい値 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<Threshold>タグ
コネクションプールにコネクションを追加する場合の追加数 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<GrowthIncrement>タグ
コネクション取得待ち時間 | CUI（cjsetresprop） | データソース属性ファイルの<PoolConfiguration>タグ下の<WaitTimeout>タグ

2.8　データベースとアプリケーション間の文字コード変換（ベーシックモード）

アプリケーションからデータベースに文字データを格納するときには，Unicodeからデータベースに設定されている文字コードに変換して格納する必要があります。詳細については「4.4 データベースとアプリケーション間の文字コードの変換」を参照してください。

2.9　下位互換用のクラスローダ構成

デフォルトのクラスローダ構成と，アプリケーションサーバ Version 5（05-01）以前のクラスローダ構成では内容が異なります。このため，下位互換用にクラスローダ構成を変更するためのオプションがあります。アプリケーションサーバ Version 5（05-01）以前のバージョンからアップグレードインストールした場合は，自動的に下位互換用のクラスローダ構成になります。

下位互換用のクラスローダ構成に変更するには，J2EEサーバ用ユーザ定義ファイル（<Application Serverのインストールディレクトリ>¥CC¥server¥usrconf¥ejb¥<サーバ名称>¥usrconf.properties）に次の設定をします。

動作モードをベーシックモードに設定

ejbserver.server.j2ee.feature=1.3basic

ローカル呼び出し最適化機能の適用範囲をなしに設定

ejbserver.rmi.localinvocation.scope=none

下位互換用のクラスローダ構成を次に示します。

図2-1　下位互換用のクラスローダ構成

各クラスローダの内容を次に示します。

システムクラスローダ
Application Serverのコンポーネントが提供するクラスをロードします。

コネクタクラスローダ
下位互換用クラスローダ構成のときには，リソースアダプタを使用することはできないため，このクラスローダでは何もロードされません。

JavaBeansクラスローダ
JavaBeansリソースのクラスをロードします。

アプリケーションクラスローダ
アプリケーション内のEJB-JARおよびライブラリJARに含まれるクラスをロードします。アプリケーションごとに存在します。

Webアプリケーションクラスローダ
J2EEアプリケーション内のWARに含まれるクラスをロードします。WARごとに存在します。WARからJ2EEアプリケーション内のEJB呼び出しができるように，スタブ関連のクラスもロードします。

JSPクラスローダ
JSPファイルおよびタグファイルをコンパイルしたときに生成されたクラスをロードします。JSPごとに存在します。

2.10　ベーシックモードの設定

ここでは，ベーシックモードの設定，データソースの設定について説明します。

動作モードは，usrconf.propertiesのejbserver.server.j2ee.featureキーで変更できます。ベーシックモードを使用する場合には，「ejbserver.server.j2ee.feature=1.3basic」を指定します。

なお，旧バージョンでベーシックモードを使用していた場合，アプリケーションサーバをアップグレードインストールしたときには，J2EEサーバの動作モードはベーシックモードになっています。新規インストールした場合には，J2EEサーバの動作モードは1.4モードになっています。

＜この節の構成＞

2.10.1　データソースの設定

2.10.2　データベースと接続するための設定（データソースを使用する場合）

2.10.1　データソースの設定

ベーシックモードを使用する場合，データソースを使用してデータベースに接続できます。データソースを利用して接続できるデータベースには，HiRDB，Oracle9iがあります。なお，データソースを使用する場合，データベースとの接続にはDABroker Libraryを使用します。また，使用できるトランザクションの種類は，ローカルトランザクションだけとなります。

注意

データソースもDB Connectorと同様の使用方法でJ2EEアプリケーションから利用できますが，データベース接続には1.4モードでのDB Connectorの使用をお勧めします。DB Connectorを利用したデータベース接続は，データソースを利用したデータベース接続と比較して，トランザクション管理のパフォーマンスを向上できます。

また，データベース接続にデータソースを使用できるのは，J2EEサーバの動作モードがベーシックモードの場合だけです。1.4モードでデータベースに接続する場合には，DB Connectorを使用してください。

アプリケーションサーバでは，データソースからDB Connectorへの移行をサポートしています。データソースからDB Connectorへの移行方法については，「2.6　データソースからDB Connectorへの移行方法」を参照してください。

運用管理ポータルでシステムを構築する場合と，ファイル編集とコマンド実行でシステムを構築する場合で，データソースの設定方法が異なります。それぞれの設定方法について説明します。

＜この項の構成＞

(1)　運用管理ポータルでシステムを構築する場合

(2)　ファイル編集とコマンド実行でシステムを構築する場合

(1)　運用管理ポータルでシステムを構築する場合

運用管理ポータルでは，開発環境（サーバ管理コマンドが動作する環境）で設定したデータソースを，運用環境（データソースを使用する環境）に移す作業をサポートしています。開発環境でサーバ管理コマンドを使用してデータソースのプロパティの設定，接続の確認などを実施したあとで，運用管理ポータルを使用して運用環境にデータソースをインポートします。

データソースの設定の流れを次の図に示します。

図2-2　データソースの設定の流れ（運用管理ポータルでのシステム構築）

図中の1.～5.について説明します。なお，ここでは，開発環境と運用環境は，同じホストにある別々のJ2EEサーバ上にあると仮定して説明します。

開発環境で，サーバ管理コマンドを使用してデータソースをインポートします。
cjimportresコマンドを使用して，データソースをインポートします。

開発環境で，サーバ管理コマンドを使用してデータソースのプロパティを定義します。
cjgetrespropコマンドでデータソース属性ファイルを取得し，ファイル編集後に，cjsetrespropコマンドで編集内容を反映させます。
なお，使用するデータベースの種類によって，プロパティの定義内容が異なります。

開発環境で，サーバ管理コマンドを使用してデータソースの接続テストを実施します。
cjtestresコマンドを使用して，データソースの接続テストを実施します。

運用環境で設定済みのデータソースから，サーバ管理コマンドを使用してデータソース属性ファイルを取得します。
cjgetrespropコマンドを使用して，データソース属性ファイルを取得します。

参考

同一のデータソースは，同一のJ2EEサーバにインポートできません。開発環境のJ2EEサーバと運用環境のJ2EEサーバが同一の場合は，運用環境のJ2EEサーバにデータソースをインポートする前に，開発環境のJ2EEサーバにあるデータソースを削除してください。

開発環境のホストと運用環境のホストが異なる場合には，開発環境のホストにあるデータソースを運用環境のホストに移動してください。
開発環境のホストにあるデータソースからcjgetrespropコマンドでデータソース属性ファイルを取得し，データソース設定ファイルを用意します。データソース設定ファイルの格納場所を次に示します。
Windowsの場合
　　<製品のインストールディレクトリ>¥CC¥admin¥templates
UNIXの場合
　　/opt/Cosminexus/CC/admin/templates
取得および用意したデータソース属性ファイルとデータソース設定ファイルを，運用環境のホスト（Management Server稼働ホスト）にコピーします。

運用管理ポータルの「論理サーバのアプリケーション管理」で，運用環境のJ2EEサーバにデータソースをインポートします。
［データソースのインポート］画面で，データソースをインポートします。なお，インポート時に指定するファイルは，JDBCドライバファイル，データソース属性ファイル，およびデータソース設定ファイルです。JDBCドライバファイルはJDBCドライバのクラスライブラリファイル，属性ファイルと設定ファイルはリソースのプロパティや使用するドライバのクラスなどの情報を定義したファイルです。

(2)　ファイル編集とコマンド実行でシステムを構築する場合

ファイル編集とコマンド実行でシステムを構築する場合，サーバ管理コマンドを使用してデータソースのプロパティの設定，接続の確認などを実施してください。

データソースの設定手順を次の図に示します。

図2-3　データソースの設定手順（ファイル編集とコマンド実行でのシステム構築）

図中の1.～3.について説明します。

サーバ管理コマンドを使用してデータソースをインポートします。
cjimportresコマンドを使用して，データソースをインポートします。

サーバ管理コマンドを使用してデータソースのプロパティを定義します。
cjgetrespropコマンドでデータソース属性ファイルを取得し，ファイル編集後に，cjsetrespropコマンドで編集内容を反映させます。
なお，使用するデータベースの種類によって，プロパティの定義内容が異なります。

サーバ管理コマンドを使用してデータソースの接続テストを実施します。
cjtestresコマンドを使用して，データソースの接続テストを実施します。

参考

次のような場合，データソースをインポートすることで，効率良くデータソースを設定できます。

開発環境で設定したデータソースを，運用環境にインポートして使用する場合

運用環境ですでに動いているデータソースを，増設したJ2EEサーバにインポートして使用する場合

2.10.2　データベースと接続するための設定（データソースを使用する場合）

ここでは，ベーシックモードでのリソース接続について説明します。

データベースと接続するために必要なデータソースの設定をします。データソースの設定は，サーバ管理コマンドで実行します。

データソースを使用してデータベースと接続するには，J2EEサーバをベーシックモードで動作させる必要があります。

データソースの設定の流れを次に示します。

DABroker Libraryの環境設定をします。

データソースをインポートします。

プロパティを定義します。

接続を確認します。

インポートしたデータソースは，削除およびコピーができます。

＜この項の構成＞

(1)　DABroker Libraryの環境設定

(2)　データソースのインポート

(3)　データソースのプロパティ定義

(4)　データソースの接続テスト

(1)　DABroker Libraryの環境設定

DABroker Libraryは，DABroker Libraryの環境設定ユティリティ（Windowsの場合），またはDABroker Library動作環境定義ファイル（UNIXの場合）で設定します。設定方法については，「4.2　DABroker Libraryを使用したデータベース接続の概要」を参照してください。

(2)　データソースのインポート

データソースまたはJDBCドライバをJ2EEサーバにインポートします。

次に示すコマンドを実行してデータソースをインポートします。

実行形式

cjimportres ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type datasource -resname ＜データソースの表示名＞ -c ＜データソース設定ファイルパス＞ -f ＜JDBCドライバファイルパス＞

実行例

cjimportres MyServer -type datasource -resname JdbcDbpsv -c JdbcDbpsvConf.xml -f JdbcDbpsv.jar

cjimportresコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjimportres（リソースのインポート）」を参照してください。

注意事項

JDBCのデータソースとしてインポートできるDABroker LibraryのJARファイルは，JdbcDbpsv.jarだけです。JdbcDbpsvEX.jarはサポートされていません。また，JdbcDbpsv.jarは，「＜Application Serverのインストールディレクトリ＞¥DABJ」ディレクトリ（Windowsの場合）または「/opt/Cosminexus/DABJ」ディレクトリ（UNIXの場合）に配置されている必要があります。

データソースの表示名には，すでにあるデータソースの名前やメールサーバ構成情報の名前を指定しないでください。

インポート時に指定したJARファイル名は，作業ディレクトリ中のディレクトリ名として用いられます。作業ディレクトリのパス長がプラットフォームの上限に達しないようにJARファイル名を指定してください。作業ディレクトリのパス長の見積もりについては，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「付録C.1(2)　作業ディレクトリのパス長の見積もり式」を参照してください。

データソースを削除するまで，J2EEサーバ用ユーザプロパティファイル（usrconf.properties）のejbserver.http.portキーの値は変更しないでください。変更した場合は，データソースを再作成してください。

(3)　データソースのプロパティ定義

データソースのプロパティを定義します。プロパティの設定手順については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.5　属性ファイルによるプロパティの設定」を参照してください。

(a)　編集する属性ファイル

データソース属性ファイル

(b)　編集する属性ファイルの取得と属性の設定

●属性ファイルの取得

次に示すコマンドを実行して，データソースのデータソース属性ファイルを取得します。

実行形式

cjgetresprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type datasource -resname ＜データソースの表示名＞ -c ＜属性ファイルパス＞

実行例

cjgetresprop MyServer -type datasource -resname JdbcDbpsv -c JdbcDbpsvProp.xml

●属性の設定

次に示すコマンドを実行して，データソース属性ファイルの値を反映します。

実行形式

cjsetresprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type datasource -resname ＜データソースの表示名＞ -c ＜属性ファイルパス＞

実行例

cjsetresprop MyServer -type datasource -resname JdbcDbpsv -c JdbcDbpsvProp.xml

(c)　編集する属性設定項目

データソースのプロパティ設定項目を次に示します。

データソースの一般情報

実行時プロパティ

コネクションプーリング情報

●データソースの一般情報

データソースの一般情報の設定項目を次に示します。

項目 | 対応するタグ
データソースの説明 | <description>
データソース名 | <display-name>

●実行時プロパティ

データソースの実行時プロパティ（<property>タグ）の設定項目を次に示します。

項目 | 対応するタグ
プロパティ名 | <name>
XADataSourceインタフェースのプロパティ値 | <XADataSource>

注　データソースについて設定する項目は，インポートしたデータベースの種類によって異なります。データベースに固有の項目については，そのデータベースのマニュアルを参照してください。

定義するプロパティの数だけ，<property>タグの設定を繰り返してください。

プロパティの設定項目については，「2.11.4　データソース属性ファイル」を参照してください。

●コネクションプーリング情報

プーリングとはデータソースとデータベースのコネクションをあらかじめ確立しておき，接続時のオーバーヘッドを減らす手法です。データソースがデータベースコネクションプーリングをサポートする場合，データベースコネクションプールの管理方法を指定できます。コネクションプーリング情報は，プールにあらかじめどのくらいのコネクションを用意しておくのか，また，プールにある不要なコネクションを削除するタイミングなどを指定します。

コネクション取得時にエラーとなった場合に，アプリケーションにエラーを返さないで，繰り返し取得を試みることができます。プーリングしてあるすべてのコネクションが使用中で一時的に取得失敗になる場合など，本機能によってアプリケーションにエラーを返すことなくコネクションを再取得できます。

データソースのコネクションプーリング情報，およびコネクション再取得情報（<PoolConfiguration>タグ）の設定項目を次に示します。

項目
説明
対応するタグ

コネクションプールにプールするコネクションの最小値
データベースコネクションプールに割り当てるデータベースコネクションの最小数を指定します。この最小値に達すると，データベースコネクションはそれ以上削除されません。
定常状態の同時コネクション数を指定してください。
<MinimumSize>

コネクションプールにプールするコネクションの最大値
データベースコネクションプールで使用できるデータベースコネクションの最大数を指定します。この最大値に達すると，それ以上のデータベースコネクションは追加されません。-1を指定すると，無制限にコネクションを使用できます。この場合，データベースで許容される最大コネクション数によって最大数は制限されます。
同時コネクション数の最大値を指定してください。
<MaximumSize>

コネクションプールにプールするコネクションのしきい値
データベースコネクションプールにデータベースコネクションを追加するしきい値を指定します。つまり，プールにある未使用コネクションの数がここで指定した値以下になった場合，データベースコネクションをプールに追加します。
<Threshold>

コネクションプールにプールするコネクションの増分値
しきい値に達した場合にデータベースコネクションプールに追加するデータベースコネクションの数を指定します。
<GrowthIncrement>

コネクション取得待ち時間（秒）
データベースコネクションプールからデータベースコネクションを取得しようとするときに，コネクション取得のリトライをするまでのアプリケーションの待ち時間を秒単位で指定します。指定した時間が経過してもリトライしない場合，エラーが返されます。コネクションが使用できない場合に待たないようにするときは0を指定し，コネクションを取得できるまで待つようにするときは-1を指定します。
<WaitTimeout>

コネクション接続タイムアウト値（秒）
データベースコネクションの保持時間を秒単位で指定します。指定した時間が経過すると，次のスイーパサイクルでデータベースコネクションを削除します。コネクションタイムアウトの経過後，最小数よりも多く使用できるコネクションがプール内にある場合，そのコネクションは削除されます。プール内に最小数のコネクションだけがある場合，そのコネクションはリオープンされます。
<ConnectionTimeout>

スイーパ起動時間
スイーパサイクルの間隔を秒単位で指定します。スイーパサイクルは，すべてのデータベースコネクションをチェックし，<ConnectionTimeout>で指定した時間よりも古いコネクションを削除します。
<SweeperInterval>

コネクション取得のリトライ回数
コネクションの取得に失敗して，再度取得を行う場合のリトライ回数を指定します。
<RetryCount>

コネクション取得をリトライするまでの時間（秒）
コネクションの取得に失敗して，再度取得を行う場合のリトライ間隔を指定します。
<RetryInterval>

プーリングを使用しない場合，すべてのフィールドに0を指定します。この場合，データソースは，非プーリングデータソースのように動作します。つまり，データベースコネクションを保持しません。また，データベースコネクションが必要な場合，要求側は，データソースがインタフェースを取得するまで待たなければなりません。したがって，性能にかなりの影響を与えることになります。

(4)　データソースの接続テスト

データソースに設定した内容が正しいかどうか，接続テストによって検証します。

次に示すコマンドを実行してデータソースの接続を確認します。

実行形式

cjtestres ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -type datasource -resname＜データソースの表示名＞ ［-resname ＜データソースの表示名＞］

実行例

cjtestres -type datasource -resname Myds1

cjtestresコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjtestres（リソースの接続テスト）」を参照してください。

2.11　ベーシックモードで使用するファイル

ここではベーシックモードで使用するファイルについて説明します。

＜この節の構成＞

2.11.1　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）

2.11.2　usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）

2.11.3　データソース設定ファイル

2.11.4　データソース属性ファイル

2.11.5　コネクションプーリングとコネクションスイーパの動作

2.11.6　データソースへのリファレンス定義

2.11.1　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）

J2EEサーバの動作を設定するファイルです。

ファイルの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。ここでは，ベーシックモード独自の指定内容について説明します。

＜この項の構成＞

(1)　ejbserver.jdbcから始まるキー

(2)　ejbserver.jtaから始まるキー

(3)　ejbserver.serverから始まるキー

(1)　ejbserver.jdbcから始まるキー

指定できるキーについて次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値です。

「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称
内容
省略値
VR

ejbserver.jdbc.propertyInfo.BUF_SIZE
該当キーに値が指定されている場合，J2EEサーバがJDBCコネクションを取得するとき，BUF_SIZEキーに該当値を設定したプロパティを作成して，構成ソフトウェアであるDABroker Libraryのjava.sql.Driver.connectの引数に渡します。
なお，このプロパティは，ベーシックモードでだけ指定できます。
なし
－

ejbserver.jdbc.propertyInfo.ENCODELANG
該当キーに値が指定されている場合，J2EEサーバがJDBCコネクションを取得するとき，ENCODELANGキーに該当値を設定したプロパティを作成して，構成ソフトウェアであるDABroker Libraryのjava.sql.Driver.connectの引数に渡します。
なお，このプロパティは，ベーシックモードでだけ指定できます。
なし
－

（凡例）

－：08-00より前のバージョンを示します。

(2)　ejbserver.jtaから始まるキー

指定できるキーについて次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値です。

「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称
内容
省略値
VR

ejbserver.jta.TransactionManager.defaultTimeOut
J2EEサーバ上で開始されるトランザクションのトランザクションタイムアウトのデフォルト値（単位：秒）を次の範囲で指定します。

ベーシックモードの場合：

1～2000000​

180
－

ejbserver.jta.TransactionManager.enlist.compatibleMode.enabled
J2EEサーバモードがベーシックモードの場合のトランザクション処理に関する仕様を指定します。

トランザクション中に，複数回データベースコネクションを取得した場合（コネクションシェアリング機能が有効になる条件を満たしているとき）：

該当キーの値による動作の違いはありません。トランザクション中に2回目以降に取得したコネクションも，トランザクションに参加して動作します。

トランザクション中に，複数回DBコネクションを取得した場合（コネクションシェアリング機能が有効になる条件を満たしていないとき）：

該当キーの値による動作の違いは次のとおりです。

trueを指定したとき：
トランザクション中に2回目以降に取得したコネクションは，トランザクションに参加しないで動作します。

falseを指定したとき：
トランザクション中に2回目にコネクションを取得した場合に，java.sql.SQLExceptionが発生します。

複数回データベースコネクションを取得したあとで，トランザクションを開始した場合：

該当キーの値による動作の違いは次のとおりです。

trueを指定したとき：
トランザクション開始前に取得したコネクションは，トランザクションに参加しないで動作します。

falseを指定したとき：
トランザクション開始時に，javax.transaction.SystemExceptionが発生します。

true
－

（凡例）

－：08-00より前のバージョンを示します。

(3)　ejbserver.serverから始まるキー

指定できるキーについて次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値です。

「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称
内容
省略値
VR

ejbserver.server.j2ee.feature
Component Containerの動作モードを指定します。

1.3basic
ベーシックモード（単一DBだけのリソースをトランザクションで使用するシステムに適用）
なお，旧バージョンでベーシックモードを使用していた場合，アプリケーションサーバを更新インストールしたときには，J2EEサーバの動作モードはベーシックモードになります。
新規インストールした場合には，J2EEサーバの動作モードは1.4モードになります。

ベーシックモードと1.4モードの違いについては，「2.2　ベーシックモードの概要」を参照してください。
1.4
－

（凡例）

－：08-00より前のバージョンを示します。

2.11.2　usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）

EJBクライアントアプリケーションなどのJavaアプリケーションの動作を設定するファイルです。

ファイルの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「14.3　usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）」を参照してください。ここでは，ベーシックモード独自の指定内容について説明します。

(a)　ejbserver.jtaから始まるキー

Javaアプリケーション用usrconf.propertiesファイルで指定できるejbserver.jtaから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

ejbserver.jta.TransactionManager.defaultTimeOut
あり
Javaアプリケーションで開始されるトランザクションのトランザクションタイムアウトのデフォルト値（単位：秒）を次の範囲で指定します。

ベーシックモードの場合：

1～2000000​

－

（凡例）

あり：

Javaアプリケーション用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

－：

Javaアプリケーション用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。デフォルト値の詳細については，「2.11.1(2)　ejbserver.jtaから始まるキー」を参照してください。

2.11.3　データソース設定ファイル

データソース設定ファイルは，次に示すDOCTYPE宣言を持ちます。

<!DOCTYPE hitachi-datasource-configuration PUBLIC '-//Hitachi, Ltd.//DTD DataSource Configuration 6.0//EN' 'file:///<Application Serverのインストールディレクトリ>/CC/admin/dtds/hitachi-datasource-configuration_6_0.dtd'>

注意

サンプルファイルで提供している属性ファイルなどをサーバ管理コマンド以外の方法で使用する場合，DOCTYPE宣言内のURLの指定をURIに書き直す必要があります。

例

変更前

<!DOCTYPE hitachi-datasource-configuration PUBLIC '-//Hitachi, Ltd.//DTD DataSource Configuration 6.0//EN' 'file:///C:/Program%20Files/Hitachi/Cosminexus/CC/admin/dtds/hitachi-datasource-configuration_6_0.dtd'>

変更後

<!DOCTYPE hitachi-datasource-configuration PUBLIC '-//Hitachi, Ltd.//DTD DataSource Configuration 6.0//EN' 'file:///<Application Serverのインストールディレクトリ>/CC/admin/dtds/hitachi-datasource-configuration_6_0.dtd'>

データソース設定ファイルは，次に示すタグを持つxmlファイルです。

タグ名
出現パターン
説明

<hitachi-datasource-configuration>
1回
ルートタグ。

┗
<XADataSource>
0または1回
トランザクション利用の場合に使用するドライバのクラス名。
指定できる値を次に示します。

javax.sql.XADataSourceインタフェースを実装しているクラス。

java.sql.Driverインタフェースを実装しているクラス。

cjimportresコマンドでデータソースをインポートするときに使用するデータソース設定ファイルは，あらかじめエディタなどを使って作成したものを使用するか，次のディレクトリにあるサンプルファイルを使用します。サンプルファイルでは，デフォルトの設定内容が記述されています。

ディレクトリ
ファイル
接続データベース種別
説明

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥admin¥templates

UNIXの場合
/opt/Cosminexus/CC/admin/templates

JdbcDbpsv_cf.xml
OracleまたはHiRDB
ベーシックモード用（JdbcDbpsv.jar）

2.11.4　データソース属性ファイル

データソース属性ファイルは，次に示すDOCTYPE宣言を持ちます。

<!DOCTYPE hitachi-datasource-property PUBLIC '-//Hitachi, Ltd.//DTD DataSource Property 6.0//EN' 'file:///<Application Serverのインストールディレクトリ>/CC/admin/dtds/hitachi-datasource-property_6_0.dtd'>

データソース属性ファイルは，次に示すタグを持つxmlファイルです。

タグ名
出現パターン
説明

<hitachi-datasource-property>
1回
ルートタグ。

┣
┃
<description>
0または1回
データソースの説明。

┣
┃
┃
┃
┃
┃
<display-name>
1回
データソース表示名。
1≦文字列長≦240
変更する場合，英数字，およびアンダースコア「_」を使用できます。

┣
┃
┃
┃
<property>
0回以上
各種プロパティ。※1
<property>の指定が複数あり，<name>の設定値が同じ場合，一つにマージされます。その場合，ワーニングメッセージ（KDJE37600-W）を出力し，後ろに定義された<XADataSource>の値が有効になります。

┃
┣
<name>
1回
プロパティ名。

┃
┃
┃
┃
┃
┗
<XADataSource>
0または1回
XADataSourceインタフェースのプロパティ値。
値は変更できます。
タグの追加，削除は禁止です。

┗
<PoolConfiguration>
0または1回
コネクションプールの設定。※1，※2

┣
┃
┃
<MinimumSize>
1回
最小サイズ。
0≦MinimumSize≦MaximumSize

┣
┃
┃
<MaximumSize>
1回
最大サイズ。
-1（無制限）または0≦MaximumSize

┣
┃
┃
┃
┃
┃
<Threshold>
1回
しきい値。
0または1≦Threshold≦MaximumSize
0を指定した場合，使用できるコネクションがない場合にだけプールにコネクションを追加します。

┣
┃
┃
┃
┃
<GrowthIncrement>
1回
増分値。
0または1≦GrowthIncrement≦2147483647​
0を指定した場合，プールは増加しません。

┣
┃
┃
┃
┃
<WaitTimeout>
1回
コネクション取得待ち時間（単位：秒）。
-1または0≦WaitTimeout≦2147483647​
-1を指定した場合，取得できるまで待ち続けます。

┣
┃
┃
┃
┃
┃
<ConnectionTimeout>
1回
接続タイムアウト（単位：秒）。
0または1≦ConnectionTimeout≦2147483647​
0を指定した場合，アクティブではないコネクションがあってもプールから削除されません。

┣
┃
┃
┃
┃
<SweeperInterval>
1回
スイーパ起動間隔（単位：秒）。
0または1≦SweeperInterval≦2147483647​
0を指定した場合，アクティブではないコネクションがあってもプールから削除されません。

┣
┃
┃
<RetryCount>
1回
コネクション取得リトライ回数。
0～2147483647​

┗
<RetryInterval>
1回
コネクション取得リトライまでの待ち時間（単位：秒）。
1～2147483647​

注※1

cjgetrespropコマンドで出力されたものに対し，タグ名の変更，タグの追加・削除，値の変更をしてはいけません。

注※2

MinimumSizeタグを0に設定した場合，コネクションプールは機能しません。

2.11.5　コネクションプーリングとコネクションスイーパの動作

データソースのプロパティで設定するコネクションプーリングとコネクションスイーパの動作，コネクションを共有する場合の留意点について説明します。

コネクションプーリングについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1　コネクションプーリング」を参照してください。コネクションスイーパについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.7　コネクションスイーパ」を参照してください。

＜この項の構成＞

(1)　コネクションプーリングの動作

(2)　コネクションスイーパの動作

(3)　コネクションを共有する場合の留意点

(4)　注意事項

(1)　コネクションプーリングの動作

サーバ上での最初のアクセス時（具体的には最初のjavax.sql.DataSource#getConnectionメソッド発行時），コネクションプールにプールするコネクションの最小値（<MinimumSize>）の値のJDBCコネクションを確立（接続）しプールします。データベースサーバの制限によって<MinimumSize>の値のコネクションが確立できない場合，<MinimumSize>の値以下の状態になります。

ユーザアプリケーションプログラムがJDBCコネクションを取得（javax.sql.DataSource#getConnectionメソッド）すると，プール内の未使用状態のコネクションが一つ選択され，ユーザアプリケーションプログラムに渡されます。選択された該当コネクションは，プール内で使用中状態となります。

ユーザアプリケーションプログラムがJDBCコネクションを解放（java.sql.Connection#closeメソッド）すると，解放したJDBCコネクションに異常がなく，再利用できる場合，該当するJDBCコネクションはプール内で未使用状態に戻ります。解放したコネクションが再利用できない場合，該当するJDBCコネクションは破棄されます。

未使用状態のコネクションが，コネクションプールにプールするコネクションのしきい値（<Threshold>）の値以下になると，プール内のコネクションを，コネクションプールにプールするコネクションの増分値（<GrowthIncrement>）の値ずつ増加させます。DBサーバの制限によって<GrowthIncrement>の値のコネクションが確立できない場合は，増分は<GrowthIncrement>の値以下になります。

ユーザアプリケーションプログラムがJDBCコネクションを取得しようとしたときにプールに未使用コネクションがない場合，コネクション取得待ち時間（<WaitTimeout>）の値の間，待たされます。このあと，まだプールに未使用コネクションがない場合，ユーザアプリケーションプログラムに例外が通知されます。

(2)　コネクションスイーパの動作

前回のコネクションスイーパの動作が終了してから，スイーパ起動時間（<SweeperInterval>）の値の経過後，コネクションスイーパが動作します。

コネクションスイーパは，プール内の未使用状態コネクションを次の観点で監視します。

該当コネクションの生成時点からの経過時間が，コネクション接続タイムアウト値（<ConnectionTimeout>）の値未満の場合は何もしません。

該当コネクションの生成時点からの経過時間が，<ConnectionTimeout>の値以上の場合はコネクションを破棄します。

プールに残ったコネクション数が，<MinimumSize>の値以下の場合，コネクションスイーパは<MinimumSize>の値までコネクションを確立します。

(3)　コネクションを共有する場合の留意点

コネクションシェア機能は，同一JavaVM内という条件で，同一トランザクション（ここでのトランザクションとはjavax.transaction.UserTransactionによるトランザクションまたはEJBでのCMTによるトランザクションだけ）中での同一データソース（javax.sql.DataSource）へのコネクション取得要求（getConnectionメソッド）に対して，アプリケーションが同一の物理コネクションを共有できるようにするものです。これによって，アプリケーションがトランザクション中で同じデータソースから複数回コネクションを取得してSQLを発行した場合，トランザクションコミット時にそれぞれのSQLの処理結果をデータベースにまとめて反映できます。この機能を利用するには，コネクションプールの設定でコネクション数<MinimumSize>を1以上に設定する必要があります。なお，コネクションシェア機能は，同一データソース（javax.sql.DataSource）に対し，パラメタなしgetConnectionメソッドと，パラメタありgetConnection（java.lang.String username，java.lang.String password）メソッド間では，同一トランザクション中でもコネクションを共有できません。また，パラメタありのgetConnection（java.lang.String username，java.lang.String password）メソッド間でusernameが異なる場合，同一トランザクション中でもコネクションを共有できません。

(4)　注意事項

データソースの表示名（<display-name>）には，すでにあるデータソースの名前やメールサーバ構成情報の名前を指定しないでください。

コネクションプーリングの設定を変更した場合，設定内容を有効にするためにJ2EEサーバを再起動してください。

コネクションプーリング機能を利用する場合には，データベースサーバ側からコネクションを強制的に切断する機能（タイムアウトなど）を利用しないでください。

2.11.6　データソースへのリファレンス定義

J2EEアプリケーションを構成する，Enterprise BeanおよびWebアプリケーション（サーブレットおよびJSP）がデータソースを呼び出す場合，データソースのリファレンスを解決するためのプロパティを設定します。

＜この項の構成＞

(1)　Enterprise Beanのリファレンス定義

(2)　サーブレットとJSPのリファレンス定義

(1)　Enterprise Beanのリファレンス定義

J2EEアプリケーションを構成するEnterprise Beanが，データソースを参照している場合，リファレンスを解決するためのプロパティを設定します。

(a)　編集する属性ファイル

J2EEアプリケーションを構成するEnterprise Beanの種類に対応する属性ファイルを編集します。

Session Bean属性ファイル

Entity Bean属性ファイル

Message-driven Bean属性ファイル

(b)　編集する属性ファイルの取得と属性の設定

●属性ファイルの取得

次に示すコマンドを実行してEnterprise Beanの属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type ejb -resname addr/cadder_eb -c C:¥home¥adder_ejb.xml

●属性の設定

次に示すコマンドを実行して，Enterprise Beanの属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type ejb -resname ＜EJB-JAR表示名＞/＜Enterprise Bean表示名＞ -c ＜Enterprise Beanの属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type ejb -resname addr/adder_eb -c C:¥home¥adder_ejb.xml

(c)　編集する属性設定項目

データソースのリファレンス設定項目（<resource-ref>）を次に示します。

項目 | 必須 | 対応するタグ名
説明 | △ | <description>
リソース参照名 | ○ | <res-ref-name>
リソースタイプ | ○ | <res-type>
リソース認証方式 | ○ | <res-auth>
リソース共有 | △ | <res-sharing-scope>
リンク先のデータソース名 | △ | <linked-to>

（凡例）　○：必須　△：任意

プロパティの設定項目については，次の個所を参照してください。

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.4.1　Session Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.5.1　Entity Bean属性ファイルの指定内容」

マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.6.1　MessageDrivenBean属性ファイルの指定内容」

(2)　サーブレットとJSPのリファレンス定義

J2EEアプリケーションを構成するWebアプリケーション（サーブレットおよびJSP）がデータソースを呼び出す場合，データソースのリファレンスを解決するためのプロパティを設定します。

(a)　編集する属性ファイル

WAR属性ファイル

(b)　編集する属性ファイルの取得と属性の設定

●属性ファイルの取得

次に示すコマンドを実行してWAR属性ファイルを取得します。

実行形式

cjgetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞ -c ＜WAR属性ファイルパス＞

実行例

cjgetappprop MyServer -name adder -type war -resname adder -c C:¥home¥adder_war.xml

●属性の設定

次に示すコマンドを実行して，WAR属性ファイルの値を反映します。

実行形式

cjsetappprop ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -name ＜J2EEアプリケーション名＞ -type war -resname ＜WAR表示名＞ -c ＜WAR属性ファイルパス＞

実行例

cjsetappprop MyServer -name adder -type war -resname adder -c C:¥home¥adder_war.xml

(c)　編集する属性設定項目

Enterprise Beanが，データソースを参照している場合のプロパティ設定項目と同じです。「(1)　Enterprise Beanのリファレンス定義」の「(c)　編集する属性設定項目」を参照してください。

2.12　ベーシックモードでデータベースに接続する場合の運用管理（互換用機能）

ここでは，互換用の動作モードであるベーシックモード（1.3basicモード）で，データベースに接続する場合の運用，管理について説明します。

ベーシックモードでデータベースに接続する場合は，データソースを使用します。Management Serverでは，サーバ管理コマンドで設定したデータソース（JARファイル）の，運用環境へのインポート，削除および稼働状況の監視が行えます。

＜この節の構成＞

2.12.1　データソース管理

2.12.2　データソースの稼働情報監視

2.12.1　データソース管理

ここでは，運用管理ドメイン内の論理J2EEサーバへのデータソースのインポート，およびインポートしたデータソースの削除などの操作に関する画面の機能概要，表示手順，操作手順，画面詳細について説明します。

［データソースのインポート］画面
開発環境で作成したデータソースを論理J2EEサーバで実行する場合に操作します。

［データソースの削除］画面
運用で必要と判断される場合に操作します。

［データソースのログの表示］画面
運用で必要と判断される場合に操作します。

これらの画面は，「論理サーバのアプリケーション管理」のデータソースノードで操作できます。データソースノードは，「論理サーバのアプリケーション管理」の動作モードとしてV7互換モードを選択した場合に表示されます。V8モードの場合は表示されません。「論理サーバのアプリケーション管理」のツリーペインの構成を次に示します。

　論理サーバのアプリケーション管理
　│
　└─＜運用管理ドメイン名＞
　　　│
　　　└─論理J2EEサーバ
　　　　　├─J2EEサーバ
　　　　　│　└─＜J2EEサーバ名＞
　　　　　│　　　├─アプリケーション
　　　　　│　　　└─リソース
　　　　　│　　　　　├─データソース
　　　　　│　　　　　└─リソースアダプタ
　　　　　│
　　　　　└─J2EEサーバクラスタ
　　　　　　　└─＜J2EEサーバクラスタ名＞
　　　　　　　　　├─アプリケーション
　　　　　　　　　├─リソース
　　　　　　　　　│　├─データソース
　　　　　　　　　│　└─リソースアダプタ
　　　　　　　　　└─メンバ
　　　　　　　　　　　└─＜J2EEサーバ名＞

データソースノードがどのツリー下にあるかによって，操作対象となるデータソースが異なります。

J2EEサーバのツリー下のデータソースノード
J2EEサーバで使用するデータソースです。選択したJ2EEサーバのデータソースを対象にした次の操作ができます。

データソースのインポート（(1)参照）

データソースの削除（(2)参照）

ログの表示（(3)参照）

J2EEサーバクラスタのツリー下のデータソースノード
J2EEサーバクラスタを構成するJ2EEサーバで使用するデータソースです。選択したJ2EEサーバクラスタのデータソースを対象にした次の操作ができます。

データソースのインポート（(1)参照）

データソースの削除（(2)参照）

ログの表示（(3)参照）

J2EEサーバクラスタの場合，クラスタを構成しているすべてのJ2EEサーバに同様の操作を実行します。J2EEサーバクラスタにJ2EEサーバが登録されていない場合にはエラー画面が表示されます。

操作の排他制御について

データソースに対して，同時に複数の操作を実行できません。このため，ほかの操作が実行中であることを示すメッセージが表示される場合があります。この場合，ほかの操作が終了したことを確認してから，再度操作してください。

＜この項の構成＞

(1)　データソースのインポート

(2)　データソースの削除

(3)　ログの表示（論理サーバのアプリケーション管理）

(1)　データソースのインポート

［データソースのインポート］画面を次の図に示します。

図2-4　［データソースのインポート］画面

(a)　機能概要

論理J2EEサーバにデータソースをインポートします。

インポートするデータソースがすでにある場合，インポート操作の実行結果は「失敗」と表示され，上書きはされません。データソース名（データソースの表示名）に使用できる文字は，半角英数字（0～9，A～Z，a～z）およびアンダースコア(_)です。

(b)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［論理サーバのアプリケーション管理］アンカーをクリックします。

ツリーペインで次のどちらかの操作をします。

J2EEサーバの場合

［論理J2EEサーバ］－［J2EEサーバ］－［＜J2EEサーバ名＞］－［リソース］－［データソース］をクリックします。

J2EEサーバクラスタの場合

［論理J2EEサーバ］－［J2EEサーバクラスタ］－［＜J2EEサーバクラスタ名＞］－［リソース］－［データソース］をクリックします。

［インポート］タブをクリックします。

(c)　操作手順

画面での操作手順を次に示します。

［ドライバファイル名］，［データソース設定ファイル名］，［データソース属性ファイル名］を指定します。

［実行］ボタンをクリックします。
指定内容に誤りがある場合，エラーが表示されます。［戻る］アンカーをクリックして原因を取り除き，再度［実行］ボタンをクリックします。
指定内容が正しい場合，結果確認画面の［ステータス］に「実行中」または「実行待ち」と表示されます。処理が終了すると，［ステータス］が「成功」または「失敗」に更新されます。

次のどちらかの方法で，画面の表示内容を更新します。

［最新の情報に更新］アンカーをクリックする

［更新時間間隔］から表示内容を自動更新する間隔を選択して，［適用］ボタンをクリックする

失敗した場合は，［ログの表示］タブをクリックしてエラーの内容を確認します。原因を取り除き，［インポート］タブをクリックして再度実行します。

(d)　画面詳細

画面に表示される項目およびボタンについて説明します。

ドライバファイル名（必須）

JDBCドライバのクラスライブラリファイルを指定します。必ず「選択して下さい」以外を指定してください。

選択して下さい（デフォルト）

JdbcDbpsv.jar

JdbcDbpsv.jar+JdbcDbpsvEX.jar

データソース設定ファイル名（必須）

Management Server稼働ホストに配置したデータソース設定ファイルを絶対パスで指定します。デフォルトでは，何も表示されません。

データソース属性ファイル名（必須）

Management Server稼働ホストに配置したデータソース属性ファイルを絶対パスで指定します。デフォルトでは，何も表示されません。

［実行］ボタン

指定値をチェックし，データソースをインポートします。

［リセット］ボタン

指定した内容をリセットします。

(2)　データソースの削除

［データソースの削除］画面を次の図に示します。

図2-5　［データソースの削除］画面

(a)　機能概要

論理J2EEサーバからデータソースを削除します。

指定したデータソースがない場合，削除操作の実行結果は「失敗」と表示されます。また，削除しようとしたデータソースが稼働中のJ2EEアプリケーションから使用されている場合，データソースの削除に失敗します。

(b)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［論理サーバのアプリケーション管理］アンカーをクリックします。

ツリーペインで次のどちらかの操作をします。

J2EEサーバの場合

［論理J2EEサーバ］－［J2EEサーバ］－［＜J2EEサーバ名＞］－［リソース］－［データソース］をクリックします。

J2EEサーバクラスタの場合

［論理J2EEサーバ］－［J2EEサーバクラスタ］－［＜J2EEサーバクラスタ名＞］－［リソース］－［データソース］をクリックします。

［削除］タブをクリックします。

(c)　操作手順

画面での操作手順を次に示します。

削除するデータソースの［削除］アンカーをクリックします。
データソースの削除確認画面に，データソースの詳細が表示されます。

図2-6　削除確認画面（データソースの削除）

内容を確認して，［はい］ボタンをクリックします。
結果確認画面が表示されます。画面の［ステータス］に「実行中」または「実行待ち」と表示され，処理が終了すると［ステータス］が「成功」または「失敗」に更新されます。

次のどちらかの方法で，画面の表示内容を更新します。

［最新の情報に更新］アンカーをクリックする

［更新時間間隔］から表示内容を自動更新する間隔を選択して，［適用］ボタンをクリックする

失敗した場合は，［ログの表示］タブをクリックしてエラーの内容を確認します。原因を取り除き，［削除］タブをクリックして再度実行します。

(d)　画面詳細

画面に表示される項目およびボタンについて説明します。

●［データソースの削除］画面

操作

［削除］アンカー

論理J2EEサーバから削除するデータソースを選択するための削除確認画面が表示されます。

リソース名

該当論理J2EEサーバにインポートされているデータソースの表示名が表示されます。

インポート時刻

論理J2EEサーバへのインポートが完了した時刻（Management Server稼働ホストの時刻）が表示されます。

●削除確認画面

リソース名

削除するデータソース名が表示されます。

インポート時刻

削除するデータソースを論理J2EEサーバにインポートした時刻（Management Server稼働ホストの時刻）が表示されます。

［はい］ボタン

データソースを論理J2EEサーバから削除します。結果確認画面が表示されます。

［いいえ］ボタン

［データソースの削除］画面に戻ります。

(3)　ログの表示（論理サーバのアプリケーション管理）

(a)　機能概要

運用管理ドメイン内のすべての論理J2EEサーバで出力された，J2EEアプリケーション，データソース，およびリソースアダプタにかかわる実行結果を，ログとして一覧で参照できます。

ログは［論理サーバのアプリケーション管理］内の［ログの表示］タブから表示できますが，どこから表示しても内容は同一です。

(b)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで［論理サーバのアプリケーション管理］アンカーをクリックします。

ツリーペインで次のどちらかの操作をします。

J2EEサーバの場合

［論理J2EEサーバ］－［J2EEサーバ］－［＜J2EEサーバ名＞］－［リソース］－［データソース］をクリックします。

J2EEサーバクラスタの場合

［論理J2EEサーバ］－［J2EEサーバクラスタ］－［＜J2EEサーバクラスタ名＞］－［リソース］－［データソース］をクリックします。

［ログの表示］タブをクリックします。

(c)　操作手順

画面での操作はありません。

(d)　画面詳細

画面には，データソースへのインポートや削除の処理結果が表示されます。これらのログから，処理実行時に発生したエラーの原因を知ることができます。

［ログの表示］画面に出力されるログについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「7.4.2　ログの出力形式」を参照してください。

2.12.2　データソースの稼働情報監視

ここでは，J2EEリソースのデータソース（SimpleJTAまたはFullJTA）の，稼働情報の監視方法および監視情報について説明します。稼働情報監視は，運用で必要と判断される場合に操作します。

データソースの稼働情報監視は，［論理サーバの運用監視］画面のデータソースノードで操作できます。［論理サーバの運用監視］画面のサーバビューでのデータソースノードの位置づけを次に示します。

　論理サーバの運用監視
　│
　└─＜運用管理ドメイン名＞
　　　│
　　　：
　　　│
　　　├─論理J2EEサーバ
　　　│　├─J2EEサーバ
　　　│　│　└─＜J2EEサーバ名＞
　　　│　│　　　│
　　　│　│　　　：
　　　│　│　　　│
　　　│　│　　　├─リソース
　　　│　│　　　│　├─＜データソース名＞
　　　│　│　　　│　└─＜リソースアダプタ名＞
　　　│　│　　　：
　　　│　│
　　　│　└─J2EEサーバクラスタ
　　　│　　　└─＜J2EEサーバクラスタ名＞
　　　│　　　　　└─＜J2EEサーバ名＞
　　　│　　　　　　　└─以下，上記の＜J2EEサーバ名＞の構成と同じです。
　　　：

参考

ここでは，データソースノードについて説明しています。データソースノード以外の「論理サーバの運用監視」のサーバビューのノードについては，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「13.1.2　「論理サーバの運用監視」のサーバビューの構成」を参照してください。

サーバビューに表示されるデータソースノードでは，選択したJ2EEサーバのJ2EEリソースのデータソース（SimpleJTAまたはFullJTA）を対象にした稼働情報の監視ができます。それぞれのデータソースで監視できる情報には次の種類があります。

データソース（基本情報）

データソース（稼働情報）

データソース（SimpleJTAまたはFullJTA）で監視できる項目を一覧で示します。

表2-37　データソース（SimpleJTAまたはFullJTA）で監視できる項目

監視の対象
監視できる項目

リソース
データソース（SimpleJTA）
基本情報

リソース名

リソースタイプ

説明

認証タイプ

ログインタイムアウト

ユーザID

コネクションプール

稼働情報

リソース名

プール現在値（総数）

使用中のコネクション数

未使用のコネクション数

データソース（FullJTA）
基本情報

リソース名

リソースタイプ

説明

ログインタイムアウト

ユーザID

コネクションプール

稼働情報

リソース名

プール現在値

使用中のコネクション数

未使用のコネクション数

getConnection()メソッドの実行時間

getXAConnection()メソッドの実行時間

getConnection()メソッドの失敗回数

ConnectionでFATALエラーが発生した回数

＜この項の構成＞

(1)　データソースの稼働情報監視（基本情報）

(2)　データソースの稼働情報監視（稼働情報）

(1)　データソースの稼働情報監視（基本情報）

(a)　機能概要

J2EEリソースのデータソース（SimpleJTAまたはFullJTA）の稼働に関する初期設定値を表示できます。

(b)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，［論理サーバの運用監視］アンカーをクリックします。

［サーバビュー］タブ－［論理J2EEサーバ］－［J2EEサーバ］－［＜J2EEサーバ名＞］－［リソース］－［＜データソース名＞］をクリックします。

［基本情報］タブをクリックします。

(c)　操作手順

画面での操作はありません。

(d)　画面詳細

画面に表示される項目について説明します。

表示される項目は，リソースタイプがSimpleJTAかFullJTAかで異なります。

データソースがSimpleJTAの場合

DataSource

リソース名

リソースタイプ（DataSourceと表示される）

説明

認証タイプ

ログインタイムアウト（単位：秒）

ユーザID

コネクションプール
最大値
最小値

データソースがFullJTAの場合

DataSource

リソース名

リソースタイプ（DataSourceFullJTAと表示される）

説明

ログインタイムアウト（単位：秒）

ユーザID

コネクションプール
最大値
最小値

(2)　データソースの稼働情報監視（稼働情報）

(a)　機能概要

J2EEリソースのデータソース（SimpleJTAまたはFullJTA）の稼働中の統計情報を監視できます。

(b)　表示手順

画面の表示手順を次に示します。

運用管理ポータルで，［論理サーバの運用監視］アンカーをクリックします。

［サーバビュー］タブ－［論理J2EEサーバ］－［J2EEサーバ］－［＜J2EEサーバ名＞］－［リソース］－［＜データソース名＞］をクリックします。

［稼働情報］タブをクリックします。

(c)　操作手順

画面での操作はありません。

(d)　画面詳細

画面に表示される項目について説明します。

表示される項目は，リソースタイプがSimpleJTAかFullJTAかで異なります。

リソースタイプがSimpleJTAの場合

DataSource

リソース名

プール現在値（総数）

使用中のコネクション数

未使用のコネクション数

リソースタイプがFullJTAの場合

DataSource

リソース名

プール現在値（総数）

使用中のコネクション数

未使用のコネクション数

getConnection()メソッドの実行時間
N秒平均値（単位：ミリ秒）
最大値（単位：ミリ秒）
最小値（単位：ミリ秒）

getXAConnection()メソッドの実行時間
N秒平均値（単位：ミリ秒）
最大値（単位：ミリ秒）
最小値（単位：ミリ秒）

getConnection()メソッドの失敗回数

ConnectionでFATALエラーが発生した回数

注

「N秒」とは［サンプリング時間］で設定した時間を表します。

［最新の情報に更新］アンカー

画面を最新の情報に更新します。

画面は時間の経過とともに変わります。常に最新の状態でご参照ください。

2.13　J2EEサーバで使用するリソース操作コマンド

ここでは，J2EEサーバで使用するリソース操作コマンドについて説明します。

J2EEサーバで使用するリソース操作コマンドの一覧を，次の表に示します。

表2-38　J2EEサーバで使用するリソース操作コマンドの一覧

コマンド名称 | 分類 | 概要 | コマンドの系統
cjclosecn | J2EEサーバのコネクションクローズまたはコネクションの状態表示 | データソースのコネクションをクローズします。またはコネクションの状態を表示します。 | 更新※

（凡例）

更新：更新系コマンド。J2EEサーバの内容を更新，または構成情報を取得するコマンドです。

注※

リスト表示の場合は，参照になります。

＜この節の構成＞

cjclosecn（J2EEサーバのコネクションクローズまたはコネクションの状態表示）

cjclosecn（J2EEサーバのコネクションクローズまたはコネクションの状態表示）

形式

JDBCコネクション一覧を表示する場合

指定されたデータソースを対象とする場合

cjclosecn [<サーバ名称>] [-nameserver <プロバイダURL>]
         -l [-verbose] -resname <データソース表示名>
         [-resname <データソース表示名> ...]

プールに登録されたすべてのデータソースを対象とする場合

cjclosecn [<サーバ名称>] [-nameserver <プロバイダURL>]
         -l [-verbose] -resall

タイムアウト時間を指定してコネクションをクローズする場合

指定されたデータソースを対象とする場合

cjclosecn [<サーバ名称>] [-nameserver <プロバイダURL>]
         -t <seconds> -resname <データソース表示名>
         [-resname <データソース表示名> ...]

プールに登録されたすべてのデータソースを対象とする場合

cjclosecn [<サーバ名称>] [-nameserver <プロバイダURL>]
         -t <seconds> -resall

コネクションIDを指定してコネクションをクローズする場合

cjclosecn [<サーバ名称>] [-nameserver <プロバイダURL>]
         -resname <データソースの表示名>
         -cid <コネクションID> [-cid <コネクションID> ...]

機能

指定されたデータソースまたはプールに登録されたすべてのデータソースを対象として，使用中のコネクションの中で，取得時からの経過時間が指定時間を超過しているものを強制的にクローズします。このコマンドでは，次の機能を使用できます。

JDBCコネクション一覧を表示する

指定されたデータソースまたはプールに登録されたすべてのデータソースを対象として，JDBCコネクション一覧を表示します。

-verboseを指定しない場合

使用中のJDBCコネクション一覧を表示します。データソースを指定する場合，一度に複数のデータソースを指定できます。

-verboseを指定した場合

使用中および未使用のすべてのJDBCコネクション一覧を表示します。

タイムアウト時間を指定してコネクションをクローズする

指定されたデータソースまたはプールに登録されたすべてのデータソースを対象として，使用中のコネクションの中で，取得時からの経過時間が指定時間を超過しているものを強制的にクローズします。データソースを指定する場合，一度に複数のデータソースを指定できます。

コネクションIDを指定してコネクションをクローズする

指定されたデータソースを対象として，JDBCコネクションの中で，コネクションIDを指定されたコネクションを強制的にクローズします。

引数

<サーバ名称>

接続先J2EEサーバ名称を指定します。サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。

-nameserver <プロバイダURL>

CORBAネーミングサービスへのアクセスプロトコル，CORBAネーミングサービスが稼働しているホスト名，およびそれが使用しているポート番号を，次に示す形式で指定します。

<プロトコル名称>::<ホスト名称>:<ポート番号>

指定内容の詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「2.1　J2EEサーバで使用するコマンドの概要」を参照してください。

-l

使用中のコネクション情報の一覧を表示します。

-t <seconds>

コネクションを解放する際のタイムアウト時間を指定します。指定時間を超過したコネクションが解放対象となります。指定は秒単位で，指定できる値は0≦指定値≦2147483647の範囲になります。

-verbose

使用中のコネクションおよび使用中でないコネクションを表示対象とします。

-resname <データソース表示名>

クローズ対象となるデータソース名称を指定します。一度に複数のデータソースを指定できます。

-resall

すべてのデータソースの使用中コネクションが対象となります。

-resnameと同時に指定できません。

-cid <コネクションID>

-lオプションで表示した一覧情報の中から，-resnameで指定したリソースが取得したコネクションをID番号で指定します。コネクションIDは，16進数で指定します。IDの指定は8けたまで指定できます。

入力例

JDBCコネクション一覧を表示する場合（指定されたデータソースを対象とする場合）

cjclosecn MyServer -l -resname JdbcDbpsv

タイムアウト時間を指定してコネクションをクローズする場合（指定されたデータソースを対象とする場合）

cjclosecn MyServer -t 200 -resname JdbcDbpsv -resname JdbcDbpsv2

コネクションIDを指定してコネクションをクローズする場合

cjclosecn MyServer -resname JdbcDbpsv -cid 657ed

戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

3：

タイムアウトが発生しました。

9：

管理者特権がないため，コマンドが実行できません（Windows Server 2012，Windows Server 2008，Windows 8，Windows 7またはWindows Vistaの場合）

注意事項

このコマンドの機能は，ベーシックモードで実行する場合だけ有効となります。1.4モードで実行すると，サーバエラーとなります。

cjclearpoolコマンドでプールから削除したコネクションは，このコマンドの対象にはなりません。

コマンド実行時，未決着のJDBCトランザクションはタイムアウトになります。また，未決着のJDBCトランザクションはロールバックします。

コマンドの引数にサーバ名称を指定する場合，コマンド名の直後にする必要があります。そのほかの引数は，サーバ名称より後ろ（サーバ名称を省略した場合はコマンド名の後ろ）であれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：-resname <データソース表示名>）やオプション名と値を非対応にすること（例：-cid <データソース表示名> -resname <コネクションID>）はできません。

コマンドの引数にサーバ名称を指定する場合，cjsetupコマンドで指定したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

一度に複数のデータソースを指定する場合，存在しないデータソースがあったときでも，すべてのデータソースに対して，JDBCコネクション一覧の表示またはコネクションのクローズを試みます。

コネクションIDを指定する場合，未使用のコネクションを指定したときはエラーとなります。

2.14　ベーシックモード使用時の注意事項

この節では，ベーシックモードを使用するときの共通の注意事項を示します。

＜この節の構成＞

2.14.1　サーブレットおよびJSP実装時共通の注意事項

2.14.2　Stateful Session Bean実装時の注意事項

2.14.1　サーブレットおよびJSP実装時共通の注意事項

アプリケーションサーバ上で動作するアプリケーションのプログラムとして，サーブレットおよびJSPを実装するときの共通の注意事項を示します。

＜この項の構成＞

(1)　ユーザスレッドの使用方法

(1)　ユーザスレッドの使用方法

アプリケーションを構成するサーブレットおよびJSPからスレッドを生成して，使用できます。ユーザがプログラムの中で明示して生成するスレッドのことを，ユーザスレッドといいます。

ユーザスレッドは，生成後の動作のしかた（ライフサイクル）によって，次の二つに分けられます。

サービスメソッドやinitメソッドの範囲内で動作させる。

サービスメソッドやinitメソッドのバックグラウンドで動作させる。

ユーザスレッドの使用条件

ユーザスレッドは，Enterprise Beanでは使用できません（EJB仕様で，Enterprise Beanからのスレッドの生成が禁止されているため）。

ユーザスレッドが使用できるアプリケーションサーバのサーバモードを次に示します。

表2-39　ユーザスレッドの前提条件（サーバモード）

サーバモード | 使用可否
J2EEサーバモード | 1.4モード | ○
ベーシックモード | △
サーブレットエンジンモード | △

（凡例）

○：使用できる

△：サーバモード（ベーシックモードまたはサーブレットエンジンモード）でサポートされている範囲で機能を使用できます。ただし，コネクションプールは使用できません。

2.14.2　Stateful Session Bean実装時の注意事項

ベーシックモードで，Stateful Session Beanを実装するときの注意事項を示します。

＜この項の構成＞

(1)　SessionSynchronizationのメソッド呼び出しについての注意

(2)　beforeCompletionメソッドからのEnterprise Beanの呼び出しについて

(3)　afterCompletionメソッドからのEnterprise Beanの呼び出しについて

(1)　SessionSynchronizationのメソッド呼び出しについての注意

クライアントでトランザクション開始後にSessionSynchronizationのStateful Session Bean（トランザクション属性はRequiredまたはMandatory）を呼び出して，afterBeginメソッドまたはsetRollbackOnlyメソッドを呼び出すと，クライアントでのコミット時にbeforeCompletionメソッドが呼び出されません。1.4モードのときは，beforeCompletionメソッドが呼び出されます。

(2)　beforeCompletionメソッドからのEnterprise Beanの呼び出しについて

Stateful Session BeanのbeforeCompletionメソッドから，ほかのEnterprise Beanは呼び出せません。ほかのEnterprise Beanを呼び出した場合，java.rmi.RemoteException例外が発生します。

(3)　afterCompletionメソッドからのEnterprise Beanの呼び出しについて

Stateful Session BeanのafterCompletionメソッドからほかのEnterprise Beanを呼び出した場合，java.rmi.RemoteException例外が発生します。

EJBの仕様上，Stateful Session BeanのafterCompletionメソッドからほかのEnterprise Beanを呼び出せないので，呼び出さないようにしてください。

3.　サーブレットエンジンモード

旧バージョンとの互換用機能としてのサーバの動作モードには，ベーシックモードとサーブレットエンジンモードがあります。この章では，サーブレットエンジンモードについて説明します。

＜この章の構成＞

3.1　この章の構成

3.2　使用できる機能の一覧

3.3　サーブレットエンジンモードとJ2EEサーバモードの比較

3.4　サーブレットエンジンモードで使用できるWebコンテナの機能

3.5　サーブレットエンジンモードで動作するアプリケーションの実装

3.6　サーブレットエンジンモードでのリソース接続

3.7　サーブレットエンジンモードの利用方法

3.8　サーブレットエンジンモードでのシステム運用

3.9　サーブレットエンジンモードの場合の移行

3.10　Webコンテナサーバで使用するコマンド

3.11　Webコンテナサーバで使用するファイル

3.1　この章の構成

1.4モードまたはベーシックモードではJ2EEコンテナ（EJBコンテナとWebコンテナ）を利用します。一方，サーブレットエンジンモードは，Webアプリケーションだけを動作させる（Enterprise Beanを使用しない）場合など，Webコンテナ部分だけを使用する構成のときに利用できる動作モードです。サーブレットエンジンモードでは，サーブレットエンジンだけが単独で動作します。サーブレットエンジンとは，サーブレット実行機能，JSP実行機能を持つサーバのことです。

このモードでは，WebアプリケーションからはJava Servlet Specification v2.3，JavaServer Pages Specification v1.2に示すAPIおよびDABroker Libraryを通じ，Sun JDBC API仕様に従った方法によるデータベースアクセスが利用できます。

なお，サーブレットエンジンモードで実行したときのサーバをWebコンテナサーバと呼びます。

この章の構成を次の表に示します。

表3-1　この章の構成（サーブレットエンジンモード）

分類 | タイトル | 参照先
解説 | 使用できる機能の一覧 | 3.2
サーブレットエンジンモードとJ2EEサーバモードの比較 | 3.3
サーブレットエンジンモードで使用できるWebコンテナの機能 | 3.4
実装 | サーブレットエンジンモードで動作するアプリケーションの実装 | 3.5
設定 | サーブレットエンジンモードでのリソース接続 | 3.6
サーブレットエンジンモードの利用方法 | 3.7
運用 | サーブレットエンジンモードでのシステム運用 | 3.8
サーブレットエンジンモードの場合の移行 | 3.9
Webコンテナサーバで使用するコマンド | 3.10
Webコンテナサーバで使用するファイル | 3.11

注　「注意事項」について，この章での説明はありません。

3.2　使用できる機能の一覧

サーブレットエンジンモードで使用できるJava EEおよびJ2EEの機能，ならびにアプリケーションサーバの機能について一覧に示します。

アプリケーションサーバで使用できる機能については，マニュアル「アプリケーションサーバ & BPM/ESB基盤 概説」の「3.2.5(1)　アプリケーションサーバで使用できる機能」を参照してください。

＜この節の構成＞

3.2.1　使用できるJava EEおよびJ2EEの機能

3.2.2　使用できるアプリケーションサーバの機能

3.2.1　使用できるJava EEおよびJ2EEの機能

サーブレットエンジンモードで使用できるJava EEおよびJ2EEの機能について，次の表に示します。なお，次の表に記載していない機能は使用できません。

表3-2　サーブレットエンジンモードで使用できるJava EEおよびJ2EEの機能

Java EEおよびJ2EEの機能
サーブレットエンジンモード

Servlet 2.2
使用できます。

Servlet 2.3

JSP 1.2

JDBC 2.0コア
JDBC 2.0オプションパッケージ

3.2.2　使用できるアプリケーションサーバの機能

サーブレットエンジンモードでの，アプリケーションサーバの各機能の使用について説明します。

なお，各項目にある表に記載していない機能は使用できません。

＜この項の構成＞

(1)　Webコンテナの機能

(2)　Webサーバ連携の機能

(3)　インプロセスHTTPサーバの機能

(4)　EJBコンテナの機能

(5)　EJBクライアントの機能

(6)　ネーミング管理の機能

(7)　リソース接続とトランザクション管理の機能

(8)　OpenTP1からのアプリケーションサーバを呼び出す機能（TP1インバウンド連携機能）

(9)　アプリケーションサーバで使用するJPAの機能

(10)　CJPAプロバイダの機能

(11)　CJMSプロバイダの機能

(12)　セキュリティ管理の機能

(13)　アノテーションの機能

(14)　J2EEアプリケーションの形式とデプロイの機能

(15)　コンテナ拡張ライブラリの機能

(16)　バッチアプリケーション実行時に使用する機能

(17)　CTMによるEnterprise Beanのスケジューリング機能

(18)　そのほかの拡張機能

(19)　システムの日常運用を支援する機能

(20)　システムの保守を支援する機能

(21)　J2EEアプリケーションの運用機能

(22)　システムの監査を支援する機能

(23)　JP1連携による運用管理機能

(24)　クラスタソフトウェアとの連携による系切り替え機能

(25)　システムの保守のための機能

(26)　JavaVMの機能

(1)　Webコンテナの機能

Webコンテナの機能のサーブレットエンジンモードでの使用について次の表に示します。Webコンテナの機能については，「3.4　サーブレットエンジンモードで使用できるWebコンテナの機能」を参照してください。

表3-3　Webコンテナの機能のサーブレットエンジンモードでの使用

Webコンテナの機能 | サーブレットエンジンモードでの使用
Webアプリケーションの実行機能 | △
JSPの事前コンパイルとコンパイル結果の保持（JSP事前コンパイルを使用しない場合のJSPコンパイル結果） | ◎△
セッション管理機能（セッションIDおよびCookieへのサーバIDの付加） | ◎
アプリケーションのイベントリスナ | ○
リクエストおよびレスポンスのフィルタリング | ○
HTTPレスポンス圧縮機能 | ○
EJBコンテナとの連携 | ◎△
データベースとの接続 | ◎△
Webコンテナによるスレッドの作成 | ◎△
ユーザスレッドの使用 | △※
同時実行スレッド数の制御（Webコンテナ単位での同時実行スレッド数の制御） | ◎
エラーページのカスタマイズ | ◎
静的コンテンツのキャッシュ | ○
簡易Webサーバ機能 | 簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能） | ○
簡易Webサーバへのアクセスの制御 | ◎△
URIのデコード機能 | ◎

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※

ユーザスレッドで使用できる機能のうち，サーブレットエンジンモードで使用できる機能だけが使用できます。

(2)　Webサーバ連携の機能

Webサーバ連携の機能のサーブレットエンジンモードでの使用について次の表に示します。Webサーバ連携の機能については，「3.4　サーブレットエンジンモードで使用できるWebコンテナの機能」を参照してください。

表3-4　Webサーバ連携の機能のサーブレットエンジンモードでの使用

Webサーバ連携の機能 | サーブレットエンジンモードでの使用
Webサーバ（リダイレクタ）によるリクエストの振り分け | ◎
通信タイムアウト（Webサーバ連携） | ◎
IPアドレスの指定（Webサーバ連携） | ○
エラーページのカスタマイズ（Webサーバ連携） | ◎
ドメイン名指定でのトップページの表示 | ○
Webコンテナへのゲートウェイ情報の通知 | ○

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(3)　インプロセスHTTPサーバの機能

インプロセスHTTPサーバの機能は，サーブレットエンジンモードでは使用できません。

(4)　EJBコンテナの機能

EJBコンテナの機能は，サーブレットエンジンモードでは使用できません。

(5)　EJBクライアントの機能

EJBクライアントの機能は，サーブレットエンジンモードでは使用できません。

(6)　ネーミング管理の機能

ネーミング管理の機能のサーブレットエンジンモードでの使用について次の表に示します。ネーミング管理の機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.　ネーミング管理」を参照してください。

表3-5　ネーミング管理の機能のサーブレットエンジンモードでの使用

ネーミング管理の機能 | サーブレットエンジンモードでの使用
ラウンドロビンポリシーによるCORBAネーミングサービスの検索 | ◎
ネーミング管理機能でのキャッシング | ◎
CORBAネーミングサービスの切り替え | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(7)　リソース接続とトランザクション管理の機能

リソース接続とトランザクション管理の機能のサーブレットエンジンモードでの使用について次の表に示します。リソース接続とトランザクション管理の機能については，「3.6　サーブレットエンジンモードでのリソース接続」を参照してください。

表3-6　リソース接続とトランザクション管理の機能のサーブレットエンジンモードでの使用

リソース接続とトランザクション管理の機能 | サーブレットエンジンモードでの使用
コネクションプーリング | ◎※1
コネクションの取得リトライ | ◎※1
コネクションプールの情報表示 | ◎※2
コネクションプールのクリア | ◎※2
コネクションの強制クローズ | ◎※3

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※1　Webコンテナコネクションプーリング機能を利用する場合に使用できます。詳細については，「3.6.3　Webコンテナコネクションプール機能によるデータベース接続」を参照してください。

注※2　J2EEサーバモードの場合と実行するコマンドが異なります。

注※3　J2EEサーバモードの場合と実行するコマンドが異なります。コネクションの強制クローズについては，「3.6.3　Webコンテナコネクションプール機能によるデータベース接続」を参照してください。

(8)　OpenTP1からのアプリケーションサーバを呼び出す機能（TP1インバウンド連携機能）

TP1インバウンド連携機能は，サーブレットエンジンモードでは使用できません。

(9)　アプリケーションサーバで使用するJPAの機能

アプリケーションサーバで使用するJPAの機能は，サーブレットエンジンモードでは使用できません。

(10)　CJPAプロバイダの機能

CJPAプロバイダの機能は，サーブレットエンジンモードでは使用できません。

(11)　CJMSプロバイダの機能

CJMSプロバイダの機能は，サーブレットエンジンモードでは使用できません。

(12)　セキュリティ管理の機能

セキュリティ管理の機能のサーブレットエンジンモードでの使用について次の表に示します。セキュリティ管理の機能については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。

表3-7　セキュリティ管理の機能のサーブレットエンジンモードでの使用

セキュリティ管理の機能 | サーブレットエンジンモードでの使用
SSL使用による認証情報とデータの暗号化 | ◎
ロールに基づくWebコンテナのユーザ認証 | ◎△
SecurityManagerによるWebコンテナの実行時の保護 | ◎△

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

(13)　アノテーションの機能

アノテーションの機能は，サーブレットエンジンモードでは使用できません。

(14)　J2EEアプリケーションの形式とデプロイの機能

J2EEアプリケーションの形式とデプロイの機能のサーブレットエンジンモードでの使用について次の表に示します。J2EEアプリケーションの形式とデプロイの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.　J2EEアプリケーションの形式とデプロイ」を参照してください。

表3-8　J2EEアプリケーションの形式とデプロイの機能のサーブレットエンジンモードでの使用

J2EEアプリケーションの形式とデプロイの機能 | サーブレットエンジンモードでの使用
J2EEアプリケーションの入れ替え | ◎△※1
Webアプリケーションの更新検知とリロード | ◎△※2
リソースアダプタを含むJ2EEアプリケーションの操作 | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※1　機能差については，「(21)　J2EEアプリケーションの運用機能」を参照してください。

注※2　機能差については，「3.4.2　Webアプリケーションの更新検知とリロード」を参照してください。

(15)　コンテナ拡張ライブラリの機能

注意

コンテナ拡張ライブラリのアクセス権について
コンテナ拡張ライブラリにはアクセス権が付与されません。
cjstartwebコマンドに-securityオプションを指定し，Webコンテナの実行時保護機能を有効にする場合は，SecurityManager定義ファイル（web.policy）に適切なアクセス権を設定してください。

ハンドラ関数の設定について（Windowsの場合）
Windowsでコンテナ拡張ライブラリを使用してプロセスのハンドラ関数を設定する場合，CTRL+BREAK信号を処理するハンドラ関数では，TRUEを返したり，DLLの終了処理をしたり，ExitProcess関数などを呼び出してプロセスを終了したりしないでください。
Webコンテナサーバ，Component Containerを利用するほかのプログラムなどが動作しなくなるおそれがあります。

コンテナ拡張ライブラリの機能のサーブレットエンジンモードでの使用について次の表に示します。コンテナ拡張ライブラリの機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「14.　コンテナ拡張ライブラリ」を参照してください。

表3-9　コンテナ拡張ライブラリの機能のサーブレットエンジンモードでの使用

コンテナ拡張ライブラリの機能 | サーブレットエンジンモードでの使用
コンテナ拡張ライブラリ | ◎
サーバ起動・停止フック機能 | ◎
スマートエージェント経由でのCORBAオブジェクトの呼び出し | ◎

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

(16)　バッチアプリケーション実行時に使用する機能

バッチアプリケーション実行時に使用する機能は，サーブレットエンジンモードでは使用できません。

(17)　CTMによるEnterprise Beanのスケジューリング機能

CTMによるEnterprise Beanのスケジューリング機能は，サーブレットエンジンモードでは使用できません。

(18)　そのほかの拡張機能

そのほかの拡張機能のサーブレットエンジンモードでの使用について次の表に示します。そのほかの拡張機能については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「1.2.3　そのほかの拡張機能」を参照してください。

表3-10　そのほかの拡張機能のサーブレットエンジンモードでの使用

そのほかの拡張機能 | サーブレットエンジンモードでの使用
統合ユーザ管理 | ◎△※1
ユーザログ出力 | ◎※2

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※1　リポジトリ管理およびリソース監視は使用できません。

注※2　Webコンテナサーバのusrconf.propertiesで，接尾辞が「.level」で終わるキーのうち，値の範囲にSEVERE，WARNING，INFO，CONFIG，FINE，およびFINEST以外を持つキーが設定された場合は，次の現象が発生します。

1.　サーバ起動時，java.util.logging.LogManagerクラスがキーを読み込むときに接尾辞が「.level」で終わるキーの値をチェックします。値が範囲以外の場合は，java.util.logging.LogManagerクラスが標準エラー出力へエラーメッセージを出力します。

（例）sample.level=Error と指定されていた場合

「Bad level value for property : sample.level」と出力されます。

2.　ユーザログ機能の接尾辞が「.level」で終わるキーでは値が適切でない場合，1.と同様にエラーメッセージを出力します。

ただし，どちらの場合もメッセージが表示されるだけで，動作上は影響ありません。

(19)　システムの日常運用を支援する機能

システムの日常運用を支援する機能のサーブレットエンジンモードでの使用について次の表に示します。システムの日常運用を支援する機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.1　システムの日常運用を支援する機能」を参照してください。

表3-11　システムの日常運用を支援する機能のサーブレットエンジンモードでの使用

システムの日常運用を支援する機能 | サーブレットエンジンモードでの使用
システムの起動・停止 | ◎△※

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※　システムの起動・停止については，「3.3.7　システムの起動および停止方法」を参照してください。

(20)　システムの保守を支援する機能

システムの保守を支援する機能は，サーブレットエンジンモードで使用できません。

(21)　J2EEアプリケーションの運用機能

J2EEアプリケーションの運用機能のサーブレットエンジンモードでの使用について次の表に示します。J2EEアプリケーションの運用機能については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「1.2.3　J2EEアプリケーションの運用機能」を参照してください。

表3-12　J2EEアプリケーションの運用機能のサーブレットエンジンモードでの使用

J2EEアプリケーションの運用機能 | サーブレットエンジンモードでの使用
J2EEアプリケーションのサービスの閉塞 | ◎
J2EEアプリケーションの停止（通常停止） | ○
J2EEアプリケーションの入れ替え | Webアプリケーションのサービスの部分閉塞による入れ替え | ○※1
リロードによるJ2EEアプリケーションの入れ替え | ◎△※2

（凡例）

○：使用できる

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

△：使用できる。ただし，1.4モードと機能差がある

注※1　WebサーバにHTTP Serverを使用している場合だけ使用できます。

注※2　機能差については，「3.4.2　Webアプリケーションの更新検知とリロード」を参照してください。

(22)　システムの監査を支援する機能

システムの監査を支援する機能は，サーブレットエンジンモードでは使用できません。

(23)　JP1連携による運用管理機能

JP1連携による運用管理機能は，サーブレットエンジンモードでは使用できません。

参考

サーブレットエンジンモードで動作しているサーバ（Webコンテナサーバ）はManagement Serverの管理対象にはなりません。JP1連携は，Management Serverを利用した運用をしていることが前提となる機能です。このため，サーブレットエンジンモードで動作しているサーバ（Webコンテナサーバ）はJP1連携による管理の対象にはなりません。なお，JP1連携による運用管理機能と動作モードは，直接関係ありません。

(24)　クラスタソフトウェアとの連携による系切り替え機能

クラスタソフトウェアとの連携による系切り替え機能は，サーブレットエンジンモードでは使用できません。

(25)　システムの保守のための機能

システムの保守のための機能のサーブレットエンジンモードでの使用について次の表に示します。

表3-13　システムの保守のための機能のサーブレットエンジンモードでの使用

システムの保守のための機能 | サーブレットエンジンモードでの使用 | 参照先マニュアル | 参照先
トラブルシューティング | ◎※ | アプリケーションサーバ 機能解説 保守／移行編 | 2章，3章，4章，5章
性能解析トレースを使用したシステムの性能解析 | ◎ | 7章，8章

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

注※　障害検知時コマンドは使用できません。

(26)　JavaVMの機能

JavaVMの機能のサーブレットエンジンモードでの使用について次の表に示します。

表3-14　JavaVMの機能のサーブレットエンジンモードでの使用

JavaVMの機能 | サーブレットエンジンモードでの使用 | 参照先マニュアル | 参照先
クラス別統計機能 | ◎ | アプリケーションサーバ 機能解説 保守／移行編 | 9.3
インスタンス統計機能 | ◎ | 9.4
STATICメンバ統計機能 | ◎ | 9.5
参照関係情報出力機能 | ◎ | 9.6
統計前のGC選択機能 | ◎ | 9.7
Survivor領域の年齢分布情報出力機能 | ◎ | 9.11
JITコンパイル時のCヒープ確保量の上限値設定機能 | ◎ | 9.13
スレッド数の上限値設定機能 | ◎ | 9.14

（凡例）

◎：J2EEの機能に加えてアプリケーションサーバで拡張した機能を使用できる，またはアプリケーションサーバ独自の機能を使用できる

3.3　サーブレットエンジンモードとJ2EEサーバモードの比較

サーブレットエンジンモードは互換用のサーバの動作モードです。旧バージョンでサーブレットエンジンモードを使用していた場合には，推奨の動作モードであるJ2EEサーバモードの1.4モード（以降，J2EEサーバモードと呼びます）への移行をお勧めします。ここでは，移行時の留意事項として，サーブレットエンジンモードとJ2EEサーバモードを比較し，機能の差異およびシステムの構築方法の差異について説明します。

サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には，次の差異に留意する必要があります。

システムの構築方法

Webアプリケーションのデプロイと設定

Webサーバの使用方法

データベースとの接続

Webアプリケーションに組み込むサーブレットフィルタ

Webアプリケーションのリロード

システムの起動および停止

使用するメモリ，スレッド数，ポート番号

＜この節の構成＞

3.3.1　システムの構築方法

3.3.2　Webアプリケーションのデプロイと設定

3.3.3　Webサーバの使用方法

3.3.4　データベースとの接続

3.3.5　Webアプリケーションに組み込むサーブレットフィルタ

3.3.6　Webアプリケーションのリロード

3.3.7　システムの起動および停止方法

3.3.8　使用するメモリ，スレッド数，ポート番号

3.3.1　システムの構築方法

サーブレットエンジンモードでは，Webコンテナサーバ用のusrconf.propertiesやusrconf.cfgを編集し，cjwebsetupなどのコマンドを実行してシステムを構築しますが，J2EEサーバモードでは次に示すシステム構築方法があります。

セットアップウィザードを使用して構築する
セットアップウィザードを使用してシステムを構築します。システム構築の概要やシステム構築の詳細については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」を参照してください。

Smart Composer機能を使用して構築する
Smart Composer機能で提供するファイルおよびコマンドを使用して，システムを構築します。システム構築の概要やシステム構築の詳細については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」を参照してください。

運用管理ポータルを使用して構築する
運用管理ポータルに設定内容を入力して，システムを構築します。システム構築の概要や運用管理ポータルでのシステム構築方法については，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を参照してください。

どの方法でシステムを構築するかは，どのようなシステムを構築してどのように運用するかによって決定します。システム構築方法の検討については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」を参照してください。

参考

これらのほかに，ファイル編集とコマンド実行を使用してシステムを構築する方法もあります。この場合，各サーバ用のusrconf.propertiesやusrconf.cfgを編集し，cjsetupなどのコマンドを実行してシステムを構築します。ファイル編集とコマンド実行でのシステム構築方法については，マニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。

3.3.2　Webアプリケーションのデプロイと設定

サーブレットエンジンモードとJ2EEサーバモードでは，Webアプリケーションのデプロイおよび属性の設定方法が異なります。

＜この項の構成＞

(1)　Webアプリケーションのデプロイ

(2)　Webアプリケーションの属性の設定

(1)　Webアプリケーションのデプロイ

サーブレットエンジンモードとJ2EEサーバモードでは，Webアプリケーションのデプロイ方法が異なります。

サーブレットエンジンモードの場合
次のどちらかの方法で，WebアプリケーションをWebコンテナサーバにデプロイします。

WARファイルのコピー

ディレクトリのコピー

また，WARファイル，またはディレクトリを削除することで，アンデプロイできます。

J2EEサーバモードの場合
WebアプリケーションをJ2EEサーバにデプロイするためには，Webアプリケーションをアーカイブ形式，または展開ディレクトリ形式のJ2EEアプリケーションにしてからデプロイします。

Webアプリケーションからアーカイブ形式のJ2EEアプリケーションを作成し，J2EEサーバにインポートおよびデプロイします。

Webアプリケーションから展開ディレクトリ形式のJ2EEアプリケーションを作成し，J2EEサーバにインポートおよびデプロイします。

また，アーカイブ形式，または展開ディレクトリ形式のJ2EEアプリケーションをアンデプロイします。

サーブレットエンジンモードとJ2EEサーバモードのWebアプリケーションのデプロイおよびアンデプロイ方法の違いを次に示します。

項目 | サーブレットエンジンモードの場合 | J2EEサーバモードの場合
WARファイルのコピーの場合 | ディレクトリのコピーの場合 | アーカイブ形式の場合 | 展開ディレクトリ形式の場合
アセンブル | WAR形式にアセンブルする | アセンブルは不要 | EAR形式またはZIP形式にアセンブルする | アセンブルは不要
デプロイ／アンデプロイ単位 | WARファイル単位 | ディレクトリ単位 | EARファイルまたはZIPファイル単位 | ディレクトリ単位
入れ替えできる最小単位 | WARファイル単位 | JSPファイルやServletクラス単位 | EARファイルまたはZIPファイル単位 | JSPファイルやServletクラス単位
デプロイ／アンデプロイできるタイミング | Webコンテナサーバの起動中／停止中 | J2EEサーバの起動中
デプロイ／アンデプロイ結果の反映 | Webコンテナサーバの起動／再起動後 | デプロイ操作完了後

サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には，サーブレットエンジンモードでのWebアプリケーションのデプロイ方法と操作性が近い，展開ディレクトリ形式によるデプロイ方法をお勧めします。

アーカイブ形式のJ2EEアプリケーションについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.3　アーカイブ形式のJ2EEアプリケーション」を参照してください。展開ディレクトリ形式のJ2EEアプリケーションについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.4　展開ディレクトリ形式のJ2EEアプリケーション」を参照してください。

(2)　Webアプリケーションの属性の設定

サーブレットエンジンモードの場合は，アプリケーション開発時にWebアプリケーションのDD（web.xml）を直接編集するか，またはhitachi_web.propertiesのキーを設定して，Webアプリケーションの属性を設定します。なお，WebアプリケーションのDD（web.xml）とhitachi_web.propertiesは，WebアプリケーションのWEB-INFディレクトリ下に置きます。

J2EEサーバモードの場合は，これらに加えて，次の手順でWebアプリケーションの属性を設定できます。

システム構築時に，サーバ管理コマンドでJ2EEアプリケーションをJ2EEサーバにインポートする。

属性ファイルを編集して属性を設定する。

サーバ管理コマンドでは，J2EEアプリケーションの実行時間の監視や同時実行スレッド数の制御など，J2EEサーバの拡張機能の設定ができます。J2EEサーバモードの場合は，サーバ管理コマンドで設定する方法をお勧めします。サーバ管理コマンドの操作方法，および設定内容については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.　サーバ管理コマンドの基本操作」を参照してください。

なお，hitachi_web.propertiesの設定内容は，サーブレットエンジンモードとJ2EEサーバモードで異なります。

サーブレットエンジンモードとJ2EEサーバモードで同じ場合
JSPファイルのコンパイル結果の保持（webserver.jsp.keepgenerated）とTLDファイルの妥当性チェック（webserver.xml.validate）は，hitachi_web.propertiesまたはusrconf.propertiesで設定します。

サーブレットエンジンモードとJ2EEサーバモードで異なる場合
サーブレットエンジンモードの場合，Webアプリケーションのリロードの設定は，hitachi_web.propertiesまたはusrconf.propertiesで設定します。
J2EEサーバモードの場合，Webアプリケーションのリロードの設定は，usrconf.propertiesで設定します。J2EEサーバ用のhitachi_web.propertiesでは，Webアプリケーションのリロードの設定はできません。

3.3.3　Webサーバの使用方法

サーブレットエンジンモードとJ2EEサーバモードでは，Webサーバの使用方法が異なります。

サーブレットエンジンモードの場合 | J2EEサーバモードの場合
Webサーバと連携して使用する | Webサーバと連携して使用する
Webコンテナサーバ内の簡易Webサーバを使用する | J2EEサーバ内のインプロセスHTTPサーバを使用する

Webサーバと連携して使用する方法の場合，サーブレットエンジンモードからJ2EEサーバモードに移行するときは，設定内容には差異はありません。ただし，システムの構築方法によって設定方法が異なります。

Smart Composer機能を使用してシステムを構築する場合，Smart Composer機能で提供するファイルでWebサーバの設定をします。

運用管理ポータルを使用してシステムを構築する場合，運用管理ポータル上でWebサーバの設定をします。また，論理Webサーバとして使用できるのは，HTTP Serverです。

ファイル編集とコマンド実行によってシステムを構築する場合，設定方法はサーブレットエンジンモードと同じです。設定の変更などは必要ありません。

簡易Webサーバを使用する方法の場合，J2EEサーバモードのインプロセスHTTPサーバに移行するときは，設定内容および設定方法が異なります。

Smart Composer機能を使用してシステムを構築する場合，インプロセスHTTPサーバは使用できません。

運用管理ポータルを使用してシステムを構築する場合，運用管理ポータル上でインプロセスHTTPサーバの設定をします。

ファイル編集とコマンド実行によってシステムを構築する場合，J2EEサーバ用のusrconf.propertiesにインプロセスHTTPサーバの設定をします。なお，簡易Webサーバを使用する方法でWebコンテナサーバ用のusrconf.propertiesのwebserver.connector.http.で始まるキーに設定していた内容は，インプロセスHTTPサーバではJ2EEサーバ用のusrconf.propertiesのwebserver.connector.inprocess_http.で始まるキーに設定します。

なお，インプロセスHTTPサーバでは，サーブレットエンジンモードの簡易Webサーバよりも機能が多く，同時実行スレッド数の制御などの機能も使用できます。インプロセスHTTPサーバについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「5.　インプロセスHTTPサーバ」を参照してください。

3.3.4　データベースとの接続

WebアプリケーションからJDBCを使用してデータベースに接続をする場合，サーブレットエンジンモードとJ2EEサーバモードではWebアプリケーションの実装方法および設定方法が異なります。

＜この項の構成＞

(1)　データベースとの接続に使用できるクラスとインタフェース

(2)　ルックアップの方法

(3)　コネクションプーリングの方法

(1)　データベースとの接続に使用できるクラスとインタフェース

サーブレットエンジンモードのWebアプリケーションの場合，使用できるのはjava.sqlパッケージで定義されたクラス，インタフェースだけです。java.sql.DriverManagerクラスのgetConnectionメソッドを使ってデータベースコネクションを取得し，コネクションプール機能が使用できます。

J2EEサーバモードのWebアプリケーションの場合，java.sqlパッケージとjavax.sqlパッケージで定義されたクラス，インタフェースが使用できます。このうち，javax.sql.DataSourceクラスのgetConnectionメソッドを使ってデータベースコネクションを取得する方法をお勧めします。この場合，コネクションプール機能が使用でき，さらにローカルトランザクションやグローバルトランザクション配下でデータベースコネクションを使用できるようになります。

javax.sql.DataSourceクラスを使用してデータベースコネクションを取得する例を次に示します。

import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.Connection;

public void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, java.io.IOException {

・・・
 InitialContext ic = new InitialContext();              // JNDIの初期コンテキストの生成
 DataSource ds = (DataSource)ic.lookup(“java:comp/env/MyDB”);    // DataSourceをlookupにより取得
 Connection con = ds.getConnection();                   // DataSourceからコネクションを取得・・・
}

(2)　ルックアップの方法

J2EEサーバモードではjavax.sql.DataSourceクラスをJNDIのルックアップで取得します。ルックアップの実装および設定方法を次に示します。なお，ここでは，サーバ管理コマンドを使用した設定方法について説明します。

ルックアップ名称の定義
Webアプリケーションの開発時に，Webアプリケーションのlookupメソッドの引数に「java:comp/env/<<res-ref-name>タグ指定値>」と指定して実装します。

リソースの参照の定義
次のどちらかの方法でリソースの参照を定義します。

Webアプリケーションの開発時に定義します。WebアプリケーションのDD（web.xml）を編集し，<resource-ref>タグでリソースの参照を定義します。

システム構築時に定義します。サーバ管理コマンドでJ2EEアプリケーションをJ2EEサーバにインポートし，WebアプリケーションのWAR属性ファイルの<resource-ref>タグで，リソースの参照を定義します。

DB Connectorへの関連づけ
システム構築時に定義します。サーバ管理コマンドでJ2EEアプリケーションをJ2EEサーバにインポートし，WebアプリケーションのWAR属性ファイルの<resource-ref>タグ下の<linked-to>タグで，関連づけるDB Connectorの表示名を定義します。

なお，DB Connectorでは，ルックアップされるための設定は必要ありません。

(3)　コネクションプーリングの方法

J2EEサーバモードでは，WebアプリケーションはDB Connectorというリソースアダプタを経由してデータベースに接続します。DB Connectorは，Webアプリケーションに対してJDBCのインタフェースを提供します。また，DB Connectorを使用する場合，Webアプリケーションで開始したトランザクションの配下でデータベースに接続できます。

サーブレットエンジンモードで使用するjava.sql.DriverManagerでは，getConnectionメソッドの引数に与えるデータベースURLによって接続先データベースを指定しますが，J2EEサーバモードで使用するDB Connectorは，データベースとの接続方法やトランザクションの形態によって実装が分かれています。このため，用途に合わせてDB Connectorを選択し，接続先データベースやコネクションプーリングなどをDB Connectorのプロパティ（サーバ管理コマンドを使用する場合は，Connector属性ファイルに設定）に定義します。

サーブレットエンジンモードと同様にJ2EEサーバモードでもトランザクション管理なしでデータベースを使用する場合に，DABroker Libraryを使用するときは，次のDB Connectorを選択します。

DBConnector_DABJ_CP.rar
DABroker Library用のDB Connectorです。ローカルトランザクションを使用する場合，またはトランザクション管理なしで使用する場合（トランザクションのサポートレベルにLocalTransactionまたはNoTransactionを指定する場合）に選択します。DABroker LibraryのConnectionPoolDataSourceを使用してデータベースに接続します。接続可能なデータベースは，HiRDBとOracleです。

なお，DBConnector_DABJ_CP.rar以外のDB Connectorについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.6.1　DB Connectorによる接続の概要」を参照してください。

3.3.5　Webアプリケーションに組み込むサーブレットフィルタ

サーブレットエンジンモードとJ2EEサーバモードでは，使用できるサーブレットフィルタ（built-inフィルタ）の種類と設定方法が異なります。

＜この項の構成＞

(1)　built-inフィルタの種類

(2)　built-inフィルタの設定

(1)　built-inフィルタの種類

サーブレットエンジンモードでは，HTTPレスポンス圧縮フィルタを使用できますが，J2EEサーバモードの場合は，これらに加えて，次のbuilt-inフィルタも使用できます。

セッションフェイルオーバ用フィルタ
メモリセッションフェイルオーバ機能で使用するフィルタです。J2EEアプリケーションで実行中のセッション情報を管理します。

built-inフィルタについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.1　アプリケーションサーバが提供するサーブレットフィルタ（built-inフィルタ）」を参照してください。

(2)　built-inフィルタの設定

サーブレットエンジンモードの場合は，アプリケーション開発時にWebアプリケーションのDD（web.xml）を直接編集し，built-inフィルタをWebアプリケーションに組み込みます。J2EEサーバモードの場合は，これに加えて，次の手順でbuilt-inフィルタをWebアプリケーションに組み込むことができます。

システム構築時に，サーバ管理コマンドでJ2EEアプリケーションをJ2EEサーバにインポートする。

属性ファイルを編集してフィルタを組み込む。

J2EEサーバモードの場合は，サーバ管理コマンドを使用して設定する方法をお勧めします。

なお，Servlet 3.0以降では，web.xmlではなくAPIでのフィルタ定義ができますが，built-inフィルタはAPIでのフィルタ定義はできません。

3.3.6　Webアプリケーションのリロード

サーブレットエンジンモードとJ2EEサーバモードでは，Webアプリケーションのリロード機能が異なります。サーブレットエンジンモードとJ2EEサーバモードでのリロード機能の違いを次に示します。

項目 | サーブレットエンジンモードの場合 | J2EEサーバモードの場合
リロード方法 | 更新検知によるリロード | 更新検知によるリロード，またはコマンド（cjreloadapp）によるリロード
リロードの対象範囲 | 更新があったファイル※1 | 更新があったファイルとそのファイルを参照するファイル
セッション情報の引き継ぎ | セッション情報を引き継ぐかどうか変更できる | 常にセッション情報を引き継ぐ
リロードの設定方法 | Webコンテナサーバのusrconf.properties，またはhitachi_web.properties | J2EEサーバのusrconf.properties※2

注※1

参照先のファイルが更新された場合，参照元のファイルは更新されません。

注※2

Smart Composer機能でシステムを構築する場合には，Smart Composer機能で提供するファイルにリロード機能の設定をします。運用管理ポータルでシステムを構築する場合には，運用管理ポータル上でリロード機能の設定をします。

リロード時のリクエストの処理や遅延実行など，このほかのWebアプリケーションのリロード機能には，違いはありません。

サーブレットエンジンモードのリロード機能については，「3.4.2　Webアプリケーションの更新検知とリロード」を参照してください。J2EEサーバモードのリロード機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「13.8　J2EEアプリケーションの更新検知とリロード」を参照してください。

サーブレットエンジンモードとJ2EEサーバモードのusrconf.propertiesで指定する，リロード機能のキーとそのデフォルト値の対応を次に示します。

設定項目
サーブレットエンジンモードでのusrconf.propertiesのデフォルト値※1
J2EEサーバモードでのusrconf.propertiesのデフォルト値

Webアプリケーションの更新検知
webserver.context.reloadable=false
ejbserver.deploy.context.reload_scope=none

Webアプリケーションの更新検知インターバル
webserver.context.check_interval=1
webserver.context.check_interval
デフォルト値はなし（ejbserver.deploy.context.check_intervalキーに設定した値（デフォルト値は0）を使用する）。

Webアプリケーションの構成ファイル更新用インターバル
webserver.context.update.interval=0
webserver.context.update.interval
デフォルト値はなし（ejbserver.deploy.context.update.intervalキーに設定した値（デフォルト値は0）を使用する）。

Webアプリケーションの遅延実行
webserver.context.reload_delay_timeout=0
webserver.context.reload_delay_timeout=0

JSPの更新検知インターバル
webserver.jsp.check_interval=1
webserver.jsp.check_interval
デフォルト値はなし（ejbserver.deploy.context.check_intervalキーに設定した値（デフォルト値は0）を使用する）。

JSPの構成ファイル更新用インターバル
webserver.jsp.update.interval=0
webserver.jsp.update.interval
デフォルト値はなし（ejbserver.deploy.context.update.intervalキーに設定した値（デフォルト値は0）を使用する）。

セッション情報の引き継ぎ
webserver.session.persistence.enabled=false
－※2

JSPの再コンパイルの有無
webserver.jsp.recompilable=false
－※2

（凡例）－：該当しない

注※1

hitachi_web.propertiesでもデフォルト値は同じです。ただし，webserver.context.check_intervalとwebserver.jsp.check_intervalは，hitachi_web.propertiesでは設定できません。

注※2

J2EEサーバモードのusrconf.propertiesには，対応するキーはありません。常にセッション情報が引き継がれます。JSPがリロード対象となっていて対象ファイルが更新された場合には，再コンパイルが実行されます。

サーブレットエンジンモードでの，Webアプリケーションの更新検知の有無（webserver.context.reloadable），およびJSPの再コンパイルの有無（webserver.jsp.recompilable）の組み合わせを次に示します。

リロード機能の動作 | webserver.context.reloadableキーの値 | webserver.jsp.recompilableキーの値
リロード機能を使用しない | false（デフォルト値） | false（デフォルト値）
サーブレットとJSPをリロードする | true | true
サーブレットだけをリロードする | true | false（デフォルト値）
JSPだけをリロードする | false（デフォルト値） | true

J2EEサーバモードでの，J2EEアプリケーションの適用の有無と適用範囲（ejbserver.deploy.context.reload_scope），Webアプリケーションの更新検知インターバル（webserver.context.check_interval），およびJSPの更新検知インターバル（webserver.jsp.check_interval）の組み合わせを次に示します。

リロード機能の動作 | ejbserver.deploy.context.reload_scopeキーの値 | webserver.context.check_intervalキーの値 | webserver.jsp.check_intervalキーの値
リロード機能を使用しない | none（デフォルト値） | 0 | 0
サーブレットとJSPをリロードする | web | 1以上 | 1以上
サーブレットだけをリロードする | web | 1以上 | 0
JSPだけをリロードする | web | 0 | 1以上

3.3.7　システムの起動および停止方法

サーブレットエンジンモードでシステムを起動および停止する場合には，cjstartwebコマンド，cjstopwebコマンド，cprfstartコマンドなどを使用します。

J2EEサーバモードの場合には，システムの構築方法によって，システムの起動および停止方法が異なります。

Smart Composer機能を使用して構築する場合
cmx_start_target，cmx_stop_targetなどのSmart Composer機能で提供するコマンドを使用して，Webシステム（サービスユニット，J2EEアプリケーション，リソースアダプタ）を一括起動，一括停止します。

運用管理ポータルを使用して構築する場合
運用管理ポータルの「論理サーバの起動／停止」と「論理サーバのアプリケーション管理」で，論理サーバ，J2EEアプリケーション，リソースアダプタを一括起動，一括停止します。

ファイル編集とコマンド実行によってシステムを構築する場合
cjstartsvコマンド，cjstopsvコマンドなどのコマンドを使用して，J2EEサーバなどの各サーバを一つずつ起動，停止します。サーバ管理コマンドを使用して，J2EEアプリケーション，リソースアダプタを起動，停止します。

注意

サーブレットエンジンモードとJ2EEサーバモードで，サーバ起動時の実行時保護機能のデフォルト値が異なるので注意してください。

サーブレットエンジンモードで，cjstartwebコマンドを使用してWebコンテナサーバを起動する場合，デフォルトでは実行時保護機能は無効（有効にする場合には-securityを指定）となっています。

J2EEサーバモードで，cjstartsvコマンドやcjstartrecoverコマンドを使用してJ2EEサーバを起動する場合，デフォルトでは実行時保護機能は有効（無効にする場合には-nosecurityを指定）となっています。

3.3.8　使用するメモリ，スレッド数，ポート番号

サーブレットエンジンモードとJ2EEサーバモードを比較する場合，J2EEサーバモードの方が，機能が多く，メモリやスレッド，ポートなどのリソースを多く消費します。このため，サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には，注意してください。

各プロセスで使用するポートを次に示します。

WebコンテナサーバとJ2EEサーバのポートの対応

デフォルトのポート | 説明 | Webコンテナサーバプロセス | J2EEサーバプロセス※1
80（TCP） | インプロセスHTTPサーバのhttpポート | － | ○
8080（TCP） | 簡易Webサーバのhttpポート | ○ | －
管理用通信ポート | － | ○
8007（TCP） | Webサーバ（リダイレクタ）からのリクエスト受付ポート | ○ | ○
8005（TCP） | cjstopwebコマンドからのプロセス終了要求の受付ポート | ○ | －
900（TCP） | ネーミングサービスのリクエスト受付ポート | － | ○
浮動（TCP）※2 | EJBコンテナのリクエスト受付ポート | － | ○
浮動（TCP）※2 | サーバ管理コマンドのCUIとの通信ポート。 | － | ○
23152（TCP） | RMIレジストリのリクエスト受付ポート | － | ○
浮動（TCP）※2 | 運用監視エージェントの通信ポート | － | 　　○※3

（凡例）○：使用する　－：使用しない

注※1

ここではJ2EEサーバプロセスのポートだけを説明しています。J2EEサーバモードの場合，CTMを使用する場合などで使用するポートが増えます。

注※2

デフォルトの設定です。固定に変更できます。

注※3

Management Serverと連携する場合だけ使用するポートです。

HTTP Serverのポート

デフォルトのポート | 説明
80（TCP） | HTTP Serverのhttpポート
443（TCP） | HTTP Serverのhttpsポート

Management Serverのポート

デフォルトのポート | 説明
28080（TCP） | Management Serverのhttpポート
28005（TCP） | Management Serverの終了要求ポート（ホスト内通信に必要）
28009（TCP） | Management Serverの内部通信ポート（ホスト内通信に必要）

運用管理エージェントのポート

デフォルトのポート | 説明
20295（TCP） | Management Serverとの通信に使用するポート

3.4　サーブレットエンジンモードで使用できるWebコンテナの機能

Webコンテナは，J2EEサーバモードおよびサーブレットエンジンモードで使用されますが，動作モードによって使用できる機能および機能の内容が異なります。この章では，サーブレットエンジンモードで使用できるWebコンテナの機能について説明します。

Webコンテナでは，Webアプリケーションの実行機能を提供するコンテナの機能と，Webサーバと連携するためのリダイレクタの機能を提供しています。

サーブレットエンジンモードで使用できるWebコンテナおよびWebサーバ連携関連の機能を次の表に示します。

表3-15　サーブレットエンジンモードで使用できるWebコンテナおよびWebサーバ連携関連の機能

WebコンテナおよびWebサーバ連携関連の機能 | 参照先マニュアル | 参照個所
Webアプリケーションの実行機能 | このマニュアル | 3.4.1
JSPの事前コンパイルとコンパイル結果の保持 | JSP事前コンパイルを使用しない場合のJSPコンパイル結果 | このマニュアル | 3.4.3
セッション管理機能 | セッションIDおよびCookieへのサーバIDの付加※1 | 基本・開発編(Webコンテナ) | 2.7
アプリケーションのイベントリスナ※2 | このマニュアル | 3.4.4
基本・開発編(Webコンテナ) | 2.8
リクエストおよびレスポンスのフィルタリング※2 | このマニュアル | 3.4.5
基本・開発編(Webコンテナ) | 2.9
HTTPレスポンス圧縮機能 | 基本・開発編(Webコンテナ) | 2.10
EJBコンテナとの連携※2 | このマニュアル | 3.4.7
基本・開発編(Webコンテナ) | 2.11
データベースとの接続 | このマニュアル | 3.4.8
Webコンテナによるスレッドの作成 | このマニュアル | 3.4.9
ユーザスレッドで使用できるアプリケーションサーバの機能※1 | このマニュアル | 3.4.11
同時実行スレッド数の制御※2 | Webコンテナ単位での同時実行スレッド数の制御 | このマニュアル | 3.4.10
基本・開発編(Webコンテナ) | 2.16
エラーページのカスタマイズ※1※3 | 基本・開発編(Webコンテナ) | 2.20
静的コンテンツのキャッシュ※2 | このマニュアル | 3.4.13
基本・開発編(Webコンテナ) | 2.21
簡易Webサーバ機能 | 簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能）※1 | このマニュアル | 5.2.1
簡易Webサーバへのアクセスの制御 | 3.4.14
Webサーバ（リダイレクタ）によるリクエストの振り分け※1 | 基本・開発編(Webコンテナ) | 4.2
通信タイムアウト（Webサーバ連携）※1 | 4.6
IPアドレスの指定（Webサーバ連携）※1 | 4.7
エラーページのカスタマイズ（Webサーバ連携）※1※3 | 4.8
ドメイン名指定でのトップページの表示※2 | このマニュアル | 3.4.12
基本・開発編(Webコンテナ) | 4.9
Webコンテナへのゲートウェイ情報の通知※1 | 基本・開発編(Webコンテナ) | 4.10
SSL使用による認証情報とデータの暗号化※2 | セキュリティ管理機能編 | 7.2
ロールに基づくWebコンテナのユーザ認証※2 | このマニュアル | 3.4.6
SecurityManagerによるWebコンテナの実行時の保護※2
Webアプリケーションの更新検知とリロード | 3.4.2

（凡例）

基本・開発編(Webコンテナ)：マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」を示す

セキュリティ管理機能編：マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を示す

注※1

使用できる機能および使用方法は，J2EEサーバモードとの差異はありません。サーブレットエンジンモードの場合，J2EEサーバをWebコンテナサーバに置き換えてください。

注※2

これらの機能の概要については，動作モードの違いによる差異はありませんが，サーブレットエンジンモードの場合，使用方法や使用できる機能に差異があります。サーブレットエンジンモードの場合の差異については，次項以降を，機能の概要については，参照先に示したマニュアルを参照してください。

注※3

Webサーバとして，HTTP Serverを使用する場合だけ使用できる機能です。Microsoft IISを使用する場合，この機能は使用できません。

アプリケーションサーバで提供するWebコンテナWebコンテナおよびWebサーバ連携関連の機能には，J2EEで規定された機能にアプリケーションサーバ独自の機能を拡張したものと，アプリケーションサーバ独自の機能として提供しているものがあります。アプリケーションサーバ独自の機能かどうかについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「1.2　システムの目的と機能の対応」を参照してください。

以降の節で，サーブレットエンジンモードで使用できるWebコンテナおよびWebサーバ連携関連の機能の詳細について説明します。

参考

アプリケーション開発時に，アプリケーションサーバが提供するcjjsp2javaコマンドを使用することで，JSPファイルからJavaソースファイルを生成し，JSPに記述ミスがないかを確認できます。

＜この節の構成＞

3.4.1　Webアプリケーションの実行

3.4.2　Webアプリケーションの更新検知とリロード

3.4.3　JSPファイルのコンパイル結果の保持

3.4.4　アプリケーションのイベントリスナ

3.4.5　リクエストおよびレスポンスのフィルタリング

3.4.6　Webコンテナのセキュリティ管理

3.4.7　EJBコンテナとの連携

3.4.8　データベースとの接続

3.4.9　Webコンテナによるスレッドの作成

3.4.10　同時実行スレッド数の制御

3.4.11　ユーザスレッドで使用できるアプリケーションサーバの機能

3.4.12　ドメイン名指定でのトップページの表示

3.4.13　静的コンテンツのキャッシュ

3.4.14　簡易Webサーバ機能

3.4.1　Webアプリケーションの実行

Webコンテナでは，Webアプリケーションを実行できます。ただし，サーブレットエンジンモードの場合，Java Servlet2.4仕様，およびJavaServer Pages（JSP）2.0仕様に準拠したWebアプリケーションは実行できません。また，Webコンテナを使用してWebアプリケーションを実行するには，必ずWebサーバとしてHTTP ServerまたはMicrosoft IISを使用する必要があります。

＜この項の構成＞

(1)　Webアプリケーションのデプロイとアンデプロイ

(2)　Webアプリケーションを実行する場合の留意事項

(1)　Webアプリケーションのデプロイとアンデプロイ

ここでは，サーブレットエンジンモードの場合のWebアプリケーションのデプロイおよびアンデプロイについて説明します。

(a)　Webアプリケーションのデプロイ

サーブレットエンジンモードの場合，WAR形式のWebアプリケーションをデプロイするには，次に示す二つの方法があります。

WARファイルのコピーによるデプロイ

ディレクトリのコピーによるデプロイ

Webアプリケーションのデプロイの手順については，「3.7.7　Webアプリケーションの設定」を参照してください。

複数のWebアプリケーションのデプロイ

複数のWebアプリケーションをデプロイした場合，Webアプリケーションごとに独立のクラスローダが作成されます。このため，異なるWebアプリケーションで同一のクラス名のクラス（Loginサーブレットなど）を用いた場合でも，別々のクラスローダ上で独立に扱われます。

(b)　Webアプリケーションのアンデプロイ

サーブレットエンジンモードの場合，次に示す二つの方法があります。

WARファイルの削除によるアンデプロイ

ディレクトリの削除によるアンデプロイ

Webアプリケーションのアンデプロイの手順については，「3.7.7　Webアプリケーションの設定」を参照してください。

(2)　Webアプリケーションを実行する場合の留意事項

ここでは，Webアプリケーションを実行する場合の留意事項について説明します。

(a)　サーブレット／JSPのデフォルトマッピングについて

Java Servlet Specification v2.3では，クライアントがリクエストするURLに対してどのサーブレットが呼び出されるかの設定（サーブレットマッピング）をDD（WEB-INF/web.xml）内に記述するように求めていますが，Webコンテナでは，これ以外にも次に示すマッピングをデフォルトで定義しています。

URL | 取り扱い
*.jsp | JSPファイルとして取り扱われます。
/servlet/* | WEB-INF/classes以下にあるサーブレットクラス，またはWEB-INF/lib以下にあるJARファイルに含まれるサーブレットクラスが呼び出されます。

(b)　DD（WEB-INF/web.xml）内のタグが設定されていない場合のデフォルト値について

Webコンテナでは，次に示すタグがDD（WEB-INF/web.xml）に設定されていない場合，次に示すデフォルト値を使用します。

タグ名
設定されていない場合のデフォルト値

welcome-file-list

<welcome-file-list>
   <welcome-file>
       index.jsp
   </welcome-file>
   <welcome-file>
       index.html
   </welcome-file>
   <welcome-file>
       index.htm
   </welcome-file>
</welcome-file-list>

session-timeout
30

mime-mapping
拡張子とMIMEタイプとの対応付け。

DD（WEB-INF/web.xml）にこれらのタグを設定している場合には，次の設定となります。

<welcome-file-list>タグに設定された値が追加されます。

<session-timeout>タグに設定された値で，デフォルト値を上書きします。

<mime-mapping>タグに定義した拡張子単位の設定で，デフォルト値を拡張子単位に上書きします。

なお，DD（WEB-INF/web.xml）のmime-mappingタグにデフォルトで設定されている拡張子とMIMEタイプの対応づけについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「付録B.1　拡張子とMIMEタイプの対応づけ」を参照してください。

(c)　サーブレットのインスタンス作成数

Webアプリケーション単位に同じクラスのサーブレットのインスタンスを一つ作成します。SingleThreadModelを継承したサーブレットのインスタンスも，一般のサーブレットと同様にWebアプリケーション単位に一つ作成します。

ただし，同一のサーブレットおよびJSPに対して，デフォルトのマッピングとDDに記述したマッピングの両方でアクセスすると，それぞれに別のインスタンスが生成されます。

また，SingleThreadModelを継承した単一のサーブレットに対して，Webアプリケーション単位にリクエストが並列に複数到着した場合，各スレッドがオーバラップしないで1スレッドずつ順に実行するように制御します。

(d)　クエリ文字列の解析について

クエリ文字列は，URLの?マーク以降に，"名前=値"の組が一つ以上組み合わさって構成されます。

アプリケーションサーバでは，"名前=値"の部分に複数の"="がある場合，最初の"="より前の文字列が名前，後ろの文字列が値となります。例えば，URLが「http://host/examples?a=b=c」の場合は，「名前"a"の値は"b=c"」と解析されます。

3.4.2　Webアプリケーションの更新検知とリロード

サーブレットエンジンモードでは，Webコンテナ上のアプリケーションの更新を検知し，更新したアプリケーションをリロードする機能を備えています。この機能によって，Webコンテナサーバを再起動することなく，デプロイ済みのサーブレットやJSPを動的に入れ替えることができます。この機能は，Webアプリケーション開発時のテストを支援する機能として利用します。

リロード機能には，次の二つがあります。

Webアプリケーションのリロード機能
Webコンテナサーバ起動中にWebアプリケーションを更新すると，WebコンテナはWebアプリケーションが更新されたことを検知し，更新後のWebアプリケーションをリロードします。

JSPファイルの再コンパイル機能
Webコンテナサーバ起動中にJSPを更新すると，WebコンテナはJSPが更新されたことを検知し，更新後のJSPを再コンパイルします。

これらの機能によって，Webコンテナサーバにロード済み※のサーブレットまたはJSPを，Webコンテナサーバ起動中に更新後のサーブレットまたはJSPに置き換えができます。

注※

Webコンテナサーバの起動後にアクセスされたサーブレット／JSP，またはweb.xmlの<load-on-startup>タグに指定されているサーブレット／JSPを指します。

更新検知の対象となるファイル
Webアプリケーションのリロード機能およびJSPファイルの再コンパイル機能の対象は，webapps下にデプロイされたWebアプリケーションのディレクトリ下のファイルです。
webappsは，次の場所にあります。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps

なお，WARファイルのコピーでのデプロイの場合，Webコンテナサーバ起動後に展開されたディレクトリ内のファイルが対象です。

Webアプリケーションのリロードと，JSPファイルの再コンパイルについて次に示します。

＜この項の構成＞

(1)　Webアプリケーションのリロード

(2)　リロードの動作に関する設定

(3)　JSPファイルの再コンパイル

(1)　Webアプリケーションのリロード

Webアプリケーションのリロードの条件について説明します。

(a)　Webアプリケーションのリロードの条件

Webコンテナサーバ起動後，更新検知対象のファイルが次に示す条件でリロードされます。

表3-16　リロードの条件

更新検知対象のファイル種別
リロードの条件

Windowsの場合

WEB-INF¥classesディレクトリ下のクラスファイルおよびリソースファイル（java.util.ResourceBundleによってロードされたファイルなど）

UNIXの場合

WEB-INF/classesディレクトリ下のクラスファイルおよびリソースファイル（java.util.ResourceBundleによってロードされたファイルなど）

ロード時の更新日時と異なる場合

ロードされたファイルが削除された場合

Windowsの場合

WEB-INF¥libディレクトリ下のJARファイル

UNIXの場合

WEB-INF/libディレクトリ下のJARファイル

ロード時の更新日時と異なる場合

JARファイルが追加された場合

JARファイルが削除された場合

(b)　リロード処理の流れ

Webアプリケーションの更新を検知して，リロードするまでの流れを次の図に示します。

図3-1　Webアプリケーションの更新検知からリロードまでの動作

Webアプリケーションを更新する

WebコンテナがWebアプリケーションの更新を検知する
Webコンテナは，設定した間隔でWebアプリケーションが更新されているかどうかチェックします。この間隔は，更新検知のインターバルで設定します。詳細については，「(2)(a)　更新検知のインターバル」を参照してください。
また，更新を検知してから，手順3.の処理を実施するまでのインターバルを設定できます。インターバルの設定については，「(2)(b)　リソース更新用インターバル」を参照してください。

新規リクエストを実行待ち状態にする
なお，処理中のリクエストはそのまま実行します。
デフォルトでは，新規リクエストを実行待ちにしますが，処理中のリクエストの処理が終わってから，新規リクエストを実行待ちにすることもできます。この場合，リロード遅延実行の設定が必要になります。リロード遅延実行については，「(2)(c)　リロード遅延実行（任意）」を参照してください。リロード遅延実行の設定は任意となります。

Webアプリケーションの終了処理をする
終了処理では次の処理が実行されます。

リロード前のクラスローダにローディングされたサーブレットのインスタンスが破棄されます。サーブレットがdestroyメソッドを実装している場合，destroyメソッドが実行されます。また，JSPファイルから生成されたサーブレットのインスタンスも破棄されます。この際，JSPファイルが，jspDestroyメソッドを実装している場合，jspDestroyメソッドが実行されます。

javax.servlet.ServletContextに登録されたオブジェクトは破棄されます。

セッション情報（javax.servlet.http.HttpSessionオブジェクトに登録したオブジェクト）をシリアライズ※し，セッション情報ファイルに出力する
セッション情報を引き継ぐかどうかを設定できます。セッション情報を引き継ぎたい場合に指定してください。詳細については，「(2)(d)　リロード時のセッション引き継ぎ（任意）」を参照してください。

Webアプリケーション単位のクラスローダを新規に作成する
Webアプリケーションのリロード処理が実行されると，Webアプリケーション単位のクラスローダが新たに作成され，リロード後のリクエスト処理で使用されます。すでにロードされているサーブレットについては，destroyメソッドが実行され，インスタンスを破棄します。

セッション情報ファイルからセッション情報を読み込み，デシリアライズ※する
セッション情報ファイルからセッション情報を読み込み，リロード後のクラスローダ上でデシリアライズします。セッション情報の引き継ぎを設定している場合だけ実施されます。

セッション情報ファイルを削除する
セッション引き継ぎを指定している場合だけ実施されます。

Webアプリケーションの開始処理をする
リロード後は，初回アクセス時に更新後のサーブレットのインスタンスが作成され，initメソッドが実行されます。

リクエスト処理を再開する
3.で実行待ちにしていたリクエストの処理を再開します。

注※

シリアライズ処理，およびデシリアライズ処理の時間は，リロードを実行しているWebアプリケーション上で生成されたセッション数，javax.servlet.http.HttpSessionオブジェクトに登録したオブジェクトの容量などに依存します。

(2)　リロードの動作に関する設定

アプリケーションの更新検知とリロード機能は，デフォルトの設定では実行されません。必要に応じて実行するように設定してください。

この機能では，次の動作をカスタマイズできます。

更新検知のインターバル

リソース更新用インターバル

リロード遅延実行（任意）

リロード時のセッション引き継ぎ（任意）

リロードの動作に関する設定は，Webコンテナサーバのプロパティ，またはWebコンテナ上で動作するWebアプリケーションプロパティとして設定します。アプリケーションの更新検知とリロードの設定については，「3.7.4　Webコンテナサーバの動作設定のカスタマイズ」を参照してください。

(a)　更新検知のインターバル

Webアプリケーションの更新を検知する間隔を設定できます。更新検知は，デーモンスレッドによって実行されます。デフォルトでは1秒間隔となっています。

更新検知インターバルの値を大きくすると，構成ファイルを監視する間隔が長くなり，ファイル更新後のリロードの反映が遅くなります。また，値を小さくすると，リロードの反映が早くなります。

ポイント

更新検知の対象となるファイル数が増えると，更新検知処理のオーバーヘッドが大きくなり，CPU使用率が高くなります。このような場合は，更新検知インターバルを変更することによって，性能への影響が小さくなります。更新検知インターバルの値は大きくすることをお勧めします。

(b)　リソース更新用インターバル

Webアプリケーションの更新を検知してから，処理中のリクエスト数の監視を実施するまでの時間を設定できます。

Webコンテナは，ファイル（リソース）の更新を検知すると，更新するファイルをコピーし，処理中のリクエスト数の監視を開始します。処理中のリクエストの処理が完了すると，コピーしたファイルをロードします。ファイルの容量が大きい場合，ネットワークを経由した場合や，ファイルが複数ある場合には，ファイルコピーなどの処理時間が長くなることがあります。このとき，ファイルコピーが完了する前に処理中のリクエストがなくなると，ファイルコピー中にロードが開始されて，ロードに失敗するおそれがあります。これを回避するため，ファイルコピーに掛かる時間を考慮してコピーが完了してからロードが開始されるように，構成ファイルの更新を検知してから処理中のリクエスト数の監視を開始するまでの時間をリソース更新用インターバルとして設定しておくことができます。

ポイント

リソース更新用インターバルには，実際に掛かるコピー時間にゆとりを持たせた時間を設定することをお勧めします。

複数のファイルを同時に更新する場合，複数のファイルの更新に掛かる時間を算出して，設定してください。

(c)　リロード遅延実行（任意）

ファイル（リソース）の更新を検知してから，リロードを開始するまでの時間を設定できます。リロード遅延実行の時間を設定している場合に，Webアプリケーションの更新を検知すると，リロードの開始を遅延実行に指定した時間まで遅らせます。指定した時間内に処理中のリクエストがなくなるか，または指定した時間がくると，アプリケーションのサービスを停止してリロードを開始します。これによって，処理中のリクエストの実行待ち時間を減らすことができるため，アプリケーションのサービス停止期間を最小限にできます。

なお，デフォルトでは，リロード遅延実行が設定されていません。デフォルトでは次のような動作となります。

Webコンテナがリソースの更新を検知すると，アプリケーションのサービスを停止する

リクエストを次のように処理する

新規のリクエスト：実行待ちにする

処理中のリクエスト：すべてのリクエストを処理する

処理中のリクエストの処理が完了すると，リロードが実施される

リロードの遅延実行が設定されていないと，アプリケーションのサービス停止の期間が長くなります。これを回避するため，リロード遅延実行を設定することをお勧めします。

リロード遅延実行を設定した場合と設定しない場合の，アプリケーションのサービス停止期間の違いを，次の図に示します。

図3-2　アプリケーションのサービスの停止期間の違い

(d)　リロード時のセッション引き継ぎ（任意）

Webアプリケーションのリロード実行前に生成したセッション情報を，リロード後も継続して利用するかどうかを設定できます。これによって，リロード前にjavax.servlet.http.HttpSessionオブジェクトに登録されているオブジェクトを，リロード後も引き続き利用できるようになります。セッションの情報は，シリアライズされてセッション情報ファイルに出力されます。セッション情報ファイルは，リロード処理開始時に作成されます。そして，リロード後にセッション情報がクラスローダ上でデシリアライズされ，セッション情報ファイルはリロード処理完了時に削除されます。

なお，セッション引き継ぎ機能を使用しない場合，リロード処理が実行されるとセッション情報はすべて失われます。

(e)　注意事項

Webアプリケーションのリロード機能を使用する際の，注意について説明します。

●リロード機能の使用に関する注意

Webアプリケーションのリロード機能を使用する場合，web.xmlに<error-page>タグを定義しないでください。

Webアプリケーションのリロード機能を使用する場合，WebアプリケーションからJNIを利用することはできません。リロード処理ではWebアプリケーション単位のクラスローダを置き換えますが，JNIの仕様では，異なるクラスローダ上で同じネイティブライブラリをロードできないという制限があるためです。

Webアプリケーションのリロード機能は，Webアプリケーション単位のクラスローダを入れ替えることによって，Webコンテナ起動中のWebアプリケーションの入れ替えを実現しています。そのため，リロード後にリロード前のWebアプリケーション単位のクラスローダ，またはWebアプリケーション単位のクラスローダでロードされたクラスが参照されるとメモリリークが発生します。
次に，該当する場合を示します。

スレッドの生成
スレッドはコンテキストクラスローダを保持しますが，デフォルトでは親スレッドのコンテキストクラスローダを保持します。Webアプリケーション実行時のスレッドは，Webアプリケーション単位のクラスローダをコンテキストクラスローダとしているため，生成されたスレッドはWebアプリケーション単位のクラスローダをコンテキストクラスローダとします。そのため，リロード後も該当スレッドが存在すると，リロード前のWebアプリケーション単位のクラスローダが解放されないでメモリリークが発生します。

java.lang.Threadクラスまたはその派生クラスのインスタンス生成
java.lang.Threadクラスまたはその派生クラス（以降，スレッドクラス）のインスタンスを作成すると，所属するスレッドグループから該当スレッドクラスのインスタンスが参照されます。スレッドグループからの参照は，スレッドの実行を終了（runメソッドの完了）すると解放されます。そのため，Webアプリケーション内でスレッドクラスのインスタンスを生成し，runメソッドを実行しなかった場合は，該当スレッドクラスのインスタンスが解放されません。また，スレッドはコンテキストクラスローダとしてWebアプリケーション単位のクラスローダを保持しているため，Webアプリケーション単位のクラスローダが解放されないでメモリリークが発生します。

スレッドローカル変数の使用
Webコンテナではリクエストを処理するスレッドはプールされていて，Webコンテナ終了時まで終了しません。そのため，スレッドローカル変数にWebアプリケーションに含まれるクラスのインスタンスを格納すると，メモリリークが発生します。

Webアプリケーション外からの参照
usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）のweb.add.class.pathキーで指定したクラスパスに存在するクラスは，システムクラスローダからロードされます。リロード実行時に該当クラスはアンロードされません。
このため，該当クラスのクラス変数からWebアプリケーション単位のクラスローダ，またはWebアプリケーション単位のクラスローダでロードされたクラスを参照すると，メモリリークが発生します。

Webアプリケーションのリロード機能と，JSPの再コンパイル機能を併用する場合，次のことに注意してください。

JSPファイルだけを更新した場合，Webアプリケーションのリロードは実行されません。

JSPファイルの再コンパイルが実行されている場合には，リロード処理でのJSPの再コンパイルは停止されることがあります。この場合，JSPファイルの再コンパイルは，リロード完了後の該当するJSPに対して初めてアクセスするときに実行されます。また，web.xmlの<load-on-startup>タグに該当するJSPファイルが指定されている場合は，リロード処理内のWebアプリケーションの初期化処理で実行されます。

●リソースの更新に関する注意

次の場合にはメモリ不足が発生するおそれがあるため，リソースの更新はリクエストのピーク時など負荷の高いときを避けて実施してください。

リロードの処理は，クラスローダを再作成してクラスをロードし直すため，メモリを多く消費します（ただし，消費するメモリ使用量は，Webアプリケーションの実装に依存します）。そのため，例えば，複数のWebアプリケーションで，同時にリロード処理を繰り返すと，メモリ不足が発生するおそれがあります。

リロード処理によって不要になったリソースがJavaVMから解放されるタイミングは，JavaVMのGCの実行のタイミングに依存します。リクエストのピーク時など，負荷が高いときにリロードを繰り返すと，GCを実行するタイミングがなく，メモリ不足が発生するおそれがあります。

複数のリソースを更新する場合，リソース更新用インターバルに，複数のリソースの更新（ファイルコピー）に掛かる時間を指定してください。なお，いったん，リソースを更新したら，リロード処理が完了する前に別のリソースを更新しないようにしてください。

ロード済みのリソース（ファイル）を削除した場合もWebアプリケーションに対する変更と判断されるため，リロードが実行されます。このため，不用意にリソースを削除しないよう，注意してください。

●リロード処理実行時の注意

Webアプリケーションのリロード処理が実行されると，Webアプリケーション単位のクラスローダを置き換えるため，リロード前に作成されたインスタンスをリロード後のサーブレットから使用できません。

更新前のサーブレットがjavax.servlet.ServletContextに登録したオブジェクトはクリア（削除）されます。更新前のサーブレットが生成したセッションは破棄され，更新後のサーブレットにアクセスすると新しいセッションが生成されます。さらに，Webアプリケーションのリロード時には，そのときロードされているJSPもリロードされます。

Webアプリケーションのリロード機能を使用すると，更新検知処理のためのオーバーヘッドが発生し，監視対象のファイル数の増加に伴ってオーバーヘッドが大きくなるため，更新検知間隔を変更して性能への影響を小さくする必要があります。

リロード処理中に，cjstopwebコマンドでWebコンテナサーバに対して終了要求を発行した場合は，次のように動作します。

リロード処理内のWebアプリケーションの初期化処理の開始前の場合
リロード処理を中断し，終了処理が実行されます。

リロード処理内のWebアプリケーションの初期化処理の開始後の場合
リロード処理完了後に，Webコンテナサーバの終了処理が実行されます。このとき，リロード処理による実行待ちのリクエストはエラーになります。

●リロードの処理時間に関する注意

リロード処理時間は，Webアプリケーションの実装に大きく依存します。このため，次の点に注意が必要です。

セッション情報の容量は，シリアライズ処理時間，デシリアライズ処理時間に大きく影響します。シリアライズ対象となるセッション情報は，必要十分な容量にしてください。

リロード処理では，Webアプリケーションの終了処理，初期化処理が実行されます。終了処理，初期化処理が長い場合，リロードの処理時間も長くなり，Webアプリケーションのサービス停止期間にも影響があるため注意してください。ただし，リロード処理で初期化処理が実行されるのは，web.xmlの<load-on-startup>タグを設定したサーブレットやJSPだけです。<load-on-startup>タグを設定していないサーブレットやJSPの初期化処理は，リロード完了後の初回アクセス時に実行されます。

●セッション引き継ぎ機能を使用する場合の注意

リロード時のセッション引き継ぎ機能を使用する場合，javax.servlet.http.HttpSessionに登録するセッション情報は，シリアライズできるオブジェクトである必要があります。

HttpSessionオブジェクトに登録したオブジェクトから参照するオブジェクトは，transientで宣言されているか，またはシリアライズできるオブジェクトである必要があります。以降，参照するオブジェクトも同様です。シリアライズできるオブジェクトについての詳細は，J2SEの仕様書を参照してください。

セッション情報としてシリアライズできないオブジェクトを登録した場合は，エラーが発生します。エラーの内容はオブジェクトによって異なります。

javax.servlet.http.HttpSessionに登録したオブジェクトの場合
HttpSessionオブジェクトに登録したオブジェクトが，シリアライズできないオブジェクトである場合，該当するオブジェクトだけを破棄します。破棄されたオブジェクトは，リロードが完了したあとに使用することはできません。また，該当するオブジェクトが，javax.servlet.http. HttpSessionBindingListenerインタフェースを実装していても，Webコンテナからアンバインドされたイベントは通知されません。

javax.servlet.http.HttpSessionに登録したオブジェクトから参照されるオブジェクトの場合
HttpSessionに登録したオブジェクトから参照されるオブジェクトがシリアライズできないオブジェクトの場合，すべてのセッション情報が破棄されます。HttpSessionに登録したオブジェクトから参照されるオブジェクトが，HttpSessionに登録したオブジェクトの場合も同様に，すべてのセッション情報が破棄されます。

シリアライズ対象となるセッションに登録したオブジェクトのクラス，およびそこから参照されるオブジェクトのクラスを，デシリアライズできない構成に更新してリロードを実行した場合，セッションのデシリアライズに失敗します。デシリアライズに失敗すると，Webアプリケーション上のすべてのセッション情報が破棄されるので注意してください。

(3)　JSPファイルの再コンパイル

Webコンテナに配置されたJSPファイルの更新日時がロード時と異なる場合，再コンパイルされるように設定できます。ただし，JSPファイルから生成されたJavaファイル，またはクラスファイルを更新しても，再コンパイルの対象にはなりません。

JSPの再コンパイル機能は，デフォルトの設定では実行されません。必要に応じて実行するように設定してください。

この機能では，次の動作をカスタマイズできます。

更新検知のインターバル

JSPファイル更新用インターバル

JSPファイルの再コンパイルに関する設定は，Webコンテナサーバのプロパティ，またはWebコンテナ上で動作するWebアプリケーションプロパティとして設定します。アプリケーションの更新検知とリロードの設定については，「3.7.4　Webコンテナサーバの動作設定のカスタマイズ」を参照してください。

(a)　更新検知のインターバル

JSPファイルの更新を検知する間隔を指定できます。更新検知は，デーモンスレッドによって実行されます。デフォルトでは1秒間隔となっています。

ポイント

更新検知の対象となるファイル数が増えると，更新検知処理のオーバーヘッドが大きくなり，CPU使用率またはメモリ使用量が増加します。このような場合は，更新検知インターバルを変更することによって，性能への影響が小さくなります。更新検知インターバルの値は大きくすることをお勧めします。

(b)　JSPファイル更新用インターバル

JSPファイル更新用インターバルとは，JSPファイルの更新を検知してから，JSPファイルをコンパイルするまでの間隔を指します。

設定の指針

JSPファイル更新用インターバルには，実際にファイルのコピーに掛かる時間よりも長い時間を設定することをお勧めします。

複数のファイルを同時に更新する場合，複数のファイルの更新に掛かる時間を算出して，設定してください。

(c)　注意事項

JSPファイルの再コンパイル機能を使用すると，更新検知処理のためのオーバーヘッドが発生します。監視対象のJSPファイル数が増えると，オーバーヘッドも大きくなります。この場合は，更新検知間隔を長くすることで，性能への影響を少なくできます。

includeディレクティブを使用してインクルードされたJSPファイルを更新しても，インクルード元のJSPファイルは再コンパイルされません。再コンパイルを実行する場合には，インクルード元のJSPファイルを更新してください。

3.4.3　JSPファイルのコンパイル結果の保持

JSPは，Webコンテナ上でコンパイルされ，Javaソースファイルおよびクラスファイルが生成されます。Webコンテナでは，JSPのコンパイル結果である，Javaソースファイルおよびクラスファイルを，Webコンテナサーバの再起動時に保持するかどうか設定できます。

JSPのコンパイル結果の保持機能は，デフォルトの設定では実行されません。必要に応じて実行するように設定してください。

JSPのコンパイル結果の保持に関する設定は，Webコンテナサーバのプロパティをカスタマイズして設定します。設定については，「3.7.4　Webコンテナサーバの動作設定のカスタマイズ」を参照してください。

ここでは，コンパイル結果が生成，削除されるタイミングについて説明します。また，Webアプリケーションがアンデプロイされた場合，およびJSPファイルが更新された場合のJSPコンパイル結果の動作についても説明します。

＜この項の構成＞

(1)　コンパイル結果の生成

(2)　コンパイル結果の削除

(3)　Webアプリケーションアンデプロイ時の動作

(4)　JSPファイルを更新する場合の動作

(5)　JSPファイルがインクルードされた場合の注意事項

(1)　コンパイル結果の生成

JSPのコンパイル結果は，次のタイミングで生成されます。

JSPへの初回アクセス時

DD（web.xml）でJSPに対し<load-on-startup>が指定されているWebアプリケーションの開始時

(2)　コンパイル結果の削除

JSPのコンパイル結果は，次のタイミングで削除されます。

Webコンテナサーバの起動時※1

Webコンテナサーバの終了時※2

注※1

次のどちらかの場合にだけ削除されます。

JSPコンパイル結果を保持しない設定にしている場合

JSP用テンポラリディレクトリにJSPコンパイル結果が保持されている場合
これは，サーバが強制終了された場合に備えて実施されます。

注※2

JSPコンパイル結果保持を無効にした場合だけ削除します。

(3)　Webアプリケーションアンデプロイ時の動作

サーブレットエンジンモードの場合，WebアプリケーションをアンデプロイしてもJSPコンパイル結果は削除されません。このため，JSPのコンパイル結果を保持する設定でWebコンテナを稼働したあとにJSPコンパイル結果が不要となった場合，またはWebアプリケーションをアンデプロイした場合は，JSPのコンパイル結果を手動で削除する必要があります。削除方法について次に示します。

削除方法

JSPコンパイル結果の削除をするには，Webコンテナサーバ終了後に，削除対象のWebアプリケーションのJSP用テンポラリディレクトリに作成されるWebアプリケーション単位のディレクトリ以下を削除します。JSP用テンポラリディレクトリは，usrconf.propertiesで設定します。

(4)　JSPファイルを更新する場合の動作

サーブレットエンジンモードでは，JSPファイルを直接編集，またはファイルの上書きで更新できます。JSPコンパイル結果を保持している状態では，JSPの初回ロード時に，保持されたクラスファイルをロードする場合と，更新されたJSPファイルのコンパイル結果であるクラスファイルをロードする場合があります。どちらのクラスファイルをロードするかについては，更新されたJSPファイルと，保持されたクラスファイルの更新日時によって次のように決まります。

更新されたJSPファイルの更新日時が，保持されたクラスファイルの更新日時より新しい場合，保持されたクラスファイルは使用されません。このため，JSPのコンパイルが実行され，コンパイル後のクラスファイルがロードされます。

更新されたJSPファイルの更新日時が，保持されたクラスファイルの更新日時よりも古い場合，保持されたクラスファイルがそのままロードされます。

(5)　JSPファイルがインクルードされた場合の注意事項

includeディレクティブを使用してインクルードされたJSPファイルを更新しても，インクルード元のJSPファイルは再コンパイルされません。再コンパイルを実行する場合には，インクルード元のJSPファイルを更新してください。

3.4.4　アプリケーションのイベントリスナ

Webアプリケーション単位でのイベントリスナ機能があります。アプリケーションイベントリスナは，Webアプリケーションのデプロイ時にインスタンス化されます。インスタンス化されたアプリケーションイベントリスナは，サーブレットコンテキストオブジェクトまたはセッションオブジェクトのどちらか一方，または両方の状態変化イベントを受け取ります。リスナオブジェクトが受け取るイベントを次に示します。

セッションオブジェクトの新規生成

セッションオブジェクトのシリアライズ前※

セッションオブジェクトのデシリアライズ後※

セッションオブジェクトの抹消

セッションオブジェクトの属性の追加，削除，変更

サーブレットコンテキストオブジェクトの生成

サーブレットコンテキストオブジェクトの抹消

サーブレットコンテキストオブジェクトの属性の追加，削除，変更

注※

サーブレットエンジンのベンダ独自処理の都合で，セッションオブジェクトをシリアライズして格納，通信し，別の時点でデシリアライズして処理を再開することが，Servlet APIでは想定されています。

セッションオブジェクトに，これらのイベント通知が設けられている意図は，セッションオブジェクトにデータだけでなく，データベースコネクションやオブジェクトリファレンスなどの資源を持たせられるようにするためです。セッションオブジェクトに資源を持たせるような設計のアプリケーションでは，シリアライズの前にいったん資源を解放し，デシリアライズ後に再び獲得するようにしなければなりません。

セッションオブジェクトに資源を持たせるという構成は，注意深く利用しないとサーバ全体の必要資源量を大幅に増大させてしまい，資源が不足するおそれがあります。このため，イベントリスナ機能は，資源を確保できる場合に利用してください。

3.4.5　リクエストおよびレスポンスのフィルタリング

サーブレット／JSPの，リクエストやレスポンスに対してフィルタリングをする機能です。この機能によって，サーブレット／JSPの実行前のリクエスト，または実行後のレスポンスをラップして，データの変更，リソースに対するトレースの取得などができます。

アプリケーションサーバでは，アプリケーションサーバ独自の機能を使用するためのサーブレットフィルタを提供しています。アプリケーションサーバが提供するサーブレットフィルタを，built-inフィルタといいます。

アプリケーションサーバで提供しているサーブレットフィルタ（built-inフィルタ）のうち，サーブレットエンジンモードで使用できるのは，HTTPレスポンスの圧縮機能を使用するためのbuilt-inフィルタです。

サーブレットエンジンモードで使用できるbuilt-inフィルタの種類と，Webアプリケーションにbuilt-inフィルタを組み込むことによって使用できる機能を次の表に示します。

表3-17　サーブレットエンジンモードで使用できるbuilt-inフィルタの種類

built-inフィルタの種類 | 機能
HTTPレスポンス圧縮フィルタ | サーブレット，JSP，および静的コンテンツへのHTTPリクエストに対するHTTPレスポンスをgzip形式に圧縮します。

なお，built-inフィルタは，HTTPリクエストおよびHTTPレスポンスへの作用や，フィルタ連鎖の順序制約などを考慮して，Webアプリケーションに組み込む必要があります。built-inフィルタに関する制約，およびHTTPレスポンス圧縮フィルタについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.1　アプリケーションサーバが提供するサーブレットフィルタ（built-inフィルタ）」を参照してください。

3.4.6　Webコンテナのセキュリティ管理

Webコンテナのセキュリティ管理は，次の内容を除き，J2EEサーバモードの場合と同様です。このため，セキュリティ管理の概要については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。

ここでは，J2EEサーバモードとの差異のある機能について説明します。

＜この項の構成＞

(1)　ロールに基づくWebコンテナのユーザ認証

(2)　SecurityManagerによるWebコンテナの実行時の保護

(1)　ロールに基づくWebコンテナのユーザ認証

サーブレットエンジンモードの場合，Webコンテナのユーザ認証で使用するユーザ情報の管理方法が，J2EEサーバモードとは異なります。

Webコンテナでは，ユーザ情報として，各ユーザのユーザ名，パスワード，および所属するロールを保持，管理します。これらの情報を保持，管理するために，サーブレットエンジンモードでは，次に示す場所に各ユーザのユーザ名，パスワード，および所属するロールを記述します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web-users.xml

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web-users.xml

記述例を次に示します。

<web-users>
 <user name="user1"  password="user1" roles="regular" />
 <user name="admin" password="admin" roles="admin" />
</web-users>

なお，web-users.xmlの詳細については，「3.11.4　web-users.xml（ユーザ認証情報定義ファイル）」を参照してください。

(2)　SecurityManagerによるWebコンテナの実行時の保護

Java2のSecurityManagerに基づいたWebコンテナの実行時保護を実現します。これによって，次に示すような現象を防ぐことができます。

内部でSystem.exit()などを発行するような，不正なサーブレット，JSPによってWebコンテナ全体が勝手に終了する。

システムプロパティなどを勝手に書き換えるような不正なサーブレット，JSPによって，Webコンテナの実行に不具合が生じる。

サーブレットエンジンモードの場合，-securityオプションを指定して，cjstartwebコマンドを実行することでWebコンテナの保護が有効になります。なお，Webコンテナの実行時の保護機能を使用すると，サーブレットまたはJSPファイルから，EJBを呼び出すことができないので注意してください。

3.4.7　EJBコンテナとの連携

ここでは，サーブレットエンジンモードの場合のEJBコンテナとの連携について説明します。

＜この項の構成＞

(1)　Enterprise Beanの呼び出し方法

(2)　JSPからのEnterprise Beanを呼び出すときのRMI-IIOP通信のタイムアウトを設定するときの注意

(1)　Enterprise Beanの呼び出し方法

WebコンテナはEJBコンテナと連携して，J2EEサーバとして動作します。なお，EJBコンテナとの連携については，J2EEサーバモードの場合と同じです。

ここでは，サーブレットエンジンモード固有のEnterprise Beanの呼び出し方法についてだけ説明します。これ以外のEnterprise Beanの呼び出し方法については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.4　Enterprise Beanの呼び出し」を参照してください。また，Enterprise Bean呼び出しの準備については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.4.2　Enterprise Beanを呼び出すための実装」を参照してください。

Enterprise Beanを呼び出すサーブレット／JSPがWebコンテナサーバで動作している場合

Enterprise Beanを呼び出すサーブレットがWebコンテナサーバで動作しているとき，次の例に示すようにEnterprise Beanを呼び出します。例を次に示します。

例：

Context ctx = new InitialContext();
Object o =
ctx.lookup("HITACHI_EJB/SERVERS/MyServer/EJB/APName/Cart");
CartHome h = (CartHome)PortableRemoteObject.narrow(o, CartHome.class);
Cart c = h.create();
c.call();

(2)　JSPからのEnterprise Beanを呼び出すときのRMI-IIOP通信のタイムアウトを設定するときの注意

Enterprise Beanを呼び出すとき，RMI-IIOP通信にタイムアウトを設定できます。RMI-IIOP通信のタイムアウト時間の設定方法は，Enterprise Beanがどこから呼び出されるかによって異なります。

Enterprise Beanを呼び出すEJBクライアントの形態がJSPやサーブレットの場合で，サーブレットエンジンモードで動作するWebコンテナを利用するときは，クライアント側のJSP，サーブレットが動作するWebコンテナサーバのプロパティをカスタマイズして設定します。設定については，「3.7.4　Webコンテナサーバの動作設定のカスタマイズ」を参照してください。また，RMI-IIOP通信のタイムアウトの概要については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.11.5　RMI-IIOP通信のタイムアウト」を参照してください。

3.4.8　データベースとの接続

サーブレットエンジンモードでWebコンテナを利用している場合，WebアプリケーションからDABroker Libraryを通じ，Sun JDBC API仕様に従ったデータベースアクセスができます。ただし，使用時には次に示す点に注意する必要があります。

java.sqlパッケージで定義されたクラス，インタフェースだけが使用できます。

java.sql.DriverManagerクラスのgetConnectionメソッドを使ってデータベースコネクションを取得します。

コネクションシェアリング，および分散トランザクションはサポートしていません。

コネクションプール機能を使用できます。コネクションプールの詳細については，「3.6.3(2)　パフォーマンスチューニングのための機能」を参照してください。

DABroker Libraryを使用したデータベースアクセスの詳細については，「4.2　DABroker Libraryを使用したデータベース接続の概要」を参照してください。

3.4.9　Webコンテナによるスレッドの作成

Webコンテナでは，Webサーバ連携のためのスレッド，Webアプリケーションのためのスレッドなどを作成します。これらのスレッドに対して，システムのリソースが十分であるか検討します。

ここでは，サーブレットエンジンモードの場合の，Webコンテナが作成するスレッドについて説明します。

＜この項の構成＞

(1)　作成されるスレッドの種類と数

(2)　作成されるスレッドの総数

(1)　作成されるスレッドの種類と数

Webコンテナが作成するスレッドを次に示します。

(a)　Webサーバ連携のためのスレッド

●Webコンテナの簡易Webサーバを使用する場合（任意）

作成するスレッド

TCPのコネクション接続要求を受信するスレッド，および受信したリクエスト処理用スレッドを作成します。

スレッドの数

TCPのコネクション接続要求を受信するスレッドは，1スレッドです。簡易Webサーバが受信したリクエスト処理用スレッドは，最小5スレッド，最大100スレッドです。

リクエスト処理用スレッドは，起動時に5スレッド作成し，同時実行スレッド数が起動済みスレッド数を超えた場合，100スレッドまで作成されます。

なお，サーブレットエンジンモードの場合，Webコンテナの簡易Webサーバの使用は任意となります。

●Webサーバ連携機能を使用する場合

作成するスレッド

リダイレクタからのコネクション接続要求を受信するスレッド，およびリダイレクタから受信したリクエスト処理用スレッドを作成します。

スレッドの数

リダイレクタからのコネクション接続要求を受信するスレッドは，1スレッドです。リダイレクタから受信したリクエスト処理用スレッドは，WebサーバとWebコンテナとのコネクション数分スレッドを作成します。

リダイレクタから受信したリクエスト処理用スレッドは，起動時にwebserver.connector.ajp13.max_threadsに指定された数分作成します（webserver.connector.ajp13.max_threadsのデフォルトは10）。

(b)　Webアプリケーションのためのスレッド

Webアプリケーション単位に次のスレッドを作成します。最小1スレッド，最大3スレッドです。

セッションの有効期限監視スレッド

Webアプリケーションのリロード監視スレッド
（webserver.context.reloadable=trueを設定した場合）

JSPの更新監視スレッド
（webserver.jsp.recompilable=trueを設定した場合）

(c)　メインスレッド

なお，サーブレットエンジンモードの場合，メインスレッドとして1スレッド作成します。

(2)　作成されるスレッドの総数

Webコンテナがデフォルトの設定でプロセス起動時に作成するスレッドの総数を次に示します。ただし，この数値にはWebコンテナ以外，およびJavaVMが作成するスレッドは含まれていません。

作成するスレッドの総数は，レスポンス送信時のタイムアウトを設定しているかどうかによって異なります。

レスポンス送信時のタイムアウトを設定しているとき

スレッド総数=A＋B＋C＋D＋E

レスポンス送信時のタイムアウトを設定していないとき

スレッド総数=A＋B＋C＋D

（凡例）

A：Webコンテナの簡易Webサーバを使用する場合のスレッド数

B：Webサーバ連携機能を使用する場合のスレッド数

C：Webアプリケーション単位のスレッド数

D：メインスレッド

E：レスポンス送信時のタイムアウトを監視するためのスレッド数

このため，プロセス起動時のスレッド総数は次のようになります。

レスポンス送信時のタイムアウトを設定しているときのスレッド総数

=6＋11＋（1×Webアプリケーション数）＋1＋1

=19＋Webアプリケーション数

レスポンス送信時のタイムアウトを設定していないときのスレッド総数

=6＋11＋（1×Webアプリケーション数）＋1

=18＋Webアプリケーション数

プロセス起動後，Webサーバとのコネクション数，簡易Webサーバの同時実行数によってスレッド数が増加します。

3.4.10　同時実行スレッド数の制御

Webコンテナでは，マルチスレッドでサーブレットのリクエストを処理します。このとき，同時に実行できるスレッド数に上限を設定できます。これによって，スラッシングなどによる，パフォーマンスの低下を防止できます。また，適切なスレッド数を設定することで，アクセス状況に従ったパフォーマンスチューニングができます。

サーブレットエンジンモードの場合，同時に実行できるスレッド数は，Webコンテナ単位で制御されます。Webアプリケーション単位でのスレッド数の制御およびURLグループ単位でのスレッド数の制御はできません。

Webコンテナ単位での同時実行スレッド数の制御には，J2EEサーバモードとの機能差異はありません。このため，機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.16　Webコンテナ単位での同時実行スレッド数の制御」を参照してください。

3.4.11　ユーザスレッドで使用できるアプリケーションサーバの機能

ここでは，サーブレットエンジンモードの場合，ユーザスレッドで使用できるアプリケーションサーバの機能について説明します。ユーザスレッドの使用方法については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「6.2　サーブレットおよびJSPの実装時の注意事項」を参照してください。

アプリケーションサーバで提供される各機能について，ユーザスレッドで使用できるかどうかを次に示します。

＜この項の構成＞

(1)　サーブレットAPI

(2)　リソース接続およびトランザクションサービス

(3)　ログ運用および障害検知

(4)　J2EEアプリケーション運用

(5)　コンテナ拡張ライブラリ

(1)　サーブレットAPI

サーブレットAPIをユーザスレッドで使用する場合，リクエストオブジェクトおよびレスポンスオブジェクトは使用できません。リクエスト処理スレッドでだけ使用してください。詳細は，サーブレット仕様書のThread Safetyの項を参照してください。

(2)　リソース接続およびトランザクションサービス

サーブレットエンジンモードで使用できるリソース接続およびトランザクションサービスとして提供される機能が，サーブレット／JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。

表3-18　リソース接続およびトランザクション管理の機能の使用可否（ユーザスレッド）

分類／機能名 | サーブレット／JSP | ユーザスレッド
コネクションプーリング | Webコンテナコネクションプールによるコネクションプーリング | － | －
コネクションプールのウォーミングアップ | ○ | ○
Webコンテナコネクションプールによるコネクション取得リトライ | － | －
コネクションプールクリア | ○ | ○
コネクションのクローズ・解放 | コネクション強制クローズ | × | ×

（凡例）○：使用できる　×：使用できない　－：該当しない

ユーザスレッドでリソース接続およびトランザクションサービスを使用する場合の注意事項を示します。

SingleThreadModelインタフェースを実装したサーブレットで生成したスレッド上で，トランザクションの開始と決着，およびコネクションの取得と解放はできません。

スレッド生成時にトランザクションを引き継ぐことはできません。

トランザクションは，同じスレッド上で開始または決着してください。

スレッド間でコネクションを渡すことはできません。コネクションを使用すると，動作不正となります。

ユーザスレッドでコネクションを取得した場合，コネクションを取得したスレッド上で確実にコネクションをクローズしてください。

(3)　ログ運用および障害検知

サーブレットエンジンモードで使用できるログ運用および障害検知として提供される機能が，サーブレット／JSPおよびユーザスレッドで使用できるかどうかを次の表に示します。

表3-19　ログ運用および障害検知の機能の使用可否（ユーザスレッド）

分類／機能名 | サーブレット／JSP | ユーザスレッド
ユーザログ出力 | ○ | ○
性能解析トレース | ○ | ○

（凡例）○：使用できる

(4)　J2EEアプリケーション運用

J2EEアプリケーション運用機能として提供される機能のうち，Webアプリケーションの通常停止は，サーブレット／JSPおよびユーザスレッドで使用できます。ただし，コンテナでは，ユーザスレッドを停止しません。

(5)　コンテナ拡張ライブラリ

コンテナ拡張ライブラリは，サーブレット／JSPおよびユーザスレッドのどちらでも使用できます。

3.4.12　ドメイン名指定でのトップページの表示

デプロイしたWebアプリケーションにアクセスするとき，URLにドメイン名を指定するだけで，index.htmlやindex.jspなどの，Webアプリケーションのトップページを表示させることができます。

ドメイン名指定でのトップページの表示は，J2EEサーバモードと同じです。ドメイン名指定でのトップページの表示については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.9　ドメイン名指定でのトップページの表示」を参照してください。

ただし，サーブレットエンジンモードの場合は，Webアプリケーションのコンテキストルートを「ROOT」にしてデプロイする必要があります。

サーブレットエンジンモードの場合にドメイン名指定でのトップページの表示をするための設定については，「3.7.7　Webアプリケーションの設定」を参照してください。

3.4.13　静的コンテンツのキャッシュ

一度アクセスした静的コンテンツをメモリ上にキャッシュし，2回目以降のアクセスではキャッシュからブラウザにレスポンスを返すことで，静的コンテンツのレスポンスタイムを短縮できます。

静的コンテンツのキャッシュは，J2EEサーバモードの場合と同じです。静的コンテンツのキャッシュについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.21　静的コンテンツのキャッシュ」を参照してください。

なお，サーブレットエンジンモードの場合，リロード機能またはJSPファイルの再コンパイル機能が有効なときには，静的コンテンツのキャッシュは無効になります。

3.4.14　簡易Webサーバ機能

サーブレットエンジンモードの場合，簡易Webサーバは，Webアプリケーションの動作確認用に利用できます。

注意

簡易Webサーバは，本番運用時にサーブレット，JSPを実行するWebサーバとしては利用できませんので注意してください。

簡易Webサーバを利用するための設定は，Webコンテナサーバのプロパティをカスタマイズして設定します。設定については，「3.7.4　Webコンテナサーバの動作設定のカスタマイズ」を参照してください。

3.5　サーブレットエンジンモードで動作するアプリケーションの実装

ここでは，サーブレットエンジンモードで動作するアプリケーションの実装時に考慮する必要があることについて説明します。

＜この節の構成＞

3.5.1　利用できるアプリケーションサーバのAPIの種類

3.5.2　web.xml編集時の注意事項

3.5.3　そのほかの注意事項

3.5.1　利用できるアプリケーションサーバのAPIの種類

サーブレットエンジンモードでは，アプリケーションサーバが提供するAPIのうち，次のAPIを使用できます。

統合ユーザ管理フレームワークで使用するAPI

統合ユーザ管理フレームワークで使用するタグライブラリ

ユーザログ機能で使用するAPI

性能解析トレースで使用するAPI

JavaVMで使用するAPI

DABroker Libraryで使用するAPI

これらのAPIのうち，統合ユーザ管理フレームワークに関するAPIおよびタグライブラリについては，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。それ以外のAPIについては，マニュアル「アプリケーションサーバ リファレンス API編」を参照してください。

3.5.2　web.xml編集時の注意事項

ここでは，サーブレットエンジンモードの場合の，Webアプリケーション作成時の注意事項について説明します。

＜この項の構成＞

(1)　サーブレットエンジンモードの場合

(1)　サーブレットエンジンモードの場合

サーブレットエンジンモードの場合で，web.xmlを編集するときには次の内容に注意してください。

なお，これ以外の注意事項については，1.4モードとの差異はありません。このほかの注意事項については，マニュアル「アプリケーションサーバ アプリケーション開発ガイド」の「5.2.4　web.xml編集時の注意事項」を参照してください。

セキュリティロール使用時の設定について
web.xmlの<security-role>タグを使用する場合，実行環境のweb-users.xml上で<security-role>の<role-name>と同じ名称でロールを定義してください。

web.xmlの記述内容とサーバの動作
Servlet 2.3に対応したアプリケーションの場合で，サーブレットエンジンモードで起動したときの，web.xmlの記述内容とサーバの動作を次の表に示します。

表3-20　web.xmlの記述内容とサーブレットエンジンモードの場合のサーバの動作

web.xmlの記述内容
サーバの動作

プロパティにwebserver.xml.validate=falseを設定している場合で，DTDの仕様で必須となっているタグを記述しないとき
無視して実行されるか，リクエスト実行時にエラーとなります。
必須のタグは，必ず記述してください。

<filter>タグに含まれる<filter-name>タグ要素を空要素にし，<filter-mapping>タグに含まれる<filter-name>タグ要素も空要素にした場合
指定されたフィルタが実行されます。

<listener>タグに含まれる<listener-class>タグ要素を空要素にした場合
サーバ起動時に該当するWebアプリケーションが無効となります。

プロパティにwebserver.xml.validate=falseを設定している場合で，DTDの仕様で一つだけ指定が許されているタグを複数記述したとき
後ろに記述された値を使用して正常に動作することがありますが，一つだけ指定が許されているタグを複数記述しないでください。

要素が同じ<filter-mapping>タグを複数記述した場合
記述された回数分のdoFilterメソッドが呼び出されます。

親タグと，その下に要素としてキーとなるタグとそのほかの情報を持つタグを複数記述した場合で，キーとなるタグの要素が同じでそのほかの情報が異なるとき
あとに記述された親タグを有効にします。

プロパティにwebserver.xml.validate=falseを設定している場合で，DTDの仕様で規定されていない順序でタグを記述した場合
正常に動作することがありますが，規定されている順序でタグを記述するようにしてください。

<jsp-file>タグに「/」で始まらない文字列を記述した場合
サーバ起動時にエラーになります。

次に示す<url-pattern>タグに，「*.」以外の「/」で始まらない文字列を記述した場合

<servlet-mapping>-<url-pattern>

<security-constraint>-<web-resource-collection>-<url-pattern>

サーバ起動時にエラーになります。

<mime-mapping>タグに含まれる<extension>タグ要素に空文字を記述した場合
設定を無視して起動されます。

<mime-mapping>タグに含まれる<mime-type>タグ要素に空文字を記述した場合
正常に動作します。

<error-page>タグに含まれる<error-code>タグ要素に空文字を記述した場合
設定を無視して起動されます。

<transport-guarantee>タグに空文字を記述した場合
「CONFIDENTIAL」として動作します。

<form-login-page>タグまたは<form-error-page>タグに空文字を記述した場合
サーバ起動時にエラーになります。

<env-entry-type>タグ，<ejb-ref-type>タグ，または<ejb-ref-type>タグに空文字を設定した場合
正常に起動します。

<security-constraint>を設定して<auth-method>を省略した場合
サーバ起動時にエラーになります。

サーブレットエンジンモードで使用できないタグ
web.xmlに記述する次のタグは，JNDI名前空間に登録するため，サーブレットエンジンモードでは使用できません。J2EEサーバモードで有効になります。

env-entry

ejb-ref

ejb-local-ref

resource-ref

resource-env-ref

Servlet 2.4以降の仕様でサポートされないweb.xmlの要素
アプリケーションサーバでは，次に示すServlet 2.4以降の仕様のweb.xmlの要素は定義できません。定義した場合，デプロイ時にエラーになります。

message-destination

message-destination-ref

service-ref

また，サーブレットエンジンモードの場合，次のプロパティの定義でweb.xmlおよびタグライブラリ・ディスクリプタ（TLDファイル）のチェックを無効化すると，Servlet 2.3仕様のweb.xmlにServlet 2.4以降の仕様の要素を記述してもデプロイ時にエラーは通知されません。無効な要素として無視されます。
webserver.xml.validate=false
なお，Servlet 2.4以降の仕様で追加，変更された仕様を，アプリケーションサーバ上で使用する場合の，上記以外の注意事項については，マニュアル「アプリケーションサーバ アプリケーション開発ガイド」の「5.2.5　Servlet 2.4以降で追加，変更された仕様についての注意事項（web.xml）」を参照してください。

3.5.3　そのほかの注意事項

＜この項の構成＞

(1)　データベースとアプリケーション間の文字コード変換

(2)　アプリケーションサーバ独自の例外の扱い

(1)　データベースとアプリケーション間の文字コード変換

サーブレットエンジンモードの場合，JDBCコネクションを取得するとき，ENCODELANGキーに該当値を設定したプロパティを作成し，JDBCドライバのjava.sql.Driver.connectメソッドまたはjava.sql.DriverManager.getConnectionメソッドの引数に渡してください。

(2)　アプリケーションサーバ独自の例外の扱い

HttpSessionオブジェクト数の上限が設定できないサーブレットエンジンモードでは，HttpSessionLimitExceededExceptionクラスは利用できません。

この例外クラスは，HttpSessionオブジェクト数の上限が設定できる，J2EEサーバモードの場合に利用できます。

3.6　サーブレットエンジンモードでのリソース接続

ここでは，サーブレットエンジンモードでのリソース接続について説明します。

＜この節の構成＞

3.6.1　接続できるリソースとトランザクションの管理方法

3.6.2　データベース接続の前提条件

3.6.3　Webコンテナコネクションプール機能によるデータベース接続

3.6.1　接続できるリソースとトランザクションの管理方法

サーブレットエンジンモードの場合に接続できるリソースの種類とトランザクションの管理方法について説明します。

＜この項の構成＞

(1)　接続できるリソース

(2)　トランザクションの管理方法

(1)　接続できるリソース

サーブレットエンジンモードで接続できるリソースについて次の表に示します。

表3-21　接続できるリソース（サーブレットエンジンモード）

リソースの種類 | サーブレットエンジンモード
データベース | HiRDB | ○
Oracle | ○
SQL Server | ×
XDM/RD E2 | ×
データベース上のキュー | HiRDB | ×
Oracle | ×
OpenTP1 | SPP | ×
TP1/Message Queue | ×
SMTPサーバ | ×
JavaBeansリソース | ×

（凡例）○：接続できる　×：接続できない

参考

リソースアダプタがNon-Managed環境での使用に対応している場合には，接続できる場合があります。ただし，アプリケーションサーバによるコネクションプーリングやトランザクション管理は利用できません。

(2)　トランザクションの管理方法

サーブレットエンジンモードの場合，トランザクションはアプリケーションサーバで管理されません。

3.6.2　データベース接続の前提条件

サーブレットエンジンモードでデータベースに接続する場合の前提条件を，データベースの種類ごとに示します。

サーブレットエンジンモードの場合，データベース接続には，Webコンテナコネクションプール機能を使用します。

なお，サーブレットエンジンモードでは，次のデータベースには接続できません。

Oracle10g以降

SQL Server

XDM/RD E2

＜この項の構成＞

(1)　HiRDBの場合

(2)　Oracle9iの場合

(1)　HiRDBの場合

使用できるJDBCドライバ
使用できるJDBCドライバはDABroker Libraryとなります。
DABroker Libraryを使用する場合，HiRDBクライアントをインストールする必要があります。

接続方法
Webコンテナコネクションプール機能を使用して接続します。
なお，サーブレットエンジンモードの場合，トランザクションはアプリケーションサーバで管理されません。

(2)　Oracle9iの場合

使用できるJDBCドライバ
使用できるJDBCドライバはDABroker Libraryとなります。Oracle JDBC Thin Driverでは接続できません。
JDBCドライバとしてDABroker Libraryを使用する場合，Oracleクライアントをインストールする必要があります。

接続方法
Webコンテナコネクションプール機能を使用して接続します。
なお，サーブレットエンジンモードの場合，トランザクションはアプリケーションサーバで管理されません。

3.6.3　Webコンテナコネクションプール機能によるデータベース接続

サーブレットエンジンモード上で動作するWebアプリケーションからデータベースへ接続する場合，Webコンテナコネクションプーリング機能を利用してデータベースへの接続をプールできます。これによって，コネクション生成時のパフォーマンスを向上できます。

Webコンテナコネクションプール機能での，コネクションの取得方法には次の2とおりがあります。

java.sql.DriverManager.getDriverを使ってjava.sql.Driverのインスタンスを取得し，java.sql.Driver.connectを使ってコネクションを取得する方法

java.sql.DriverManager.getConnectionを使ってコネクションを取得する方法

なお，コネクションプールの詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1　コネクションプーリング」を参照してください。

＜この項の構成＞

(1)　Webコンテナコネクションプール機能の利用方法

(2)　パフォーマンスチューニングのための機能

(3)　フォールトトレランスのための機能

(1)　Webコンテナコネクションプール機能の利用方法

Webコンテナコネクションプール機能を利用するためには，管理機能用のWebアプリケーションをデプロイし，プール管理情報を登録する必要があります。プール管理情報の登録をするためのコネクションプーリングの設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1　コネクションプーリング」を参照してください。

また，コネクションの取得処理はWebアプリケーションで実施するため，ユーザ作成のアプリケーションに，コネクションを操作するための記述が必要になります。

コネクションを取得するには，次の2とおりの方法があります。同時に多数のユーザが接続するようなシステムの場合は，ドライバマネージャ内で待ちが発生するため，取得方法1の記述をお勧めします。

取得方法1

String className = "com.hitachi.software.web.jdbc.WccpDriver";
String url = "jdbc:hitachi:wccp://DBID=<データベースID>";

Properties info = new Properties();
info.put("user", "<ユーザID>");
info.put("password", "<パスワード>");

Class.forName(className);
Driver drv = DriverManager.getDriver(url);
Connection con = drv.connect(url, info);
con.close();

取得方法2

String className = "com.hitachi.software.web.jdbc.WccpDriver";
String url = "jdbc:hitachi:wccp://DBID=<データベースID>";
String user = "<ユーザID>";
String password = "<パスワード>";

Class.forName(className);
Connection con = DriverManager.getConnection(url, user, password);
con.close();

(2)　パフォーマンスチューニングのための機能

サーブレットエンジンモードでデータベースに接続する場合に，パフォーマンスチューニングのために使用できる機能を，次の表に示します。

表3-22　サーブレットエンジンモードでデータベースに接続する場合に使用できるパフォーマンスチューニングのための機能

機能 | 使用可否
コネクションプーリング | ○
コネクションシェアリング | ×
コネクションのアソシエーション | ×
ステートメントプーリング | ×
ライトトランザクション | ×
インプロセストランザクションサービス | ×
DataSourceオブジェクトのキャッシング | ×
DB Connectorのコンテナ管理でのサインオンの最適化 | ×
受信バッファのプーリング | ×

（凡例）○：使用できる　×：使用できない

サーブレットエンジンモードの場合のコネクションプーリングについて次に説明します。

コネクションプーリング

サーブレットエンジンモードの場合，プーリングの基本機能として，コネクションプールの生成初期化，コネクションの取得や解放などの機能を提供しています。

コネクションプールの生成および初期化
コネクションプールが生成・初期化されるタイミングは，リソースのスタート処理時または監視・制御機能で提供するAPIのクラスのインスタンスの生成時です。ただし，この時点ではコネクションは生成されません。
コネクションが最初に生成されるのは，最初のコネクション取得要求があったときです。以降，プールの最小値までコネクションをプールします。この動作は，非同期で実施されます。

コネクションの取得と解放
コネクションの取得要求があると，プールから未使用のコネクションを選択し，コネクションの状態を使用中にしてから，クライアントに渡します。
また，コネクションの解放要求があると，使用中になっているコネクションの状態を未使用に設定して，コネクションをプールに返します。なお，コネクションの状態が，再利用できない状態に設定されている場合は，データベースとの接続を切断して，コネクションを削除します。この場合，コネクションはプールに返されません。

例外が発生したコネクションの破棄
java.sql.ConnectionのようなJDBCインタフェースのAPIでSQLException例外が発生すると，コネクションクローズで該当コネクションの接続が維持されていても，コネクションプールに戻さないで破棄します。その結果，Webコンテナコネクションプーリングを使用している場合（java.sql.Connectionインタフェースだけ該当する）に，余分なコネクション生成が発生して性能に影響を与えることがあります。

(3)　フォールトトレランスのための機能

サーブレットエンジンモードでデータベースに接続する場合に，フォールトトレランスのために使用できる機能を，次の表に示します。

表3-23　サーブレットエンジンモードでデータベースに接続する場合に使用できるフォールトトレランスのための機能

機能 | 使用可否
コネクションの障害検知 | ×
コネクション枯渇時のコネクション取得待ち | ×
コネクションの取得リトライ※ | ○
コネクションプールの情報表示 | ○
コネクションプールのクリア | ○
コネクションの強制クローズ | ○
コネクションの自動クローズ | ×
コネクションスイーパ | ×
トランザクションタイムアウト | ×
トランザクションリカバリ | ×
障害調査用SQLの出力 | ×
クラスタコネクションプール | ×

（凡例）○：使用できる　×：使用できないまたは該当しない

注※　Webコンテナコネクションプールのコネクション取得リトライができます。

以降，サーブレットエンジンモードで使用できるフォールトトレランスのための機能について説明します。

なお，それぞれの機能の概要および目的については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15　フォールトトレランスのための機能」を参照してください。ここでは，サーブレットエンジンモードで特有の説明についてだけ説明します。

コネクションの取得リトライ

J2EEサーバモードとの機能差はありません。マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.3　コネクションの取得リトライ」を参照してください。

コネクションプールの情報表示

コネクションプール内のコネクションの情報を，コマンドを使用して表示できます。コネクションプール情報の表示には，cjweblistpoolコマンドを使用します。コマンドの詳細については，「cjweblistpool（プール管理情報の一覧表示）」を参照してください。

コネクションプールのクリア

データベースサーバのダウンなどによって，コネクションが切断された場合，プールされているコネクションはコネクションプール内に残ってしまいます。これらのコネクションは，cjwebclearpoolコマンドによって削除できます。コマンドの詳細については，「cjwebclearpool（プール内のコネクションのクリア）」を参照してください。

コネクションの強制クローズ

アプリケーションのConnection.closeメソッドの記述もれによってクローズされないコネクションは，コネクションプール内で使用中状態のまま再利用されません。これらのコネクションは，cjwebclosepoolコマンドを使用して強制クローズできます。コマンドの詳細については，「cjwebclosepool（プール内のコネクションの強制切断）」を参照してください。

なお，ユーザスレッドでは使用できません。

3.7　サーブレットエンジンモードの利用方法

互換用のサーバの動作モードとして，Webコンテナだけを使用するサーブレットエンジンモードがあります。ここでは，サーブレットエンジンモードの利用について説明します。

なお，旧バージョンでサーブレットエンジンモードを使用していた場合には，J2EEサーバモードに移行することをお勧めします。

＜この節の構成＞

3.7.1　サーブレットエンジンモードでのシステム設計

3.7.2　サーブレットエンジンモードでのシステム構築

3.7.3　Webコンテナサーバのセットアップ

3.7.4　Webコンテナサーバの動作設定のカスタマイズ

3.7.5　トラブルシューティングの資料取得の設定

3.7.6　統合ユーザ管理機能の設定

3.7.7　Webアプリケーションの設定

3.7.8　Webコンテナサーバの作業ディレクトリ

3.7.1　サーブレットエンジンモードでのシステム設計

ここでは，システム構成の設計およびパフォーマンスチューニングについて説明します。

＜この項の構成＞

(1)　システム構成の設計

(2)　パフォーマンスチューニング

(1)　システム構成の設計

ここでは，サーブレットエンジンモードで使用できるシステム構成について説明します。

(a)　システム設計の準備

システム設計作業を始める前に，次のことを明確にする必要があります。

アプリケーションおよびプロセスの構成

運用方法

●アプリケーションおよびプロセスの構成

サーブレットエンジンモードでは，サーブレットとJSPだけで構成されるアプリケーション（Webアプリケーション）が使用できます。

また，サーブレットエンジンモードでアプリケーションサーバを動作させるシステムでは，次に示すプロセスが必要となります。

Webサーバ※

Webコンテナサーバ

PRFデーモン

注※

アプリケーションサーバに含まれるWebサーバは，HTTP Serverです。

これらのプロセスは，アプリケーションサーバによって提供され，アプリケーションサーバをインストールしたマシンで起動できます。

サーブレットエンジンモードの場合，Webクライアントからのリクエストを，リダレクタと連携したWebサーバ（Webサーバ連携）を利用して処理できます。利用できるWebサーバは，HTTP ServerまたはMicrosoft IISです。

●運用方法

サーブレットエンジンモードでは，Management Serverを利用した運用，およびクラスタソフトウェアと連携したシステムの運用はできません。サーブレットエンジンモードで運用する場合，システムの構築には，アプリケーションサーバが提供するコマンドと定義ファイルを使用します。

(b)　サーブレットエンジンモードのシステムの構成

サーブレットエンジンモードを使用して，アプリケーションサーバのシステムを設計する場合，Webコンテナサーバを使用した構成になります。Webコンテナサーバは，サーブレットエンジンモードで動作しているアプリケーションサーバです。

システム構成の特徴

Webコンテナサーバの構成の例を次の図に示します。

図3-3　Webコンテナサーバの構成の例

これ以外の凡例については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.2　システム構成の説明について」を参照してください。

特徴

サーブレットとJSPだけが動作します。

サーブレットとJSPを対象にした，負荷分散機またはリダイレクタを使用した負荷分散構成，およびWebサーバとアプリケーションサーバを分離した構成が実現できます。

Management Serverを利用した運用はできません。

リクエストの流れ

サーブレットとJSPに対するクライアントからのリクエストは，WebブラウザからWebサーバを経由して送られます。

それぞれのマシンで起動するプロセス

それぞれのマシンに必要なソフトウェアとプロセスについて説明します。

アプリケーションサーバマシン

アプリケーションサーバマシンには，Application Serverをインストールする必要があります。

起動するプロセスは次のとおりです。

Webサーバ

Webコンテナサーバ

PRFデーモン

Application Serverには，WebサーバであるHTTP Serverが含まれています。Windowsの場合，WebサーバにMicrosoft IISを使用することもできます。この場合は，ソフトウェアとしてMicrosoft IISが必要です。

Webクライアントマシン

Webクライアントマシンには，Webブラウザが必要です。

(2)　パフォーマンスチューニング

ここでは，サーブレットエンジンモードで使用できるアプリケーションのチューニング項目について説明します。サーブレットエンジンモードでは，アプリケーションがサーブレットとJSPだけで構成されるWebアプリケーションが使用できます。サーブレットエンジンモードで使用できるアプリケーションのチューニング項目を次の表に示します。

表3-24　サーブレットエンジンモードで使用できるアプリケーションのチューニング項目

チューニング項目 | 利用できる機能 | 参照先マニュアル | 参照先
同時実行数の最適化 | Webアプリケーションでの同時実行スレッド数制御（Webコンテナ単位） | アプリケーションサーバ システム設計ガイド | 8.3.4
データベースアクセス方法の最適化 | Webコンテナコネクションプーリング | このマニュアル | (a)
タイムアウトの設定 | Webフロントシステムでのタイムアウトの設定 | アプリケーションサーバ システム設計ガイド | 8.6.2
Webアプリケーションの動作の最適化 | 静的コンテンツとWebアプリケーションの配置の切り分け | 8.7.1
静的コンテンツのキャッシュ | 8.7.2
リダイレクタによるリクエストの振り分け（Webサーバ連携の場合） | 8.7.3

これらのチューニング項目のうち，サーブレットエンジンモードで動作する場合に異なる機能について説明します。

(a)　Webコンテナコネクションプーリングを使用する

サーブレットエンジンモード上で動作するWebアプリケーションからデータベースへ接続する場合，Webコンテナコネクションプールを使用します。このとき，Webコンテナコネクションプーリング機能を利用してデータベースへの接続をプールできます。これによって，コネクション生成時のパフォーマンスを向上できます。

Webコンテナコネクションプーリングを使用する場合，最初のコネクション取得要求があったときに，プール数の最小値までコネクションが生成され，プールされます。クライアントからコネクション取得要求があると，プールから未使用のコネクションが選択され，クライアントに渡されます。コネクションの解放要求があると，使用中になっているコネクションの状態が未使用に設定され，コネクションがプールに返されます。なお，コネクションの状態が，再利用できない状態に設定されている場合は，データベースとの接続が切断され，コネクションが削除されます。この場合，コネクションはプールに返されません。

Webコンテナコネクションプーリングを使用する場合は，チューニングパラメタを設定する必要があります。Webコンテナコネクションプーリングのチューニングパラメタは，プール管理情報設定ファイルに設定します。設定した内容は，cjwebeditpoolコマンドで登録します。プール管理情報設定ファイルについては，「3.11.6　プール管理情報設定ファイル」を，cjwebeditpoolコマンドについては，「cjwebeditpool（プール管理情報の登録と変更）」を参照してください。

Webコンテナコネクションプーリングのチューニングパラメタを次の表に示します。

表3-25　Webコンテナコネクションプーリングのチューニングパラメタ

設定項目 | 設定個所
プールするコネクションの最小値 | <MinimumSize>タグ
プールするコネクションの最大値 | <MaximumSize>タグ
コネクションを取得できなかった場合にリトライするまでのアプリケーションの待ち時間 | <RetryInterval>タグ
コネクションを取得できなかった場合のリトライ回数 | <RetryCount>タグ

3.7.2　サーブレットエンジンモードでのシステム構築

サーブレットエンジンモードを使用する場合のインストール，システム構築の流れ，システム構築で使用するファイルについて説明します。なお，旧バージョンでサーブレットエンジンモードを使用していた場合の移行情報については，「3.9　サーブレットエンジンモードの場合の移行」を参照してください。

＜この項の構成＞

(1)　インストールと初期設定

(2)　システム構築の流れ

(3)　システム構築で使用するファイル

(1)　インストールと初期設定

サーブレットエンジンモードの場合，インストールと初期設定は，J2EEサーバの場合と同じです。J2EEサーバの場合のインストールと初期設定の概要およびインストール後のディレクトリ構成については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」を参照してください。なお，サーブレットエンジンモードの場合には，次のように読み替えてください。

J2EEサーバ→Webコンテナサーバ

cjsetupコマンド→cjwebsetupコマンド

cjstartsvコマンド→cjstartwebコマンド

cjstopsvコマンド→cjstopwebコマンド

cjdumpsvコマンド→cjdumpwebコマンド

ここでは，J2EEサーバモードの場合と異なる内容について説明します。

Webコンテナサーバの場合の，インストール方法ごとのユーザ環境の扱いを次の表に示します。

表3-26　インストール方法ごとのユーザ環境の扱い（Webコンテナサーバの場合）

インストール方法 | Webコンテナサーバのユーザ定義 | Webアプリケーション配置ディレクトリ | リダイレクタのユーザ定義
新規インストール | インストーラが，デフォルトのWebコンテナサーバをセットアップし，ユーザ定義を作成します。 | インストーラが，デフォルトのWebコンテナサーバをセットアップし，Webアプリケーション配置ディレクトリを作成します。 | インストーラが，デフォルトの定義を作成します。
上書きインストール | 引き継ぎます。 | 引き継ぎます。 | 引き継ぎます。
旧バージョンからのアップグレードインストール | 引き継ぎます。 | 引き継ぎます。 | 引き継ぎます。

(a)　インストールとアンインストール

Component Containerを上書きインストールすると，前の設定が自動的に引き継がれます。なお，デフォルトのWebコンテナサーバ（ホスト名称のサーバ）のディレクトリ（<製品のインストールディレクトリ>¥CC¥web¥containers¥<ホスト名称>，または/opt/Cosminexus/CC/web/containers/<ホスト名称>）がない場合には，サーバが自動的にセットアップされます。

(b)　環境変数の設定

サーブレットエンジンモードの場合，環境変数の設定は，J2EEサーバモードで，CTMおよびトランザクションサービスの両方を使用しないときの設定と同じです。詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「付録H　システムの環境変数」を参照してください。

(c)　見積もりと設定

Webコンテナサーバで使用するリソースの見積もり方法を次に示します。

スレッド数
最大スレッド数 = 8＋A＋B＋C＋D＋E＋F
（凡例）

A：Webサーバの同時接続クライアント数（複数のWebサーバがある場合は合計）
リクエスト処理中にWebサーバが再起動された場合，再起動後に多くのリクエストを受けると，この値を超えるスレッドが生成される場合がある

B：簡易Webサーバへの同時接続クライアント数（ただし，簡易Webサーバへの同時接続クライアント数が5以下の場合は5，100以上の場合は100を指定する）

C：デプロイ済みのWebアプリケーションの数

D：簡易Webサーバを有効にしている場合は1，無効にしている場合は0

E：Webアプリケーションのリロード機能を使用するWebアプリケーション数（ただし，usrconf.propertiesのwebserver.context.reloadableキーにtrueを指定している場合は，Webアプリケーションのリロード機能を使用するWebアプリケーション数を指定する）

F：JSPファイルの再コンパイル機能を使用するWebアプリケーション数（ただし，usrconf.propertiesのwebserver.jsp.recompilableキーにtrueを指定している場合は，JSPファイルの再コンパイル機能を使用するWebアプリケーション数を指定する）

ファイルディスクリプタ数
最大ファイルディスクリプタ数 = （55＋A＋B＋C＋D×2＋E＋F）/ 0.8
（凡例）

A：Webサーバの同時接続クライアント数（ただし，Webサーバの同時接続クライアント数がWebコンテナの最大同時実行スレッド数（usrconf.propertiesのwebserver.connector.ajp13.max_threadsキーに指定した値）より大きい場合は，Webサーバの同時接続クライアント数+1を指定する）

B：Webコンテナの最大同時実行スレッド数

C：簡易Webサーバを有効にしている場合は1，無効にしている場合は0

D：簡易Webサーバへの同時接続クライアント数

E：Webアプリケーションに含むJARファイルの数

F：usrconf.cfgのadd.class.pathキーに指定したJARファイルの数

(d)　作業ディレクトリ

Webコンテナサーバの作業ディレクトリについては，「3.7.8　Webコンテナサーバの作業ディレクトリ」を参照してください。

(2)　システム構築の流れ

サーブレットエンジンモードでのシステム構築の流れを次の図に示します。

図3-4　システム構築の流れ（サーブレットエンジンモードの場合）

注

それぞれの参照先については，次の表に示した個所を参照してください。

なお，図中のマニュアル名は略称です。

項番 | 参照先マニュアル | 参照個所
1. | このマニュアル | 3.7.3
2. | アプリケーションサーバ 機能解説 セキュリティ管理機能編 | 7.2.6
HTTP Server | 全体
3. | このマニュアル | 3.7.4
4. | このマニュアル | 3.7.5
5. | アプリケーションサーバ 機能解説 基本・開発編（Webコンテナ） | 4章
6. | アプリケーションサーバ 機能解説 セキュリティ管理機能編 | 5章
7. | このマニュアル | 3.7.7
8. | アプリケーションサーバ 機能解説 運用／監視／連携編 | 2章

図中の1.～8.について説明します。

サーバをセットアップします。
デフォルトの設定のままで利用する場合は，セットアップ不要です。インストール時にセットアップ済みのWebコンテナサーバとは別のサーバ名称を使用したい場合，Webコンテナサーバをセットアップしてください。

Webサーバの設定をします。
使用するWebサーバとして，HTTP Server，またはMicrosoft IIS（Windowsの場合）の設定をします。

サーバをカスタマイズします。
デフォルトの設定のままで利用する場合は，カスタマイズ不要です。Webコンテナサーバが使用するネーミングサービス，JavaVMの起動オプションなどを変更したい場合や，コンテナ拡張ライブラリ，コネクションプーリングなど特定の機能を使用したい場合には，アプリケーションサーバが提供するユーザ定義ファイルやコマンドを使用して，Webコンテナサーバの動作を設定，カスタマイズします。

トラブルシューティングの資料取得の設定をします。
デフォルトの設定のままで利用する場合は，設定不要です。ただし，OSの統計情報，ユーザダンプ（Windowsの場合）またはcoreダンプ（UNIXの場合），JavaVMのGCのログは，事前に取得のための設定をしておかないと，取得できません。これらの資料はトラブルシューティングで必要となるため，取得することをお勧めします。
これらの資料を取得する場合や，ほかの資料の取得設定を変更したい場合に，トラブルシューティングの資料取得の設定をしてください。

Webサーバとの連携の設定をします。
Webサーバと連携しない場合は，設定不要です。リダイレクタを利用したリクエストの振り分け，通信タイムアウト，エラーページのカスタマイズなど，Webサーバと連携するための設定をします。

統合ユーザ管理機能の設定をします。
統合ユーザ管理機能を使用しない場合は，設定不要です。アプリケーションサーバのシステムにログインするユーザを統合管理するための設定をします。ユーザ認証情報を格納するLDAPディレクトリサーバや，統合ユーザ管理のコンフィグレーションファイルを設定します。

Webアプリケーションの設定をします。
WARファイルをWebコンテナサーバにデプロイします。

システムを起動して，システムの動作を確認します。

参考

運用支援機能を持つプログラムを利用することで，システムで運用操作の一括実行や自動実行などの運用方法を実現することもできます。この場合には，図3-4の環境構築に加えて，運用支援機能を持つプログラムの設定が必要になります。運用支援機能を持つほかのプログラムを使用する場合には，使用しているプログラムのマニュアルなどを参照して，環境を構築してください。

(3)　システム構築で使用するファイル

ここでは，システムの構築で使用するファイルのうち，主なファイルについて説明します。ここで説明していないファイルについては，システム構築の手順の中で適宜説明します。

注意

ファイルを変更する場合は，Webコンテナサーバを停止してください。Webコンテナサーバの稼働中にファイルの内容を変更した場合の動作は保証されません。

usrconf.properties（ユーザプロパティファイル）
Webコンテナサーバのユーザプロパティを定義するファイルです。
ファイルの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.properties

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.properties

usrconf.cfg（オプション定義ファイル）
WebコンテナサーバのJavaVMの起動オプションを定義するファイルです。JavaVMメモリ空間のサイズや割合などを指定するJavaVMオプションは，このファイルのadd.jvm.argキーに指定します。
ファイルの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.cfg

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.cfg

web.policy（セキュリティポリシーファイル）
Webコンテナサーバのセキュリティポリシーを定義するファイルです。
ファイルの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web.policy

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web.policy

hitachi_web.properties（Webアプリケーションプロパティファイル）
WebアプリケーションごとのプロパティをWebコンテナサーバのプロパティに指定するファイルです。
ファイルの格納場所を次に示します。

Windowsの場合
<WebアプリケーションのWEB-INFディレクトリ>¥hitachi_web.properties

UNIXの場合
<WebアプリケーションのWEB-INFディレクトリ>/hitachi_web.properties

hitachi_web.propertiesを変更した場合，WARファイルを作成，インポートし直してください。

web-users.xml（ユーザ認証情報定義ファイル）
ユーザ名，パスワード，所属するロールなどのユーザ認証情報を定義するファイルです。
ファイルの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web-users.xml

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web-users.xml

3.7.3　Webコンテナサーバのセットアップ

Webコンテナサーバは，製品のインストール時にセットアップ済みです。デフォルトの設定では，Webコンテナサーバ名はホスト名です。デフォルトの設定を変更したい場合には，Webコンテナサーバをセットアップしてください。また，同じホスト内で複数のWebコンテナサーバを起動する場合には，それぞれのWebコンテナサーバに別のサーバ名を割り当てる必要があるため，Webコンテナサーバをセットアップしてください。

Webコンテナサーバはサーバ名称によって識別されます。各コマンドの引数にサーバ名称を指定することで，複数のWebコンテナを開始したり，管理したりできます。また，Webコンテナサーバのサーバ名称は，J2EEサーバの名称とは独立して管理されます。

Webコンテナサーバでは，次に示すファイル，ディレクトリがサーバ名称ごとに独立に管理されます。

ユーザ定義ファイル

Webアプリケーション配置ディレクトリ

ログファイル格納ディレクトリ

一時ファイル格納ディレクトリ

インストール時には，インストールされたマシンのホスト名がデフォルトのサーバ名称として設定されます。新たにサーバ名称を設定するには，cjwebsetupコマンドを実行します。なお，UNIXの場合，コマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

Windowsの場合

"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjwebsetup サーバ名称"

UNIXの場合

#　/opt/Cosminexus/CC/web/bin/cjwebsetup サーバ名称

なお，同一マシン内では，同じサーバ名称でcjwebsetupコマンドを複数回実行してはいけません。実行した場合エラーになります。Webコンテナサーバを再セットアップする場合，cjwebsetup -d <サーバ名称>でサーバの環境をいったん削除してから再度セットアップコマンドを実行してください。cjwebsetupコマンドについては，「cjwebsetup（Webコンテナサーバのセットアップとアンセットアップ）」を参照してください。

同一マシンで複数のWebコンテナを同時に起動する場合，使用するポート番号が重ならないように，usrconf.propertiesのユーザ定義を正しく設定する必要があります。また，webserver.connector.ajp13.portキーで設定されているポート番号に対し，同時に起動するWebコンテナ間で異なる値を使用するように設定してください。webserver.connector.http.portキーについても，同様に異なるポート番号を設定するか，またはwebserver.connector.http.enabledキーにfalseを設定することで，ポート番号を使用しないようにする必要があります。さらに，webserver.shutdown.portキーについても，ポート番号が重ならないように注意する必要があります。

3.7.4　Webコンテナサーバの動作設定のカスタマイズ

ここでは，Webコンテナサーバの動作設定のカスタマイズについて説明します。

デフォルトで設定されているWebコンテナサーバの動作設定を変更したい場合には，ユーザ定義ファイルを編集して，Webコンテナサーバの動作をカスタマイズする必要があります。例えば，Webコンテナサーバが使用するコンテナ，ログなどの設定を変更したい場合には，usrconf.propertiesを編集してください。また，WebコンテナサーバのJavaVMの起動オプションなどを変更したい場合には，usrconf.cfgを編集してください。

＜この項の構成＞

(1)　Webコンテナサーバの動作設定のカスタマイズの方法

(2)　コンテナ拡張ライブラリの設定

(3)　JSPファイルのコンパイル結果の保持の設定

(4)　アプリケーションの更新検知とリロードの設定

(5)　コネクションプーリングの設定

(1)　Webコンテナサーバの動作設定のカスタマイズの方法

Webコンテナサーバの動作設定のカスタマイズでは，ユーザ定義ファイルを編集して，サーバ名で識別されるWebコンテナサーバ単位に，Webコンテナサーバの動作をカスタマイズします。

(a)　カスタマイズの前提

カスタマイズ対象のWebコンテナサーバのセットアップが完了していることが前提になります。また，UNIXの場合，カスタマイズにはroot権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

(b)　カスタマイズ対象のユーザ定義ファイル

次の五つのユーザ定義ファイルをテキストエディタなどで編集して，Webコンテナサーバの動作をカスタマイズします。

usrconf.properties（ユーザプロパティファイル）

usrconf.cfg（オプション定義ファイル）

web.policy（セキュリティポリシーファイル）

hitachi_web.properties（Webアプリケーションプロパティファイル）

web-users.xml（ユーザ認証情報定義ファイル）

これらのユーザ定義ファイルの詳細については，次の個所を参照してください。

3.11.3　usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）

3.11.2　usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）

3.11.5　web.policy（SecurityManager定義ファイル）

3.11.1　hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）

3.11.4　web-users.xml（ユーザ認証情報定義ファイル）

(c)　Webコンテナサーバのカスタマイズで設定できる主な項目

Webコンテナサーバのカスタマイズでユーザ定義ファイルを編集して設定できる項目のうち，主な項目とその項目を設定するユーザ定義ファイルおよびキーを次の表に示します。キーの詳細，およびここで説明していないキーについては，次の個所を参照してください。

3.11　Webコンテナサーバで使用するファイル

3.11.1　hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）

3.11.2　usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）

3.11.3　usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）

3.11.4　web-users.xml（ユーザ認証情報定義ファイル）

3.11.5　web.policy（SecurityManager定義ファイル）

表3-27　ユーザ定義ファイルのカスタマイズで設定できる主な項目（サーブレットエンジンモードの場合）

分類
項目
設定ファイル
設定内容

ネーミングサービス
ネーミングのキャッシング
usrconf.properties
次のキーを指定します。

ejbserver.jndi.cacheキーに，ネーミングでのキャッシングを有効にするかどうかを指定します。

ejbserver.jndi.cache.intervalキーに，キャッシュクリアの間隔を設定します。

ejbserver.jndi.cache.interval.clear.optionキーに，キャッシュクリアの範囲を指定します。

ネーミングサービスの通信タイムアウト
usrconf.properties
ejbserver.jndi.request.timeoutキーに，ネーミングサービスとの通信タイムアウト時間を指定します。

コンテナ
コンテナ拡張ライブラリ
usrconf.cfg
usrconf.cfgで，コンテナ拡張ライブラリ用のJARファイルのパスをWebコンテナサーバのシステムクラスパスに追加します。詳細については，「(2)　コンテナ拡張ライブラリの設定」を参照してください。

RMI-IIOP通信のタイムアウト
usrconf.properties
ejbserver.rmi.request.timeoutキーに，RMI-IIOP通信のクライアントとサーバ間の通信タイムアウト時間を指定します。

Webコンテナ単位での同時実行スレッド数の制御
usrconf.properties
webserver.connector.ajp13.max_threadsキーに，Webコンテナ単位での同時実行スレッド数を指定します。

Webコンテナの通信タイムアウト
usrconf.properties
webserver.connector.ajp13.receive_timeoutキーに，Webサーバからのリクエスト待ち時間（秒）を設定します。詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.6.5　リクエスト送受信時の通信タイムアウトの設定（Smart Composer機能を使用しない場合）」を参照してください。

JSPファイルのコンパイル結果の保持
usrconf.properties
次のキーを指定します。

webserver.work.cleanキーに，コンパイル結果を保持するかどうかを指定します。

webserver.work.directoryキーに，コンパイル結果の出力先を指定します。

設定方法については，「(3)　JSPファイルのコンパイル結果の保持の設定」を参照してください。

静的コンテンツのキャッシュ
－
サーブレットエンジンモードの場合は，WebアプリケーションのDD（web.xml）を直接編集して静的コンテンツのキャッシュの設定をします。DD（web.xml）を直接編集して，Webコンテナ単位で静的コンテンツのキャッシュ機能を使用するかどうか，キャッシュを許可する静的コンテンツのメモリサイズ，およびファイルサイズの上限値を指定します。静的コンテンツのキャッシュ機能を使用する場合のDDの定義については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.21　静的コンテンツのキャッシュ」を参照してください。

アプリケーションの更新検知とリロード
usrconf.properties
hitachi_web.properties
Webアプリケーションが更新された場合に検知する機能，およびJSPファイルが更新された場合にリロードする設定を，usrconf.propertiesまたはhitachi_web.propertiesに指定します。設定方法については，「(4)　アプリケーションの更新検知とリロードの設定」を参照してください。

リモートインタフェースでの通信障害発生時のEJBクライアントの動作
usrconf.properties
WebコンテナサーバがEJBクライアントの場合に，ejbserver.container.rebindpolicyキーに障害発生時の動作を指定します。

Webコンテナコネクションプーリング機能
プール管理情報設定ファイル
Webアプリケーションからデータベースへ接続する場合，Webコンテナコネクションプーリング機能を利用してデータベースへの接続をプールできます。設定方法については，「(5)　コネクションプーリングの設定」を参照してください。

Webサーバ
通信路の暗号化レベルの要請
usrconf.properties
webserver.connector.redirect_https.portキーに，転送先のhttpsのポート番号を指定します。
また，通信路の暗号化レベルを要請するには，さらに，通信路の暗号化レベルの要請をDD（WEB-INF/web.xml）内に指定する必要があります。

簡易Webサーバ機能を使用するかどうかの設定
usrconf.properties
webserver.connector.http.enabledキーに，簡易Webサーバ機能を使用するかどうかを指定します。デフォルトでは使用しない設定になっています。

簡易Webサーバへのアクセス許可
usrconf.properties
webserver.connector.http.permitted.hostsキーに，簡易Webサーバへのアクセスを許可するホストのIPアドレスまたはホスト名を指定します。
デフォルトでは次のように設定されています。

ポート番号

8080

同一ホスト内で複数のWebコンテナを開始する場合，各Webコンテナで使用するポート番号が重複しないように，次に示すユーザ定義用カスタマイズキーで設定してください。

ドキュメントルート

Windowsの場合
<製品のインストールディレクトリ>¥CC¥server¥public

UNIXの場合
/opt/Cosminexus/CC/server/public

ログ
ログの出力先や出力レベルの変更
usrconf.cfg，
usrconf.properties
usrconf.cfgのweb.server.log.directoryキーに，ログの出力先を指定します。また，usrconf.propertiesのejbserver.loggerから始まるキーに，ログサイズとログレベルを指定します。詳細については，「3.7.5(2)　Webコンテナサーバのログ取得の設定」を参照してください。

Webアプリケーションのユーザログ出力
usrconf.properties，
web.policy
ejbserver.applicationから始まるキーに，ログの出力先，ログレベル，ログ面数，使用するフィルタ，フォーマッタなどを指定します。また，web.policyファイルにセキュリティポリシーを指定します。詳細については，「3.7.5(10)　Webアプリケーションのユーザログ出力の設定」を参照してください。

ユーザスレッドの生成
ユーザスレッド生成のための権限
web.policy
cjstartwebコマンドに-security オプションを指定し，Webコンテナサーバの実行時保護機能を有効にした場合，ユーザがプログラムの中で明示して生成するスレッド（ユーザスレッド）を生成するためには，対象となるサーブレットやJSPにスレッドの生成権限を与える必要があります。
詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.14.2　ユーザスレッド生成のための権限の設定」を参照してください。ただし，サーブレットエンジンモードの場合は，server.policyファイルではなくweb.policyファイルに設定してください。

（凡例）－：該当しない

(2)　コンテナ拡張ライブラリの設定

コンテナ拡張ライブラリは，Enterprise Bean，サーブレット，JSPが利用する共通のライブラリです。コンテナ拡張ライブラリを利用することで，Enterprise Bean，サーブレット，JSPから共通のライブラリを呼び出せるようになります。

ここでは，コンテナ拡張ライブラリを使用するための設定について説明します。機能の詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「14.　コンテナ拡張ライブラリ」を参照してください。なお，コンテナ拡張ライブラリがJNIを利用する場合は，サーバ起動・停止フック機能を使用します。サーバ起動・停止フック機能の実装については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「14.4　サーバ起動・停止フック機能」を参照してください。

コンテナ拡張ライブラリを使用するためには，次の設定が必要です。

コンテナ拡張ライブラリ用のJARファイルを作成します。
コンテナ拡張ライブラリについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「14.2　コンテナ拡張ライブラリの利用」を参照してください。

Webコンテナサーバ用のusrconf.cfgのweb.add.class.pathキーで，手順1.で作成したJARファイルのパスをWebコンテナサーバのシステムクラスパスに指定します。

コンテナ拡張ライブラリからJNI機能を使用する場合は，Webコンテナサーバ用のusrconf.cfgのadd.library.pathキーで，JNI用ライブラリの検索パスを指定します。

コンテナ拡張ライブラリからJNI機能を使用する場合は，Webコンテナサーバ用のusrconf.propertiesのejbserver.application.InitTermProcessClassesキーに，サーバ起動・停止フック機能のクラス名を指定します。

ファイルの詳細については，「usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）」を参照してください。

ユーザ定義ファイルの設定例を示します。この例では，コンテナ拡張ライブラリのJARファイルは「extended_container.jar」で，そのコンテナ拡張ライブラリがJNIを使用して「extended_container.dll」（UNIXの場合，extended_container）を呼び出します。

Webコンテナサーバ用のusrconf.cfgの設定例を次に示します。

Windowsの場合

# system classpath
web.add.class.path=c:¥jar¥extended_container.jar

# ADM service
web.adm.service=false

# library path
add.library.path=c:¥lib

UNIXの場合

# system classpath
web.add.class.path=/work/classes/extended_container.jar

# library path
add.library.path=/work/lib

(3)　JSPファイルのコンパイル結果の保持の設定

ここでは，JSPコンパイル結果の保持に関する設定について説明します。

(a)　JSPコンパイル結果保持の設定方法

JSPのコンパイル結果は，デフォルトでは保持する設定となっています。この設定は，usrconf.propertiesのwebserver.work.cleanキーでの指定で，変更できます。

デフォルトでは，次のように設定されています。

webserver.work.clean=false

webserver.work.cleanキーにfalseが設定されていると，コンパイル結果を保持します。サーバ終了時にJSPコンパイル結果を削除する場合は，webserver.work.cleanキーにtrueを設定します。

usrconf.propertiesについては，「usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）」を参照してください。

(b)　JSPコンパイル結果の出力先の設定

JSPコンパイル結果は，JSP用テンポラリディレクトリ下に出力されます。JSP用テンポラリディレクトリは，usrconf.propertiesのwebserver.work.directoryキーに設定します。デフォルトの出力先を次に示します。

デフォルトの出力先

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥work

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/work

JSP用テンポラリディレクトリ下にはWebアプリケーション単位でディレクトリが作成され，該当するWebアプリケーション内のJSPコンパイル結果が出力されます。

Webアプリケーション単位の出力先

JSP用テンポラリディレクトリ下に作成されるWebアプリケーション単位のディレクトリは，コンテキストルート名を基に次の規則に従ったディレクトリ名となります。

コンテキストルート名にドル記号（$），パーセント（%），プラス記号（+）が含まれる場合は，次に示す文字に変換します。なお，サーブレットエンジンモードの場合は，コンテキストルート名にスラッシュ（/）は使用できません。

変換前の文字 | 変換後の文字
$ | $24
% | $25
+ | $2b

例：

サーブレットエンジンモードで，JSP用テンポラリディレクトリがデフォルト，コンテキストルート名が「J2EE_AP1%WEB_AP1_war」である場合，該当するWebアプリケーションのJSPコンパイル結果の出力先を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥work¥J2EE_AP1$25WEB_AP1_war

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/work/J2EE_AP1$25WEB_AP1_war

注意

JSP用テンポラリディレクトリの設定を変更する場合

JSPコンパイル結果を保持する設定でWebコンテナを稼働したあと，JSP用テンポラリディレクトリの設定を変更した場合，変更前のJSP用テンポラリディレクトリは削除されません。このため，手動で削除する必要があります。

(4)　アプリケーションの更新検知とリロードの設定

サーブレットエンジンモードでは，Webアプリケーション開発時のテストを支援する機能として，Webコンテナ上のアプリケーションの更新を検知し，更新したアプリケーションをリロードする機能を備えています。

ここでは，アプリケーションの更新を検知し，リロードする機能を使用する場合の設定について説明します。また，JSPファイルが更新された場合に，更新後のJSPを再コンパイルする機能の設定についても説明します。

(a)　リロードの動作に関する設定

Webアプリケーションのリロード機能を使用するためには，次に示す設定が必要となります。設定内容と設定ファイルについて説明します。

●リロード機能を使用するための設定

Webアプリケーションのリロード機能を使用する場合は，usrconf.propertiesまたはhitachi_web.propertiesに次の指定をします。

webserver.context.reloadable=true

●更新検知のインターバル

Webアプリケーションの更新を検知する間隔を指定できます。更新検知は，デーモンスレッドによって実行されます。デフォルトでは1秒間隔となっています。

デーモンスレッドの実行間隔を変更する場合，usrconf.propertiesのwebserver.context.check_intervalキーに値（単位：秒）を指定します。

ポイント

更新検知の対象となるファイル数が増えると，更新検知処理のオーバーヘッドが大きくなり，CPU使用率が高くなります。このような場合は，更新検知インターバルを変更することによって，性能への影響が小さくなります。更新検知インターバルの値は大きくすることをお勧めします。

●リソース更新用インターバル

リソース更新用インターバルとは，Webアプリケーションの更新を検知してから，処理中のリクエスト数の監視を実施するまでの時間を指します。

リソース更新用インターバルは，usrconf.propertiesまたはhitachi_web.propertiesのwebserver.context.update.intervalキーに値（単位：秒）を指定します。

●リロード遅延実行（任意）

リロード遅延実行機能を使用する場合は，ファイル（リソース）の更新を検知してから，リロードを開始するまでの時間を設定します。

リロード遅延実行は，usrconf.propertiesまたはhitachi_web.propertiesのwebserver.context.reload_delay_timeoutキーに値（単位：秒）を指定します。

●リロード時のセッション引き継ぎ（任意）

Webアプリケーションのリロード実行前に生成したセッション情報を，リロード後も継続して利用するかどうかを設定します。

セッション情報を引き継ぐかどうかの指定は，usrconf.propertiesまたはhitachi_web.propertiesのwebserver.context.reload_enabledキーに指定します。セッション情報を引き継ぐ場合は「true」，引き継がない場合は「false」を指定します。デフォルトは「false」で，セッション情報は引き継ぎません。

なお，セッション情報を引き継ぐ場合，セッション情報は，シリアライズされて，セッション情報ファイルに出力されます。次に，セッション情報ファイルの出力先と，出力先ディレクトリの変更方法について説明します。

セッション情報ファイルの出力先

セッション情報ファイルはデフォルトでは次のディレクトリに作成されます。

ディレクトリ

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名>¥work¥<コンテキストルート名>¥cjwebsession.dat

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/work/<コンテキストルート名>/cjwebsession.dat

なお，出力先ディレクトリはWebコンテナサーバ起動時に作成されます。作成されたディレクトリは，Webコンテナサーバを終了しても削除されません。ディレクトリが不要になった場合は，手動で削除してください。

セッション情報ファイルの出力先ディレクトリの変更

セッション情報ファイルの出力先は変更できます。変更するには，usrconf.propertiesのwebserver.session.work.directoryキーに，変更後の出力先ディレクトリを指定します。

出力先のディレクトリを変更するときの設定例を次に示します。

出力先ディレクトリ変更の設定例

Windowsの場合（C:¥tmp¥session_workに変更する場合）
webserver.session.work.directory=C:/tmp/session_work

UNIXの場合（/usr/tmp/session_workに変更する場合）
webserver.session.work.directory=/usr/tmp/session_work

なお，この例の場合，コンテキストルートが“examples”のWebアプリケーションのセッション情報ファイルは，次に示すパスに生成されます。

Windowsの場合
C:¥tmp¥session_work¥examples¥cjwebsession.dat

UNIXの場合
/usr/tmp/session_work/examples/cjwebsession.dat

●設定ファイル

リロードに関する設定は，usrconf.propertiesまたはhitachi_web.propertiesのどちらかで設定します。なお，両方のファイルに設定している場合は，hitachi_web.propertiesの指定が優先されます。設定項目と，設定できるファイルを次の表に示します。

表3-28　リロードに関する設定項目と設定ファイル

設定項目 | ファイル名
usrconf.properties | hitachi_web.properties
リロード機能を使用するための設定 | ○ | ○
更新検知のインターバル | ○ | ×
リソース更新用インターバル | ○ | ○
リロード遅延実行 | ○ | ○
セッション情報の引き継ぎ | ○ | ○
セッション情報ファイルの出力先 | ○ | ×

（凡例）○：設定できる　×：設定できない

usrconf.propertiesについては，「usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）」を参照してください。hitachi_web.propertiesについては，「hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）」を参照してください。

(b)　JSPファイルの再コンパイルに関する設定

JSPファイルの再コンパイル機能を使用するためには，次に示す設定が必要となります。設定内容と設定ファイルについて説明します。

●再コンパイル機能を使用するための設定

JSPファイルの再コンパイル機能を使用する場合は，usrconf.propertiesまたはhitachi_web.propertiesに次の内容を指定します。

webserver.jsp.recompilable=true

●更新検知のインターバル

JSPファイルの更新を検知する間隔を変更する場合は，usrconf.propertiesのwebserver.jsp.check_intervalキーに値（秒単位）を指定します。デフォルトでは1秒間隔となっています。

●JSPファイル更新用インターバル

JSPファイル更新用インターバルとは，JSPファイルの更新を検知してから，JSPファイルをコンパイルするまでの間隔を指します。

JSPファイル更新用インターバルは，usrconf.propertiesまたはhitachi_web.propertiesのwebserver.jsp.update.intervalキーに値（単位：秒）を指定します。

●設定ファイル

JSPファイルの再コンパイルに関する設定は，usrconf.propertiesまたはhitachi_web.propertiesのどちらかで設定します。なお，両方のファイルに設定している場合は，hitachi_web.propertiesの指定が優先されます。設定項目と，設定できるファイルを次の表に示します。

表3-29　JSPファイルの再コンパイルに関する設定項目と設定ファイル

設定項目 | ファイル名
usrconf.properties | hitachi_web.properties
JSPファイル再コンパイル機能を使用するための設定 | ○ | ○
更新検知のインターバル | ○ | ×
JSPファイル更新用インターバル | ○ | ○

（凡例）○：設定できる　×：設定できない

(5)　コネクションプーリングの設定

サーブレットエンジンモード上で動作するWebアプリケーションからデータベースへ接続する場合，Webコンテナコネクションプーリング機能を利用してデータベースへの接続をプールできます。これによって，コネクション生成時のパフォーマンスを向上できます。Webコンテナコネクションプーリング機能を利用するには，管理機能用のWebアプリケーションをデプロイし，プール管理情報を登録してください。

Webコンテナコネクションプーリング機能を利用するための手順を次に示します。

プール管理情報設定ファイルを作成します。
プール管理情報設定ファイルは，プール管理情報を登録するときに使用するファイルです。プール管理情報設定ファイルには次の情報を記述します。

一意のデータベースID
プール管理情報の登録で登録した一意のデータベースIDを指定します。

DABroker LibraryのクラスおよびデータベースURL（DABroker Libraryを利用する場合）
クラス名には，「Class.forName」に渡すクラス名として「com.hitachi.software.web.jdbc.WccpDriver」を指定します。また，URLには，データベースURLとして，「jdbc:hitachi:wccp://DBID=<データベースURL>」を指定します。

コネクションの最小値と最大値など

プール管理情報設定ファイルについては，「3.11.6　プール管理情報設定ファイル」を参照してください。

管理機能用のWebアプリケーションをデプロイします。
管理機能用のWebアプリケーションの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥jdbc¥cjwebconpool.war

UNIXの場合
/opt/Cosminexus/CC/web/jdbc/cjwebconpool.war

Webアプリケーションのデプロイについては，「3.7.7(1)　Webアプリケーションのデプロイ」を参照してください。

Webコンテナサーバを起動します。
Webコンテナサーバの起動については，「3.8.2　システムの起動」を参照してください。

cjwebeditpoolコマンドの引数にプール管理情報設定ファイルを指定して，プール管理情報を登録します。
cjwebeditpoolコマンドについては，「cjwebeditpool（プール管理情報の登録と変更）」を参照してください。

ユーザ作成のWebアプリケーションをデプロイします。
Webアプリケーションのデプロイについては，「3.7.7(1)　Webアプリケーションのデプロイ」を参照してください。
なお，コネクションの取得処理は，Webアプリケーションで実施します。このため，ユーザ作成のWebアプリケーションに，コネクションを操作するための記述が必要になります。Webアプリケーションの記述方法については，「3.6.3　Webコンテナコネクションプール機能によるデータベース接続」を参照してください。

3.7.5　トラブルシューティングの資料取得の設定

ここでは，トラブルシューティングの資料を取得するための設定方法について説明します。

＜この項の構成＞

(1)　資料取得の設定の概要

(2)　Webコンテナサーバのログ取得の設定

(3)　リダイレクタのログ取得の設定

(4)　TPBrokerのログ取得の設定

(5)　DABroker Libraryのログ取得の設定

(6)　OSの統計情報取得の設定

(7)　ユーザダンプ取得の設定

(8)　coreダンプ取得の設定

(9)　JavaVMの資料取得の設定

(10)　Webアプリケーションのユーザログ出力の設定

(1)　資料取得の設定の概要

トラブルシューティングに必要な資料のうち，一部の資料は，運用を開始する前に資料取得のための設定をしておく必要があります。例えば，OSの統計情報，ユーザダンプ（Windowsの場合）またはcoreダンプ（UNIXの場合），JavaVMのGCのログなどは，事前に取得のための設定をしておかないと，取得できません。これらの資料はトラブルシューティングで必要となるため，取得することをお勧めします。

デフォルトの設定で取得できるようになっている資料については，特に設定は不要ですが，ログの出力先やサイズなどを変更したい場合には，ユーザ定義ファイルを編集して，設定を変更してください。

トラブルシューティングの資料取得のための設定を次の表に示します。

表3-30　トラブルシューティングの資料取得のための設定（サーブレットエンジンモードの場合）

資料の種類
資料取得のための設定
設定の要否
設定方法の参照先

性能解析トレースファイル
事前に，取得のための設定をしておく必要はありません。日常的なシステム運用の作業で，cprfedコマンドを実行するときに取得条件などを指定します。性能解析トレースファイルの取得については，「3.8.4　システムの処理性能の解析」を参照してください。
×
－

Webコンテナサーバのログ
Webコンテナサーバ用のusrconf.cfgとusrconf.propertiesで，ログの出力レベル，サイズ，面数などを設定します。
△
(2)

リダイレクタのログ
mod_jk.conf（HTTP Serverの場合）またはisapi_redirect.conf（Microsoft IISの場合）で，ログの出力レベル，サイズ，面数などを設定します。
△
(3)

TPBrokerのトレースファイル
Webコンテナサーバ用のusrconf.cfgとusrconf.propertiesで，トレースファイルの出力先や面数などを設定します。
△
(4)

DABroker Libraryのログ
環境設定ユティリティまたはDABroker Library動作環境定義ファイルで，ログファイルサイズなどを設定します。
△
(5)

OSの統計情報
Windowsの場合，Windowsのシステムモニタでシステムリソースのパフォーマンスデータ取得の設定をします。
○
(6)

ユーザダンプ
Windowsの場合，ワトソン博士または環境変数（CJMEMDUMP_PATH）で，ユーザダンプ取得の設定をします。
○
(7)

coreダンプ
UNIXの場合，usrconf.cfgやシェルコマンドで，coreファイル取得の設定をします。
○
(8)

JavaVMの資料
Webコンテナサーバ用のusrconf.cfgで，JavaVMのスレッドダンプやJavaVMログ（JavaVMログファイル）の出力方法や出力内容などの設定をします。
○
(9)

Webアプリケーションのユーザログ
Webコンテナサーバ用のusrconf.propertiesで，ロガーやハンドラの設定，ログの出力レベル，サイズ，面数などを設定します。また，web.policyで，セキュリティポリシーを設定します。
設定方法は，J2EEアプリケーションの場合と同じです。Webアプリケーションのユーザログ出力については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「9.　アプリケーションのユーザログ出力」を参照してください。ただし，サーブレットエンジンモードの場合は，簡易構築定義ファイルではなく，Webコンテナサーバ用のusrconf.propertiesで設定します。設定時には，簡易構築定義ファイルで設定するパラメタを，Webコンテナサーバ用のusrconf.propertiesのキーに読み替えてください。Webコンテナサーバ用のusrconf.propertiesについては，「usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）」を参照してください。
○
(10)

（凡例）

○：資料を取得する場合には，設定が必要

△：デフォルトの設定をカスタマイズする場合だけ，設定が必要

×：設定は不要

－：該当しない

なお，次のログはログ出力先を変更できません。

セットアップ時に作成されるinstall.log，移行コマンドなどのログファイル

次のディレクトリに出力されるJavaのスレッドダンプファイル

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥<サーバ名称>

UNIXの場合
/opt/Cosminexus/CC/web/<サーバ名称>

(2)　Webコンテナサーバのログ取得の設定

Webコンテナサーバのログの出力先，ログサイズ，ログレベルの変更について説明します。変更できる項目と，項目に対応するユーザ定義ファイルとキーを次の表に示します。

表3-31　Webコンテナサーバのログ取得の設定項目

項目
対応するユーザ定義ファイルとキー

ログの出力先
usrconf.cfgのweb.server.log.directoryキー

ログサイズ
usrconf.propertiesのejbserver.logger.channels.define.<チャネル名>.filenumキー
usrconf.propertiesのejbserver.logger.channels.define.<チャネル名>.filesizeキー

ログレベル
usrconf.propertiesのejbserver.logger.enabled.*キー

ファイルおよびキーについては，「3.11　Webコンテナサーバで使用するファイル」を参照してください。

(a)　ログの出力先の変更

デフォルトのログ出力先を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs

ログの出力先を変更する場合は，usrconf.cfgのweb.server.log.directoryキーでログの出力先ディレクトリを指定します。

設定例

Windowsの場合
web.server.log.directory=C:¥CClogs¥web¥YourServer

UNIXの場合
web.server.log.directory=/CClogs/web/YourServer

カレントディレクトリ

ログ出力先を相対パスで指定する場合のカレントディレクトリを次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>

注意事項

ログの出力先を変更した場合は，Webコンテナサーバを起動する前に，変更後のログの出力先ディレクトリを作成しておいてください。変更後のログの出力先ディレクトリがない場合は，Webコンテナサーバのサーバ起動時にKDJE40024-Eのメッセージが出力されて異常終了します。

同じマシン内で複数のWebコンテナサーバを起動させている場合は，ログ出力先が同じディレクトリにならないように，ディレクトリにサーバ名称を含めるなど，サーバごとにユニークなディレクトリ名になるようにしてください。なお，キーの値に同じディレクトリを指定した場合は，動作の保証はしません。

ログの出力先を変更して作業ディレクトリ以外にログを出力する場合，ログファイルはサーバのアンセットアップ時に削除されません。ログファイルを削除したい場合には，手動で削除してください。

ユーザ定義ファイルでログの出力先を設定していても，次の設定が優先されますので，注意してください。
usrconf.cfgに，add.jvm.arg=-XX:HitachiJavaLog:<JavaVMの保守情報およびGCのログ出力先>キーを指定している場合は，JavaVMの保守情報およびGCのログ出力先に設定したディレクトリに，JavaVMの保守情報およびGCのログファイルが出力されます。

ログ出力先には，UNC名を含むパスは指定できません。

(b)　ログサイズの変更

ログサイズを変更する場合は，usrconf.propertiesで，ログファイルの面数，およびログファイル1面当たりの最大サイズを設定します。

ログファイル面数の変更

ログファイルの面数は，usrconf.propertiesのejbserver.logger.channels.define.<チャネル名>.filenumキーで設定します。

記述例

ejbserver.logger.channels.define.MessageLogFile.filenum=3

ログファイル1面当たりの最大サイズの変更

ログファイル1面当たりの最大サイズは（単位：バイト），usrconf.propertiesのejbserver.logger.channels.define.<チャネル名>.filesizeキーで設定します。

記述例

ejbserver.logger.channels.define.MessageLogFile.filesize=2097152

(c)　ログレベルの変更

ログレベルは，ログの重要度を表します。ログレベルには，「Error」，「Warning」，「Information」，「Debug」の四つがあります。ログレベルを設定すると，設定したレベルのログが出力されます。デフォルトでは，Errorレベルのログだけが取得されます。通常はデフォルトのまま利用してください。

ログレベルは，Webコンテナサーバ用のusrconf.propertiesのejbserver.logger.enabled.*キーで設定します。

ejbserver.logger.enabled.*=<レベル名>

レベル名には，「Error」，「Warning」，「Information」，「Debug」の文字列を一つ，または複数設定します。複数設定する場合には，レベル名の文字列の間をコンマ（,）で区切ります。

記述例

ejbserver.logger.enabled.*=Error

ejbserver.logger.enabled.*=Error,Warning

ejbserver.logger.enabled.*=Error,Warning,Information

ejbserver.logger.enabled.*=Error,Warning,Information,Debug

注意事項

記述例の1.，2.，3.，4.，の順に，取得できるログの件数が増加していきます。複数のログレベルを設定してログを取得すると，性能が劣化し，ログファイルの面の切り替えが頻繁に起こるようになります。

レベル名に「Error」，「Warning」，「Information」，「Debug」以外の文字列，または空の値を設定した場合は，KDJE90009-Wのメッセージが出力されます（Errorレベルのログは取得されます）。

ログレベルの推奨設定

ログレベルの推奨設定を次に示します。

通常運用時
「ejbserver.logger.enabled.*=Error」を指定します。

通常運用時（verbose）
通常運用時よりも詳細な情報を取得する場合には，「ejbserver.logger.enabled.*=Error,Warning」を指定します。

テスト時
「ejbserver.logger.enabled.*=Error,Warning,Information」を指定します。

障害調査時
「ejbserver.logger.enabled.*=Error,Warning,Information,Debug」を指定します。

(3)　リダイレクタのログ取得の設定

リダイレクタの出力するログの出力先やログ出力レベルなどの変更について説明します。なお，ファイルの詳細およびキーの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.2　isapi_redirect.conf（Microsoft IIS用リダイレクタ動作定義ファイル）」を参照してください。

リダイレクタが出力するログは，メッセージログと保守用トレースログの二つに分けて出力されます。メッセージログには，障害発生時のログなどのメッセージが出力されます。保守用トレースログには，HTTPリクエストを受信し，レスポンスを送信するまでのトレース情報が出力されます。

保守用トレースログのログサイズは，見積もりの計算式に従い，障害発生時から障害を検知しログを収集するまで保持されるサイズにカスタマイズすることをお勧めします。

注意事項

ログファイル初期化処理の開始時および終了時には，メッセージログにそれぞれKDJE41029-I，KDJE41030-Iのメッセージが出力されます。Webサーバの起動時には，ログファイル初期化処理が正常に終了したことを確認するため，メッセージログにKDJE41029-I，KDJE41030-Iのメッセージが出力されていることを確認してください。

UNIXの場合，mod_jk.confに設定されたファイルサイズ，およびファイル面数のログファイルは，Webサーバとの連携の設定後の初回起動時に作成されます。ログファイルの作成は，ログファイルサイズおよびファイル面数に比例した処理時間が必要となります。ログファイルサイズを大きく設定した場合，またはファイル面数を増やした場合などは，ログファイルの作成処理に数分掛かる場合があります。

(a)　HTTP Serverの場合

HTTP Serverを使用している場合は，mod_jk.confでリダイレクタのログ取得の設定を変更できます。なお，UNIXの場合，設定を変更できるのは，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）を持つユーザです。

●変更した設定を有効にする方法

変更した設定を有効にする方法について，OSごとに説明します。

Windowsの場合

変更したリダイレクタのログ取得の設定を有効にするには，HTTP Serverを再起動してください。

UNIXの場合

変更したリダイレクタのログ取得の設定を有効にする方法は，ファイルサイズまたはファイル面数の変更の有無によって異なります。

ファイルサイズまたはファイル面数を変更する場合

ファイルサイズまたはファイル面数を変更する場合に，変更したリダイレクタのログ取得の設定を有効にする方法を次に示します。

HTTP Serverを停止します。

ログファイルおよび管理ファイルを移動または削除します。
メッセージログファイルの場合：メッセージログファイルおよびHNTRLibが使用する管理ファイル（<JkLogFilePrefixの設定値>.mm）を移動，または削除します。
保守用トレースログファイルの場合：保守用トレースログファイルおよびHNTRLibが使用する管理ファイル（<JkTrcaeLogFilePrefixの設定値>.mm）を移動，または削除します。

HTTP Serverを再起動します。

なお，HNTRLibが使用する管理ファイルのデフォルトの格納場所は次のとおりです。

/opt/Cosminexus/CC/web/redirector/logs/mmap

ファイルサイズまたはファイル面数を変更しない場合

ファイルサイズまたはファイル面数を変更しない場合は，HTTP Serverを再起動してください。

●変更できる設定項目

変更できる設定項目と，項目に対応するユーザ定義ファイルとキーを次の表に示します。

表3-32　HTTP Serverでのリダイレクタのログ取得の設定項目（サーブレットエンジンモードの場合）

項目 | mod_jk.confのキー
メッセージログ，保守用トレースログのログ出力レベル | JkLogLevel
メッセージログ出力先 | JkLogFileDir
メッセージログファイルサイズ | JkLogFileSize
メッセージログファイル面数 | JkLogFileNum
メッセージログファイル名のプリフィックス | JkLogFilePrefix
保守用トレースログ出力の有無 | JkTraceLog
保守用トレースログ出力先 | JkTraceLogFileDir※
保守用トレースログファイルサイズ | JkTraceLogFileSize
保守用トレースログファイル面数 | JkTraceLogFileNum
保守用トレースログファイル名のプリフィックス | JkTrcaeLogFilePrefix※

注※　保守用トレースログの出力先とプリフィックスには，同じ値を指定しないでください。同じ値を指定した場合は，リダイレクタが動作しません。

メッセージログ，および保守用トレースログのデフォルトの出力先

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs

UNIXの場合
/opt/Cosminexus/CC/web/redirector/logs

ログレベルのレベル名

ログレベルのレベル名には，重要度の高い順に「emerg」※，「error」，「info」，「debug」のどれかを指定できます。

emerg：通常運用時に指定します。常に出力する必要がある重要度の高いメッセージだけが出力されます。※

error：通常運用時に指定します。

info：テスト時に指定します。

debug：障害調査時に指定します。

ログレベルは，単独で指定してください（コンマ区切りで複数のログレベルを指定しないでください）。あるログレベルを指定すると，指定されたログレベルおよびそれよりも重要度の高いログが出力されます。

注※　Windowsの場合に指定できます。

ログサイズの見積もりの計算式

GETリクエスト，POSTリクエストの1HTTPアクセス当たりのログサイズは，次の計算式で見積もってください。

GETによる1HTTPアクセス当たりのログサイズ
= 1.75 +（平均レスポンスボディサイズ / 16）* 0.25

POSTによる1HTTPアクセス当たりのログサイズ
= 2.00 +（平均POSTデータサイズ / 16）* 0.5 +（平均レスポンスボディサイズ / 16）* 0.25

なお，単位はすべてキロバイト，除算結果の小数点以下の値はすべて切り捨てです。また，計算式ではリクエストURLとクエリー文字列の平均サイズは，それぞれ100バイトとしています。リクエストURLとクエリー文字列の平均サイズが100バイトを超えた場合は，計算式の最初の値に，超える分のサイズを加えて計算してください。

(b)　Microsoft IISの場合

Microsoft IISを使用している場合は，isapi_redirect.confでリダイレクタのログ取得の設定を変更できます。

注意事項

isapi_redirect.confに設定されたファイルサイズ，およびファイル面数のログファイルは，Webサーバとの連携の設定後の初回リクエスト時に作成されます。ログファイルの作成は，ログファイルサイズおよびファイル面数に比例した処理時間が必要となります。ログファイルサイズを大きく設定した場合，またはファイル面数を増やした場合などは，ログファイルの作成処理に数分掛かる場合があります。

Webサーバとの連携の設定後およびログファイルの設定変更後の初回リクエストは，運用を開始する前に実施しておくことをお勧めします。

●変更した設定を有効にする方法

変更したリダイレクタのログ取得の設定を有効にする方法は，Microsoft IISのバージョンによって異なります。

ファイルサイズまたはファイル面数を変更する場合に，変更したリダイレクタのログ取得の設定を有効にするための手順を次に示します。

Microsoft IISを停止します。

ログファイルおよび管理ファイルを移動または削除します。
メッセージログファイルの場合：メッセージログファイルおよびHNTRLibが使用する管理ファイル（<log_file_prefixの設定値>.mm）を移動，または削除します。
保守用トレースログファイルの場合：保守用トレースログファイルおよびHNTRLibが使用する管理ファイル（< trace_log_file_prefixの設定値>.mm）を移動，または削除します。
なお，HNTRLibが使用する管理ファイルのデフォルトの格納場所は次のとおりです。
<製品 のインストールディレクトリ>¥CC¥web¥redirector¥logs¥mmap

Microsoft IISを起動します。
ファイルサイズおよびファイル面数を変更しない場合に，変更したリダイレクタのログ取得の設定を有効にするための手順を次に示します。

Microsoft IISを再起動するか，またはワーカプロセスのリサイクルを行います。
Microsoft IISの「インフォメーション サービス マネージャ」を使用して，ワーカプロセスのリサイクルができます。

●変更できる設定項目

変更できる設定項目と，項目に対応するユーザ定義ファイルとキーを次の表に示します。なお，Microsoft IISのバージョンによっては，キーに指定する値が異なります。isapi_redirect.confについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.2　isapi_redirect.conf（Microsoft IIS用リダイレクタ動作定義ファイル）」を参照してください。

表3-33　Microsoft IISでのリダイレクタのログ取得の設定項目（サーブレットエンジンモードの場合）

項目 | isapi_redirect.confのキー
メッセージログ，保守用トレースログのログ出力レベル | log_level
メッセージログ出力先 | log_file_dir
メッセージログファイルサイズ | log_file_size
メッセージログファイル面数 | log_file_num
メッセージログファイル名のプリフィックス | log_file_prefix
保守用トレースログ出力の有無 | trace_log
保守用トレースログ出力先 | trace_log_file_dir※
保守用トレースログファイルサイズ | trace_log_file_size
保守用トレースログファイル面数 | trace_log_file_num
保守用トレースログファイル名のプリフィックス | trace_log_file_prefix※

注※　保守用トレースログの出力先とプリフィックスには，同じ値を指定しないでください。同じ値を指定した場合は，リダイレクタが動作しません。

メッセージログ，および保守用トレースログのデフォルトの出力先

<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs

ログレベルのレベル名

ログレベルのレベル名には，重要度の高い順に「emerg」，「error」，「info」，「debug」のどれかを指定できます。

emerg：通常運用時に指定します。常に出力する必要がある重要度の高いメッセージだけが出力されます。

error：通常運用時に指定します。

info：テスト時に指定します。

debug：障害調査時に指定します。

ログレベルは，単独で指定してください（コンマ区切りで複数のログレベルを指定しないでください）。あるログレベルを指定すると，指定されたログレベルおよびそれよりも重要度の高いログが出力されます。

ログサイズの見積もりの計算式

GETリクエスト，POSTリクエストの1HTTPアクセス当たりのログサイズは，次の計算式で見積もってください。

GETによる1HTTPアクセス当たりのログサイズ
= 2.25 + (平均レスポンスボディサイズ / 16) * 0.25

POSTによる1HTTPアクセス当たりのログサイズ
= 2.50 + (平均POSTデータサイズ / 16) * 0.5 + (平均レスポンスボディサイズ / 16) * 0.25

なお，単位はすべてキロバイト，除算結果の小数点以下の値はすべて切り捨てです。また，計算式ではリクエストURLとクエリー文字列の平均サイズは，それぞれ100バイトとしています。リクエストURLとクエリー文字列の平均サイズが100バイトを超えた場合は，計算式の最初の値に，超える分のサイズを加えて計算してください。

(4)　TPBrokerのログ取得の設定

TPBrokerのトレースファイルの出力先，ファイル数，エントリ数の変更について説明します。

TPBrokerのトレースファイルのデフォルトの出力先は次のとおりです。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥TPB¥logj

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/TPB/logj

変更できる項目と，項目に対応するユーザ定義ファイルとキーを次に示します。

項目
対応するユーザ定義ファイルとキー

トレースファイルの出力先
usrconf.cfgのweb.server.log.directoryキー
または
usrconf.propertiesのvbroker.orb.htc.tracePathキー

トレースファイルのファイル数
usrconf.propertiesのvbroker.orb.htc.comt.fileCountキー

トレースファイルのエントリ数
usrconf.propertiesのvbroker.orb.htc.comt.entryCountキー

ファイルおよびキーの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。

注意事項

トレースファイルの出力先を変更する場合は，変更後のトレースファイル出力先ディレクトリのサブディレクトリとしてcomtrcとmdltrcをあらかじめ作成しておく必要があります。出力先を変更すると，変更後のログ出力先ディレクトリ下のcomtrcとmdltrcにトレースファイルが出力されます。

usrconf.cfgのweb.server.log.directoryキーと，usrconf.propertiesのvbroker.orb.htc.tracePathキーをどちらも設定した場合は，usrconf.propertiesのvbroker.orb.htc.tracePathキーの設定が優先されます。

(5)　DABroker Libraryのログ取得の設定

環境設定ユティリティまたはDABroker Library動作環境定義ファイルで，ログファイルサイズなどを設定します。環境設定ユティリティまたはDABroker Library動作環境定義ファイルの設定については，「4.3　DABroker Libraryの初期設定」を参照してください。

(6)　OSの統計情報取得の設定

Windowsのシステムモニタを使用して，システムリソースのパフォーマンスデータを取得できます。システムリソースのパフォーマンスデータを取得するための設定方法は，運用管理ポータルでシステムを構築する場合の設定方法と同じです。詳細については，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」およびマニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「3.3.16　OSの統計情報取得の設定」を参照してください。

(7)　ユーザダンプ取得の設定

ユーザダンプを取得するための設定は，OSごとに異なります。

●Windows XPの場合

ユーザダンプを取得するためには，ワトソン博士を使用できるように設定しておいてください。ユーザダンプを取得するための設定方法は，運用管理ポータルでシステムを構築する場合の設定方法と同じです。詳細については，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」およびマニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「3.3.17　ユーザダンプ取得の設定」を参照してください。

●Windows Server 2012，Windows Server 2008，Windows 8，Windows 7，またはWindows Vistaの場合

cjstopwebコマンドの-fdオプションを使用してユーザダンプを取得する場合には，環境変数「CJMEMDUMP_PATH」にユーザダンプの出力先ディレクトリを指定しておいてください。ユーザダンプのファイル名は，cjmemdump.dmpです。

環境変数「CJMEMDUMP_PATH」の設定例を次に示します。

環境変数「CJMEMDUMP_PATH」の設定例

set CJMEMDUMP_PATH=C:¥temp

この例の場合，C:¥tempの下にcjmemdump.dmpが作成されます。

なお，環境変数「CJMEMDUMP_PATH」を指定する場合には，次の点に注意してください。

保存先のディスクに十分な空き容量があることを確認してください。ユーザダンプのファイルサイズはWebコンテナサーバの実メモリ所要量以上になります。

日本語などのマルチバイト文字を含むディレクトリを指定しないでください。ユーザダンプの出力に失敗する場合があります。

ユーザダンプの出力先ディレクトリには，存在するディレクトリを指定してください。

(8)　coreダンプ取得の設定

coreダンプを取得するための設定方法は，運用管理ポータルでシステムを構築する場合の設定方法と同じです。詳細については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「3.3.18　coreダンプ取得の設定」を参照してください。ただし，サーブレットエンジンモードの場合は，簡易構築定義ファイルではなく，Webコンテナサーバ用のusrconf.cfgで設定します。設定時には，簡易構築定義ファイルで設定するパラメタを，Webコンテナサーバ用のusrconf.cfgのキーに読み替えてください。Webコンテナサーバ用のusrconf.cfgについては，「usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）」を参照してください。

(9)　JavaVMの資料取得の設定

ここでは，次に示すJavaVMの資料を取得するための設定について説明します。

JavaVMのスレッドダンプ

JavaVMログ（JavaVMログファイル）

(a)　JavaVMのスレッドダンプ取得の設定

JavaVMのスレッドダンプを取得するための設定について説明します。

JavaVMのスレッドダンプに出力される内容は，usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）のadd.jvm.argキーに指定しているJavaVMの起動オプションによって異なります。

JavaVMのスレッドダンプを出力する場合に指定するオプションを次の表に示します。

表3-34　JavaVMのスレッドダンプを取得するために指定するオプション（サーブレットエンジンモードの場合）

オプション
説明

-XX:+HitachiThreadDump
拡張スレッドダンプを出力します。デフォルトの状態では，出力するように設定されています。

-XX:+HitachiThreadDumpToStdout
拡張スレッドダンプを標準出力に出力します。デフォルトの状態では，出力するように設定されています。

-XX:+HitachiThreadDumpWithHashCode
スレッド情報にスレッドのハッシュコードを出力します。デフォルトの状態では，出力するように設定されています。

-XX:+HitachiThreadDumpWithCpuTime
スレッド情報にスレッドを開始してからのユーザCPU時間，およびカーネルCPU時間を出力します。デフォルトの状態では，出力するように設定されています。

-XX:+HitachiThreadDumpWithBlockCount
スレッド情報にスレッドが処理をブロックした回数，および処理が待ち状態になった回数を出力します。デフォルトの状態では，出力するように設定されています。

-XX:+HitachiOutOfMemoryAbort
-XX:+HitachiOutOfMemoryAbortThreadDump
どちらも設定されている場合は，OutOfMemoryErrorによって強制終了した時に，スレッドダンプを出力します。ただし，J2SEクラスライブラリでCヒープ不足が発生した場合，およびJavaVMの処理中にCヒープ不足が発生した場合は，スレッドダンプを出力しません。

-XX:+HitachiOutOfMemoryAbortThreadDumpWithJHeapProf
OutOfMemoryErrorによって強制終了した時に出力されるスレッドダンプに，クラス別統計情報を出力します。デフォルトでは出力されません。

(b)　JavaVMログ取得の設定

JavaVMログを取得するための設定について説明します。

JavaVMログとは，製品が標準のJavaVMに追加した拡張オプションを使用して取得できるログです。標準のJavaVMよりも，多くのトラブルシュート情報が取得できます。このログファイルを，JavaVMログファイルといいます。

JavaVMログファイルを取得するためには，usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）のadd.jvm.argキーにJavaVMの起動オプションを指定します。

JavaVMログファイルを取得するために指定するオプションを次の表に示します。

表3-35　JavaVMログ（JavaVMログファイル）を取得するために指定するオプション（サーブレットエンジンモードの場合）

オプション
説明

-XX:+HitachiOutOfMemoryStackTrace
-XX:+HitachiVerboseGC
-XX:+HitachiJavaClassLibTrace
三つのオプションのうちどれかを指定している場合に，JavaVMログファイルを出力します。

-XX:+HitachiOutOfMemoryStackTraceを指定している場合は，例外情報とスタックトレースをJavaVMログファイルに出力します。なお，このオプションを指定すると，-XX:+HitachiOutOfMemorySizeおよび-XX:+HitachiOutOfMemoryCauseも同時に指定されます。

-XX:+HitachiVerboseGCを指定している場合は，GCが発生したときに，拡張verbosegc情報をJavaVMログファイルに出力します。

-XX:+HitachiJavaClassLibTraceを指定している場合は，クラスライブラリのスタックトレースをJavaVMログファイルに出力します。

必要に応じて，次の拡張オプションを指定して，JavaVMログファイルの出力方法や出力内容を設定してください。

JavaVMログファイルのファイルサイズやファイル数

拡張verbosegc機能オプション

OutOfMemoryError発生時の拡張機能オプション

クラスライブラリトレース機能オプション

ローカル変数情報出力機能オプション

スワップ領域の予約オプション　など

JavaVMのオプションについては，「usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）」を参照してください。

(c)　拡張verbosegc機能オプションの設定

ここでは，JavaVMの保守情報（Javaヒープの情報）およびGCのログに拡張verbosegc情報を出力するための設定について説明します。次の表に示すオプションで，拡張verbosegc情報の出力を有効にして，拡張verbosegc情報の出力形式を指定してください。

表3-36　拡張verbosegc情報を出力するために指定するオプション（サーブレットエンジンモードの場合）

オプション | 説明
-XX:+HitachiVerboseGC | 拡張verbosegc情報をJavaVMログファイルに出力します。
-XX:+HitachiVerboseGCPrintDate | 拡張verbosegc情報の各行に日付を出力します。
-XX:+HitachiVerboseGCCpuTime※ | GCの開始から終了までの間で，GCを実行したスレッドのCPU利用時間を出力します。CPU利用時間は，ユーザモードで費やしたCPU時間とカーネルモードで費やしたCPU時間に分けて出力されます。
-XX:HitachiVerboseGCIntervalTime=<時間間隔(秒)> | 拡張verbosegc情報の出力間隔を指定します。
-XX:+HitachiVerboseGCPrintCause | 拡張verbosegc情報に，GCが発生した要因を出力します。
-XX:+HitachiOutputMilliTime | 拡張verbosegc情報の各行に日時（ミリ秒まで）を出力します。
-XX:+HitachiCommaVerboseGC | 拡張verbosegc情報をCSV形式で出力します。
-XX:+HitachiVerboseGCPrintTenuringDistribution | Survivor領域の年齢分布情報を出力します。出力形式や出力情報については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「9.11　Survivor領域の年齢分布情報出力機能」を参照してください。
-XX:+HitachiVerboseGCPrintJVMInternalMemory | JavaVM内部で管理しているヒープ情報をJavaVMログファイルに出力します。
-XX:+HitachiVerboseGCPrintThreadCount | Javaスレッドの数を監視するために，Javaスレッドの数をJavaVMログファイルに出力します。
-XX:+HitachiVerboseGCPrintDeleteOnExit | java.io.File.deleteOnExit()を呼び出したことによってJavaVMが確保した累積のヒープサイズとメソッドの呼び出し回数を，JavaVMログファイルに出力します。

注※

HP-UXの場合，このオプションは使用できません。オプションを指定しても無視されます。

拡張verbosegc情報から，そのサーバで必要とするJavaヒープ領域サイズ，Metaspace領域サイズなどを見積もるための情報を取得できます。

(10)　Webアプリケーションのユーザログ出力の設定

ここでは，Webアプリケーションが出力するログを，トレース共通ライブラリ形式で出力するための設定方法について説明します。Webアプリケーションのユーザログを出力しない場合は，この設定は不要です。

アプリケーションサーバでは，トレース共通ライブラリを使用して，Webアプリケーションが出力するログをアプリケーションサーバの構成ソフトウェアが出力するログと同じ形式（トレース共通ライブラリ形式）で出力できます。これによって，システムのログとWebアプリケーションのログを同じ形式で扱うことができるようになり，システム全体のログ運用の信頼性とログ出力の性能を高められます。

Webアプリケーションが出力するログを，トレース共通ライブラリ形式で出力する場合は，Webアプリケーションを開発する際に，ログ出力処理を設定する必要があります。また，usrconf.propertiesを編集して，ハンドラからのログの出力先，ログレベル，ログ面数，使用するフィルタ，フォーマッタなどを指定する必要があります。

ユーザログを出力するための設定方法については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「9.　アプリケーションのユーザログ出力」を参照してください。ただし，次の点に注意してください。ただし，サーブレットエンジンモードの場合は，簡易構築定義ファイルではなく，Webコンテナサーバ用のusrconf.propertiesで設定します。設定時には，簡易構築定義ファイルで設定するパラメタを，Webコンテナサーバ用のusrconf.propertiesのキーに読み替えてください。Webコンテナサーバ用のusrconf.propertiesについては，「usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）」を参照してください。

サーブレットエンジンモードの場合は，usrconf.propertiesの格納場所が異なります。サーブレットエンジンモードのusrconf.propertiesの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.properties

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.properties

サーブレットエンジンモードの場合は，セキュリティポリシーをweb.policyに指定してください。web.policyの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web.policy

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web.policy

3.7.6　統合ユーザ管理機能の設定

ここでは，サーブレットエンジンモードの場合の，統合ユーザ管理機能の設定について説明します。統合ユーザ管理機能を使用しない場合は，この設定は不要です。

＜この項の構成＞

(1)　統合ユーザ管理機能の設定手順

(2)　統合ユーザ管理機能の設定方法

(1)　統合ユーザ管理機能の設定手順

統合ユーザ管理機能の設定手順について説明します。

アプリケーションサーバでは，アプリケーションサーバで構築したシステムにログインするユーザを統合管理できます。統合ユーザ管理では，それぞれのJ2EEアプリケーションが管理しているユーザの情報が関連づけて管理され，一度のログイン処理でさまざまなJ2EEアプリケーションにログインできるようになります。統合ユーザ管理機能を使用する場合は，ユーザ認証情報を格納するLDAPディレクトリサーバや，統合ユーザ管理のコンフィグレーションファイルを設定する必要があります。

統合ユーザ管理機能を使用するための設定手順は，運用管理ポータルを使用してシステムを構築するときの設定手順とほとんど同じです。運用管理ポータルを使用したシステム構築の場合の統合ユーザ管理機能の設定手順については，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を参照してください。

(2)　統合ユーザ管理機能の設定方法

統合ユーザ管理機能の設定方法について説明します。

統合ユーザ管理機能を使用するための設定方法は，運用管理ポータルを使用してシステムを構築するときの設定方法とほとんど同じです。運用管理ポータルを使用したシステム構築の場合の統合ユーザ管理機能の設定方法については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」の「5.　統合ユーザ管理による認証」を参照してください。ただし，サーブレットエンジンモードの場合では，設定方法が少し異なります。設定方法の差異を次に示します。

(a)　サーバ名について

サーブレットエンジンモードの場合は，「J2EEサーバ」を「Webコンテナサーバ」と読み替えてください。

(b)　ユーザ情報の登録について

サーブレットエンジンモードの場合は，統合ユーザ管理GUI（Management Serverの運用管理ポータルの「リポジトリ管理」）でのユーザ情報の登録はできません。ユーザ情報は，コマンド，ユーザ認証ライブラリまたはシングルサインオンライブラリのAPIを使用して登録してください。

(c)　JavaVMのプロパティの設定について

統合ユーザ管理機能を使用する場合は，JavaVMの起動時に，J2EEサーバのusrconf.propertiesとweb.policyの設定が必要です。

詳細は，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」の「5.21　JavaVMのプロパティの設定」を参照してください。

(d)　ファイルのデプロイについて

サーブレットエンジンモードの場合は，デプロイする統合ユーザ管理用の「EARファイル（uastartup.ear）」を「WARファイル（uastartup.war）」と読み替えてください。また，WARファイルのデプロイについては，「3.7.7(1)　Webアプリケーションのデプロイ」を参照してください。uastartup.warは，次に示すディレクトリにインストールされています。

Windowsの場合
<製品のインストールディレクトリ>¥manager¥config

UNIXの場合
/opt/Cosminexus/manager/config

(e)　JSPタグライブラリを使用している場合の設定について

Webコンテナサーバにデプロイ済みのWebアプリケーションで，JSPタグライブラリを使用している場合には，ファイルのコピーや編集が必要です。

JSPタグライブラリ用のJARファイル（uatags.jar）とタグライブラリ記述子ファイル（uatags.tld）をコピーして，WebアプリケーションのDD（web.xml）を編集してください。手順を次に示します。

uatags.jarを，<デプロイ先ディレクトリ>¥<Webアプリケーション名>¥WEB-INF¥lib（Windowsの場合），または<デプロイ先ディレクトリ>/<Webアプリケーション名>/WEB-INF/lib（UNIXの場合）にコピーします。
例えば，uCosminexus Portal Frameworkを使用する場合，<Webアプリケーション名>は，Portalです。

uatags.tldを，<デプロイ先ディレクトリ>¥<Webアプリケーション名>¥WEB-INF（Windowsの場合），または<デプロイ先ディレクトリ>/<Webアプリケーション名>/WEB-INF（UNIXの場合）にコピーします。

web.xmlの適切な位置に次の記述を追加します。

<taglib>
<taglib-uri>http://cosminexus.com/admin/auth/uatags</taglib-uri>
<taglib-location>/WEB-INF/uatags.tld</taglib-location>
</taglib>

web.xmlは次の場所に格納されています。

Windowsの場合
<デプロイ先ディレクトリ>¥<Webアプリケーション名>¥WEB-INF¥web.xml

UNIXの場合
<デプロイ先ディレクトリ>/<Webアプリケーション名>/WEB-INF/web.xml

<デプロイ先ディレクトリ>については，「3.7.8　Webコンテナサーバの作業ディレクトリ」を参照してください。

参考

JSPタグライブラリを使用したWebアプリケーションの作成については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」の「5.11　タグライブラリを使用したユーザ認証の実装」を参照してください。なお，JSPタグライブラリを使用する場合は，上記の手順3.に従ってweb.xmlを編集してください。

3.7.7　Webアプリケーションの設定

サーブレットエンジンモードの環境では，Webアプリケーションを実行する前に，Webコンテナサーバにデプロイします。Webアプリケーションのデプロイについては，「(1)　Webアプリケーションのデプロイ」を参照してください。Webアプリケーションのアンデプロイについては，「(2)　Webアプリケーションのアンデプロイ」を参照してください。また，Webアプリケーションへのサーブレットフィルタの追加については，「(3)　Webアプリケーションに組み込むサーブレットフィルタの設定」を参照してください。

なお，Webアプリケーションは，DeveloperやIDEなどを使用して，あらかじめ作成しておいてください。DeveloperやIDEによるWebアプリケーションの作成については，マニュアル「アプリケーションサーバ アプリケーション開発ガイド」を参照してください。

＜この項の構成＞

(1)　Webアプリケーションのデプロイ

(2)　Webアプリケーションのアンデプロイ

(3)　Webアプリケーションに組み込むサーブレットフィルタの設定

(1)　Webアプリケーションのデプロイ

Webアプリケーションのデプロイ方法は，次の2種類あります。

WARファイルのコピーによるデプロイ

ディレクトリのコピーによるデプロイ

それぞれのデプロイ方法について説明します。また，ルートコンテキストを使用し，ドメイン名を指定してWebアプリケーションのトップページを表示させる方法についても説明します。

(a)　WARファイルのコピーによるデプロイ

WARファイルのコピーによるデプロイの手順を次に示します。

WARファイルを次に示す場所にコピーします。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps"

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps

cjstartwebコマンドを実行して，Webコンテナサーバを起動します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstartweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstartweb <サーバ名称>

これによって，WARファイルが自動展開され，Webアプリケーションを利用できるようになります。デプロイ後は，手順1.で示した場所にWARファイル名の拡張子（.war）を除いた名前のディレクトリが作成されます。このディレクトリ名が，コンテキスト名として使用されます。

(b)　ディレクトリのコピーによるデプロイ

ディレクトリのコピーによるデプロイの手順を次に示します。

次に示す場所にWebアプリケーションのディレクトリ階層をコピーします。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps"

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps

cjstartwebコマンドを実行して，Webコンテナサーバを起動します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstartweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstartweb <サーバ名称>

これによって，Webアプリケーションを利用できるようになります。コンテキスト名としては，コピーされたディレクトリ名がそのまま使用されます。

(c)　ドメイン名指定でのトップページの表示

デプロイしたWebアプリケーションにアクセスするとき，URLにドメイン名を指定するだけで，Webアプリケーションのトップページを表示させるには，次の設定が必要です。

リダイレクタのURLマッピング定義で，ルートコンテキストにリクエストが振り分けられるように設定する必要があります。リダイレクタでの設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.2　Webサーバ（リダイレクタ）によるリクエストの振り分け」を参照してください。
なお，サーブレットエンジンモードの場合は，Webアプリケーションをデプロイするときにルートコンテキストを指定します。

index.htmlやindex.jspなどのWebアプリケーションのトップページをルートコンテキストに配置する必要があります。Webアプリケーションのコンテキストルートを「ROOT」にしてデプロイしてください。

WARファイルのコピーによるデプロイの場合

WARファイル名を「ROOT.war」にしてデプロイしてください。

なお，拡張子（.war）を除いたWARの名前はすべて大文字の「ROOT」にします。「Root」や「root」のように小文字を含んでいる場合は，拡張子（.war）を除いたWARの名前がコンテキストルートとなります。例えば，WARファイル名が「Root.war」の場合，ルートコンテキストではなく，コンテキストルートが「Root」のコンテキストになります。

ディレクトリのコピーによるデプロイの場合

ディレクトリ名を「ROOT」にしてデプロイしてください。

なお，ディレクトリ名「ROOT」はすべて大文字にします。「Root」や「root」のように小文字を含んでいる場合は，指定したディレクトリの名前がコンテキストルートとなります。例えば，ディレクトリ名が「Root」の場合，ルートコンテキストではなく，コンテキストルートが「Root」のコンテキストになります。

(2)　Webアプリケーションのアンデプロイ

Webアプリケーションのアンデプロイ方法は，次の2種類あります。

WARファイルの削除によるアンデプロイ

ディレクトリの削除によるアンデプロイ

それぞれのアンデプロイ方法について説明します。

(a)　WARファイルの削除によるアンデプロイ

WARファイルの削除によるアンデプロイの手順を次に示します。

cjstopwebコマンドを実行して，Webコンテナサーバを停止します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstopweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstopweb <サーバ名称>

該当するWARファイル，および次に示す場所に自動展開されたディレクトリを削除します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps"

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps

Webコンテナサーバを再起動します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstartweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstartweb <サーバ名称>

これによって，Webアプリケーションのアンデプロイが有効になります。

(b)　ディレクトリの削除によるアンデプロイ

ディレクトリの削除によるアンデプロイの手順を次に示します。

cjstopwebコマンドを実行して，Webコンテナサーバを停止します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstopweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstopweb <サーバ名称>

次に示す場所にコピーしたディレクトリを削除します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps"

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps

Webコンテナサーバを再起動します。

Windowsの場合
"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstartweb <サーバ名称>"

UNIXの場合
/opt/Cosminexus/CC/web/bin/cjstartweb <サーバ名称>

これによって，Webアプリケーションのアンデプロイが有効になります。

(3)　Webアプリケーションに組み込むサーブレットフィルタの設定

アプリケーションサーバでは，アプリケーションサーバ独自の機能を使用するためのサーブレットフィルタを提供しています。アプリケーションサーバが提供するサーブレットフィルタをbuilt-inフィルタといいます。

アプリケーションサーバで提供しているbuilt-inフィルタのうち，サーブレットエンジンモードで使用できるフィルタは，HTTPレスポンス圧縮フィルタだけです。

各built-inフィルタの処理内容，およびbuilt-inフィルタの組み込み順序については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.1　アプリケーションサーバが提供するサーブレットフィルタ（built-inフィルタ）」を参照してください。

サーブレットエンジンモードの場合は，WebアプリケーションのDD（web.xml）を直接編集してフィルタを組み込む必要があります。built-inフィルタの組み込みについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.10.3　HTTPレスポンス圧縮フィルタを使用するアプリケーションの実装」を参照してください。

3.7.8　Webコンテナサーバの作業ディレクトリ

Webコンテナサーバは作業ディレクトリ中にサーバ名やWebアプリケーションのコンテキストルート名，WARファイル中のファイルなどを用いてディレクトリやファイルを生成します。ディレクトリ名やファイル名，パス全体の長さには上限があり，作業ディレクトリ全体がパス全体の上限に収まらないとWebコンテナサーバは正常に動作できません。ここでは，Webコンテナサーバの作業ディレクトリの構成と作業ディレクトリのパス長の見積もり式を説明します。

＜この項の構成＞

(1)　作業ディレクトリの構成

(2)　作業ディレクトリのパス長の見積もり式

(1)　作業ディレクトリの構成

Webコンテナサーバの作業ディレクトリは，Webコンテナサーバが動作する上で必要な作業領域です。この領域には，ユーザ定義ファイル，ログ，Webアプリケーションなどの情報が格納されます。

Webコンテナサーバには，次の作業ディレクトリがあります。

Webアプリケーション

JSP用一時ディレクトリ

上記の作業ディレクトリの構成についてそれぞれ説明します。

ディレクトリ構成を図で示したあと，各ディレクトリを説明します。なお，図中の番号と説明の番号は対応しています。

(a)　Webアプリケーション

Webアプリケーションのディレクトリ構成を次の図に示します。

図3-5　Webアプリケーションのディレクトリ構成

WARファイル名の拡張子（.war）を除いた名前のディレクトリが作成されます。

WARファイルに含まれているファイルがここに解凍されます。

(b)　JSP用一時ディレクトリ

JSP用一時ディレクトリのディレクトリ構成を次の図に示します。

図3-6　JSP用一時ディレクトリのディレクトリ構成

WARファイル名の拡張子（.war）を除いた名前のディレクトリが作成されます。

JSPをコンパイルして作成されたクラスファイルが格納されます。JSPのファイル名に英数字以外の文字が含まれている場合は，それぞれ6文字の文字列に置き換えられます。また，ファイル名が数字で始まる場合は1文字付加されます。

(2)　作業ディレクトリのパス長の見積もり式

作業ディレクトリのパス長の見積もり式は次のようになります（単位：バイト）。これらの式がすべて満たされるように，各種パラメタを調整してください。なお，見積もり式中の「最大パス長」※とは，OSで規定されているパス長の制限のことです。OSのパス長の制限については，ご使用のOSのドキュメントなどで確認してください。

A+B+C+D+25≦最大パス長

A'+C+E+2≦最大パス長

注※

ご使用のOSがWindowsの場合，最大パス長は259バイトです。

（凡例）

A：インストールディレクトリのパスの長さ

A'：JSP用一時ディレクトリまでのパスの長さ

B：最も長いサーバ名の長さ

C：最も長いコンテキストルートの長さ

D：WARファイル内で最も長いパスの長さ

E：最も長いJSPのファイル名（WARファイル内のパスを含む。英数字以外を含む場合は英数字以外の文字×6で換算。JSPファイルが数字で始まる場合は1を加算）の長さ

3.8　サーブレットエンジンモードでのシステム運用

ここでは，サーブレットエンジンモードを使用してシステムを運用する場合の方法について説明します。

＜この節の構成＞

3.8.1　Component Container管理者による運用に関する留意事項

3.8.2　システムの起動

3.8.3　システムの停止

3.8.4　システムの処理性能の解析

3.8.5　トラブルシューティング

3.8.6　資料の調査

3.8.7　トラブルへの対処と回復

3.8.8　トラブルシューティングに関連する留意事項

3.8.9　資料の取得方法

3.8.1　Component Container管理者による運用に関する留意事項

UNIXでComponent Container管理者を設定している場合の留意事項について説明します。Component Container管理者とは，UNIXを使用している場合に，Webコンテナサーバの構築・運用に関する操作を実行できる権限を持つユーザです。Component Container管理者を設定することで，root権限を持たないユーザでも， Webコンテナサーバの起動・停止やサーバ管理コマンドの実行など，システム運用時の操作を実行できるようになります。

注意

Component Container管理者を設定している場合，Component Container管理者が実行できる操作は，一部の操作を除き，スーパーユーザでは操作できなくなるので注意してください。詳細については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.4　Component Container管理者を設定するときの注意事項（UNIXの場合）」を参照してください。

なお，Component Container管理者の設定，およびComponent Container管理者を設定している場合にパーミッションが変更されるディレクトリについては，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.4　Component Container管理者を設定するときの注意事項（UNIXの場合）」を参照してください。

Component Container管理者が実施できるシステム運用時の操作について説明します。

＜この項の構成＞

(1)　Component Container管理者が実施できるシステム運用時の操作

(1)　Component Container管理者が実施できるシステム運用時の操作

Component Container管理者を設定した場合に，スーパーユーザおよびComponent Container管理者が実施できるシステム運用時の操作を次の表に示します。

表3-37　Component Container管理者が実施できるシステム運用時の操作

操作
スーパーユーザ
Component Container管理者

Webコンテナサーバの起動／停止
（cjstartwebコマンド， cjstopwebコマンド）
×
○

サーバ管理コマンドの実行
○
○

スレッドダンプの取得（cjdumpwebコマンド）
○
○

OS状態情報の取得（cjgetsysinfoコマンド）
○
○

（凡例）○：できる　×：できない

なお，Component Container管理者を設定しない場合は，スーパーユーザが運用管理者となるため，Component Container管理者の操作もスーパーユーザが実施します。

3.8.2　システムの起動

ここでは，サーブレットエンジンモードでのシステムの起動の手順について説明します。

なお，データベース，LDAPディレクトリサーバなどの関連製品は起動済みであることを前提に説明します。データベース，LDAPディレクトリサーバなどを使用している場合は，必要に応じてあらかじめ起動しておいてください。システムの起動手順を次に示します。

PRFデーモンを起動します。
cprfstartコマンドでPRFデーモンを起動します。起動方法については，「(1)　PRFデーモンの起動」を参照してください。

Webコンテナサーバを起動します。
cjstartwebコマンドでWebコンテナサーバを起動します。起動方法については，「(2)　Webコンテナサーバの起動」を参照してください。

Webサーバを起動します。
起動方法については，ご使用のWebサーバのマニュアルを参照してください。

Webアプリケーションの動作を確認します。
システムが起動できたら，Webアプリケーションが正常に動作することを確認してください。

＜この項の構成＞

(1)　PRFデーモンの起動

(2)　Webコンテナサーバの起動

(1)　PRFデーモンの起動

PRFデーモンの起動手順を次に示します。

cdコマンドでカレントディレクトリを移動します。

Windowsの場合

cd "<製品のインストールディレクトリ>¥PRF¥bin"

UNIXの場合

# cd /opt/Cosminexus/PRF/bin

cprfstartコマンドでPRFデーモンを起動します。

Windowsの場合

cprfstart

UNIXの場合

# cprfstart

なお，cprfstartコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfstart（PRFデーモンの開始）」を参照してください。

(2)　Webコンテナサーバの起動

Webコンテナサーバの起動方法について説明します。

Webコンテナサーバを起動するには，次に示すコマンドを実行します。

Windowsの場合

"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstartweb サーバ名称"

なお，Windowsの場合，コマンドの実行には，Administrator権限が必要です。

UNIXの場合

"/opt/Cosminexus/CC/web/bin/cjstartweb <サーバ名称>"

なお，UNIXの場合，コマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

Webコンテナサーバのプロセス名は「cjstartweb」です。cjstopwebコマンドでWebコンテナサーバを停止するまで，このプロセスは存在します。

同一ホストで複数のWebコンテナを同時に起動する場合のポート番号については，Webコンテナサーバのセットアップで設定します。詳細については，「3.7.3　Webコンテナサーバのセットアップ」を参照してください。

なお，SecurityManagerによるWebコンテナの保護をするには，-securityオプションを追加してください。

3.8.3　システムの停止

ここでは，サーブレットエンジンモードのシステムの停止手順について説明します。

なお，データベース，LDAPディレクトリサーバなどを使用している場合は，必要に応じて停止してください。システムの停止手順を次に示します。

Webサーバを停止します。
停止方法については，ご使用のWebサーバのマニュアルを参照してください。

Webコンテナサーバを停止します。
cjstopwebコマンドでWebコンテナサーバを停止します。停止方法については，「(1)　Webコンテナサーバの停止」を参照してください。

PRFデーモンを停止します。
cprfstopコマンドでPRFデーモンを停止します。停止方法については，「(2)　PRFデーモンの停止」を参照してください。

＜この項の構成＞

(1)　Webコンテナサーバの停止

(2)　PRFデーモンの停止

(1)　Webコンテナサーバの停止

Webコンテナサーバの停止方法について説明します。

Webコンテナサーバを停止するには，次に示すコマンドを実行します。

Windowsの場合

"<製品のインストールディレクトリ>¥CC¥web¥bin¥cjstopweb サーバ名称"

なお，Windowsの場合，コマンドの実行には，Administrator権限が必要です。

UNIXの場合

"/opt/Cosminexus/CC/web/bin/cjstopweb <サーバ名称>"

なお，UNIXの場合，コマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

Webコンテナサーバを停止しても，Webコンテナサーバの停止処理が完了しない場合があります。この場合，Webコンテナサーバを強制的に停止する必要があります。Webコンテナサーバを強制停止する場合，cjstopwebコマンドに-fオプションまたは-fdオプションを指定して実行します。-fdオプションを指定すると，Webコンテナサーバの障害情報を取得したあと，Webコンテナサーバを強制停止します。

(2)　PRFデーモンの停止

PRFデーモンの停止手順を次に示します。

cdコマンドでカレントディレクトリを移動します。

Windowsの場合

cd "<製品のインストールディレクトリ>¥PRF¥bin"

UNIXの場合

# cd /opt/Cosminexus/PRF/bin

cprfstopコマンドでPRFデーモンを停止します。
cprfstartコマンドを実行したユーザが実行してください

Windowsの場合

cprfstop

UNIXの場合

# cprfstop

PRFデーモンを停止しても，PRFデーモンの停止処理が完了しない場合があります。この場合，PRFデーモンを強制的に停止する必要があります。PRFデーモンを強制停止する場合，cprfstopコマンドに-Forceオプションを指定して実行します。

なお，cprfstopコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfstop（PRFデーモンの停止）」を参照してください。

3.8.4　システムの処理性能の解析

ここでは，サーブレットエンジンモードで動作するシステムでの処理性能の解析方法について説明します。

アプリケーションサーバで構築したシステムの処理性能は，クライアントからデータベースなどのEISまで，およびその処理結果がクライアントに返却されるまでのリクエストの一連の処理で，リダイレクタやWebコンテナなどから出力されるトレース情報を基に解析できます。トレース情報を出力するリダイレクタやWebコンテナなどを，機能レイヤといいます。サーブレットエンジンモードで動作するシステムでのリクエストの処理過程では，次に示す機能レイヤからトレース情報が出力されます。

リダイレクタ

Webコンテナ

各機能レイヤでは決まった処理のポイント（トレース取得ポイント）でトレース情報を出力します。各機能レイヤが出力するトレース情報は，パフォーマンストレーサ（Performance Tracer）のPRFデーモンによって，トレースファイル（PRFトレースファイル）に出力されます。PRFデーモンにはトレース取得レベル（標準または詳細）を設定できます。PRFデーモンに設定するトレース取得レベルをPRFトレース取得レベルといいます。各機能レイヤのトレース取得ポイントおよびPRFトレース取得レベルの詳細については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「8.　性能解析トレースのトレース取得ポイントとPRFトレース取得レベル」を参照してください。

なお，各機能レイヤのトレース情報はバイナリ形式でPRFトレースファイルに出力されます。システムの処理性能を解析する際は，PRFトレースファイルをテキスト形式（CSV形式）に変換したファイル（性能解析トレースファイル）を使用します。

サーブレットエンジンモードの場合，システムの処理性能を解析する作業は，パフォーマンストレーサのコマンドで実行します。

システムの処理性能を解析する場合に実施する作業を次に示します。詳細については，参照先の説明を参照してください。

表3-38　システムの処理性能を解析する場合に実施する作業（サーブレットエンジンモードの場合）

作業の目的
作業の概要
パフォーマンストレーサのコマンド
参照先マニュアル
参照先

性能解析トレースファイルを収集する
PRFトレースファイルを出力して，CSV形式に変換します。
cprfflush
cprfed
－
－

収集した性能解析トレースファイルを利用してシステムの処理性能を解析する
Webサーバのレスポンスタイムを解析します。
－※
アプリケーションサーバ 機能解説 保守／移行編
7.7.2

アプリケーションサーバ内でのリクエストの処理状況を調査します。
－※
7.7.3

セッションのライフサイクルを調査します。
－※
7.7.4

タイムアウトしたトランザクションを特定します。
－※
7.7.5

タイムアウトしたリクエストを特定します。
－※
7.7.6

ルートアプリケーション情報を利用してログを調査します。
－※
7.7.7

データベースとの接続中にトラブルが発生したコネクションを特定します。
－※
7.7.8

（凡例）－：該当しない

注※

cprfedコマンドを使用して出力された性能解析トレースファイルを使用します。

cprfflushの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfflush（バッファ内容の強制ファイル出力）」を参照してください。cprfedの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfed（性能解析トレース情報の編集出力）」を参照してください。

3.8.5　トラブルシューティング

ここでは，サーブレットエンジンモードでシステムを運用している場合に発生したトラブルに対処する方法について説明します。

＜この項の構成＞

(1)　対処の手順（サーブレットエンジンモードの場合）

(2)　取得が必要な資料の種類

(3)　資料の取得

(1)　対処の手順（サーブレットエンジンモードの場合）

ここでは，アプリケーションサーバのシステムの運用中に，トラブルが発生した場合の対処の手順について説明します。

なお，トラブル発生時に取得する情報のうち，次に示す情報を取得するためには，運用開始前の準備が必要です。

JavaVMログ
このファイルには，JavaVMのGCのログも出力されます。

ユーザダンプ（Windowsの場合）

coreダンプ（UNIXの場合）

OSの統計情報（Windowsの場合）

これらの情報については，必要に応じてシステム構築時に取得準備をしてください。詳細については，「3.7.5　トラブルシューティングの資料取得の設定」を参照してください。

システムの運用中にトラブルが発生した場合，次の図に示す手順で対処します。

図3-7　トラブル発生時の対処の流れ

資料取得
トラブルシューティングに必要な資料をすべて取得します。
取得が必要な資料については，「(2)　取得が必要な資料の種類」を参照してください。なお，メモリダンプは，Webコンテナサーバを再起動する場合にだけ必要な資料です。
また，資料の取得方法については，「(3)　資料の取得」を参照してください。

トラブル原因の判別（一次判別）
トラブルの原因を判別します。判別には，取得した資料を使用します。資料の調査方法については，「3.8.6　資料の調査」を参照してください。

トラブルへの対処と回復
トラブルに対処して，回復します。
なお，トラブルの種類ごとの対処方法については，「3.8.7　トラブルへの対処と回復」を参照してください。

トラブル原因の解析（二次解析）
必要に応じてトラブル原因をさらに分析します。なお，この解析作業は保守員が実施します。

(2)　取得が必要な資料の種類

ここでは，トラブル発生時に取得が必要な資料の種類を示します。

トラブル発生時に取得が必要な資料の種類については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「2.4　取得が必要な資料の種類」を参照してください。

ただし，サーブレットエンジンモードの場合，snapshotログの取得方法と，デフォルトの設定でsnapshotログとして取得できる情報の種類が異なります。

また，資料を個別で取得するとき，次の資料の取得内容または取得方法が，運用管理ポータルを使用して構築したシステムの場合と異なります。

アプリケーションサーバのログ

性能解析トレース

(3)　資料の取得

ここでは，トラブル発生時の資料の取得方法について説明します。

トラブルシュートに必要な資料は，次のどちらかの方法で取得できます。

snapshotlogコマンドを利用して一括取得する

それぞれの情報を個別に収集する

snapshotログはsnapshotlogコマンドを実行して収集します。snapshotlogコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「snapshotlog（snapshotログの収集）」を参照してください。

それぞれの情報を個別に収集する場合，次の資料を取得します。

アプリケーションサーバのログ

Component Containerのログ

Performance Tracerのログ

DABroker Libraryのログ

Webアプリケーションのログ

性能解析トレース

JavaVMのスレッドダンプ

JavaVMのGCログ

メモリダンプ

アプリケーションサーバの定義情報

Webコンテナサーバの作業ディレクトリの内容

Webサーバログ

そのほかの情報

それぞれの情報の取得方法については「3.8.9　資料の取得方法」を参照してください。

3.8.6　資料の調査

ここでは，トラブルシューティングで，取得した資料を調査して，トラブルの原因を判別する方法について説明します。

トラブルシューティングに必要な資料の調査方法は，J2EEサーバモードの場合と同様です。

資料の調査方法については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「5.　トラブルの分析」を参照してください。

3.8.7　トラブルへの対処と回復

ここでは，次のようなトラブルが発生した場合に実施する，トラブルの内容に応じた対処方法および回復方法について説明します。

構成ソフトウェアのプロセスが異常終了した場合

データベースと接続中にトラブルが発生した場合

JavaVMが異常終了した場合

＜この項の構成＞

(1)　構成ソフトウェアのプロセスが異常終了した場合（サーブレットエンジンモードの場合）

(2)　データベースと接続中にトラブルが発生した場合（サーブレットエンジンモードの場合）

(3)　JavaVMが異常終了した場合（サーブレットエンジンモードの場合）

(1)　構成ソフトウェアのプロセスが異常終了した場合（サーブレットエンジンモードの場合）

システムの運用中に構成ソフトウェアが異常終了して再起動を実行する場合，異常終了した構成ソフトウェアの起動順序に依存関係があるときは，前提となる構成ソフトウェアが起動していることを確認してから再起動する必要があります。前提となる構成ソフトウェアは，システムの運用形態によって異なります。以降で，構成ソフトウェアの起動順序の依存関係，および構成ソフトウェアの再起動方法について説明します。

(a)　構成ソフトウェアの起動順序の依存関係

アプリケーションサーバで構築したシステムを構成する構成ソフトウェアの起動順序の依存関係について説明します。

サーブレットエンジンモードの場合のプロセスの依存関係を次に示します。

表3-39　サーブレットエンジンモードの場合のプロセスの依存関係

プロセスの種類 | 前提プロセス
PRFデーモン | －
Webコンテナサーバ | PRFデーモン
Webサーバ | －

（凡例）－：前提プロセスがない

(b)　プロセスの再起動方法

システムでプロセスが異常終了した場合のプロセスの再起動方法について説明します。

サーブレットエンジンモードの場合のプロセスの再起動（回復）の手順は次のとおりです。

表3-40　サーブレットエンジンモードの場合の再起動の手順

異常プロセス | 開始コマンド | 再起動（回復）手順
データベースサーバ | － | DBサーバを再起動してください。
PRFデーモン | cprfstart | パフォーマンストレーサを再起動してください。
Webコンテナサーバ | cjstartweb | Webコンテナサーバを再起動してください。
Webサーバ | － | Webサーバを再起動してください。

（凡例）

－：使用する製品によって開始コマンドが異なる，または該当する開始コマンドがない

(2)　データベースと接続中にトラブルが発生した場合（サーブレットエンジンモードの場合）

データベースとの接続中に，アプリケーションサーバの構成ソフトウェアであるDABroker Libraryでトラブルが発生した場合，DABroker Libraryによってデータベースとの接続は切り離されます。また，DABroker Libraryを強制終了した場合も同様です。

これらのトラブルへの対処方法は，J2EEサーバモードの場合と同様です。対処方法については，「4.6.7　データベースと接続中にトラブルが発生した場合」を参照してください。

(3)　JavaVMが異常終了した場合（サーブレットエンジンモードの場合）

JavaVMでは，次のようなトラブルが発生する場合があります。

Cヒープ不足

内部論理エラー

OutOfMemoryError

これらのトラブルへの対処方法は，J2EEサーバモードの場合と同様です。対処方法については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「2.5.7　JavaVMが異常終了した場合」を参照してください。

3.8.8　トラブルシューティングに関連する留意事項

トラブルシューティングに関連する留意事項は，J2EEサーバモードの場合と同様です。留意事項については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「2.6　トラブルシューティングに関連する留意事項」を参照してください。

3.8.9　資料の取得方法

＜この項の構成＞

(1)　Component Containerのログ

(2)　性能解析トレースの取得（サーブレットエンジンモードの場合）

(3)　JavaVMのスレッドダンプの取得（サーブレットエンジンモードの場合）

(4)　JavaVMのGCログの取得（サーブレットエンジンモードの場合）

(5)　メモリダンプの取得（Webコンテナサーバを再起動する場合）

(6)　アプリケーションサーバの定義情報の取得（サーブレットエンジンモードの場合）

(7)　Webコンテナサーバの作業ディレクトリの内容取得（サーブレットエンジンモードの場合）

(8)　Webサーバログの取得

(9)　そのほかの情報の取得（サーブレットエンジンモードの場合）

(1)　Component Containerのログ

Component Containerのログとして取得する資料の出力先を次に示します。それぞれの資料の詳細については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「5.2　アプリケーションサーバのログ」を参照してください。

表3-41　Webコンテナサーバおよびリダイレクタのログの出力先（デフォルト）

分類
内容
ログ出力先およびログファイル名※1
デフォルトのサイズ×面数
チャネル名

メッセージログ
稼働ログ

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjweb_message[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjweb_message[n].log

1MB×2
WebMessageLogFile

リダイレクタのメッセージログ
ディレクトリ※2

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs

UNIXの場合
/opt/Cosminexus/CC/web/redirector/logs

4MB×5
－

ファイル名

Windowsの場合
isapi_redirect[n].log（Microsoft IIS）
hws_redirect[n].log（HTTP Server）

UNIXの場合
hws_redirect[n].log（HTTP Server）

ユーザログ
Webサーブレットログ※3

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥web_servlet[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/web_servlet[n].log

4MB×4
WebServletLogFile

ユーザ出力ログ※4

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥user_out[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/user_out[n].log

1MB×2
UserOutLogFile

ユーザエラーログ※4

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥user_err[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/user_err[n].log

1MB×2
UserErrLogFile

JavaVMの保守情報およびGCのログ

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥javalog[nn].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/javalog[nn].log

256KB×4
－

例外ログ
障害発生時の例外情報

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjweb_exception[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjweb_exception[n].log

12MB×4
WebExceptionLogFile

保守用ログ
保守情報

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjweb_maintenance[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjweb_maintenance[n].log

1MB×2
WebMaintenanceLogFile

Webコンテナの保守情報

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjwebcontainer[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjwebcontainer[n].log

1MB×2
WebContainerLogFile

起動プロセス標準出力情報※5

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjstdout.log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjstdout.log

－
－

起動プロセス標準エラー情報※5

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjstderr.log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjstderr.log

－
－

終了プロセス情報

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjweb_shutdown[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjweb_shutdown[n].log

1MB×2
WebShutdownLogFile

Webコンテナ保守用トレースログ

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥cjweb_access[n].log

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/cjweb_access[n].log

2MB×16
WebAccessLogFile

リダイレクタの保守用トレースログ
ディレクトリ※2

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs

UNIXの場合
/opt/Cosminexus/CC/web/redirector/logs

16MB×2
－

ファイル名※2

Windowsの場合
hws_rd_trace[n].log（HTTP Server）
isapi_rd_trace[n].log（Microsoft IIS）

UNIXの場合
hws_rd_trace[n].log

（凡例）－：該当しない

注

チャネル名は，ログの出力先を識別する名称です。ログの属性（サイズ，面数）を変更する場合のキー値として使用します。

注※1

［n］：ログファイル名の［n］部分には，面の番号（1から面数（最大16）まで）が付きます。また，［nn］の部分には01～99の通し番号が付きます。

注※2

ディレクトリ，ファイル名は，isapi_redirect.conf（Microsoft IIS用リダイレクタ動作定義ファイル），またはmod_jk.conf（HTTP Server用リダイレクタ動作定義ファイル）で設定できます。リダイレクタのログ取得の設定については，「3.7.5　トラブルシューティングの資料取得の設定」を参照してください。isapi_redirect.conf（Microsoft IIS用リダイレクタ動作定義ファイル）については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.2　isapi_redirect.conf（Microsoft IIS用リダイレクタ動作定義ファイル）」を参照してください。mod_jk.conf（HTTP Server用リダイレクタ動作定義ファイル）については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「9.3　mod_jk.conf（HTTP Server用リダイレクタ動作定義ファイル）」を参照してください。

注※3

サーブレット，JSPで発生した例外のスタックトレースについても出力されます。

注※4

標準出力にも出力されます。また，サーブレット，JSPでのSystem.out，およびSystem.errへの出力はユーザ出力ログ，およびユーザエラーログに出力されます。

注※5

起動プロセス情報だけを取得するログです。主にWebコンテナサーバの起動または終了時に出力されるため，オンライン中に出力されることはほとんどありません。ファイルのサイズが上限に達したときは，<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs下（Windowsの場合），または/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs下（UNIXの場合）のcjstdout_save.logまたはcjstderr_save.logに退避されます。すでにcjstdout_save.logまたはcjstderr_save.logがあったときは，上書きされます。

注意

WebサーバとしてMicrosoft IISを使用している場合，リダイレクタのログファイルは，Webサーバへの初回アクセス時に，isapi_redirect.confで指定したファイルサイズで，指定した面数分，すべて作成されます。このとき，トレースファイルは空白(0x20)で初期化されます。デフォルトのファイルサイズと面数で運用している場合，ログの出力先に指定したディレクトリに，52メガバイトのディスク容量が必要になります。

なお，Webコンテナサーバおよびリダイレクタのログの出力先を変更している場合は，次の表に示す，ログの出力先を設定するユーザ定義ファイルを参照して出力先を確認してください。

表3-42　ログの出力先を設定するユーザ定義ファイル（サーブレットエンジンモードの場合）

分類
ユーザ定義ファイルの格納場所

Webコンテナサーバ
格納場所は，usrconf.cfgファイルのweb.server.log.directoryキーで指定します。キーのデフォルトは，「<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs」（Windowsの場合），または「/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs」（UNIXの場合）です。

リダイレクタ（Windowsの場合）

HTTP Serverの場合

［メッセージログ］

<製品のインストールディレクトリ>¥CC¥web¥redirector¥mod_jk.confのJkLogFileDirキー

キーのデフォルトは，「<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs」です。

［保守用トレースログ］

<製品のインストールディレクトリ>¥CC¥web¥redirector¥mod_jk.confのJkTraceLogFileDirキー

キーのデフォルトは，「<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs」です。

Microsoft IISの場合

［メッセージログ］

<製品のインストールディレクトリ>¥CC¥web¥redirector¥isapi_redirect.confのlog_file_dirキー

キーのデフォルトは，「<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs」です。

［保守用トレースログ］

<製品のインストールディレクトリ>¥CC¥web¥redirector¥isapi_redirect.confのtrace_log_file_dirキー

キーのデフォルトは，「<製品のインストールディレクトリ>¥CC¥web¥redirector¥logs」です。

リダイレクタ（UNIXの場合）

メッセージログ

/opt/Cosminexus/CC/web/redirector/mod_jk.confのJkLogFileDirキー

キーのデフォルトは，「/opt/Cosminexus/CC/web/redirector/logs」です。

保守用トレースログ

/opt/Cosminexus/CC/web/redirector/mod_jk.confのJkTraceLogFileDirキー

キーのデフォルトは，「/opt/Cosminexus/CC/web/redirector/logs」です。

ログの出力先の変更方法など，トラブルシューティングの資料取得の設定については，「3.7.5　トラブルシューティングの資料取得の設定」を参照してください。

(a)　Performance Tracerのログ

Performance Tracerのログの出力先を次に示します。

それぞれの資料の詳細については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「5.2　アプリケーションサーバのログ」を参照してください。

表3-43　Performance Tracerのログの出力先

内容
出力先ディレクトリ

PRFデーモンおよびPRFコマンドのログ

Windowsの場合
<環境変数PRFSPOOLの設定ディレクトリ>¥log¥<PRF識別子>¥ctmlog[n]

UNIXの場合
$PRFSPOOL/log/<PRF識別子>/ctmlog[n]

モジュールトレース

Windowsの場合
<環境変数PRFSPOOLの設定ディレクトリ>¥utt¥umt

UNIXの場合
$PRFSPOOL/utt/umt

構造化例外発生ログ

Windowsの場合
<環境変数PRFSPOOLの設定ディレクトリ>¥oslttrc

UNIXの場合
$PRFSPOOL/oslttrc

注

[n]には「01」または「02」が表示されます。

(b)　DABroker Libraryのログ

それぞれの資料の詳細については，「4.6.3　DABroker Libraryのスプール情報の内容」を参照してください。

DABroker Libraryでは，トラブルシューティングに使用するログとして，スプール情報を取得します。

次のディレクトリ下のすべてのファイルをコピーして保存してください。

Windowsの場合
<DABroker Libraryの運用ディレクトリ>¥spool

UNIXの場合
<DABroker Libraryの運用ディレクトリ>/spool

参考

DABroker Libraryでは，スプール情報のほかに次のJDBCドライバのトレースも取得できます。

JDBCインタフェースメソッドトレース

DABroker Libraryとのイベントトレース

ただし，JDBCドライバで次のトレースを取得するためには，アプリケーション開発時にあらかじめ指定されている必要があります。トレースを取得するための情報の設定については，「4.7　DABroker Library を使用したデータベース接続の実装」を参照してください。

(c)　Webアプリケーションのログ

Webアプリケーションのログは，トレース共通ライブラリ形式で出力するように設定している場合に取得できます。

Webアプリケーションのログの出力先については，usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）のejbserver.application.userlog.CJLogHandler.<ハンドラ名>.pathキーの値を参照してください。なお，<ハンドラ名>には，キーの値を区別するためのハンドラ名が指定されています。

usrconf.propertiesファイルの格納場所を次に示します。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.properties

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.properties

なお，Webアプリケーションのユーザログ出力の設定については，「3.7.5(10)　Webアプリケーションのユーザログ出力の設定」を参照してください。

(2)　性能解析トレースの取得（サーブレットエンジンモードの場合）

性能解析トレースの収集方法については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「7.　性能解析トレースを使用した性能解析」を参照してください。セッショントレースも同様に取得できます。

性能解析トレースの格納場所は次のとおりです。

Windowsの場合
<環境変数PRFSPOOLの設定ディレクトリ>¥utt¥prf¥<PRF識別子>

UNIXの場合
$PRFSPOOL/utt/prf/<PRF識別子>

(3)　JavaVMのスレッドダンプの取得（サーブレットエンジンモードの場合）

ここでは，JavaVMのスレッドダンプを取得する方法について説明します。

なお，Webコンテナサーバの起動オプションとして-XX:+HitachiThreadDumpが設定されている場合，拡張スレッドダンプを取得できます。-XX:+HitachiThreadDumpToStdoutが設定されている場合，スレッドダンプは標準出力にも出力されます。

また，-XX:+HitachiOutOfMemoryAbortが設定されている場合に，-XX:+HitachiOutOfMemoryAbortThreadDumpが設定されていると，OutOfMemoryErrorによって強制終了した時に，スレッドダンプが出力されます。ただし，次の場合は除きます。

J2SEクラスライブラリ内でCヒープ不足が発生した場合

JavaVMの処理中にCヒープ不足が発生した場合

cjstartwebプロセスが存在する場合のスレッドダンプの取得方法を次に示します。

Windowsの場合
cjstartwebプロセスが存在する場合，次を実行します（3秒おきに10回程度）。

<製品のインストールディレクトリ>¥CC¥web¥bin¥cjdumpweb <Webコンテナサーバ名>

UNIXの場合
cjstartwebプロセスが存在する場合，cjdumpwebコマンドまたはkillコマンドを使用してWebコンテナサーバのスレッドダンプを取得します（3秒おきに10回程度）。

cjdumpwebコマンドを使用する場合

/opt/Cosminexus/CC/web/bin/cjdumpweb <Webコンテナサーバ名>

killコマンドを使用する場合

ps -ef | grep cjstartweb
kill -3 <WebコンテナサーバのプロセスID>

スレッドダンプは，「/opt/Cosminexus/CC/web/containers/<サーバ名称>/javacore*.txt」，およびサーバ標準出力ログ（cjstdout.log）に出力されます。

また，javacore<プロセス番号>.<コマンド実行日時>.txtファイルの出力先は，環境変数JAVACOREDIRで変更できます。ただし，指定したディレクトリへの書き込みに失敗した場合は，カレントディレクトリに出力されます。このディレクトリにも出力できなかった場合は，標準エラー出力にだけ出力されます。

参考

スレッドダンプが出力されると，標準出力に，次のメッセージが出力されます。そのあと，javaプログラムの実行が継続されます。このメッセージは，-XX:+HitachiThreadDumpToStdoutの設定とは関係なく出力されます。

Writing Java core to <ファイル名（フルパス）>...OK

(4)　JavaVMのGCログの取得（サーブレットエンジンモードの場合）

JavaVMのGCログは，JavaVMまたはWebコンテナサーバ起動前にログ出力先が設定されている場合にだけ取得できます。

ユーザ定義ファイルを使用して設定している場合は，usrconf.cfgファイルのweb.server.log.directoryのキーを確認してください。

また，実行中のJavaプロセスでGCを発生させたい場合は，javagcコマンドを実行してください。javagcコマンドは，トラブル発生時の要因調査のほか，1トランザクション当たりのメモリ使用量の測定，メモリリークの調査，アプリケーションのデバッグなどの目的でも使用できます。

実行中のJavaプロセスを指定してGCを発生させる場合，javagcコマンドは，次の形式で実行します。なお，これ以外に指定できるオプションについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「javagc（GCの強制発生）」を参照してください。

javagc -p プロセスID

実行結果として，次のログが出力されます。なお，これは，オプションとして，-XX:+HitachiVerboseGCPrintCauseが指定されている場合の例です。

Windowsの場合

[VGC]<Wed Mar 17 00:42:30 2004>(Skip Full:0,Copy:0)[ Full GC 149K->149K(1984K),0.0786038​
secs] [ DefNew::Eden:264K->0K(512K)] [ DefNew::Survivor:0K->63K(64K)] [ Tenured:
85K->149K(1408K)] [Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)] [ cause:System.gc]

UNIXの場合

[VGC]<Wed Mar 17 00:42:30 2004>(Skip Full:0,Copy:0)[ Full GC 149K->149K(1984K),0.0786038​
secs] [ DefNew::Eden:264K->0K(512K)] [ DefNew::Survivor:0K->63K(64K)] [ Tenured:
85K->149K(1408K)] [Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)] [ cause:JavaGC Command]

javagcコマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「javagc（GCの強制発生）」を参照してください。

なお，-XX:+HitachiVerboseGCPrintCauseオプションは，usrconf.cfgに指定します。オプションの設定方法については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「-XX:[+|-]HitachiVerboseGCPrintCause（GC要因内容出力オプション）」を参照してください。

(5)　メモリダンプの取得（Webコンテナサーバを再起動する場合）

メモリダンプの取得の取得方法についてOSごとに説明します。

(a)　Windowsの場合

Webコンテナサーバを再起動するときに，メモリダンプを取得します。メモリダンプは，システムでトラブルが発生したときに，保守員が障害解析するために使用します。

Webコンテナサーバが稼働している場合（cjstartwebプロセスが存在する場合），タスクマネージャからcjstartwebのプロセスIDを取得します。userdump.exe <プロセスID> を実行し，メモリダンプ（user.dump）を採取します。

(b)　UNIXの場合

Webコンテナサーバを再起動するときに，メモリダンプとして，Webコンテナサーバのcoreダンプを取得します。メモリダンプは，システムでトラブルが発生したときに，保守員が障害解析するために使用します。

cjstartwebプロセスがダウンした場合，「/opt/Cosminexus/CC/web/containers/<サーバ名称>/core*」に出力されたcoreダンプを取得します。

coreダンプのファイル名は，cjstartwebプロセスの再起動時に「core.<出力日時※>」（AIX，HP-UXの場合）または「core.<プロセスID>.<出力日時※>」（Linuxの場合）にリネームされます。cjstartwebプロセスの再起動時にcoreダンプが上書き保存されないため，障害発生時のcoreダンプを保存できます。

注※

出力日時は「YYMMDDhhmmss」の形式で出力されます。

YY：西暦（下2けた）　MM：月（2けた）　DD：日（2けた）

hh：時（2けた[24時間表記]）　mm：分（2けた）　ss：秒（2けた）

なお，保存するcoreダンプは上限値を設定できます。cjstartwebプロセスの再起動時に「/opt/Cosminexus/CC/web/containers/<サーバ名称>/」に出力されるcoreダンプファイルの合計が上限値を超えた場合，出力日時が古い順に削除されます。上限値は，usrconf.cfgのweb.server.corefilenumキーに指定します。なお，ファイルの削除はcjstartwebプロセスの再起動時に実行されます。

coreダンプを取得したあとに，coreダンプからスタックトレース情報だけを取得する場合は，javatraceコマンドを実行してください。スタックトレース情報は，JavaVMの異常終了の原因を究明するために必要な情報です。スタックトレース情報の取得方法は，J2EEサーバモードの場合と同様です。マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「4.18　JavaVMのスタックトレース情報」を参照してください。

coreダンプは次のような場合にも取得できます。それぞれの場合の取得方法について説明します。

cjstartwebプロセスが稼働している状態でcoreダンプを取得する場合

実行中のJavaプロセスでcoreダンプとスレッドダンプを同時に取得する場合

cjstartwebプロセスが稼働している状態でcoreダンプを取得する場合

cjstartwebプロセス（Webコンテナサーバ）が稼働している状態でcoreダンプを取得する場合，cjstartwebプロセスのプロセスIDを確認して，killコマンドを実行します。killコマンドは次の形式で実行してください。なお，killコマンドを実行するとプロセスが終了するため，再起動する前にkillコマンドを実行することを推奨します。

kill -6 <cjstartwebプロセスID>

実行中のJavaプロセスでcoreダンプとスレッドダンプを同時に取得する場合

実行中のJavaプロセスでcoreダンプとスレッドダンプを同時に取得する方法は，J2EEサーバモードの場合と同様です。マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「4.9　メモリダンプ」を参照してください。

(6)　アプリケーションサーバの定義情報の取得（サーブレットエンジンモードの場合）

アプリケーションサーバの定義を取得します。この情報を使用して，発生した障害によって定義の設定を確認します。

Webコンテナサーバに関する定義情報

次のディレクトリ下に格納されているファイル一式を取得します。

Windowsの場合

<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf下すべて

UNIXの場合

/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf下すべて

DABroker Libraryに関する定義情報

次のファイルを取得します。

Windowsの場合

<DABroker Library運用ディレクトリ>¥conf¥dasys.conf（DABroker Library動作環境定義ファイル）

<DABroker Library運用ディレクトリ>¥conf¥dabenv（接続先データベース定義ファイル）

UNIXの場合

<DABroker Library運用ディレクトリ>/conf/dasys.conf（DABroker Library動作環境定義ファイル）

<DABroker Library運用ディレクトリ>/conf/dabenv（接続先データベース定義ファイル）

なお，トラブルシューティング用に保存するファイルからは，パスワードなどの公開できない情報を削除することをお勧めします。

(7)　Webコンテナサーバの作業ディレクトリの内容取得（サーブレットエンジンモードの場合）

システムでトラブルが発生した場合に，保守員による原因究明のため作業ディレクトリを調査に使用する場合があります。

環境変数「PRFSPOOL」の設定ディレクトリ下すべて※

<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥webapps下すべて（Windowsの場合）

/opt/Cosminexus/CC/web/containers/<サーバ名称>/webapps下すべて（UNIXの場合）

注※

環境変数「PRFSPOOL」未設定の場合は，「<製品のインストールディレクトリ>¥PRF¥spool下すべて」（Windowsの場合），または「/opt/Cosminexus/PRF/spool下すべて」（UNIXの場合）になります。

設定を確認の上，トラブルが発生した場合に保存しておいてください。

(8)　Webサーバログの取得

システムで使用しているWebサーバ（HTTP ServerまたはMicrosoft IIS）のログを取得します。

HTTP Serverを使用している場合，ログの格納場所は「<製品のインストールディレクトリ>¥httpsd¥logs」（Windowsの場合），「/opt/hitachi/httpsd/logs」（UNIXの場合）です。

Microsoft IISを使用している場合，ログの格納場所は「C:¥inetpub¥logs」です（C:の部分にはシステムドライブを指定します）。

(9)　そのほかの情報の取得（サーブレットエンジンモードの場合）

そのほかの情報を取得するための方法は，すべてJ2EEサーバモードの場合と同様です。参照先を次に示します。

表3-44　取得する情報の種類と参照先

取得する情報 | 参照先マニュアル | 参照先
JavaVMログ | アプリケーションサーバ 機能解説 保守／移行編 | 4.10
JavaVM出力メッセージログ（標準出力またはエラーリポートファイル） | 4.11
OSの状態情報とOSのログ | 4.12
OSの統計情報 | 4.13

3.9　サーブレットエンジンモードの場合の移行

サーブレットエンジンモードの場合の，旧バージョンからアプリケーションサーバ 09-70への移行方法について説明します。移行の対象となるバージョンを次に示します。

アプリケーションサーバ 06-00

アプリケーションサーバ 06-02（Windowsだけのバージョン）

アプリケーションサーバ 06-50

アプリケーションサーバ 06-51

アプリケーションサーバ 06-70

アプリケーションサーバ 06-71

アプリケーションサーバ 07-00

アプリケーションサーバ 07-10

アプリケーションサーバ 07-50

アプリケーションサーバ 07-60

アプリケーションサーバ 08-00

アプリケーションサーバ 08-50

アプリケーションサーバ 08-53

アプリケーションサーバ 08-70

アプリケーションサーバ 09-00

アプリケーションサーバ 09-50

アプリケーションサーバ 09-51

アプリケーションサーバ 09-60

なお，このマニュアルでは，次に示す構成ソフトウェアの移行を中心に説明します。

Component Container

Performance Tracer

旧バージョンからの移行を行う場合，使用しているアプリケーションサーバの全構成ソフトウェアを同時に移行する必要があります。上記で示していないほかの構成ソフトウェア（以降，他構成ソフトウェアと呼びます）の移行については，各構成ソフトウェアのドキュメントを参照してください。

移行手順の中で，J2EEサーバモードの場合と同じ内容については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「10.　旧バージョンのアプリケーションサーバからの移行（J2EEサーバモードの場合）」で詳細を確認してください。なお，サーブレットエンジンモードの場合は，「J2EEサーバ」を「Webコンテナサーバ」と読み替えてください。

＜この節の構成＞

3.9.1　アプリケーションサーバの移行の概要

3.9.2　アプリケーションサーバの移行の手順

3.9.3　旧バージョンからの仕様変更の確認

3.9.4　移行前の確認

3.9.5　定義などのバックアップ

3.9.6　手動による定義などの修正

3.9.7　Webコンテナサーバの移行コマンドで自動的に追加される定義

3.9.1　アプリケーションサーバの移行の概要

アプリケーションサーバの移行の概要について説明します。

＜この項の構成＞

(1)　移行のためのアップグレードインストール

(2)　移行時に引き継がれる情報

(1)　移行のためのアップグレードインストール

旧バージョンからアプリケーションサーバ 09-70へ移行するためには，アップグレードインストールを行います。アップグレードインストールとは，インストール先のマシンに旧バージョンのアプリケーションサーバがインストール済みの場合のインストールです。

なお，アップグレードインストールの場合は，<製品のインストールディレクトリ>を旧バージョンのインストールディレクトリから変更できません。旧バージョンがインストールされているディレクトリに上書きインストールされます。

(2)　移行時に引き継がれる情報

アプリケーションサーバを旧バージョンから09-70に移行する場合，旧バージョンで使用されていた，アプリケーションサーバのインストールディレクトリ以下に配置される定義情報，DD情報，構成情報などのユーザ資産は，移行コマンドなどで必要に応じて自動変換され，09-70で引き続き使用されます（一部，手動での定義修正が必要な場合もあります）。

なお，移行コマンドを実行すると，移行元バージョンから移行先バージョン間のすべてのバージョンごとに移行処理が実施されます。例えば，08-00から09-70へ移行する場合，08-00から08-50への移行，08-50から08-53への移行，08-53から08-70への移行，08-70から09-00への移行，09-00から09-50への移行，09-50から09-70への移行という処理が実施されます。

Component Containerで引き継がれる定義情報，DD情報，構成情報などを次の表に示します。他構成ソフトウェアについては，それぞれのドキュメントを参照してください。

表3-45　Component Containerで移行時に引き継がれる情報（サーブレットエンジンモードの場合）

機能
引き継がれる情報
ファイル名称，または配置場所

Webコンテナサーバ
オプション定義ファイル
usrconf.cfg

ユーザプロパティファイル
usrconf.properties

Webアプリケーションプロパティファイル
hitachi_web.properties

ユーザ認証情報定義ファイル
web-users.xml

Security Manager定義ファイル
web.policy

作業ディレクトリ

定義情報

アプリケーション

DD情報

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers以下

UNIXの場合
/opt/Cosminexus/CC/web/containers以下

Webサーバ連携
HTTP Server用リダイレクタ動作定義ファイル
mod_jk.conf

Microsoft IIS用リダイレクタ動作定義ファイル（Windowsだけのファイル）
isapi_redirect.conf

Microsoft IIS用マッピング定義ファイル（Windowsだけのファイル）
uriworkermap.properties

ワーカ定義ファイル
workers.properties

統合ユーザ管理
JAASのコンフィグレーションファイル
jaas.conf

統合ユーザ管理のコンフィグレーションファイル
ua.conf

カスタムログインモジュール格納用ディレクトリ

Windowsの場合
<製品のインストールディレクトリ>¥manager¥modules

UNIXの場合
/opt/Cosminexus/manager/modules

3.9.2　アプリケーションサーバの移行の手順

次の手順に従って，旧バージョンからアプリケーションサーバ 09-70へ移行してください。

旧バージョンからの仕様変更の確認

移行前の確認

定義などのバックアップ

他構成ソフトウェアの移行準備

全構成ソフトウェアのアップグレードインストール

Webコンテナサーバの移行コマンドの実行

手動による定義などの修正

他構成ソフトウェアの移行実施

移行後の確認

それぞれの手順について説明します。

＜この項の構成＞

(1)　旧バージョンからの仕様変更の確認

(2)　移行前の確認

(3)　定義などのバックアップ

(4)　他構成ソフトウェアの移行準備

(5)　全構成ソフトウェアのアップグレードインストール

(6)　Webコンテナサーバの移行コマンドの実行

(7)　手動による定義などの修正

(8)　他構成ソフトウェアの移行実施

(9)　移行後の確認

(1)　旧バージョンからの仕様変更の確認

旧バージョンからの仕様変更を確認します。機能の変更や追加に伴い，旧バージョンで使用している機能，使用条件，使用方法によっては，次の作業が必要となります。

操作手順の変更

運用手順の変更

アプリケーション，およびDDの変更

なお，互換性を保つためのオプションが提供されている場合もありますが，推奨のオプションではありません。詳細については，「3.9.3　旧バージョンからの仕様変更の確認」を参照してください。

(2)　移行前の確認

移行前にアプリケーションサーバの動作環境，動作状態などを確認します。詳細については，「3.9.4　移行前の確認」を参照してください。

(3)　定義などのバックアップ

移行前に定義ファイルなどをバックアップします。詳細については，「3.9.5　定義などのバックアップ」を参照してください。

(4)　他構成ソフトウェアの移行準備

次に示す構成ソフトウェア以外の，他構成ソフトウェアの移行を準備します。

Component Container

Performance Tracer

移行の準備の詳細はそれぞれの他構成ソフトウェアのドキュメントを参照してください。なお，ここで準備した情報を基に，「(8)　他構成ソフトウェアの移行実施」で他構成ソフトウェアを移行してください。

(5)　全構成ソフトウェアのアップグレードインストール

使用しているアプリケーションサーバの全構成ソフトウェアをアップグレードインストールします。

(6)　Webコンテナサーバの移行コマンドの実行

定義情報，DD情報などを継続して利用できるようにするため，Webコンテナサーバの移行コマンドを実行します。実行する移行コマンドはcjenvupdateコマンドで，J2EEサーバを移行する場合と同じです。

移行コマンドの実行については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「10.8　J2EEサーバまたはバッチサーバの移行コマンドの実行」を参照してください。このとき，J2EEサーバをWebコンテナサーバと読み替えてください。

(7)　手動による定義などの修正

手動で定義などを修正します。機能の変更，追加に伴い，互換性を保つためのオプションが提供されています。旧バージョンで使用している機能，使用方法，使用条件によっては，次の作業が必要となります。

ユーザプロパティファイルなどの定義ファイルの変更

Javaのユーザクラスパスの変更

環境変数の変更

詳細については，「3.9.6　手動による定義などの修正」を参照してください。

(8)　他構成ソフトウェアの移行実施

他構成ソフトウェアを移行します。移行の詳細はそれぞれの他構成ソフトウェアのドキュメントを参照してください。なお，「(4)　他構成ソフトウェアの移行準備」で準備した情報を基に移行を実施してください。

(9)　移行後の確認

移行後にアプリケーションサーバの動作確認を実施します。

3.9.3　旧バージョンからの仕様変更の確認

旧バージョンからの仕様変更について説明します。

アプリケーションサーバ Version 6からの仕様変更
アプリケーションサーバ Version 6からの仕様変更を次の表に示します。

表3-46　アプリケーションサーバ Version 6からの仕様変更（サーブレットエンジンモードの場合）

分類
仕様変更の項目
06-71/
06-70
06-51/
06-50
06-02/
06-00

全体
(1)　J2SEのバージョン
○
○
○

(2)　TPBrokerの運用支援機能の非サポート
○
○
○

Webコンテナサーバ
(3)　JavaVMのタイプ
－
－
○

(4)　JSPから生成されたサーブレット用コンパイラのバージョン
○
○
○

(5)　デフォルトのエラーページの内容
－
○
○

(6)　カスタムタグのスクリプト変数定義の変更
○
○
○

(7)　<jsp:useBean>タグのclass属性に対するエラーチェックの変更
○
○
○

(8)　タグの属性値のExpressionチェックの変更
○
○
○

(9)　タグの属性値に指定するExpressionに関する変更
○
○
○

(10)　taglibディレクティブのprefix属性に関する変更
○
○
○

(11)　JSPでの$の扱いの変更
○
○
○

(12)　WebコンテナがサポートするServlet仕様のバージョン
○
○
○

(13)　サーブレットのデフォルトマッピングのデフォルトでの無効化
○
○
○

(14)　javax.servlet.GenericServletクラスでスローされる例外の変更
○
○
○

(15)　javax.servlet.ServletRequestインタフェースのsetCharacterEncodingメソッド呼び出し時の動作変更
○
○
○

(16)　javax.servlet.GenericServletクラスのinit(ServletConfig)メソッドとdestroy()メソッドでのログ出力
○
○
○

(17)　-XX:SurvivorRatioのデフォルト値の変更
○
○
○

(18)　JSPから生成されたサーブレット用コンパイラのバージョン
○
○
○

(19)　POSTリクエストのフォームデータの最大サイズの制限
○
○
○

(20)　サーブレットのサービスメソッド実行中のHTTPセッションのタイムアウト
○
○
○

（凡例）　○：仕様変更あり　－：該当しない

アプリケーションサーバ Version 7からの仕様変更
アプリケーションサーバ Version 7からの仕様変更を次の表に示します。

表3-47　アプリケーションサーバ Version 7からの仕様変更（サーブレットエンジンモードの場合）

分類 | 仕様変更の項目 | 07-60 | 07-50 | 07-10 | 07-00
Webコンテナサーバ | (12)　WebコンテナがサポートするServlet仕様のバージョン | ○ | ○ | ○ | ○
(13)　サーブレットのデフォルトマッピングのデフォルトでの無効化 | ○ | ○ | ○ | ○
(14)　javax.servlet.GenericServletクラスでスローされる例外の変更 | ○ | ○ | ○ | ○
(15)　javax.servlet.ServletRequestインタフェースのsetCharacterEncodingメソッド呼び出し時の動作変更 | ○ | ○ | ○ | ○
(16)　javax.servlet.GenericServletクラスのinit(ServletConfig)メソッドとdestroy()メソッドでのログ出力 | ○ | ○ | ○ | ○
(17)　-XX:SurvivorRatioのデフォルト値の変更 | ○ | ○ | ○ | ○
(18)　JSPから生成されたサーブレット用コンパイラのバージョン | ○ | ○ | ○ | ○
(19)　POSTリクエストのフォームデータの最大サイズの制限 | ○ | ○ | ○ | ○

（凡例）　○：仕様変更あり

アプリケーションサーバ Version 8からの仕様変更
アプリケーションサーバ Version 8からの仕様変更を次の表に示します。

表3-48　アプリケーションサーバ Version 8からの仕様変更（サーブレットエンジンモードの場合）

分類 | 仕様変更の項目 | 08-70 | 08-53 | 08-50 | 08-00
Webコンテナサーバ | (18)　JSPから生成されたサーブレット用コンパイラのバージョン | － | － | － | ○
(19)　POSTリクエストのフォームデータの最大サイズの制限 | － | － | － | ○
(20)　サーブレットのサービスメソッド実行中のHTTPセッションのタイムアウト | ○ | ○ | ○ |

（凡例）　○：仕様変更あり　－：該当しない

アプリケーションサーバ Version 9からの仕様変更
アプリケーションサーバ Version 9からの仕様変更を次の表に示します。

表3-49　アプリケーションサーバ Version 9からの仕様変更（サーブレットエンジンモードの場合）

分類 | 仕様変更の項目 | 09-00
Webコンテナサーバ | (21)　サーバIDのデフォルト値の変更 | ○

（凡例）　○：仕様変更あり

次に仕様変更の項目の詳細について説明します。なお，表の「仕様変更の項目」の項番は，説明の項番と対応しています。

＜この項の構成＞

(1)　J2SEのバージョン

(2)　TPBrokerの運用支援機能の非サポート

(3)　JavaVMのタイプ

(4)　JSPから生成されたサーブレット用コンパイラのバージョン

(5)　デフォルトのエラーページの内容

(6)　カスタムタグのスクリプト変数定義の変更

(7)　<jsp:useBean>タグのclass属性に対するエラーチェックの変更

(8)　タグの属性値のExpressionチェックの変更

(9)　タグの属性値に指定するExpressionに関する変更

(10)　taglibディレクティブのprefix属性に関する変更

(11)　JSPでの$の扱いの変更

(12)　WebコンテナがサポートするServlet仕様のバージョン

(13)　サーブレットのデフォルトマッピングのデフォルトでの無効化

(14)　javax.servlet.GenericServletクラスでスローされる例外の変更

(15)　javax.servlet.ServletRequestインタフェースのsetCharacterEncodingメソッド呼び出し時の動作変更

(16)　javax.servlet.GenericServletクラスのinit(ServletConfig)メソッドとdestroy()メソッドでのログ出力

(17)　-XX:SurvivorRatioのデフォルト値の変更

(18)　JSPから生成されたサーブレット用コンパイラのバージョン

(19)　POSTリクエストのフォームデータの最大サイズの制限

(20)　サーブレットのサービスメソッド実行中のHTTPセッションのタイムアウト

(21)　サーバIDのデフォルト値の変更

(1)　J2SEのバージョン

変更内容は，J2EEサーバモードの場合と同じです。

(2)　TPBrokerの運用支援機能の非サポート

07-00以降では，07-00より前まで提供していたTPBrokerの運用支援機能は使用できません。システムの各プロセスを一括起動，停止，および監視する場合には，Management Serverを使用してください。

WebコンテナサーバをTPBrokerの運用支援機能で使用していた場合，次のどちらかで運用してください。

J2EEサーバモードで管理する。

Webコンテナサーバを論理ユーザサーバとして定義して運用する。

(3)　JavaVMのタイプ

変更内容は，J2EEサーバモードの場合と同じです。

(4)　JSPから生成されたサーブレット用コンパイラのバージョン

変更内容は，J2EEサーバモードの場合と同じです。

(5)　デフォルトのエラーページの内容

変更内容は，J2EEサーバモードの場合と同じです。

(6)　カスタムタグのスクリプト変数定義の変更

変更内容は，J2EEサーバモードの場合と同じです。

(7)　<jsp:useBean>タグのclass属性に対するエラーチェックの変更

変更内容は，J2EEサーバモードの場合と同じです。

(8)　タグの属性値のExpressionチェックの変更

変更内容は，J2EEサーバモードの場合と同じです。

(9)　タグの属性値に指定するExpressionに関する変更

変更内容は，J2EEサーバモードの場合と同じです。

(10)　taglibディレクティブのprefix属性に関する変更

変更内容は，J2EEサーバモードの場合と同じです。

(11)　JSPでの$の扱いの変更

変更内容は，J2EEサーバモードの場合と同じです。

(12)　WebコンテナがサポートするServlet仕様のバージョン

変更内容は，J2EEサーバモードの場合と同じです。

(13)　サーブレットのデフォルトマッピングのデフォルトでの無効化

変更内容は，J2EEサーバモードの場合と同じです。

(14)　javax.servlet.GenericServletクラスでスローされる例外の変更

変更内容は，J2EEサーバモードの場合と同じです。

(15)　javax.servlet.ServletRequestインタフェースのsetCharacterEncodingメソッド呼び出し時の動作変更

変更内容は，J2EEサーバモードの場合と同じです。

(16)　javax.servlet.GenericServletクラスのinit(ServletConfig)メソッドとdestroy()メソッドでのログ出力

変更内容は，J2EEサーバモードの場合と同じです。

(17)　-XX:SurvivorRatioのデフォルト値の変更

変更内容は，J2EEサーバモードの場合と同じです。

(18)　JSPから生成されたサーブレット用コンパイラのバージョン

製品のバージョンによって，インストールされるJDKが異なります。Webコンテナサーバでは，インストールされているjavacコンパイラのデフォルトバージョンのJava言語仕様に従ってJSPから生成されたサーブレットのソースファイルをコンパイルします。

コンパイルするJava言語仕様のバージョンを次の表に示します。

表3-50　コンパイルするJava言語仕様のバージョン

アプリケーションサーバのバージョン | JDKのバージョン | コンパイルJava言語仕様バージョン
Version 6 | JDK 1.4 | J2SE 1.3
Version 7 | JDK 5.0 | J2SE 5.0
Version 8 | JDK 6 | Java SE 6
JDK 5.0 | J2SE 5.0

注意

移行前と同様のJava言語仕様に従ってJSPから生成されたサーブレットのソースファイルをコンパイルする場合は，usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）のwebserver.jsp.compile.backcompatキーに「1.2」「1.3」「1.4」「1.5」または「5」を設定します。このプロパティは，インストールしているJDKのコンパイルでエラーが発生する場合だけ使用してください。

(19)　POSTリクエストのフォームデータの最大サイズの制限

POSTリクエストのフォームデータ（Content-Typeヘッダの値がapplication/x-www-form-urlencodedの場合のPOSTデータ）の最大サイズがデフォルトで2MBに制限されます。アップグレードインストールをした場合，すでにセットアップされているWebコンテナサーバには，POSTリクエストのフォームデータの最大サイズを無制限にする設定（webserver.connector.limit.max_post_form_data=-1）が自動的に実施されます。

(20)　サーブレットのサービスメソッド実行中のHTTPセッションのタイムアウト

アプリケーションサーバでは，Webアプリケーションのバージョンに関係なく，Webアプリケーションでのリクエスト処理を実行している間は，HTTPセッションはタイムアウトされません。

ただし，07-00より前のWebコンテナでは，Webアプリケーション単位の同時実行スレッド数制御機能による実行待ち中であってもHTTPセッションのタイムアウトが発生します。

(21)　サーバIDのデフォルト値の変更

変更内容は，J2EEサーバモードの場合と同じです。

3.9.4　移行前の確認

移行前に，アプリケーションサーバの動作環境，および動作状態を確認します。次に確認項目を示します。

旧バージョンのアプリケーションサーバが終了していることを確認してください。アプリケーションサーバの全構成ソフトウェアを終了させます。

Microsoft IISを使用している場合は，Microsoft IISを終了させます。

3.9.5　定義などのバックアップ

移行前に定義ファイルなどのバックアップを取ります。バックアップを取るディレクトリを次の表に示します。

表3-51　バックアップを取るディレクトリ（サーブレットエンジンモードの場合）

機能
バックアップを取るディレクトリ

統合ユーザ管理

Windowsの場合
<製品のインストールディレクトリ>¥manager

UNIXの場合
/opt/Cosminexus/manager

Webサーバ連携

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥redirector

UNIXの場合
/opt/Cosminexus/CC/web/redirector

Webコンテナサーバ

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers

UNIXの場合
/opt/Cosminexus/CC/web/containers

3.9.6　手動による定義などの修正

旧バージョンから移行する場合に，手動で定義などの修正が必要な項目について説明します。

手動で定義などの修正が必要な項目（アプリケーションサーバ Version 6からの移行）
アプリケーションサーバ Version 6から移行する場合に，手動で定義などの修正が必要な項目を次の表に示します。

表3-52　手動で定義などの修正が必要な項目（サーブレットエンジンモードの場合のアプリケーションサーバ Version 6から移行）

分類
修正項目
06-71/
06-70
06-51/
06-50
06-02/
06-00

Webコンテナサーバ
(1)　セキュリティポリシーファイルの変更
○
○
○

(2)　統合ユーザ管理のタグライブラリの入れ替え
○
○
○

(3)　デフォルトエラーページのスタックトレース表示
－
○
○

(4)　JSPのコンパイル結果の削除
○
○
○

(5)　リダイレクタへのデータ送信処理のタイムアウト追加
○
○
○

(6)　ユーザスレッドの生成に必要な権限の追加
－
○
○

(7)　セッションIDへのサーバIDの付加
－
○
○

(8)　javax.servlet.ServletExceptionで生成したオブジェクトに対するinitCauseメソッドの呼び出し
○
○
○

Webサーバ連携
(9)　リダイレクタのログ出力先変更
－
－
○

(10)　Webコンテナへのデータ送信処理のタイムアウト追加
○
○
○

(11)　リダイレクタの保守用トレースログの面数変更
○
○
－

（凡例）　○：修正が必要　－：該当しない

手動で定義などの修正が必要な項目（アプリケーションサーバ Version 7からの移行）
アプリケーションサーバ Version 7から移行する場合に，手動で定義などの修正が必要な項目を次の表に示します。

表3-53　手動で定義などの修正が必要な項目（サーブレットエンジンモードの場合のアプリケーションサーバ Version 7から移行）

分類 | 修正項目 | 07-60 | 07-50 | 07-10 | 07-00
Webコンテナサーバ | (8)　javax.servlet.ServletExceptionで生成したオブジェクトに対するinitCauseメソッドの呼び出し | ○ | ○ | ○ | ○

（凡例）　○：修正が必要

次に修正項目の詳細について説明します。なお，表の「修正項目」の項番は，説明の項番と対応しています。

手動で定義などの修正が必要な項目（アプリケーションサーバ Version 8からの移行）
アプリケーションサーバ Version 8から移行する場合に，手動で定義などの修正が必要な項目はありません。

手動で定義などの修正が必要な項目（アプリケーションサーバ Version 9からの移行）
アプリケーションサーバ Version 9から移行する場合に，手動で定義などの修正が必要な項目はありません。

＜この項の構成＞

(1)　セキュリティポリシーファイルの変更

(2)　統合ユーザ管理のタグライブラリの入れ替え

(3)　デフォルトエラーページのスタックトレース表示

(4)　JSPのコンパイル結果の削除

(5)　リダイレクタへのデータ送信処理のタイムアウト追加

(6)　ユーザスレッドの生成に必要な権限の追加

(7)　セッションIDへのサーバIDの付加

(8)　javax.servlet.ServletExceptionで生成したオブジェクトに対するinitCauseメソッドの呼び出し

(9)　リダイレクタのログ出力先変更

(10)　Webコンテナへのデータ送信処理のタイムアウト追加

(11)　リダイレクタの保守用トレースログの面数変更

(1)　セキュリティポリシーファイルの変更

変更方法は，J2EEサーバモードの場合と同じです。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web.policy

UNIXの場合
opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web.policy

(2)　統合ユーザ管理のタグライブラリの入れ替え

変更方法は，J2EEサーバモードの場合と同じです。

(3)　デフォルトエラーページのスタックトレース表示

変更方法は，J2EEサーバモードの場合と同じです。

(4)　JSPのコンパイル結果の削除

07-00以降では，サーブレット／JSPのバージョンが変更になりました。このため，07-00より前のWebコンテナサーバのusrconf.propertiesファイルで，webserver.work.clean=falseを設定してJSPコンパイル結果を保持していた場合，07-00以降へ移行後，07-00より前で生成されたコンパイル結果を手動で削除してください。

次のどちらかの方法で，JSPコンパイル結果を削除します。

usrconf.propertiesでwebserver.work.clean=trueを設定して，Webコンテナサーバを再起動する。

JSPコンパイル結果を手動で削除する。

JSPコンパイル結果を手動で削除する方法については，「3.4.3　JSPファイルのコンパイル結果の保持」を参照してください。

(5)　リダイレクタへのデータ送信処理のタイムアウト追加

変更方法は，J2EEサーバモードの場合と同じです。

(6)　ユーザスレッドの生成に必要な権限の追加

変更方法は，J2EEサーバモードの場合と同じです。なお，サーブレットエンジンモードの場合は，「server.policyファイル」を「web.policyファイル」と読み替えてください。

Windowsの場合
<製品のインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥web.policy

UNIXの場合
opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/web.policy

(7)　セッションIDへのサーバIDの付加

変更内容は，J2EEサーバモードの場合と同じです。

(8)　javax.servlet.ServletExceptionで生成したオブジェクトに対するinitCauseメソッドの呼び出し

コンストラクタServletException(String,Throwable)およびServletException(Throwable)で生成したServletExceptionオブジェクトに対して，initCause(Throwable)を呼び出せません。initCause(Throwable)を呼び出したい場合は，ユーザプロパティファイルにwebserver.servlet_api.exception.getCause.backcompat=trueを設定する必要があります。

(9)　リダイレクタのログ出力先変更

変更方法は，J2EEサーバモードの場合と同じです。

(10)　Webコンテナへのデータ送信処理のタイムアウト追加

変更方法は，J2EEサーバモードの場合と同じです。

(11)　リダイレクタの保守用トレースログの面数変更

変更方法は，J2EEサーバモードの場合と同じです。

3.9.7　Webコンテナサーバの移行コマンドで自動的に追加される定義

旧バージョンからアプリケーションサーバ 09-70へ移行する場合，Webコンテナサーバのユーザプロパティファイルや作業ディレクトリ内のDD情報は，旧バージョンのものが09-70の環境でもそのまま継続使用されます。ただし，新バージョンで追加された機能，およびデフォルト値が変更された機能があり，互換性を維持するために，Webコンテナサーバの移行コマンドがユーザプロパティファイルのプロパティや作業ディレクトリ内のDD情報を部分的に変換します。移行コマンド実行時に追加されるキーと値について説明します。

●移行コマンドで自動的に追加される定義（アプリケーションサーバ Version 6からの移行）

移行コマンド実行時に追加されるキーと値を次の表に示します。

表3-54　Webコンテナサーバのusrconf.propertiesに自動的に追加される定義（アプリケーションサーバ Version 6からの移行）

追加されるキーと値
旧バージョンでの環境条件
06-71/
06-70
06-51/
06-50
06-02/
06-00

webserver.container.servlet.default_mapping.enabled=true
－
○
○
○

ejbserver.logger.channels.define.WebServletLogFile.filenum=2
このキーがない場合
○
○
○

ejbserver.logger.channels.define.WebServletLogFile.filesize=1048576​
このキーがない場合
○
○
○

ejbserver.logger.channels.define.WebExceptionLogFile.filenum=2
このキーがない場合
○
○
○

ejbserver.logger.channels.define.WebExceptionLogFile.filesize=1048576​
このキーがない場合
○
○
○

（凡例）　○：定義が自動的に追加されることを示す　－：該当しない

表3-55　Webコンテナサーバのusrconf.cfgに自動的に追加される定義（アプリケーションサーバ Version 6からの移行）

追加されるキーと値
旧バージョンでの環境条件
06-71/
06-70
06-51/
06-50
06-02/
06-00

add.jvm.arg=-XX:HitachiJavaLogFileSize=256k
このキーがない場合
○
○
○

（凡例）　○：定義が自動的に追加されることを示す　－：該当しない

表3-56　Webコンテナサーバのserver.policyに自動的に追加される定義（アプリケーションサーバ Version 7からの移行）

追加される定義
旧バージョンでの環境条件
06-71/
06-70
06-51/
06-50
06-02/
06-00

grant codeBase "file:${cosminexus.home}/common/lib/*" {
permission java.security.AllPermission;
};
このキーがない場合
○
○
○

（凡例）　○：定義が自動的に追加されることを示す

●移行コマンドで自動的に追加される定義（アプリケーションサーバ Version 7からの移行）

移行コマンド実行時に追加されるキーと値を次の表に示します。

表3-57　Webコンテナサーバのusrconf.propertiesに自動的に追加される定義（アプリケーションサーバ Version 7からの移行）

追加されるキーと値 | 旧バージョンでの環境条件 | 07-60 | 07-50 | 07-10 | 07-00
webserver.container.servlet.default_mapping.enabled=true | － | ○ | ○ | ○ | ○

（凡例）　○：定義が自動的に追加されることを示す　－：該当しない

表3-58　Webコンテナサーバのserver.policyに自動的に追加される定義（アプリケーションサーバ Version 7からの移行）

追加される定義
旧バージョンでの環境条件
07-60
07-50
07-10
07-00

grant codeBase "file:${cosminexus.home}/common/lib/*" {
permission java.security.AllPermission;
};
このキーがない場合
○
○
○
○

（凡例）　○：定義が自動的に追加されることを示す

●移行コマンドで自動的に追加される定義（アプリケーションサーバ Version 8からの移行）

表3-59　Webコンテナサーバのusrconf.propertiesに自動的に追加される定義（アプリケーションサーバ Version 8からの移行）

追加されるキーと値 | 旧バージョンでの環境条件 | 08-70 | 08-53 | 08-50 | 08-00
webserver.connector.limit.max_post_form_data=-1 | このキーがない場合 | － | － | － | ○

（凡例）　○：定義が自動的に追加されることを示す　－：該当しない

表3-60　Webコンテナサーバのserver.policyに自動的に追加される定義（アプリケーションサーバ Version 8からの移行）

追加される定義
旧バージョンでの環境条件
08-70
08-53
08-50
08-00

grant codeBase "file:${cosminexus.home}/common/lib/*" {
permission java.security.AllPermission;
};
このキーがない場合
○
○
○
○

（凡例）　○：定義が自動的に追加されることを示す

●移行コマンドで自動的に追加される定義（アプリケーションサーバ Version 9からの移行）

アプリケーションサーバ Version 9からの移行で自動的に追加される定義はありません。

3.10　Webコンテナサーバで使用するコマンド

サーブレットエンジンモードでは，次の種類のコマンドを使用できます。

性能解析トレースで使用するコマンド

JavaVMで使用するコマンド

ログの運用で使用するコマンド

統合ユーザ管理で使用するコマンド

Webアプリケーションで使用するコマンド

Webコンテナサーバで使用するコマンド

これらのコマンドのうち，「Webコンテナサーバで使用するコマンド」以外のコマンドについては，J2EEサーバモードで使用するコマンドと同じです。マニュアル「アプリケーションサーバ リファレンス コマンド編」，およびマニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。

Webコンテナサーバで使用するコマンドの一覧を，次の表に示します。

表3-61　Webコンテナサーバで使用するコマンドの一覧

コマンド名称
分類
概要

cjdumpweb
Webコンテナサーバのスレッドダンプの取得
Webコンテナサーバで障害が発生した場合などに，JavaVMのスレッドダンプを取得します。

cjenvsetup
Component Container管理者のセットアップ
インストールファイルの属性を変更して，root権限を持つユーザ以外で運用できるようにします。
このコマンドは，UNIX用です。
このコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjenvsetup（Component Container管理者のセットアップ）」を参照してください。

cjgetsysinfo
OS状態情報の取得
OSの状態情報を取得します。
このコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjgetsysinfo（OS状態情報の取得）」を参照してください。

cjstartweb
Webコンテナサーバの開始
Webコンテナサーバを開始します。

cjstopweb
Webコンテナサーバの停止
Webコンテナサーバを停止します。

cjwebchangedbid
データベースIDの変更
プール管理情報のデータベースIDを変更します。

cjwebclearpool
プール内のコネクションのクリア
データベースのコネクションをクローズして，クローズしたコネクションをプールから削除します。

cjwebclosepool
プール内のコネクションの強制切断
データベースのコネクションをプールから削除して，クローズします。

cjwebdeletepool
プール管理情報の削除
データベースのプール管理情報を削除します。

cjwebeditpool
プール管理情報の登録と変更
プール管理情報を新規登録または変更します。

cjweblistpool
プール管理情報の一覧表示
プール管理情報の一覧を表示します。

cjwebsetup
Webコンテナサーバのセットアップとアンセットアップ
Webコンテナの環境をセットアップまたはアンセットアップします。

セットアップ系コマンド（cjwebsetup）は単独で実行してください。ほかのセットアップ系コマンド（cjenvsetup，cjenvupdate，cjrarupdate，cjsetupなど）と同時に実行しないでください。

Webコンテナサーバで使用する各コマンドの入力形式，機能などを次に示します。

コマンドの格納先

Webコンテナサーバで使用するコマンドは，次のディレクトリに格納されています。

cjdumpwebコマンド，cjstartwebコマンド，cjstopwebコマンド，cjwebsetupコマンド

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥bin¥

UNIXの場合
/opt/Cosminexus/CC/web/bin/

それ以外のコマンド

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥admin¥bin¥

UNIXの場合
/opt/Cosminexus/CC/admin/bin/

＜この節の構成＞

3.10.1　cjdumpweb（Webコンテナサーバのスレッドダンプの取得）

3.10.2　cjstartweb（Webコンテナサーバの開始）

3.10.3　cjstopweb（Webコンテナサーバの停止）

3.10.4　cjwebchangedbid（データベースIDの変更）

3.10.5　cjwebclearpool（プール内のコネクションのクリア）

3.10.6　cjwebclosepool（プール内のコネクションの強制切断）

3.10.7　cjwebdeletepool（プール管理情報の削除）

3.10.8　cjwebeditpool（プール管理情報の登録と変更）

3.10.9　cjweblistpool（プール管理情報の一覧表示）

3.10.10　cjwebsetup（Webコンテナサーバのセットアップとアンセットアップ）

3.10.1　cjdumpweb（Webコンテナサーバのスレッドダンプの取得）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　注意事項

(1)　形式

cjdumpweb [<サーバ名称>]

(2)　機能

WebブラウザおよびEJBクライアントに応答が返らない場合，Webコンテナサーバで障害が発生した場合，アプリケーションの挙動を調査したい場合などに，JavaVMのスレッドダンプを取得します。

コマンドを実行すると，サーバ標準出力ログ（cjstdout.log），および次のファイルにスレッドダンプが出力されます。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥javacore*.txt

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/javacore*.txt

(3)　引数

<サーバ名称>

Webコンテナのサーバ名称を指定します。サーバ名称には，半角英数字（0～9，A～Z，a～z），アンダースコア（_）またはハイフン（-）が使用できます。サーバ名称の先頭の文字は英数字でなければなりません。サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

(5)　注意事項

UNIXの場合，cjdumpwebコマンドの実行には，root権限またはComponent Container管理者の権限が必要です。

コマンドの引数にサーバ名称を指定する場合，cjwebsetupコマンドで指定したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

WebコンテナサーバをManagerから起動している場合，またはWindowsのサービスとして起動している場合，スレッドダンプの取得に失敗するおそれがあります。

3.10.2　cjstartweb（Webコンテナサーバの開始）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　ユーザ定義ファイル

(6)　注意事項

(1)　形式

cjstartweb [<サーバ名称>] [-security]

(2)　機能

サーバ名称のWebコンテナサーバを開始します。

(3)　引数

<サーバ名称>

開始するWebコンテナのサーバ名称を指定します。サーバ名称には，半角英数字（0～9，A～Z，a～z），アンダースコア（_）またはハイフン（-）が使用できます。サーバ名称の先頭の文字は英数字でなければなりません。サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。

-security

Webコンテナの実行時保護機能を有効にします。

(4)　戻り値

0：

正常終了しました。

1以上：

異常終了しました。

(5)　ユーザ定義ファイル

Windowsの場合

<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.cfg

<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.properties

UNIXの場合

/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.cfg

/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.properties

(6)　注意事項

Windowsの場合，cjstartwebコマンドの実行には，Administrator権限が必要です。

UNIXの場合，cjstartwebコマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

コマンドの引数にサーバ名称を指定する場合，cjwebsetupコマンドで指定したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

3.10.3　cjstopweb（Webコンテナサーバの停止）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　ユーザ定義ファイル

(6)　注意事項

(1)　形式

cjstopweb [<サーバ名称>]
         [-f|-fd [<スレッドダンプ取得間隔> <スレッドダンプ取得回数>]]

(2)　機能

サーバ名称のWebコンテナサーバを停止します。

(3)　引数

<サーバ名称>

停止するWebコンテナサーバのサーバ名称を指定します。サーバ名称には，半角英数字（0～9，A～Z，a～z），アンダースコア（_）またはハイフン（-）が使用できます。サーバ名称の先頭の文字は英数字でなければなりません。サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。

-f

Webコンテナサーバを強制停止します。

-fd

Webコンテナサーバの障害情報を取得したあと，Webコンテナサーバを強制停止します。

<スレッドダンプ取得間隔>

スレッドダンプを取得する間隔を1～60の整数（単位：秒）で指定します。省略した場合の初期値は3秒です。

<スレッドダンプ取得回数>

スレッドダンプを取得する回数を1～60の整数（単位：回）で指定します。省略した場合の初期値は10回です。

取得する障害情報を次に示します。

OSの稼働状況
Windowsの場合の出力先：
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥cjsysinfo.<出力時間>.txt
UNIXの場合の出力先：
/opt/Cosminexus/CC/web/containers/<サーバ名称>/cjsysinfo.<出力時間>.txt
<出力時間>は，yymmddHHMMSSの形式になります。
なお，出力内容については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjgetsysinfo（OS状態情報の取得）」を参照してください。

JavaVMのスレッドダンプ
<スレッドダンプ取得間隔>，<スレッドダンプ取得回数>で指定した間隔と回数でスレッドダンプを取得します。Webコンテナサーバプロセスの状態によっては指定間隔，指定回数でスレッドダンプが出力されない場合もあります。なお，出力内容については，「cjdumpweb（Webコンテナサーバのスレッドダンプの取得）」を参照してください。

Webコンテナサーバのクラッシュダンプ（Windowsの場合）またはcoreファイル（UNIXの場合）
最後のスレッドダンプ取得要求後，スレッドダンプ取得間隔時間経過後にクラッシュダンプまたはcoreファイルを出力します。
クラッシュダンプの出力先：
Windows XPとWindows Server 2012，Windows Server 2008，Windows 8，Windows 7またはWindows Vistaではクラッシュダンプの出力先は異なります。
・Windows XPの場合
<ワトソン博士のクラッシュダンプ出力先>※¥user.dmp
注※：ワトソン博士のクラッシュダンプ作成オプションの設定が必要です。
・Windows Server 2012，Windows Server 2008，Windows 8，Windows 7またはWindows Vistaの場合
<環境変数CJMEMDUMP_PATHで指定したディレクトリ>※¥cjmemdump.dmp
注※：環境変数CJMEMDUMP_PATHが指定されていないか，指定したディレクトリが存在しない場合，クラッシュダンプは出力されません。また，指定したディレクトリにクラッシュダンプがすでに存在する場合，クラッシュダンプは上書きされます。
coreファイルの出力先：
/opt/Cosminexus/CC/web/containers/<サーバ名称>/core※
注※
Linuxの場合，core.<強制停止されたWebコンテナサーバのプロセスID>

(4)　戻り値

0：

正常終了しました。

1以上：

異常終了しました。

(5)　ユーザ定義ファイル

Windowsの場合

<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.cfg

<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥usrconf.properties

UNIXの場合

/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.cfg

/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/usrconf.properties

(6)　注意事項

Webコンテナサーバを停止させるには，必ずcjstopwebコマンドを使用してください。Ctrl+Cキーやタスクマネージャ（Windowsの場合）から停止しないでください。

cjstopwebコマンドでWebコンテナサーバを停止する場合，サーブレットまたはJSPのサービスメソッドが実行中のときは，該当するメソッドが終了するまでWebコンテナサーバは停止しません。なお，cjstopwebコマンドは，Webコンテナサーバの終了を待たないで，すぐに終了します。

サーブレットまたはJSPのサービスメソッドが実行中の状態でcjstopwebコマンドを実行した場合，Webコンテナサーバを停止できないことがあります。この場合，-fオプションまたは-fdオプションを指定して，再度cjstopwebコマンドを実行することでWebコンテナサーバを強制停止します。

Windowsの場合，cjstopwebコマンドの実行には，Administrator権限が必要です。

UNIXの場合，cjstopwebコマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

コマンドの引数にサーバ名称を指定する場合，cjwebsetupコマンドで指定したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

Windows Server 2012，Windows Server 2008，Windows 8，Windows 7またはWindows Vistaで-fdオプションを指定する場合，環境変数CJMEMDUMP_PATHは次のように設定してください。

環境変数CJMEMDUMP_PATHで指定した保存先のディスクに十分な空き容量があることを確認してください。クラッシュダンプのファイルサイズはWEBコンテナサーバの実メモリ所要量以上になります。

環境変数CJMEMDUMP_PATHに日本語などのマルチバイト文字を含むディレクトリを指定しないでください。クラッシュダンプの出力に失敗する場合があります。

クラッシュダンプの出力先ディレクトリには，存在するディレクトリを指定してください。

3.10.4　cjwebchangedbid（データベースIDの変更）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　入力例

(6)　注意事項

(1)　形式

cjwebchangedbid [-host <ホスト名称>] [-port <ポート番号>]
               -olddbid <データベースID> -newdbid <データベースID>

(2)　機能

-olddbidに指定されたデータベースIDに該当するプール管理情報のデータベースIDを，-newdbidに指定されたデータベースIDに変更します。-olddbidと-newdbidに同じデータベースIDを指定された場合，処理は実行しません。

使用中のプールのデータベースIDを変更した場合は，Webコンテナを再起動した時に変更内容が有効となります。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-olddbid <データベースID>

変更の対象となる現在のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

-newdbid <データベースID>

変更後のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(5)　入力例

cjwebchangedbid -olddbid db_1 -newdbid db_2

(6)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<データベースID> -olddbid）はできません。

3.10.5　cjwebclearpool（プール内のコネクションのクリア）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　入力例

(6)　注意事項

(1)　形式

cjwebclearpool [-host <ホスト名称>] [-port <ポート番号>]
              [-mode {normal|plan}] [-dbid <データベースID>]

(2)　機能

動作種別を選択して，プール内のすべてのコネクションまたは指定されたデータベースのコネクションをクローズします。クローズしたコネクションは，プールから削除します。

このコマンドは，データベースサーバが異常終了した場合やネットワークが切断された場合などの，システム障害時に実行するコマンドです。このコマンドでは，プールからコネクションを削除してクローズすることだけを実行します。新たなコネクションは生成しません。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-mode {normal|plan}

使用中のコネクションに対するクリア動作の種別を指定します。

normal（通常モード）
ユーザが使用中のコネクションはプールの外へ移して，プール内からはクリアされます。データベースとの接続はそのまま維持されますが，再利用はできません。

plan（計画モード）
ユーザが使用中のコネクションはクリアしません。ただし，再利用はできません。

-dbid <データベースID>

削除対象となるプール管理情報のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

省略すると，指定した動作種別で，すべてのプール管理情報を対象に処理が実行されます。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(5)　入力例

cjwebclearpool -mode normal -dbid db_1

(6)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<データベースID> -dbid）やオプション名と値を非対応にすること（例：-mode <データベースID> -dbid normal）はできません。

3.10.6　cjwebclosepool（プール内のコネクションの強制切断）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　入力例

(6)　注意事項

(1)　形式

コネクションIDを指定する場合

cjwebclosepool [-host <ホスト名称>] [-port <ポート番号>]
              -dbid <データベースID> -type connectionid
              -cid <コネクションID>

タイムアウト時間を指定する場合

cjwebclosepool [-host <ホスト名称>] [-port <ポート番号>]
              -dbid <データベースID> -type timeout
              -time <タイムアウト時間>

(2)　機能

指定されたコネクションIDに該当するコネクション，または指定されたタイムアウト時間を超過したコネクションをプールから削除して，クローズします。

指定されたタイムアウト時間を超過したコネクションをプールから削除する場合，プールまたはデータベースに対してgetConnectionメソッド，SQLステートメントなどが実行されてからの経過時間が，指定された時間を超えているコネクションが対象となります。

このコマンドは，コネクションが使用中のまま長時間放置されている場合などに使用します。コネクションIDまたは経過時間をキーにして削除して，プール内のコネクションが［Minimum size］に達していない場合は，新たにプールにコネクションを生成します。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-dbid <データベースID>

削除対象となるプール管理情報のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

-type {connectionid|timeout}

コネクションを削除する基準の種別を指定します。

connectionid
コネクションIDを基に，プールからコネクションを削除します。

timeout
タイムアウト時間を基に，プールからコネクションを削除します。

-cid <コネクションID>

削除対象となるコネクションのコネクションIDを指定します。

-time <タイムアウト時間>

コネクションを削除する際のタイムアウト時間を指定します。コネクション最終アクセス時刻から，指定時間を超過したコネクションが削除対象となります。指定は秒単位で，指定できる値は0≦指定値≦2147483647の範囲になります。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(5)　入力例

コネクションIDを指定する場合

cjwebclosepool -dbid db_1 -type connectionid -cid connection1

タイムアウト時間を指定する場合

cjwebclosepool -dbid db_1 -type timeout -time 36000

(6)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<データベースID> -dbid）やオプション名と値を非対応にすること（例：-dbid timeout -type <データベースID>）はできません。

3.10.7　cjwebdeletepool（プール管理情報の削除）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　注意事項

(1)　形式

cjwebdeletepool [-host <ホスト名称>] [-port <ポート番号>]
               -dbid <データベースID>

(2)　機能

指定されたデータベースIDに該当するプール管理情報を削除します。

使用中のプール管理情報が削除された場合，動作中のプールには影響を与えません。Webコンテナを再起動した時に有効になります。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-dbid <データベースID>

削除対象となるプール管理情報のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(5)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<データベースID> -dbid）はできません。

3.10.8　cjwebeditpool（プール管理情報の登録と変更）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　注意事項

(1)　形式

cjwebeditpool [-host <ホスト名称>] [-port <ポート番号>]
             -c <プール管理情報設定ファイルパス>

(2)　機能

プール管理情報を，新規登録または変更します。

登録されていないデータベースIDをプール管理情報設定ファイルに定義した場合，プール管理情報を新規登録します。すでに登録されているデータベースIDをプール管理情報設定ファイルに定義した場合，プール管理情報を変更します。

プール管理情報設定ファイルに，データベースID，クラス名およびURL名が指定されていない場合は，プール管理情報を登録できません。

プール管理情報設定ファイルは，あらかじめエディタなどを使って作成しておく必要があります。プール管理情報設定ファイルについては，「3.11.6　プール管理情報設定ファイル」を参照してください。

プール管理情報の変更は，データベースIDをキーにして実行されます。登録されていないデータベースIDを指定した場合，プール管理情報が新規に作成，登録されます。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-c <プール管理情報設定ファイルパス>

読み込み対象となるプール管理情報ファイル設定ファイルのパスを指定します。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(5)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<プール管理情報設定ファイルパス> -c）はできません。

プール管理情報を新規に登録する場合は，プール管理情報設定ファイルに<DatabaseID>，<ClassName>，<URL>を必ず指定してください。

プール管理情報を変更する場合は，プール管理情報設定ファイルに<DatabaseID>を必ず指定してください。

プール管理情報設定ファイルの<ClassName>と<URL>は対で指定してください。

プール管理情報設定ファイルのそれぞれのタグには，次の条件を満たす値を指定してください。

<UserCount> ≧ 0

<MinimumSize> ≦ <MaximumSize>かつ<MaximumSize> ≧ 1

<MinimumSize> ≧ 0

<MaximumSize> ≧ 0

<RetryInterval> ≧ 0

<RetryCount> ≧ 0

新規登録または変更されたプール管理情報に対して，まだ一度もコネクション取得要求がない場合，コネクション取得要求することで新規登録または変更したプール管理情報が反映されたプールが生成されます。

すでに使用中のプール管理情報を変更した場合，コマンド実行時に<DatabaseID>，<ClassName>，<URL>以外の項目が変更されます。<DatabaseID>，<ClassName>，<URL>については，Webコンテナを再起動してプールを再作成した時に有効になります。

新規登録時に<DatabaseID>，<ClassName>，<URL>以外の項目を省略した場合は，デフォルトの値が設定されます。

プール管理情報設定ファイルについては，「3.11.6　プール管理情報設定ファイル」を参照してください。

3.10.9　cjweblistpool（プール管理情報の一覧表示）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　入力例

(5)　出力形式

(6)　戻り値

(7)　注意事項

(1)　形式

データベースリストを表示する場合

cjweblistpool [-host <ホスト名称>] [-port <ポート番号>]
             -listtype dblist [-f <ファイルパス>]

プールリストを表示する場合

cjweblistpool [-host <ホスト名称>] [-port <ポート番号>]
             -dbid <データベースID> -listtype poollist
             [-f <ファイルパス>]

コネクションリストを表示する場合

cjweblistpool [-host <ホスト名称>] [-port <ポート番号>]
             -dbid <データベースID> -userid <ユーザID>
             -listtype connectionlist [-f <ファイルパス>]

すべてのプール情報を表示する場合

cjweblistpool [-host <ホスト名称>] [-port <ポート番号>]
             -listtype all [-f <ファイルパス>]

(2)　機能

プール管理情報の一覧を表示します。表示できるプール管理情報を次に示します。

データベースリスト

データベースリスト（データベースID，データベースクラス，データベースURL，ユーザ数，コネクション最小数，コネクション最大数，リトライ待ち時間，リトライ回数，およびプールの数）を表示します。または，指定されたファイルに出力します。

プールリスト

プールリスト（ユーザID，コネクション取得待ちカウンタ，およびコネクションの数）と，キー項目のデータベースIDを表示します。または，指定されたファイルに出力します。

コネクションリスト

コネクションリスト（コネクションID，使用中フラグ，再利用可否フラグ，コネクション生成時刻，コネクション最終アクセス時刻）と，キー項目のデータベースID，ユーザIDおよびコネクションIDを表示します。または，指定されたファイルに出力します。

すべてのプール管理情報

上記のすべてのプール管理情報を一覧表示します。または，指定されたファイルに出力します。

表示順序は次の図中の番号に示した順番になります。一つのデータベースリストに関連するプールリストが表示され終わってから，次のデータベースリストが表示されます。また，一つのプールリストに関連するプールリストに関連するコネクションリストが表示され終わってから，次のプールリストが表示されます。

なお，データベースリスト，プールリストおよびコネクションリストに出力される項目については，-listtypeオプションのオプション引数に，dblist，poollist，connectionlistを指定した場合と同じです。

(3)　引数

-host <ホスト名称>

接続先のホスト名称として，コマンドからのリクエスト要求を受け付けるサーブレットが動作しているホスト名称を指定します。指定を省略した場合は，localhostが仮定されます。

-port <ポート番号>

コマンドからのリクエスト要求を受け付けるサーブレットが使用するポート番号として，サーブレットが管理されているWebコンテナのポート番号を指定します。指定を省略した場合は，8080が仮定されます。

-listtype {dblist|poollist|connectionlist|all}

表示対象となるプール管理情報の種別を指定します。

dblist
データベースリストを一覧表示します。

poollist
プールリストを一覧表示します。

connectionlist
コネクションリストを一覧表示します。

all
すべてのプール管理情報を一覧表示します。

-f <ファイルパス>

プール管理情報の出力先ファイルのパスを指定します。

-dbid <データベースID>

処理対象となるプール管理情報のデータベースIDを指定します。データベースIDには，半角英数字（0～9，A～Z，a～z）またはアンダースコア（_）が使用できます。

-userid <ユーザID>

処理対象となるプール管理情報のユーザIDを指定します。

(4)　入力例

データベースリストを表示する場合

cjweblistpool -listtype dblist -f db1.list

プールリストを表示する場合

cjweblistpool -dbid db_1 -listtype poollist -f pool1.list

コネクションリストを表示する場合

cjweblistpool -dbid db_1 -userid user1 -listtype connectionlist -f connection1.list

すべてのプール情報を表示する場合

cjweblistpool -listtype all -f all.list

(5)　出力形式

データベースリストを表示する場合

<DatabaseID=<データベースID1>><ClassName=<データベースクラス>><URL=<データベースURL>><UserCount=<ユーザ数>><MinimumSize=<コネクション最小数>><MaximumSize=<コネクション最大数>><RetryInterval=<リトライ待ち時間>><RetryCount=<リトライ回数>><PoolCount=<プールの数>>
<DatabaseID=<データベースID2>><ClassName=<データベースクラス>><URL=<データベースURL>><UserCount=<ユーザ数>><MinimumSize=<コネクション最小数>><MaximumSize=<コネクション最大数>><RetryInterval=<リトライ待ち時間>><RetryCount=<リトライ回数>><PoolCount=<プールの数>>
・・・
・・・

プールリストを表示する場合

<DatabaseID=<データベースID1>><UserID=<ユーザID1>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=<コネクションの数>>
<DatabaseID=<データベースID1>><UserID=<ユーザID2>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=<コネクションの数>>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=<コネクションの数>>
・・・
・・・

コネクションリストを表示する場合

<DatabaseID=<データベースID1>><UserID=<ユーザID1>><ConnectionID=<コネクションID1>><ConnectionBusy=<使用中フラグ>><ConnectionReuse=<再利用可否フラグ>><ConnectionTime=<コネクション生成時刻>><LastTime=<最終アクセス時刻>>
<DatabaseID=<データベースID1>><UserID=<ユーザID2>><ConnectionID=<コネクションID2>><ConnectionBusy=<使用中フラグ>><ConnectionReuse=<再利用可否フラグ>><ConnectionTime=<コネクション生成時刻>><LastTime=<最終アクセス時刻>>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><ConnectionID=<コネクションID3>><ConnectionStatus=NotUsed><ReuseStatus=NotReuse><ConnectionTime=2003/11/25 11:36:00.616><LastTime=2003/11/25 11:40:00.313>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><ConnectionID=<コネクションID4>><ConnectionStatus=Used><ReuseStatus=Reuse><ConnectionTime=2003/11/25 11:37:00.256><LastTime=2003/11/25 11:37:00.256>
・・・
・・・

すべてのプール管理情報を表示する場合

<DatabaseID=<データベースID1>><ClassName=<データベースクラス>><URL=<データベースURL>><UserCount=<ユーザ数>><MinimumSize=<コネクション最小数>><MaximumSize=<コネクション最大数>><RetryInterval=<リトライ待ち時間>><RetryCount=<リトライ回数>><PoolCount=<プールの数>>
<DatabaseID=<データベースID1>><UserID=<ユーザID1>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=<コネクションの数>>
<DatabaseID=<データベースID1>><UserID=<ユーザID1>><ConnectionID=<コネクションID1>><ConnectionStatus=<使用中フラグ>><ReuseStatus=<再利用可否フラグ>><ConnectionTime=<コネクション生成時刻>><LastTime=<最終アクセス時刻>>
<DatabaseID=<データベースID1>><UserID=<ユーザID2>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=<コネクションの数>>
<DatabaseID=<データベースID1>><UserID=<ユーザID2>><ConnectionID=<コネクションID2>><ConnectionStatus=<使用中フラグ>><ReuseStatus=<再利用可否フラグ>><ConnectionTime=<コネクション生成時刻>><LastTime=<最終アクセス時刻>>
<DatabaseID=<データベースID2>><ClassName=<データベースクラス>><URL=<データベースURL>><UserCount=<ユーザ数>><MinimumSize=<コネクション最小数>><MaximumSize=<コネクション最大数>><RetryInterval=<リトライ待ち時間>><RetryCount=<リトライ回数>><PoolCount=1>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><WaitCount=<コネクション取得待ちカウンタ>><ConnectionCount=2>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><ConnectionID=<コネクションID3>><ConnectionStatus=NotUsed><ReuseStatus=NotReuse><ConnectionTime=2003/11/25 11:36:00.616><LastTime=2003/11/25 11:40:00.313>
<DatabaseID=<データベースID2>><UserID=<ユーザID3>><ConnectionID=<コネクションID4>><ConnectionStatus=Used><ReuseStatus=Reuse><ConnectionTime=2003/11/25 11:37:00.256><LastTime=2003/11/25 11:37:00.256>
・・・
・・・

(6)　戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

(7)　注意事項

引数は，コマンド名の直後に指定する必要があります。引数は，コマンド名より後ろにあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<データベースID> -dbid）やオプション名と値を非対応にすること（例：-dbid timeout -type <データベースID>）はできません。

3.10.10　cjwebsetup（Webコンテナサーバのセットアップとアンセットアップ）

＜この項の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　戻り値

(5)　注意事項

(1)　形式

セットアップの場合

cjwebsetup [<サーバ名称>]

アンセットアップの場合

cjwebsetup -d <サーバ名称>

(2)　機能

指定したサーバ名称のWebコンテナの環境をセットアップまたはアンセットアップします。

-dオプションを指定した場合，次に示すWebコンテナの環境（ディレクトリおよびファイル）の<サーバ名称>以下を削除します。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/

(3)　引数

<サーバ名称>

セットアップまたはアンセットアップするWebコンテナのサーバ名称を指定します。

サーバ名称には，半角英数字（0～9，A～Z，a～z），アンダースコア（_）またはハイフン（-）が使用できます。サーバ名称の先頭の文字は英数字でなければなりません。また，サーバ名称は，「3.7.8　Webコンテナサーバの作業ディレクトリ」を参照して見積もった範囲内の長さで指定できます。

サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。ただし，アンセットアップ時は省略できません。また，ホスト名称にサーバ名称として使用できない文字が含まれている場合はエラーになります。

-d

Webコンテナの環境を削除する場合に指定します。

(4)　戻り値

0：

正常終了しました。

1：

異常終了しました。

(5)　注意事項

セットアップ済みのサーバ名称を指定して再セットアップ（cjwebsetup <サーバ名称>）を行うと，エラーとなります。

Windowsの場合，サーバ名称の大文字・小文字は区別されません。作成済みのサーバ名称と，大文字・小文字の区別以外は一致している文字列をcjwebsetupのサーバ名称として指定した場合，次のように動作します。

セットアップの場合(cjwebsetup <サーバ名称>)
セットアップに失敗します。

アンセットアップの場合(cjwebsetup -d <サーバ名称>)
すでに作成済みである，<サーバ名称>と大文字・小文字の区別以外は一致しているサーバが削除されます。

Webコンテナサーバの開始または停止コマンドを実行する場合，これらのコマンドにサーバ名称を引数として指定するときは，cjwebsetupコマンドで作成したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

起動中のWebコンテナサーバに対して，-dオプションで削除しないでください。

Windowsの場合，削除対象のファイルの属性が読み取り専用，または使用中のときに，-dオプションで削除しないでください。

UNIXの場合，cjwebsetupコマンドの実行には，root権限（Component Container管理者を設定していない場合），またはComponent Container管理者の権限（Component Container管理者を設定している場合）が必要です。

UNIXの場合，削除対象のディレクトリ，ファイルのアクセス権の設定および使用状態に関係なく，すべて削除します。

Webコンテナサーバを再セットアップする場合，cjwebsetup -d <サーバ名称>でサーバの環境をいったん削除してから再度セットアップコマンドを実行してください。

3.11　Webコンテナサーバで使用するファイル

サーブレットエンジンモードでは，次のコマンドを使用できます。

Webサーバ連携で使用するファイル

ログの運用で使用するファイル

統合ユーザ管理で使用するファイル

Webアプリケーションで使用するファイル

DABroker Libraryで使用するファイル

Webコンテナサーバで使用するファイル

これらのファイルのうち，「Webコンテナサーバで使用するファイル」以外のファイルについては，J2EEサーバモードで使用するファイルと同じです。

マニュアル「アプリケーションサーバ リファレンス コマンド編」，およびマニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」を参照してください。

Webコンテナサーバのオプション定義ファイル（usrconf.cfg）に設定するJavaVM拡張オプションについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.　JavaVM起動オプション」を参照してください。

Webコンテナサーバで使用するファイルの一覧を，次の表に示します。

表3-62　Webコンテナサーバで使用するファイルの一覧

ファイル名 | 分類 | 概要 | 参照先
hitachi_web.properties | Webコンテナサーバ用Webアプリケーションプロパティファイル | Webアプリケーション個別のプロパティを指定します。 | 3.11.1
usrconf.cfg | Webコンテナサーバ用オプション定義ファイル | Webコンテナサーバ全体でのシステムプロパティを指定します。 | 3.11.2
usrconf.properties | Webコンテナサーバ用ユーザプロパティファイル | Webコンテナサーバ全体でのシステムプロパティを指定します。 | 3.11.3
web-users.xml | ユーザ認証情報定義ファイル | 各ユーザのユーザ名，パスワード，および所属するロールを記述します。 | 3.11.4
web.policy | SecurityManager定義ファイル | SecurityManagerを設定して，Java 2から導入されたセキュリティポリシーに基づくWebコンテナの実行時保護をします。 | 3.11.5
（任意） | プール管理情報設定ファイル | プール管理情報を記述します。 | 3.11.6

＜この節の構成＞

3.11.1　hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）

3.11.2　usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）

3.11.3　usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）

3.11.4　web-users.xml（ユーザ認証情報定義ファイル）

3.11.5　web.policy（SecurityManager定義ファイル）

3.11.6　プール管理情報設定ファイル

3.11.1　hitachi_web.properties（Webコンテナサーバ用Webアプリケーションプロパティファイル）

＜この項の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　指定できるキー

(5)　記述例

(1)　形式

次のようにキーを指定します。

<キー名称> = <値>

指定方法

改行までが値になります。

#で始まる行はコメントとみなされます。

値が存在しない行を定義した場合，その行は無視されます。

(2)　ファイルの格納先

Windowsの場合
<WebアプリケーションのWEB-INFディレクトリ>¥

UNIXの場合
<WebアプリケーションのWEB-INFディレクトリ>/

(3)　機能

Webアプリケーション個別のプロパティを指定します。なお，Webコンテナサーバ全体でのシステムプロパティ設定は，usrconf.propertiesで指定します。usrconf.propertiesとWEB-INF/hitachi_web.propertiesで同じキーが指定されている場合は，WEB-INF/hitachi_web.propertiesの値が優先されます。

(4)　指定できるキー

指定できるキーとデフォルト値を次に示します。このキーに不正な値を指定した場合，動作は保証されません。

キー名称
内容
デフォルト値

webserver.context.reload_delay_timeout
リロードの遅延実行機能を使用するかどうかを，-2147483648​～2147483647​の整数で指定します。

リロードの遅延実行機能を使用し，最大遅延期間（単位：秒）を設定する場合は，1以上の整数で指定します。

リロードの遅延実行機能を使用し，最大遅延期間（単位：秒）を設定しない場合は，負の整数で指定します。

リロードの遅延実行機能を使用しない場合は，0を指定します。

0

webserver.context.reloadable
Webアプリケーションのクラスファイルの更新を自動検知するかどうかを指定します。

trueを指定した場合：

更新を自動検知します。

falseを指定した場合：

更新を自動検知しません。

false

webserver.context.update.interval
更新するファイルのコピーに必要な時間（単位：秒）をインターバルとして指定します。0～2147483647​の整数で指定します。
なお，インターバルは余裕のある値にしてください。
リソースの更新を検知してから指定したインターバルのあとに，処理中リクエストの監視を開始します。
0

webserver.jsp.keepgenerated
JSPファイルをコンパイルした結果得られたJavaファイルを保持するかどうかを指定します。

trueを指定した場合：

Javaファイルを保持します。

falseを指定した場合：

Javaファイルを保持しません。

false

webserver.jsp.recompilable
JSPファイルが更新されたときに自動的に再コンパイルするかどうかを指定します。

trueを指定した場合：

自動的に再コンパイルします。

falseを指定した場合：

自動的に再コンパイルしません。

false

webserver.jsp.update.interval
更新するJSPファイルのコピーに必要な時間（単位：秒）をインターバルとして指定します。0～2147483647​の整数で指定します。
なお，インターバルは余裕のある値にしてください。
JSPファイルの更新を検知してから指定したインターバルのあとに，JSPの再コンパイルが実行されます。
0

webserver.session.persistence.enabled
リロード時のセッション継続機能を使用するかどうかを指定します。

trueを指定した場合：

セッション継続機能は有効になります。

falseを指定した場合：

セッション継続機能は無効になります。

false

webserver.xml.validate
Webアプリケーションのデプロイメント・ディスクリプタ（web.xmlファイル），およびタグライブラリ・ディスクリプタ（TLDファイル）がDTDで記述されたスキーマに沿って書かれているかチェックするかどうかを指定します。

trueを指定した場合：

チェックします。

falseを指定した場合：

チェックしません。

true

(5)　記述例

webserver.context.reload_delay_timeout=0
webserver.context.reloadable=false
webserver.context.update.interval=0
webserver.jsp.keepgenerated=false
webserver.jsp.recompilable=false
webserver.jsp.update.interval=0
webserver.session.persistence.enabled=true
webserver.xml.validate=true

3.11.2　usrconf.cfg（Webコンテナサーバ用オプション定義ファイル）

＜この項の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　指定できるキー

(5)　WebコンテナサーバでのJavaVMオプションのデフォルト値

(6)　記述例

(7)　注意事項

(1)　形式

次のようにキーを指定します。

<キー名称> = <値>

指定方法

改行までが値になります。

#で始まる行はコメントとみなされます。

値が存在しない行を定義した場合，その行は無視されます。

値の後ろには，空白やコメントなどの文字列は追加できません。追加した場合，不正な値と解釈されます。
（例）　<キー名称> = <値> #<コメント>

実行時の文字エンコーディングと異なる文字エンコーディングでは記述できません。

(2)　ファイルの格納先

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/

(3)　機能

Webコンテナサーバを実行するJavaVMの起動オプションを指定します。

Webコンテナサーバの稼働中に，このファイルの内容を変更した場合，変更した内容は，次回Webコンテナサーバを起動したときに反映されます。

(4)　指定できるキー

指定できるキーとデフォルト値を次に示します。このキーに不正な値を指定した場合は，動作は保証されません。

ポイント

ここでは，次の内容について説明します。

Webコンテナサーバ用usrconf.cfgファイルで指定できるキーの概要
指定できるキーのうち，J2EEサーバ用usrconf.cfgファイルと共通のキーについては，ここでは詳細を説明しません。
共通のキーの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。参照する場合には，「J2EEサーバ」，「J2EEアプリケーション」を「Webコンテナサーバ」，「Webアプリケーション」と読み替えてください。
なお，J2EEサーバ用のキーと指定内容が異なる場合には，ここでキーの詳細について説明します。

J2EEサーバ用のキーとの差異（J2EEサーバ用usrconf.cfgファイルのキーと指定内容が異なる場合）
Webコンテナサーバ用のキーとJ2EEサーバ用のキーの指定内容が異なる場合には，キーの詳細について説明します。差異の有無は「差異」列に表記します。

表3-63　usrconf.cfgに指定できるキーとデフォルト値（Webコンテナサーバ）

キー名称
差異
内容
デフォルト値

add.jvm.arg
あり
指定されたオプションを使ってJavaVMを起動します。
システムプロパティを指定したい場合は，"-D"を利用せずに，usrconf.propertiesファイルに指定します。
複数のオプションを指定する場合，同じキー名称を使用して，次のように複数回指定してください。
（指定例）
add.jvm.arg= -Xms128m
add.jvm.arg= -Xmx256m
なお，次のように複数のオプションを指定できません。指定をした場合，JavaVMの初期化に失敗します。
（指定例）
add.jvm.arg=-Xms128m -Xmx256m
add.jvm.argで指定できるJavaVMのオプションについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.1　JavaVM拡張オプションの一覧」および「16.5　Application Serverで指定できるJava HotSpot VMのオプション」を参照してください。
ただし，WebコンテナサーバではG1GCをサポートしていません。「-XX:+UseG1GC」を指定しないでください。
add.jvm.argキーで定義されていないオプションのデフォルト値はマニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「16.4　Application Serverで指定できるJava HotSpot VMのオプションのデフォルト値」を参照してください。
デフォルト値については「3.11.2(5)　WebコンテナサーバでのJavaVMオプションのデフォルト値」を参照してください。

cpp.library.version
なし
プロセス内で使用するlibstdc++ライブラリのバージョンを指定します。なお，このキーは，Linux用です。
指定できる文字列を次に示します。なお，09-00以降で設定できるのは「6」だけです。

6：

libstdc++.so.6ライブラリを使用します。

Red Hat Enterprise Linux以外のプラットフォームで設定しても無効です。
6

web.add.class.path
独自
コンテナ拡張ライブラリ用のJARを指定します。複数のオプションを指定する場合，同じキー名称を使用して，複数回指定してください。
スペースを含むパスを指定する場合，パスをダブルクォーテーション（"）で囲む必要はありません。また，ダブルクォーテーションでの指定は有効となりません。

注意事項

このキーで追加したクラスパスを使用するWebアプリケーションは，J2EE 1.3仕様に従わないアプリケーションになります。将来的にJ2EE環境での実行を予定しているアプリケーションでは，このキーを使用しないで，WARファイルのWEB-INF/lib以下に，Webアプリケーションで使用するすべてのJARファイルを格納してください。

なし

add.library.path※1
なし
JNI用の共有ライブラリを指定します。コンテナ拡張ライブラリがJNIを利用する場合だけ指定します。
－

web.server.corefilenum（UNIX用）
独自
Webコンテナサーバ再起動時に残すcoreファイルの数を0～16の整数で指定します。なお，このキーは，UNIX用です。
次に示す対象coreファイルのうち，作成日時が新しいのものから指定した数のファイルを残し，それ以外のファイルは削除されます。通常はWebコンテナサーバダウン時に出力するcoreファイル数の1を指定します。

対象coreファイル

/opt/Cosminexus/CC/web/containers/<サーバ名称>/core*

再起動時にすべてのcoreファイルを削除する場合は，0を指定します。

手動による運用またはManagement Serverを使用する場合は，1以上を指定します。

対象coreファイルのうち，上書き，または削除される可能性のあるcoreファイルについては再起動時にリネームされます。

Linux（プロセスID付きの設定）の場合

core.<core生成プロセスID> → core.<core生成プロセスID>.<coreファイル作成日時>

上記以外の場合

core → core.<coreファイル作成日時>

<coreファイル作成日時>の形式は，yymmddHHMMSSです。
なお，coreファイルのリネーム，または削除に失敗した場合はメッセージKDJE40047-Eを出力し，Webコンテナサーバ起動処理を中止して異常終了します。
また，次のことに注意してください。

対象coreファイルと同じ名称のファイルを作成した場合は削除されます。

coreファイルの削除はWebコンテナサーバ再起動時に処理されるため，再起動するまでは定義数以上のcoreファイルが出力されている場合があります。

定義数+n分のcoreファイルが残るためディスク容量に注意してください（n:再起動されるまでにWebコンテナサーバが出力するcoreファイル数）。

1

web.server.log.directory
独自
指定されているディレクトリをログファイル※2の出力先として使用します。パス長は，1～200バイトで指定します。Windowsの場合，UNC名を含むパスは指定できません。UNIXの場合，nfsマウントされたディスク上へのパスは指定できません。
このキーを指定する場合，サーバ開始前にログ出力先ディレクトリを作成してください。存在しないディレクトリが指定された場合は，J2EEサーバまたはWebコンテナサーバ開始時にKDJE40024-Eのメッセージが出力され，異常終了します。
ほかのJ2EEサーバやWebコンテナサーバとログ出力先が，同じディレクトリにならないように注意してください。同じディレクトリを指定した場合，動作は保証されません。
なお，このキーを指定して，デフォルトの出力先以外にログを出力する場合，変更先ディレクトリ下のログファイルはサーバをアンセットアップする時に削除されません。ログファイルを削除したい場合には，手動で削除してください。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs

web.server.log.stdout.filesize
独自
cjstdout.logファイルのサイズの上限値を4096～2147483647​の範囲（単位：バイト）の整数で指定します。
1048576​

web.server.log.stderr.filesize
独自
cjstderr.logファイルのサイズの上限値を4096～2147483647​の範囲（単位：バイト）の整数で指定します。
1048576​

jvm.type
なし
使用するJavaVMのタイプを指定します。
－

（凡例）

あり：

Webコンテナサーバ用usrconf.cfgファイルのキーとJ2EEサーバ用usrconf.cfgファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.cfgファイルとJ2EEサーバ用usrconf.cfgファイルで共通のキーです。キーの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

独自：

Webコンテナサーバ用usrconf.cfgファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.cfgファイルとJ2EEサーバ用usrconf.cfgファイルで共通のデフォルト値です。デフォルト値の詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.3　usrconf.cfg（J2EEサーバ用オプション定義ファイル）」を参照してください。

注※1

cjstartsvコマンドまたはcjstartwebコマンド実行時，add.library.pathとOSの環境変数（LIBPATHなど）の両方が設定されている場合，add.library.pathの設定が優先されます。

注※2

次に示すログファイルが変更の対象になります。

ログの種類
内容
ログ取得ディレクトリおよびログファイル名

メッセージログ
稼働ログ

Windowsの場合
<web.server.log.directoryキーの値>¥cjweb_message?.logs

UNIXの場合
<web.server.log.directoryキーの値>/cjweb_message?.logs

ログ稼働ログ

Windowsの場合
<web.server.log.directoryキーの値>¥cjlogger.log

UNIXの場合
<web.server.log.directoryキーの値>/cjlogger.log

ユーザログ
Webサーブレットログ

Windowsの場合
<web.server.log.directoryキーの値>¥web_servlet?.log

UNIXの場合
<web.server.log.directoryキーの値>/web_servlet?.log

ユーザ出力ログ

Windowsの場合
<web.server.log.directoryキーの値>¥user_out?.log

UNIXの場合
<web.server.log.directoryキーの値>/user_out?.log

ユーザエラーログ

Windowsの場合
<web.server.log.directoryキーの値>¥user_err?.log

UNIXの場合
<web.server.log.directoryキーの値>/user_err?.log

JavaVMの保守情報およびGCのログ

Windowsの場合
<web.server.log.directoryキーの値>¥javalog??.log

UNIXの場合
<web.server.log.directoryキーの値>/javalog??.log

保守用ログ
保守情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjweb_maintenance?.log

UNIXの場合
<web.server.log.directoryキーの値>/cjweb_maintenance?.log

障害発生時の例外情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjweb_exception?.log

UNIXの場合
<web.server.log.directoryキーの値>/cjweb_exception?.log

Webコンテナの保守情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjwebcontainer?.log

UNIXの場合
<web.server.log.directoryキーの値>/cjwebcontainer?.log

終了プロセス情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjweb_shutdown?.log

UNIXの場合
<web.server.log.directoryキーの値>/cjweb_shutdown?.log

起動プロセス標準出力情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjstdout.log

UNIXの場合
<web.server.log.directoryキーの値>/cjstdout.log

起動プロセス標準出力情報バックアップ

Windowsの場合
<web.server.log.directoryキーの値>¥cjstdout_save.log

UNIXの場合
<web.server.log.directoryキーの値>/cjstdout_save.log

起動プロセス標準エラー情報

Windowsの場合
<web.server.log.directoryキーの値>¥cjstderr.log

UNIXの場合
<web.server.log.directoryキーの値>/cjstderr.log

起動プロセス標準エラー情報バックアップ

Windowsの場合
<web.server.log.directoryキーの値>¥cjstderr_save.log

UNIXの場合
<web.server.log.directoryキーの値>/cjstderr_save.log

Webコンテナ保守用トレースログ

Windowsの場合
<web.server.log.directoryキーの値>¥cjweb_access?.log

UNIXの場合
<web.server.log.directoryキーの値>/cjweb_access?.log

TPBrokerのトレース
TPBrokerのトレース情報

Windowsの場合
<web.server.log.directoryキーの値>¥TPB 配下

UNIXの場合
<web.server.log.directoryキーの値>/TPB 配下

(5)　WebコンテナサーバでのJavaVMオプションのデフォルト値

WebコンテナサーバでのJava VMオプションのデフォルト値を示します。

-Xms128m

-Xmx256m

-XX:MetaspaceSize=64m

-XX:MaxMetaspaceSize=64m

-XX:SurvivorRatio=8

-XX:+HitachiOutOfMemoryStackTrace

-XX:HitachiJavaLog:<web.server.log.directoryの指定値>

-XX:HitachiJavaLogFileSize=4m

-XX:-HitachiThreadDumpToStdout

-XX:+HitachiOutOfMemoryAbort

-XX:+HitachiVerboseGC

-XX:+HitachiVerboseGCPrintCause

-XX:+HitachiOutputMilliTime

-XX:+HitachiJavaClassLibTrace

-XX:HitachiJavaClassLibTraceLineSize=1024

-XX:+HitachiLocalsSimpleFormat

-XX:+HitachiTrueTypeInLocals

-XX:+HitachiLocalsInStackTrace

(6)　記述例

Windowsの場合

#java vm options
add.jvm.arg=-Xms128m
add.jvm.arg=-Xmx256m
add.jvm.arg=-XX:MetaspaceSize=64m
add.jvm.arg=-XX:MaxMetaspaceSize=64m
add.jvm.arg=-XX:+HitachiVerboseGC
add.jvm.arg=-XX:HitachiVerboseGCIntervalTime=600

# system classes
web.add.class.path=c:¥mylib¥classes

# ADM service

# web.server.log.directory
web.server.log.directory=c:¥worklogdir

UNIXの場合

#java vm options
add.jvm.arg=-Xms128m
add.jvm.arg=-Xmx256m
add.jvm.arg=-XX:MetaspaceSize=64m
add.jvm.arg=-XX:MaxMetaspaceSize=64m
add.jvm.arg=-XX:+HitachiVerboseGC
add.jvm.arg=-XX:HitachiVerboseGCIntervalTime=600

# system classes
web.add.class.path=/opt/mylib/classes

# web.server.log.directory
web.server.log.directory=/CClogs/web/servername

# web.server.corefilenum
web.server.corefilenum=3

(7)　注意事項

コマンドプロンプトで設定されているCLASSPATH環境変数は，Webコンテナサーバに渡りませんが，そのほかの環境変数（PATHなど）は渡ります。

OSのロケールと異なる文字エンコーディングで記述しないでください。また，OSのロケールにUTF-8を使用する場合，BOM付きUTF-8では記述しないでください。

usrconf.propertiesとusrconf.cfgのadd.jvm.argの-Dに同じキーが指定されている場合は，usrconf.propertiesの値が優先されます。

3.11.3　usrconf.properties（Webコンテナサーバ用ユーザプロパティファイル）

＜この項の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　Webコンテナサーバの予約済みキー

(5)　Webコンテナサーバのカスタマイズ用キー

(6)　記述例

(1)　形式

J2SEのプロパティファイル形式です。

次のようにキーを指定します。

<キー名称> = <値>

指定方法

改行までが値になります。

#で始まる行はコメントとみなされます。

値が存在しない行を定義した場合，その行は無視されます。

値の後ろには，空白やコメントなどの文字列は追加できません。追加した場合，不正な値と解釈されます。
（例）　<キー名称> = <値> #<コメント>

記載する文字はJavaの仕様に従って，ISO 8859-1 文字エンコーディングを使用してください。

Javaの仕様に従わない形式の場合，Webコンテナサーバの起動に失敗することがあります。
（例）不正なUnicodeエスケープシーケンスを含む場合（"¥u"に続く文字列が適切なUnicode 16進数の値ではない）。

(2)　ファイルの格納先

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/

(3)　機能

Webコンテナサーバ全体でのシステムプロパティを指定します。なお，Webアプリケーション個別の定義は，WEB-INF/hitachi_web.propertiesで指定します。usrconf.propertiesとWEB-INF/hitachi_web.propertiesで同じキーが指定されている場合は，WEB-INF/hitachi_web.propertiesの値が優先されます。また，usrconf.propertiesとusrconf.cfgのadd.jvm.argの-Dに同じキーが指定されている場合は，usrconf.propertiesの値が優先されます。

Webコンテナサーバの稼働中に，このファイルの内容を変更した場合，変更した内容は，次回Webコンテナサーバを起動したときに反映されます。

(4)　Webコンテナサーバの予約済みキー

usrconf.properties内では，ユーザが独自のキーを新たに定義することもできます。定義されたキーは，java.util.Propertiesクラスを使用することで，Webアプリケーション内で値を取り出せます。ただし，Webコンテナサーバでは，次に示す接頭子で始まるキーを内部的に利用するため，アプリケーションでこれらの接頭子で始まるキーを利用してはいけません。

ejbserver.*

webserver.*

appclient.*

j2eeserver.*

(5)　Webコンテナサーバのカスタマイズ用キー

Webコンテナサーバでは，次に示すシステムプロパティのキーに値を設定することで，Webコンテナサーバの動作をカスタマイズできます。このキーに不正な値を指定した場合，動作は保証されません。

ここでは，キーを次の分類に分けて説明します。

ejbserver.applicationから始まるキー

ejbserver.clientから始まるキー

ejbserver.containerから始まるキー

ejbserver.jndiから始まるキー

ejbserver.jtaから始まるキー

ejbserver.loggerから始まるキー

ejbserver.rmiから始まるキー

ejbserver.serverから始まるキー

ejbserver.stdoutlogから始まるキー

javaから始まるキー

vbrokerから始まるキー

webserver.connectorから始まるキー

webserver.containerから始まるキー

webserver.contextから始まるキー

webserver.errorpageから始まるキー

webserver.httpから始まるキー

webserver.jspから始まるキー

webserver.servletから始まるキー

webserver.sessionから始まるキー

webserver.shutdownから始まるキー

webserver.staticから始まるキー

webserver.workから始まるキー

webserver.xmlから始まるキー

ポイント

ここでは，次の内容について説明します。

Webコンテナサーバ用usrconf.propertiesファイルで指定できるキーの概要
指定できるキーのうち，J2EEサーバ用usrconf.propertiesファイルと共通のキーについては，ここでは詳細を説明しません。
共通のキーの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。Webコンテナサーバの場合には，「J2EEサーバ」，「J2EEアプリケーション」を「Webコンテナサーバ」，「Webアプリケーション」と読み替えてください。
なお，J2EEサーバ用のキーと指定内容が異なる場合には，ここでキーの詳細についても説明します。

J2EEサーバ用のキーとの差異（J2EEサーバ用usrconf.propertiesファイルのキーと指定内容が異なる場合）
Webコンテナサーバ用のキーとJ2EEサーバ用のキーの指定内容が異なる場合には，キーの詳細について説明します。差異の有無は「差異」列に表記します。

Webコンテナサーバ用usrconf.propertiesファイル独自のキーの詳細
Webコンテナサーバ用usrconf.propertiesファイル独自のキーについては，ここでキーの詳細を説明します。

(a)　ejbserver.applicationから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.applicationから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

ejbserver.application.InitTermProcessClasses
なし
コンテナ拡張ライブラリを使用する場合に，サーバ起動・停止フックのクラス名を指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.appname
なし
AppNameのフィールドに出力するデフォルトのアプリケーション名を指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.count
なし
ログファイルの面数を指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.encoding
なし
出力する文字列のエンコーディングを指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.filter
なし
使用するフィルタを指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.formatter
なし
使用するフォーマッタを指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.level
なし
ログの取得レベルの上限を指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.limit
なし
ログファイルの容量（単位：バイト）を指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.msgid
なし
MsgIDのフィールドに出力するデフォルトのメッセージIDを指定します。
－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.path
あり
ログファイル名のプリフィックスを1～255バイトの範囲で指定します。パスは，相対パスで指定します※2。なお，パス名の終端に，半角数値を指定しないでください。
ここで指定したプリフィックスに"xx（1～16の整数）.log"が付加された値が，トレース情報ファイルの名称になります。
パスに指定された半角英文字の大文字と小文字は区別されません。また，パス値の長さは，次のA+B+Cの値が範囲に収まるよう指定してください。

A（Windowsの場合）：<ログ出力先ルート(web.server.log.directoryの値)>¥user¥（デフォルトは<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥user¥）

A（UNIXの場合）：<ログ出力先ルート(web.server.log.directoryの値)>/user/（デフォルトは/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/user/）

B：ユーザの指定したプリフィックスの長さ

C："xx.log"の6文字

このほか，パスを指定するときには次の点に注意してください。

Propertiesファイルにはnativeの2バイトコードなどは使用できないため，native2asciiなどを利用してUnicodeの文字列を取得して指定してください。

絶対パスで指定しないでください。また，相対パスの"..¥"（UNIXの場合，"../"）は使用しないでください。

パスに日本語文字などを含む場合は，その文字を処理できるロケール設定がされている環境下でJavaVMが動作している必要があります。

パスをほかのハンドラと同一に設定することはできません。そのような設定にした場合，そのハンドラは作成されません。

－

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>※1.separator
なし
CJSimpleFormatterを利用して，1文でメッセージを出力するためのセパレータを指定します。
－

ejbserver.application.userlog.loggers
なし
使用するロガーの名称を指定します。
－

ejbserver.application.userlog.Logger.<ロガー名称>※3.filter
なし
ロガーで使用するフィルタを指定します。
－

ejbserver.application.userlog.Logger.<ロガー名称>※3.handlers
なし
指定のロガー名称に対して接続（addHandler(Handler)）するハンドラクラスを指定します。
－

ejbserver.application.userlog.Logger.<ロガー名称>※3.level
なし
ロガーのログ出力レベルを指定します。
－

ejbserver.application.userlog.Logger.<ロガー名称>※3.useParentHandlers
なし
ログレコードを受け取ったロガーから，親ロガーの接続しているハンドラへログレコードを伝播させるかどうかを指定します。
－

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

注

ユーザログ機能についてのプロパティ定義（ejbserver.application.InitTermProcessClassesキー以外）で使用できるそれぞれの文字セットで指定できる値は，次のとおりです。

クラス文字セット（クラス名の定義に使用する文字セット）
半角英数字（a～z，A～Z，0～9），ピリオド（.），ドル記号（$）およびアンダースコア（_）

半角文字セット
半角英数字（a～z，A～Z，0～9），ピリオド（.），ドル記号（$），アンダースコア（_），ハイフン（-），ストローク（|），コロン（:），アンパサンド（&），単価記号（@），シャープ（#）およびパーセント（%）

指定した値が，使用できる文字セットの条件を満たさない，または指定できる値の範囲を満たさない不正な値の場合は，警告メッセージが出力され，その時点で有効なデフォルトの値が採用されます。その時点で有効なデフォルトの値とは，<ハンドラ名称>=defaultの場合のそのキーの値，または「デフォルト値」欄のデフォルト値を指します。

注※1

ハンドラ名称はプロパティの値を区別するために使用します。半角英数字で始まる1～1024バイトのクラス文字セットで指定してください。"default"を指定した場合は，すべてのCJLogHandlerが共通のデフォルト値として認識するプロパティを示します。

注※2

出力先の起点は，次の規則に従ってください。

<web.server.log.directoryの値>¥userまたは<web.server.log.directoryの値>/user

web.server.log.directoryの値は，web.server.log.directoryの仕様に従ってください。Webコンテナサーバのweb.server.log.directoryのデフォルトの値を次に示します。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<コンテナサーバ名>¥logs¥user¥<ユーザ指定値>

UNIXの場合
/opt/Cosminexus/CC/web/containers/<コンテナサーバ名>/logs/user/<ユーザ指定値>

注※3

ロガー名称は，Logger.getLogger（<ロガー名称>）でロガーのインスタンスを取得するときに指定する"."付きの名称で，あらかじめ，ejbserver.application.userlog.loggersプロパティで宣言する必要があります。ロガー名称については，java.util.logging.Loggerの仕様に従ってください。

半角英数字で始まる1～1024バイトのクラス文字セットで指定してください。"default"を指定した場合は，すべてのCJLogHandlerが共通のデフォルト値として認識するプロパティを示します。

なお，ロガー名称で識別されるプロパティは，ユーザログ機能のロガークラスの初期化で使用されます。

ロガー名称の最後を.handlersで終了させた場合，ejbserver.application.userlog.Logger.<ロガー名称>.handlersのプロパティ指定時に紛らわしくなるため，ロガー名称は".handlers"で終了させないことを推奨します。

(b)　ejbserver.clientから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.clientから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
ejbserver.client.ctm.RequestPriority | なし | CTM内のキューに滞留したリクエストを引き出す時のプライオリティ（優先順位）を指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(c)　ejbserver.containerから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.containerから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
ejbserver.container.rebindpolicy | なし | EJBメソッドの呼び出し時に通信障害が発生した場合の，EJBクライアント側でのコネクションの再接続動作とリクエストの再送動作を指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(d)　ejbserver.jndiから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.jndiから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

ejbserver.jndi.cache
あり
Enterprise Beanを呼び出す場合だけ指定します。
ネーミングでのキャッシングをするかどうかを指定します。
キャッシングをする場合はonを，キャッシングをしない場合はoffを指定します。
－

ejbserver.jndi.cache.interval
あり
Enterprise Beanを呼び出す場合だけ指定します。
ネーミングでのキャッシングをする場合，キャッシュをクリアする間隔（単位：秒）を指定します。
ただし，1～2147483647​以外の値を指定した場合，クリアしません。
ネーミングサービスの障害検知機能を使用している場合は，短い値（60秒）を指定することを推奨します。
－

ejbserver.jndi.cache.interval.clear.option
あり
インターバル経過後のネーミングでのキャッシュ領域に対する動作を決定します。

refreshを指定した場合：

キャッシュの全領域をクリアします。

checkを指定した場合：

無効なキャッシュをクリアします。

－

ejbserver.jndi.cache.reference
なし
DataSourceオブジェクトのキャッシング機能を使用するかどうかを指定します。
－

ejbserver.jndi.namingservice.group.list
なし
ラウンドロビン検索をする場合に，検索対象になる論理ネーミングサービスのグループを定義します。
－

ejbserver.jndi.namingservice.group.<Specify group name>.providerurls
なし
各グループに属するネーミングサービスのルート位置を指定します。
－

ejbserver.jndi.request.timeout
なし
ネーミングサービスとの通信タイムアウト時間（単位：秒）を指定します。
－

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(e)　ejbserver.jtaから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.jtaから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

ejbserver.jta.pooldeffile.scramble.enabled
独自
DDファイルをスクランブル化するかどうかを指定します。

trueを指定した場合：

スクランブル化します。

falseを指定した場合：

スクランブル化しません。

false

（凡例）

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

(f)　ejbserver.loggerから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.loggerから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

ejbserver.logger.channels.define.<チャネル名>※.filenum
なし
Webコンテナサーバのログファイルの面数を指定します。

チャネル名がWebAccessLogFileの場合
16

チャネル名がWebExceptionLogFileまたはWebServletLogFileの場合
4

チャネル名が上記以外の場合
2

ejbserver.logger.channels.define.<チャネル名>※.filesize
なし
Webコンテナサーバのログファイルのサイズ（単位：バイト）を指定します。

チャネル名がWebAccessLogFileの場合
2097152​

チャネル名がWebExceptionLogFileの場合
12582912​

チャネル名がWebServletLogFileの場合
4194304​

チャネル名が上記以外の場合
1048576​

ejbserver.logger.enabled.*
なし
Webコンテナサーバのログレベルを指定します。
Error

ejbserver.logger.rotationTime
なし
J2EEサーバのログの出力先ファイルを切り替える時刻をHHMMSSの形式で指定します。
指定がない場合は，ログのファイルサイズで出力先を切り替えます。
なお，このキーを指定した場合も，ファイルサイズの指定は有効になります。このキーに指定した時刻になったとき，または出力先ファイルが指定したファイルサイズになったときに，出力先ファイルが切り替わります。
なし

ejbserver.logger.rotationStyle
なし
J2EEサーバのログの出力先ファイル切り替え時のファイル名付与規則を指定します。

SHIFTを指定した場合：

シフトモードでファイル名を付与します。

ファイルの合計数は，指定した出力先ファイル面数＋1（現在の出力先ファイル分）となります。

WRAPを指定した場合：

ラップアラウンドモードでファイル名を付与します。

WRAP

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

注※

チャネル名称として次に示す名称を設定できます。

WebMessageLogFile，WebMaintenanceLogFile，WebExceptionLogFile，WebContainerLogFile，WebShutdownLogFile，WebServletLogFile，UserOutLogFile，UserErrLogFile，WebAccessLogFile

資料の取得については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「2.3　資料の取得」を参照してください。

(g)　ejbserver.rmiから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.rmiから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
ejbserver.rmi.request.timeout | なし | クライアントとサーバ間の通信タイムアウト時間（単位：秒）を指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(h)　ejbserver.serverから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.serverから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
ejbserver.server.prf.PRFID | なし | PRF識別子を指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(i)　ejbserver.stdoutlogから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるejbserver.stdoutlogから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
ejbserver.stdoutlog.autoflush | なし | ユーザ出力ログおよびユーザエラーログの自動フラッシュ機能を有効にするかどうかを指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(j)　javaから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるjavaから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

java.naming.factory.initial
なし
JNDIのInitialContextがデレゲートするコンテキストの実装クラスのファクトリクラスを指定します。
－

java.naming.provider.url
独自
Enterprise Beanを呼び出す場合だけ
J2EEサーバ上のEJBコンテナと通信する場合，CORBAネーミングサービスのホスト名称とポート番号を指定します。このCORBAネーミングサービスは，Webコンテナサーバから呼び出されるJ2EEサーバがネーミングサービスとして利用しているものです。
corbaname::localhost:900

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(k)　vbrokerから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるvbrokerから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

vbroker.orb.htc.comt.entryCount
なし
TPBroker通信トレースファイル1個当たりのエントリ数の上限値を指定します。
－

vbroker.orb.htc.comt.fileCount
なし
TPBroker通信トレースファイルの個数の上限値を指定します。
－

vbroker.orb.htc.tracePath
なし
TPBrokerのトレースファイル出力先のパスを指定します。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥logs¥TPB¥logj

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs/TPB/logj

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(l)　webserver.connectorから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.connectorから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.connector.ajp12.backlog
なし
旧バージョンとの互換性を保つためのキーです。
webserver.connector.ajp13.backlogとして使用されます。指定できる値については，webserver.connector.ajp13.backlogキーの説明を参照してください。
このキーとwebserver.connector.ajp13.backlogの両方が指定されていた場合，このキーの値が使用されます。
－

webserver.connector.ajp12.max_threads
なし
旧バージョンとの互換性を保つためのキーです。
webserver.connector.ajp13.max_threadsとして使用されます。指定できる値については，webserver.connector.ajp13.max_threadsキーの説明を参照してください。
このキーとwebserver.connector.ajp13.max_threadsの両方が指定されていた場合，このキーの値が使用されます。
1025以上の値が設定されていた場合，webserver.connector.ajp13.max_threadsのデフォルト値の100が使用されます。
－

webserver.connector.ajp12.port
なし
旧バージョンとの互換性を保つためのキーです。
webserver.connector.ajp13.portとして使用されます。指定できる値については，webserver.connector.ajp13.portキーの説明を参照してください。
このキーとwebserver.connector.ajp13.portの両方が指定されていた場合，このキーの値が使用されます。
－

webserver.connector.ajp13.backlog
なし
リダイレクタからの接続要求の最大の待ち行列数を指定します。※1　
－

webserver.connector.ajp13.bind_host
なし
Webサーバ連携で使用するIPアドレスまたはホスト名称を指定します。※2
－

webserver.connector.ajp13.max_threads
あり
Webコンテナがリクエストを処理する同時実行数を指定します。※3
1～1024の整数で指定します。
指定されたリクエストの同時実行数分のスレッドがサーバ起動時に生成されます。
－

webserver.connector.ajp13.port
なし
Webサーバとの通信に使用するポート番号を指定します。※4
－

webserver.connector.ajp13.receive_timeout
なし
リクエスト受信処理のリダイレクタへのデータ要求処理で，リダイレクタからの応答を待つ時間（通信タイムアウト値）を指定します。
－

webserver.connector.ajp13.send_timeout
なし
レスポンス送信処理のタイムアウト値を指定します。
－

webserver.connector.http.bind_host
なし
簡易Webサーバで使用するローカルIPアドレス，または解決できるローカルホスト名称を指定します。
－

webserver.connector.http.enabled
独自
簡易Webサーバを使用するかどうかを指定します。

trueを指定した場合：

簡易Webサーバを有効にします。

falseを指定した場合：

簡易Webサーバを無効にします。

新規インストールの場合：
false

バージョンアップインストールの場合：
true

webserver.connector.http.permitted.hosts
なし
簡易Webサーバへのアクセスを許可するホストのIPアドレスまたはホスト名を指定します。
－

webserver.connector.http.port
独自
簡易Webサーバのポート番号を1～65535の整数で指定します。※4
8080

webserver.connector.limit.max_parameter_count
なし
リクエストパラメタ数の上限値を-1～2147483647​の整数で指定します。
－

webserver.connector.limit.max_post_form_data
なし
POSTリクエストのフォームデータ(Content-Typeヘッダの値がapplication/x-www-form-urlencodedの場合のPOSTデータ)の最大サイズ（単位：バイト）を-1～2147483647​の整数で指定します。
2097152​

webserver.connector.redirect_https.port
なし
Webサーバが使用しているHTTPSのポート番号を指定します。※4
－

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

注※1

有効な最大値は実行するプラットフォームで指定できるSocketのListenキューの最大値となります。実際のListenキューの最大値はOSによって異なるため，詳細は各OSのlisten関数についてのマニュアルを参照してください。

注※2

同一ホストで実行しているWebサーバとWebサーバ連携をしている構成の場合に，このプロパティにローカルホスト名称，またはIPアドレスを指定し，リダイレクタのワーカホスト名称にlocalhostなどのループバックアドレスを指定したとき，WebコンテナはWebサーバからのリクエストを受信できません。

注※3

有効な最大値は実行するプラットフォームに依存します。

また，Webサーバに到着するリクエストの一部がWebコンテナに転送されるため，Webコンテナの同時実行数はWebサーバの最大同時接続数より小さく設定する必要があります。なお，データベース操作をするサーブレットやJSPについては，データベースコネクションの数よりも多くの多重度は得られないため，Webコンテナの同時実行数を増やす場合は，利用できるデータベースコネクションの数も増やす必要があります。

性能のチューニング時には，次に示す関係を常に考慮して，各パラメタの値を調整してください。

<Webサーバの最大同時接続数> ≧ <Webコンテナ単位の最大同時実行スレッド数> ≧ <データベースコネクションの数>

Webサーバでの処理の同時接続数についてはWebサーバのマニュアル，データベースコネクションについてはDABroker Libraryのドキュメントを参照してください。

注※4

すでにほかのアプリケーションで使用または確保されているポート番号は指定できません。また，複数のWebコンテナサーバでWebサーバとの通信に使用するポートのポート番号に同じ値を設定しないでください。同一のポート番号を指定したWebコンテナサーバはcjstartwebコマンドで複数起動できません。

(m)　webserver.containerから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.containerから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
webserver.container.ac.logEnabled | なし | Webコンテナの保守用のトレースログを出力するかどうかを指定します。 | －
webserver.container.server_id.enabled | なし | サーバIDのCookieをHTTPレスポンスに付加するかどうかを指定します。 | －
webserver.container.server_id.name | なし | サーバIDのCookieをHTTPレスポンスに付加する場合に，Cookieの名前を指定します。 | －
webserver.container.server_id.value | なし | サーバIDのCookieをHTTPレスポンスに付加する場合に，Cookieの値を指定します。 | Webコンテナを実行するホストのIPアドレスとWebサーバとの通信に使用するポート番号から生成する文字列
webserver.container.servlet.default_mapping.enabled | なし | サーブレットのデフォルトマッピングを有効にするかどうかを指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(n)　webserver.contextから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.contextから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.context.check_interval
独自
Webアプリケーションの更新検知インターバルを1～2147483647​の範囲（単位：秒）の整数で指定します。
Webアプリケーションのリロード機能が無効の場合，このプロパティは設定できません。設定した場合無視されます。
数値以外の文字列，範囲外の数値または空文字列を指定した場合はメッセージを出力し，デフォルト値が設定されます。
1

webserver.context.reload_delay_timeout
独自
Webアプリケーションのリロードの遅延実行機能を使用するかどうかを指定します。
Webアプリケーションのリロード機能が無効の場合，このプロパティは設定できません。設定した場合無視されます。
リロードの遅延実行機能を使用するかどうかは，-2147483648​～2147483647​の整数で指定します。

リロードの遅延実行機能を使用し，最大遅延期間（単位：秒）を設定する場合は，1以上の整数で指定します。

リロードの遅延実行機能を使用し，最大遅延期間（単位：秒）を設定しない場合は，負の整数を指定します。

リロードの遅延実行機能を使用しない場合は，0を指定します。

0

webserver.context.reloadable
独自
Webアプリケーションのクラスファイルの更新を自動検知するかどうかを指定します。

trueを指定した場合：

更新を自動検知します。

falseを指定した場合：

更新を自動検知しません。

false

webserver.context.update.interval
独自
更新するファイルのコピーに必要な時間のインターバルを0～2147483647​の範囲（単位：秒）の整数で指定します。なお，インターバルは余裕のある値にしてください。リソースの更新を検知してから指定したインターバルのあとに，処理中リクエストの監視が開始されます。
Webアプリケーションのリロード機能が無効の場合，このプロパティは設定できません。設定した場合無視されます。
数値以外の文字列や範囲外の数値を指定した場合はメッセージを出力し，デフォルト値が設定されます。
0

（凡例）

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

(o)　webserver.errorpageから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.errorpageから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
webserver.errorpage.stack_trace.enabled | なし | 例外発生時，デフォルトのエラーページにスタックトレースを出力するかどうかを指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(p)　webserver.httpから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.httpから始まるキーについて次に示します。

キー名称
差異
内容
デフォルト値

webserver.http.request.uri_decode.enabled
なし
サーブレットパスおよび追加のパス情報をデコードするかどうかを指定します。

trueを指定した場合：

デコードします。

falseを指定した場合：

デコードしません。

false

(q)　webserver.jspから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.jspから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.jsp.additional.import.list
なし
JSPコンパイル時に暗黙にインポートしたいクラス名（完全修飾名のクラス名または，「パッケージ名.*」）を指定します。複数のクラス名を指定する場合は，クラス名とクラス名の間をコンマ（,）で区切ります。存在しないクラス名や，クラスパスの通っていないクラス名など不正な値を指定した場合，メッセージを出力し，コンパイルエラーになります。
なし

webserver.jsp.check_interval
なし
JSPの更新検知インターバルを0～2147483647​の範囲（単位：秒）の整数で指定します。
0を指定した場合，更新の自動検知は行われません。
1

webserver.jsp.compile.backcompat
なし
JSPから生成されたサーブレットのjavaソースのコンパイル時に，javaソースコードのバージョンを指定します。
－

webserver.jsp.keepgenerated
あり
JSPファイルのコンパイルで生成されたjavaファイルを保持するかどうかを指定します。
次の値を指定します。

trueを指定した場合：

javaファイルを保持します。

falseを指定した場合：

javaファイルを保持しません。

－

webserver.jsp.recompilable
独自
JSPファイルが更新されたときに自動的に再コンパイルするかどうかを指定します。

trueを指定した場合：

自動的に再コンパイルします。

falseを指定した場合：

自動的に再コンパイルしません。

false

webserver.jsp.translation.backcompat.customAction.declareVariable
なし
複数のカスタムタグで，スクリプト変数名とスクリプト変数のスコープが重複する場合，JSPファイルから生成されたJavaコードで2回目のカスタムタグに対応するスクリプト変数の変数宣言を出力するかどうかを指定します。
－

webserver.jsp.translation.backcompat.taglib.noCheckPrefix
なし
taglibディレクティブの前に，taglibディレクティブで指定したprefixを使用したカスタムタグを記述しているかチェックするかどうかを指定します。
－

webserver.jsp.translation.backcompat.tag.noCheckRtexprvalue
なし
Expressionが指定できないタグの属性値にExpressionが指定されているかどうか検証するかどうかを指定します。
－

webserver.jsp.translation.backcompat.tag.rtexprvalueTerminate
なし
タグの属性値が，「"<%=」（または「'<%=」）で開始しており，「%>"」(「'<%」で開始した場合は「%>'」)で終了していない属性値の「"」(または「'」) で囲まれた値を文字列として扱うかどうかを指定します。
－

webserver.jsp.translation.backcompat.useBean.noCheckClass
なし
JSPトランスレーション時に<jsp:useBean>タグのクラス属性値のチェック処理を実行するかどうかを指定します。
－

webserver.jsp.update.interval
独自
JSPのリロード監視対象ファイルのコピーに必要な時間のインターバルを0～2147483647​の範囲（単位：秒）の整数で指定します。
なお，インターバルは余裕のある値にしてください。JSPファイルの更新を検知してから指定したインターバルのあとに，JSPの再コンパイルが実行されます。
JSPの再コンパイル機能が無効の場合，このプロパティは設定できません。設定した場合無視されます。
数値以外の文字列や範囲外の数値を指定した場合はメッセージを出力し，デフォルト値が設定されます。
0

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(r)　webserver.servletから始まるキー

webserver.servletから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.servlet_api.exception.getCause.backcompat
なし
javax.servlet.ServletExceptionのコンストラクタServletException（String, Throwable）およびServletException（Throwable）で指定した根本原因の例外をgetCause()により取得できないようにします。
同様にjavax.servlet.jsp.JspExceptionのコンストラクタJspException（String, Throwable）およびJspException（Throwable）で指定した根本原因の例外をgetCause()により取得できないようにします。

trueを指定した場合：

根本原因の例外を取得できません。

falseを指定した場合：

根本原因の例外を取得できます。

－

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(s)　webserver.sessionから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.sessionから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.session.persistence.enabled
独自
リロード時のセッション継続機能を使用するかどうかを指定します。

trueを指定した場合：

セッション継続機能は有効になります。

falseを指定した場合：

セッション継続機能は無効になります。

Webアプリケーションのリロード機能が無効の場合，このプロパティは設定できません。設定した場合無視されます。なお，このプロパティはサーブレットエンジンモードでだけ有効です。
false

webserver.session.server_id.enabled
なし
セッションIDにサーバIDを付加するかどうかを指定します。
－

webserver.session.server_id.value
なし
セッションIDに付加するサーバIDを指定します。
Webコンテナを実行するホストのIPアドレスとWebサーバとの通信に使用するポート番号から生成する文字列

webserver.session.work.directory
独自
セッション情報ファイルの出力先ディレクトリを絶対パスで指定します。
指定したディレクトリにはWebアプリケーション単位にコンテキストルート名のディレクトリを作成し，作成したディレクトリ下にセッション情報ファイルを作成します。
作成したセッション情報ファイルは，リロード処理完了後に削除されます。webserver.session.work.clean=falseが設定されている場合は削除されません。
このプロパティを設定する場合，サーバ単位で出力先が重複しないように注意してください。
リロード時のセッション継続機能が無効の場合，このプロパティは設定できません。なお，このプロパティはサーブレットエンジンモードでだけ有効です。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥work

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/work

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(t)　webserver.shutdownから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.shutdownから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.shutdown.port
独自
Webコンテナが終了用のメッセージを受信するために使用するポートを指定します。※
1～65535の整数で指定します。
8005

（凡例）

独自：

Webコンテナサーバ用usrconf.propertiesファイル固有のキーです。キーの詳細については，「内容」の列を参照してください。

注※

すでにほかのアプリケーションで使用，または確保されているポート番号は指定できません。また，複数のWebコンテナサーバでWebサーバとの通信に使用するポートのポート番号に同じ値を設定しないでください。同一のポート番号を指定したWebコンテナサーバはcjstartwebコマンドで複数起動できません。

(u)　webserver.staticから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.staticから始まるキーを次に示します。

キー名称 | 差異 | 内容 | デフォルト値
webserver.static_content.cache.enabled | なし | 静的コンテンツキャッシュ機能の有効／無効／強制的な無効を指定します。 | －
webserver.static_content.cache.size | なし | 静的コンテンツキャッシュ機能が有効な場合，メモリにキャッシュできるサイズ（単位：バイト）の上限を指定します。 | －
webserver.static_content.cache.filesize.threshold | なし | 静的コンテンツキャッシュ機能が有効な場合，キャッシュできるファイルサイズ（単位：バイト）を指定します。 | －

（凡例）

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(v)　webserver.workから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.workから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.work.clean
なし
JSP用テンポラリディレクトリ下に生成したディレクトリをサーバ起動時，および終了時に削除するかどうかを指定します。
－

webserver.work.directory
あり
JSP用一時ディレクトリを指定します。絶対パスによるディレクトリ名を指定します。※

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥work

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/work

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

なし：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のキーです。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

注※

ディレクトリのパスの区切り記号には，"/"を使用してください。例えば，workディレクトリとしてC:¥temp¥workを設定する場合，次のように指定します。

webserver.work.directory=c:/temp/work

また，使用するOSによってファイル名長に制限があります。Windowsでは250バイト程度となっています。このため，ディレクトリ階層の深い場所でサーブレットやJSPを実行できません。特にJSPファイルから生成されるファイル名はWebアプリケーションで配置されたディレクトリ階層の深さに比例して長くなり，JSPファイルに対するJavaファイルを生成できないことがあります。これを回避するためにはWebアプリケーションの配置ディレクトリの階層を浅くしたり，プロパティwebserver.work.directoryに絶対パスで浅いディレクトリ階層を指定したりすることで回避してください。Application Serverの作業ディレクトリについては，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「付録C.1　J2EEサーバの作業ディレクトリ」を参照してください。

(w)　webserver.xmlから始まるキー

Webコンテナサーバ用usrconf.propertiesファイルで指定できるwebserver.xmlから始まるキーを次に示します。

キー名称
差異
内容
デフォルト値

webserver.xml.validate
あり
Servlet 2.2，およびServlet 2.3のWebアプリケーションについて，デプロイメント・ディスクリプタ（web.xmlファイル），およびタグライブラリ・ディスクリプタ（TLDファイル）が，DTDで記述されたスキーマに沿って記述されているかチェックするかどうかを指定します。
次の値を指定します。

trueを指定した場合：

サーブレットエンジンモードのときは，Webアプリケーションのデプロイメント・ディスクリプタ（web.xmlファイル），およびタグライブラリ・ディスクリプタ（TLDファイル）がDTDで記述されたスキーマに沿って書かれているかどうかをチェックします。

falseを指定した場合：

チェックしません。

－

（凡例）

あり：

Webコンテナサーバ用usrconf.propertiesファイルのキーとJ2EEサーバ用usrconf.propertiesファイルのキーに差異があります。詳細については，「内容」の列を参照してください。

－：

Webコンテナサーバ用usrconf.propertiesファイルとJ2EEサーバ用usrconf.propertiesファイルで共通のデフォルト値です。

(6)　記述例

ejbserver.logger.enabled.*=Error,Warning,Information,Debug
ejbserver.logger.channels.define.WebMessageLogFile.filenum=2
ejbserver.logger.channels.define.WebMessageLogFile.filesize=1048576

ejbserver.application.InitTermProcessClasses=InitTermClass1,InitTermClass2

webserver.connector.http.enabled=false
webserver.connector.http.port=8080
webserver.shutdown.port=8005
webserver.connector.ajp13.port=8007
webserver.connector.ajp13.max_threads=10
webserver.connector.ajp13.backlog=100
webserver.connector.ajp13.receive_timeout=600
webserver.work.directory=c:/work

3.11.4　web-users.xml（ユーザ認証情報定義ファイル）

＜この項の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　指定できる属性

(5)　記述例

(1)　形式

XML1.0形式です。

(2)　ファイルの格納先

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/

(3)　機能

各ユーザのユーザ名，パスワード，および所属するロールを記述します。このファイルに不正な値を設定した場合，動作は保証されません。

(4)　指定できる属性

属性の指定形式

<web-users>
 <user name="ユーザ名" password="パスワード" roles="ロール名"/>
 <user name=・・・/>
</web-users>

属性の説明

name

ユーザのログイン名を記述します。

password

ユーザのパスワードを記述します。

roles

ユーザの所属するロールを記述します。コンマで区切ることで，複数のロールを定義できます。

(5)　記述例

<web-users>
 <user name="admin" password="admin" roles="admin"/>
</web-users>

3.11.5　web.policy（SecurityManager定義ファイル）

＜この項の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　記述例

(5)　注意事項

(1)　形式

J2SEのプロパティファイル形式です。

(2)　ファイルの格納先

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥containers¥<サーバ名称>¥usrconf¥

UNIXの場合
/opt/Cosminexus/CC/web/containers/<サーバ名称>/usrconf/

(3)　機能

SecurityManagerを設定します。SecurityManager設定ファイルによって，Java 2から導入されたセキュリティポリシーに基づくWebコンテナの実行時保護をします。例えば，次に示す現象を防止します。

内部でSystem.exit()などを発行するような，不正なサーブレット，JSPによって，Webコンテナ全体が勝手に終了する。

システムプロパティなどを勝手に書き替えるような，不正なサーブレット，JSPによって，Webコンテナの実行に不具合が生じる。

なお，cjstartwebコマンドに，-securityオプションを付けることで，Webコンテナ実行時保護機能が有効になります。また，このファイルに不正な値を設定した場合，動作は保証されません。

Webコンテナサーバの稼働中に，このファイルの内容を変更した場合，変更した内容は，次回Webコンテナサーバを起動したときに反映されます。

(4)　記述例

使用されるポリシーファイルの内容を次に示します。

// (1)
// Grant all permissions to the java extensions
grant codeBase "file:${java.home}/lib/ext/-" {
permission java.security.AllPermission;
};

// (2)
// Grant all permissions to the java tools, etc
// Note: java.home is the jre, not the installation dir for the jdk
grant codeBase "file:${java.home}/../lib/*" {
permission java.security.AllPermission;
};

// (3)
// Grant all permissions to anything loaded from the
// EJB server itself
grant codeBase "file:${ejbserver.install.root}/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${tpbroker.java.home}/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/DABJ/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/manager/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/c4web/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/c4web/exlib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/jaxp/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/CTM/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/PRF/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/wss/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${cosminexus.home}/XMLSEC/lib/*" {
permission java.security.AllPermission;
};
grant codeBase "file:${hntrlib.home}/classes/*" {
grant codeBase "file:${program.files.home}/Hitachi/HNTRLib2/classes/*" {
permission java.security.AllPermission;
};

// (4)
// webapp policy
grant codeBase "file:${webserver.install.root}/containers/${webserver.serverName}
/webapps/-" {
permission java.lang.RuntimePermission "loadLibrary.*";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
permission java.io.FilePermission "<<ALL FILES>>", "read, write";
permission java.util.PropertyPermission "*", "read";
};

// (5)
// Grant minimal permissions to everything else:
grant  {
permission java.util.PropertyPermission "*", "read";
permission java.lang.RuntimePermission "queuePrintJob";
permission java.net.SocketPermission "*", "connect";
};

記述例の（1）～（5）について説明します。

（1）

JDKのextディレクトリ下のクラスファイルに対して次の権限を許可します。

すべてのアクセス権を許可

（2）

JDKのlibディレクトリ下のクラスファイルに対して次の権限を許可します。

すべてのアクセス権を許可

（3）

Webコンテナサーバが使用するクラスファイルに対して次の権限を許可します。

すべてのアクセス権を許可

（4）

Webアプリケーションのクラスファイルに対して次の権限を許可します。

すべてのライブラリのロードを許可

印刷ジョブ要求を許可

すべてのソケット通信に対してネットワーク接続を許可

すべてのファイルに対し読み取り，および書き込みを許可

すべてのプロパティ情報の読み取りを許可

（5）

すべてのクラスファイルに対して次の権限を許可します。

すべてのプロパティ情報の読み取りを許可

印刷ジョブ要求を許可

すべてのソケット通信に対してネットワーク接続を許可

(5)　注意事項

サーバをセットアップするときに生成されたweb.policyファイルには，Webコンテナサーバを動作させるために最低限必要な権限が記述されています。生成されたweb.policyファイルの記述行の削除および変更はしないでください。

3.11.6　プール管理情報設定ファイル

プール管理情報設定ファイルは，次に示すDOCTYPE宣言を持ちます。プール管理情報設定ファイルは，Webコンテナのコネクションプール機能を設定する場合に使用するファイルです。

<!DOCTYPE hitachi-webconpool-configuration PUBLIC '-//Hitachi, Ltd.//DTD webconpool Configuration 6.0//EN' 'file:///<Application Serverのインストールディレクトリ>/CC/admin/dtds/hitachi-webconpool-configuration_6_0.dtd'>

注意

サンプルファイルで提供している属性ファイルなどをサーバ管理コマンド以外の方法で使用する場合，DOCTYPE宣言内のURLの指定をURIに書き直す必要があります。

例

変更前

<!DOCTYPE hitachi-webconpool-configuration PUBLIC '-//Hitachi, Ltd.//DTD webconpool Configuration 6.0//EN' 'file:///C:/Program%20Files/Hitachi/Cosminexus/CC/admin/dtds/hitachi-webconpool-configuration_6_0.dtd'>

変更後

<!DOCTYPE hitachi-webconpool-configuration PUBLIC '-//Hitachi, Ltd.//DTD webconpool Configuration 6.0//EN' 'file:///<Application Serverのインストールディレクトリ>/CC/admin/dtds/hitachi-webconpool-configuration_6_0.dtd'>

プール管理情報設定ファイルは，次に示すタグを持つxmlファイルです。

タグ名
出現パターン
説明

<hitachi-webconpool-configuration>
1回
ルートタグ。

┣
┃
┃
┃
┃
<DatabaseID>
1回
DBMS名。
一意の名称で指定します。
DBMS名には，英数字，およびアンダースコア「_」を使用できます。

┣
┃
<ClassName>
0または1回
利用するJDBC実装クラス名。

┣
┃
┃
<URL>
0または1回
利用するデータベースにアクセスするためのデータベースURL。

┣
┃
┃
┃
┃
┃
┃
┃
<UserCount>
0または1回
プール機能を使用できるユーザ数。
0～2147483647​
ユーザ数≧0となるように指定します。
0を指定するとプール機能を使用できるユーザ数に制限がなくなります。
省略した場合は0が設定されます。

┣
┃
┃
┃
┃
<UserID>
0または1回
コネクション取得要求時に，省略された場合に使用されるユーザID。
省略した場合は空文字が設定されます。

┣
┃
┃
┃
┃
<Password>
0または1回
コネクション取得要求時に，省略された場合に使用されるパスワード。
省略した場合は空文字が設定されます。

┣
┃
┃
┃
┃
┃
<MinimumSize>
0または1回
プールに割り当てるデータベースコネクションの最小数。
0～2147483647​
省略した場合は0を設定します。

┣
┃
┃
┃
┃
┃
┃
┃
┃
┃
<MaximumSize>
0または1回
プールで使用できるデータベースコネクションの最大数。
0～2147483647​
0を指定すると無制限にコネクションを使用できます。ただし，データベースで許容される最大コネクション数によって最大数は制限されます。
省略した場合は0が設定されます。

┣
┃
┃
┃
┃
┃
┃
┃
<RetryInterval>
0または1回
プールからコネクションを取得するときに，コネクション取得のリトライをするまでのアプリケーションの待ち時間（単位：秒）。
0～2147483647​
省略した場合は0が設定されます。

┗
<RetryCount>
0または1回
プールからコネクションを取得できなかった場合のリトライ回数。
0～2147483647​
コネクションが取得できない場合に，リトライを行わないようにするには0を指定します。
省略した場合は0が設定されます。

cjwebeditpoolコマンドでプール管理情報を登録・変更するときに使用するプール管理情報設定ファイルは，あらかじめエディタなどを使って作成したものを使用するか，次のディレクトリにあるサンプルファイルを使用します。サンプルファイルでは，デフォルトの設定内容が記述されています。

ディレクトリ
ファイル

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥examples¥webpoolconf

UNIXの場合
/opt/Cosminexus/CC/examples/webpoolconf

Webconpool.xml

4.　基本・開発機能の互換機能（DABroker Libraryを使用したデータベース接続）

この章では，基本・開発機能の互換機能のうち，DABroker Libraryを使用したデータベース接続について説明します。

＜この章の構成＞

4.1　この章の構成

4.2　DABroker Libraryを使用したデータベース接続の概要

4.3　DABroker Libraryの初期設定

4.4　データベースとアプリケーション間の文字コードの変換

4.5　受信バッファのプーリングの設定

4.6　DABroker Libraryを使用する場合のトラブルシュート

4.7　DABroker Libraryを使用したデータベース接続の実装

4.8　DB Connectorを使用したデータベースとの接続

4.9　DB Connector for Reliable Messagingを使用したデータベース上のキューへの接続

4.10　DABroker Libraryで使用するAPIの一覧

4.11　Driverクラス

4.12　Connectionクラス

4.13　Statementクラス

4.14　PreparedStatementクラス

4.15　CallableStatementクラス

4.16　ResultSetクラス

4.17　ResultSetMetaDataクラス

4.18　DatabaseMetaDataクラス

4.19　DataSourceクラス

4.20　Blobインタフェース

4.21　DABroker Libraryで使用するコマンドの一覧

4.22　dabsetup（DABroker Libraryのセットアップ）

4.23　DABroker Libraryで使用するファイルの一覧

4.24　DABroker Library動作環境定義ファイル

4.25　共通設定項目

4.26　拡張データベースアクセストレース設定項目

4.27　リモートアクセス設定項目

4.28　for C++設定項目

4.29　HiRDBの設定項目

4.30　ORACLEの設定項目

4.31　Connector属性ファイルでの設定

4.32　DABroker Libraryを使用する場合の注意事項

4.1　この章の構成

この章では，基本・開発機能の互換機能のうち，DABroker Libraryを使用したデータベース接続について説明します。

この章の構成を次の表に示します。

表4-1　この章の構成（DABroker Libraryを使用したデータベース接続）

分類 | タイトル | 参照先
解説 | DABroker Libraryを使用したデータベース接続の概要 | 4.2
DABroker Libraryの初期設定 | 4.3
データベースとアプリケーション間の文字コードの変換 | 4.4
受信バッファのプーリングの設定 | 4.5
DABroker Libraryを使用する場合のトラブルシュート | 4.6
DABroker Libraryを使用したデータベース接続の実装 | 4.7
DB Connectorを使用したデータベースとの接続 | 4.8
DB Connector for Reliable Messagingを使用したデータベース上のキューへの接続 | 4.9
実装 | DABroker Libraryで使用するAPIの一覧 | 4.10
Driverクラス | 4.11
Connectionクラス | 4.12
Statementクラス | 4.13
PreparedStatementクラス | 4.14
CallableStatementクラス | 4.15
ResultSetクラス | 4.16
ResultSetMetaDataクラス | 4.17
DatabaseMetaDataクラス | 4.18
DataSourceクラス | 4.19
Blobインタフェース | 4.20
設定 | DABroker Libraryで使用するコマンドの一覧 | 4.21
dabsetup | 4.22
DABroker Libraryで使用するファイルの一覧 | 4.23
DABroker Library動作環境定義ファイル | 4.24
共通設定項目 | 4.25
拡張データベースアクセストレース設定項目 | 4.26
リモートアクセス設定項目 | 4.27
for C++設定項目 | 4.28
HiRDBの設定項目 | 4.29
ORACLEの設定項目 | 4.30
Connector属性ファイルでの設定 | 4.31
注意事項 | DABroker Libraryを使用する場合の注意事項 | 4.32

注　「運用」について，この章での説明はありません。

4.2　DABroker Libraryを使用したデータベース接続の概要

DABroker Libraryは，データベース連携機能を提供する構成ソフトウェアです。JDBCインタフェースをサポートしたデータベースにアクセスするライブラリを提供します。これによって，複数のDBMSに一つのインタフェースでアクセスできる統一的なデータベースアクセスを実現できます。

＜この節の構成＞

4.2.1　DABroker Libraryを使用してデータベースに接続する方法

4.2.2　接続できるデータベース

4.2.3　DABroker Libraryのメモリ所要量

4.2.1　DABroker Libraryを使用してデータベースに接続する方法

アプリケーションサーバでDABroker Libraryを使用してデータベースに接続する方法には，次の2種類があります。

DABroker LibraryのAPIを使用して実装したアプリケーションによってデータベースに接続する方法

アプリケーションサーバが提供するリソースアダプタ（DB ConnectorまたはDABroker Library）を使用してデータベースに接続する方法

この章の構成と，データベースへの接続方法ごとに参照する節について，次の表に示します。

表4-2　データベースへの接続方法ごとに参照する節

タイトル | データベースへの接続方法 | 参照先
APIを使用して実装したアプリケーションを使用 | リソースアダプタを使用
DABroker Libraryを使用したデータベース接続の概要 | ○ | ○ | 4.2※
Cosminexus DABroker Libraryの初期設定 | ○ | ○ | 4.3
データベースとアプリケーション間の文字コードの変換 | ○ | ○ | 4.4
受信バッファのプーリングの設定 | ○ | ○ | 4.5
DABroker Libraryを使用する場合のトラブルシュート | ○ | ○ | 4.6
DABroker Libraryを使用したデータベース接続の実装 | ○ | － | 4.7
DB Connectorを使用したデータベースとの接続 | － | ○ | 4.8
DB Connector for Reliable Messagingを使用したデータベース上のキューへの接続 | － | ○ | 4.9
DABroker Libraryを使用する場合の注意事項 | ○ | ○ | 4.32

（凡例）○：参照する　－：参照しない

注※　この節です。

4.2.2　接続できるデータベース

DABroker LibraryをJDBCドライバとして使用してJ2EEサーバから接続できるデータベース，および接続に使用するインタフェースの対応を，次の表に示します。なお，DABroker Libraryで提供するJDBCドライバは，JDBC2.1の規格に準拠しています。

表4-3　J2EEサーバから接続できるデータベース

データベース
JDBCインタフェース
JMSインタフェースおよびJDBCインタフェース

ローカルトランザクション
グローバルトランザクション
ローカルトランザクション
グローバルトランザクション

HiRDB Version 8
○
○
○
○

HiRDB Version 7
○
○
○
○

XDM/RD E2※
○
－
－
－

Oracle 10g R2
10.2.0
○
○
－
－

Oracle 10g
10.1.0
○
○
－
－

Oracle9i R2
9.2.0
○
○
－
－

Oracle9i
9.0.1
○
－
－
－

（凡例）○：使用できます。　－：使用できません。

注※　Database Connection Server経由で接続します。HiRDBクライアントが前提です。

注意

Oracle9i 9.2.0を使用する場合は，Oracle9i 9.2.0.4以降を使用してください。

4.2.3　DABroker Libraryのメモリ所要量

ここでは，DABroker Libraryのメモリ所要量の計算式について説明します。

DABroker Libraryのメモリ所要量の計算式を次に示します。

メモリ所要量＝128＋データベース同時接続数
×〔386＋A×｛20＋B＋定義列数×2＋C×2＋D×E＋F×（G＋H）｝〕＋I

（凡例）

A：並列に使用しているカーソル数

並列に使用しているカーソル数は，一つのConnectionオブジェクトから派生して，同時に使用するStatementインスタンス数，PreparedStatementインスタンス数，CallableStatementインスタンス数，ResultSetインスタンス数の総和です。

B：bufSizeの値

JDBCを使用してデータベースに接続するときに指定するbufSizeの値です。

C：SQLのサイズ

SQLのサイズは，KB（キロバイト）単位に切り上げて算出してください。

D：?パラメタのサイズ

?パラメタのサイズは，一つのSQL文に指定する，?パラメタのデータ長の総和です。?パラメタに指定する列属性ごとのデータ長を次の表に示します。

表4-4　パラメタ長一覧（ネイティブライブラリ内）

データベース種別
列属性
データ長（バイト）
備考

HiRDB
INTEGER
12
－

SMALLINT
8
－

LARGE DECIMAL(m, n)
↓（M/2）↓＋7

Mは指定した値の精度を表します。

4バイト単位で切り上げます。

FLOATまたはDOUBLE PRECISION
16
－

SMALLFLTまたはREAL
12
－

CHAR(n)，MCHAR(n)，NCHAR(n)，VARCHAR(n)，MVARCHAR(n)，NVARCHAR(n)
指定した実データ長+8
4バイト単位で切り上げます。

DATE
16
－

TIME
16
－

TIMESTAMP(p)
p=0，p=2の場合：28
p=4，p=6の場合：32
－

BINARY(n)またはBLOB(n)
指定した実データ長＋4
－

ORACLE，Oracle8i
FLOAT
56
－

DATE
64
－

その他のデータ型
指定した実データ長＋54
4バイト単位で切り上げます。

E：配列更新の配列数

配列更新の配列数は，HiRDBの「配列を使用したINSERT機能」，「配列を使用したUPDATE機能」，または「配列を使用したDELETE機能」を使用する場合はaddBatchメソッドの実行回数，そのほかの場合は1となります。

F：検索データのサイズ

検索データのサイズは，検索する列のデータ長の総和（1行分）です。

ただし，接続するデータベースがOracleであり，CLOB，NCLOB，BLOB，BFILE，LONG LAW，LONGのどれかの列を一つ以上含む検索の場合，検索データのサイズはほかの列に関係なく，bufSizeの値となります。

列属性ごとのデータ長を次の表に示します。

表4-5　検索する列のデータ長一覧（ネイティブライブラリ内）

データベース種別
列属性
データ長（バイト）
備考

HiRDB
INTEGER
4
－

SMALLINT
2
－

LARGE DECIMAL(m, n)
m＋2
－

FLOATまたはDOUBLE PRECISION
8
－

SMALLFLTまたはREAL
4
－

CHAR(n)またはMCHAR(n)
n＋1
－

NCHAR(n)
n×2＋1
－

VARCHAR(n)またはMVARCHAR(n)
n＋2
－

NVARCHAR(n)
n×2＋2
－

DATE
11
－

TIME
9
－

TIMESTAMP(p)

p=0の場合：20

p=0以外の場合：21＋p

－

BINARY(n)またはBLOB(n)
HiRDBの位置付け子機能を使用する場合
12
－

HiRDBの位置付け子機能を使用しない場合
（nとbufSizeの値を比較してより小さい方の値）＋8
bufSizeの値とは，JDBCを使用してデータベースに接続するときに指定するbufSizeの値です。

ORACLE，Oracle8i
NUMBER
44
－

VARCHAR2(n)，CHAR(n)，VARCHAR2(n)またはNCHAR(n)
n＋1
－

MLSLABEL(n)またはRAW(n)
n
－

ROWID
9
－

FLOAT
8
－

DATE
20
－

G：FETCHサイズ

FETCHサイズは，Statement，またはResultSetクラスのsetFetchSizeメソッドの指定値です。ただし，指定値が0，または指定を省略した場合は，次のようになります。

指定値が0または指定を省略した場合のFETCHサイズ＝64KB/検索データのサイズ
計算の結果0になる場合は，1に繰り上げられます。

H：データベース用データ領域

データベース用データ領域は，接続データベースがHiRDBの場合は0，そのほかのデータベースの場合は1となります。

I：JDBCのメモリサイズ

JDBCのメモリサイズは，次の値です。

JDBCのメモリサイズ＝（Connectionオブジェクトサイズ
＋Statementオブジェクトサイズ
＋ResultSetオブジェクトサイズ
＋PreparedStatementオブジェクトサイズ
＋CallableStatementオブジェクトサイズ
＋?パラメタの実データサイズ
＋検索データのトータルサイズ
＋SQLサイズ
＋bufSizeの値によるデータサイズ
＋トレースサイズ）/1,024

JDBCのメモリサイズの計算式に使用するデータのサイズについて，(1)から(10)で説明します。

＜この項の構成＞

(1)　Connectionオブジェクトサイズ

(2)　Statementオブジェクトサイズ

(3)　ResultSetオブジェクトサイズ

(4)　PreparedStatementオブジェクトサイズ

(5)　CallableStatementオブジェクトサイズ

(6)　?パラメタの実データサイズ

(7)　検索データのトータルサイズ

(8)　SQLサイズ

(9)　bufSizeの値によるデータサイズ

(10)　トレースサイズ

(1)　Connectionオブジェクトサイズ

Connection オブジェクトサイズ（単位バイト）の計算式を次に示します。

Connectionオブジェクトサイズ＝1223500※¹＋（80364※¹＋bufSizeの値※²×1024）×Connectionインスタンス数※³

注

Connectionオブジェクトサイズとして，次のどちらかのタイミングで「bufSizeに指定した値 × 生成したコネクション数分のメモリ」をJavaヒープ領域に確保します。

コネクションプールのウォーミングアップ機能使用時

初回getConnection()発行時

bufSizeに必要以上に大きな値を設定すると，Connectionオブジェクトサイズ分のメモリを確保したときにJavaヒープを使い切り，OutOfMemoryErrorが発生するおそれがあります。

HiRDBのBLOB型データやBINARY型データへアクセスする場合は，bufSizeに大きな値を指定しないで，HiRDBの位置付け子機能を使用することを検討してください。HiRDBの位置付け子機能については，マニュアル「HiRDB 解説」を参照してください。

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

bufSizeのデフォルト値は64です。

注※3

Connectionインスタンス数とは，同時接続数のことです。

(2)　Statementオブジェクトサイズ

Statementオブジェクトサイズ（単位バイト）の計算式を次に示します。

Statementオブジェクトサイズ＝1000※¹＋1400※¹×Statementインスタンス数※²

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

Statementインスタンス数とは，システム全体で同時に使用するStatement数です。システム全体でStatementオブジェクトを使用しないときは0になります。

(3)　ResultSetオブジェクトサイズ

ResultSetオブジェクトサイズは，接続先のデータベースがOracle8i以降で，BLOB，CLOBの列属性がある表を検索した場合と，それ以外の処理を実行した場合で異なります。それぞれの場合の，ResultSetオブジェクトサイズ（単位バイト）の計算式を次に示します。

接続先のデータベースがOracle8i以降で，BLOB，CLOBの列属性がある表を検索した場合
ResultSetオブジェクトサイズ＝
2400※¹＋｛3400※¹＋MIN（ROW_SIZEの値※²×1024×1024, BLOBおよびCLOBの実データ長）×2｝×ResultSetインスタンス数※³

1.以外の処理を実行した場合
ResultSetオブジェクトサイズ＝2400※¹＋3400※¹×ResultSetインスタンス数※³

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

デフォルト値は16です。

注※3

ResultSetインスタンス数とは，システム全体で同時に使用するResultSet数です。システム全体で，検索SQLを実行しない，またはResultSetオブジェクトを生成しないときは0になります。

(4)　PreparedStatementオブジェクトサイズ

PreparedStatementオブジェクトサイズ（単位バイト）の計算式を次に示します。

PreparedStatementオブジェクトサイズ＝

79900※¹＋4700※¹×PreparedStatementインスタンス数※²

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

PreparedStatementインスタンス数とは，全体で同時に使用するPreparedStatement数です。システム全体でPreparedStatementオブジェクトを使用しないときは0になります。

(5)　CallableStatementオブジェクトサイズ

CallableStatementオブジェクトサイズ（単位バイト）の計算式を次に示します。

CallableStatementオブジェクトサイズ＝

65000※¹＋4700※¹×CallableStatementインスタンス数※²

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

CallableStatementインスタンス数とは，全体で同時に使用するCallableStatement数です。システム全体でCallableStatementオブジェクトを使用しないときは0になります。

(6)　?パラメタの実データサイズ

?パラメタの実データサイズ（単位バイト）の計算式を次に示します。

?パラメタの実データサイズ＝

9000※¹＋180※¹×?パラメタ数※²＋?パラメタのトータル長※²

注※1

オブジェクトを構成する大きさであり，実行するプラットフォームおよびJDKのバージョンにより若干値が異なる場合があります。

注※2

?パラメタ数と?パラメタのトータル長は，システム全体で同時に指定する，?パラメタ数と?パラメタのトータル長です。?パラメタのトータル長は，実データの長さの総和です。?パラメタに指定する列属性ごとの実データ長を次の表に示します。

表4-6　パラメタ長一覧（JDBC内）

データベース種別 | 列属性 | データ長（バイト）
HiRDB | INTEGER | 4
SMALLINT | 2
LARGE DECIMAL(m, n) | ↓（m/2）↓+1
FLOATまたはDOUBLE PRECISION | 8
SMALLFLTまたはREAL | 4
上記以外 | 指定した実データ長
ORACLE，Oracle8i | NUMBER | 指定した実データを数値文字列で表現したときの実際の長さ
FLOAT | 8
上記以外 | 指定した実データ長

(7)　検索データのトータルサイズ

検索データのトータルサイズ（単位バイト）は，実際のレコード長＋4×（取得する列数＋1）を1件のレコード長とし，検索した件数の総和になります。実際のレコード長は列属性ごとの実際のデータ長の総和です。

なお，検索データのトータルサイズは，ResultSetのタイプがスクロール可能のときだけ必要です。それ以外は0になります。

列属性ごとの実際のデータ長を次の表に示します。

表4-7　検索する列のデータ長一覧（JDBC内）

データベース種別 | 列属性 | データ長（バイト）
HiRDB | INTEGER | 4
SMALLINT | 2
LARGE DECIMAL(m, n) | ↓(m/2)↓+1
FLOATまたはDOUBLE PRECISION | 8
SMALLFLTまたはREAL | 4
上記以外 | データベースに格納している実データ長
ORACLE，Oracle8i | NUMBER | データベースに格納している実データを数値文字列で表現したときの実際の長さ
FLOAT | 8
上記以外 | データベースに格納している実データ長

(8)　SQLサイズ

実際のSQLのサイズがbufSizeの値×1024バイト以上のときだけ必要です。それ以外は0になります。なお，bufSizeのデフォルト値は64です。

(9)　bufSizeの値によるデータサイズ

bufSizeの値によるデータサイズ（単位バイト）の計算式を次に示します。なお，計算式は，受信バッファプール数指定機能の使用の有無によって異なります。

受信バッファプール数指定機能を使用しない場合
データサイズ＝bufSizeの値※×1024
×（同一コネクション内に存在する，検索SQL以外を実行するStatementインスタンス数
＋同一コネクション内に存在する，検索SQL以外を実行するPreparedStatementインスタンス数
＋同一コネクション内に存在する，CallableStatementインスタンス数
＋同一コネクション内に存在する，ResultSetインスタンス数）

受信バッファプール数指定機能を使用する場合
データサイズ＝bufSizeの値※×1024
×（同一コネクション内で同時に使用する，検索SQL以外を実行するStatementインスタンス数
＋同一コネクション内で同時に使用する，検索SQL以外を実行するPreparedStatementインスタンス数
＋同一コネクション内で同時に使用する，CallableStatementインスタンス数
＋同一コネクション内で同時に存在する，ResultSetインスタンス数）
注※　bufSizeのデフォルト値は64です。

(10)　トレースサイズ

トレースサイズの計算式（単位バイト）を次に示します。

トレースサイズ＝2048×メモリ情報取得量

メモリ情報取得量とは，環境変数DAB_ONMEMNUMの値です。デフォルト値は1000です。

4.3　DABroker Libraryの初期設定

ここでは，DABroker Libraryを使用する場合の初期設定について，OSごとに説明します。

なお，以降，この章では，DABroker Libraryのインストールディレクトリのことを，DABroker Library運用ディレクトリといいます。

初期設定では，インストールおよびインストール後の環境設定を実施します。DABroker Libraryを使用する場合のインストール後の環境設定の流れを次に示します。

DABroker Libraryのセットアップ（UNIXの場合）

DABroker Libraryの動作環境の設定

データベース接続のための設定

J2EEアプリケーション運用のための設定

なお，これらの設定は，次の環境構築が済んでいることを前提にしています。

DBMSを使用できる環境が構築されていること

開発したJ2EEアプリケーションを組み込むホスト，およびDABroker Libraryを組み込むホストをネットワーク上で使用できる環境が構築されていること

設定後，DABroker Libraryを使用したプロセス（J2EEサーバなど）が起動しているときには，設定を変更できません。該当するプロセスを停止してから，設定を変更してください。

＜この節の構成＞

4.3.1　DABroker Libraryのインストールおよび動作環境の設定（Windowsの場合）

4.3.2　DABroker Libraryのインストールおよび動作環境の設定（UNIXの場合）

4.3.3　データベースの設定

4.3.1　DABroker Libraryのインストールおよび動作環境の設定（Windowsの場合）

ここでは，WindowsでDABroker Libraryを使用するためのインストールおよび動作環境の設定について説明します。

＜この項の構成＞

(1)　インストール

(2)　インストール後のDABroker Libraryのディレクトリ構成

(3)　DABroker Libraryの動作環境の設定（Windowsの場合）

(4)　データベース接続のための設定

(5)　J2EEアプリケーション運用のための設定

(1)　インストール

製品のインストールには，インストーラを使用します。

なお，Windowsの場合には，すべての構成製品のインストールが終わると，再起動を促すダイアログが表示されます。ただし，DABroker Libraryの設定後にも再起動が必要になるため，DABroker Libraryの設定が終了したあとに再起動することをお勧めします。

DABroker Libraryをインストールしたあとは，システム環境変数Pathに<DABroker Libraryインストールディレクトリ>¥libを設定し，システムを再起動する必要があります。なお，システム環境変数の設定，およびシステムの再起動を実施しないと，各ユティリティが使用できません。必ず実施してください。

(2)　インストール後のDABroker Libraryのディレクトリ構成

Windowsの場合のインストール後のDABroker Libraryのディレクトリ構成を次の表に示します。これらのディレクトリは，<アプリケーションサーバのインストールディレクトリ>下に作成されます。

表4-8　DABroker Libraryのディレクトリ構成（Windowsの場合）

ディレクトリ | 説明
DAB | － | DABroker Libraryのインストールディレクトリです。
bin | ヘルプファイル格納用ディレクトリです。
lib | ライブラリ格納用ディレクトリです。
msg | メッセージファイル格納用ディレクトリです。
spool | － | トレースファイル，ログファイル格納用ディレクトリです。
dabcltrc | －
dabdump | －
db_access | －
tmp | 作業ディレクトリです。
DABJ | － | DABroker LibraryのJDBCドライバのインストールディレクトリです。

（凡例）－：該当しません。

(3)　DABroker Libraryの動作環境の設定（Windowsの場合）

DABroker Libraryの動作環境は，DABroker Libraryの環境設定ユティリティで設定します。

環境設定ユティリティにはオンラインヘルプがありますので，設定内容の詳細については，オンラインヘルプを参照してください。［スタート］メニューの［プログラム］から［Cosminexus※］－［DABrokerLibrary］－［ヘルプ］を選択すると，DABroker Libraryのオンラインヘルプが表示されます。

注※

プログラムフォルダ名を変更している場合，任意のプログラムフォルダから，選択してください。

また，環境設定ユティリティでは，トレース取得の設定ができます。DABroker Libraryで取得できるトレースについては，「4.6.5　DABroker Libraryで取得できるトレース」を参照してください。

ここでは，DABroker Libraryの動作環境の設定について説明します。

注意

DABroker Libraryの動作環境で設定する各ディレクトリには，ネットワークドライブを指定しないでください。

(a)　DABroker Libraryの動作環境の設定手順

DABroker Libraryの動作環境の設定手順を次に示します。

環境変数を設定します。
システム環境変数のPATHに「<アプリケーションサーバのインストールディレクトリ>¥DAB¥lib」を設定してください。設定されていない場合，環境設定ユティリティは起動できません。

［スタート］メニューの［プログラム］から［Cosminexus］－［DABrokerLibrary］－［環境設定］を選択します。
［DABroker動作環境設定］ダイアログが表示されます。

［DABroker動作環境設定］ダイアログで必要事項を設定して，［適用］ボタンをクリックします。
［DABroker動作環境設定］ダイアログには次の三つのタブがあります。

［共通設定］タブ

［リモートアクセス設定］タブ

［for C++設定］タブ

各タブの設定内容については，以降で説明します。

［DABroker動作環境設定］ダイアログでの必要事項の設定が終わったら，［OK］ボタンをクリックしてダイアログを閉じます。

システムを再起動します。

(b)　［共通設定］タブの設定内容

ここでは，［共通設定］タブの設定内容について説明します。DABroker Libraryを使用する場合の［共通設定］タブの設定内容を次に示します。

「作業ディレクトリ」に，作業ディレクトリ（例：「C:¥Program Files¥Hitachi¥Cosminexus¥DAB¥tmp」）が表示されていることを確認します。

「使用するORACLEのバージョン」に，Oracleのバージョン（例：ORACLE9i）を指定します。

拡張データベースアクセストレースを取得する場合は，［拡張データベースアクセストレースを取得する］チェックボックスをチェックします。

拡張データベースアクセストレースを取得する場合は，［データベースアクセストレース設定］ボタンをクリックします。
［アクセストレース設定］ダイアログが表示されます。

［アクセストレース設定］ダイアログで，取得しない情報の項目のチェックを外して，［OK］ボタンをクリックします。
［DABroker動作環境設定］ダイアログに戻ります。

XAトレースを取得する場合は，［XAトレースを取得する］チェックボックスをチェックします。

［適用］ボタンをクリックします。

(c)　［リモートアクセス設定］タブの設定内容

ここでは，［リモートアクセス設定］タブの設定内容について説明します。DABroker Libraryを使用する場合の［リモートアクセス設定］タブの設定内容を次に示します。

次の項目を設定します。

HiRDBのBLOB型データ受取バッファサイズ

ORACLEのLONG型データ受取バッファサイズ

漢字コードセット

［適用］ボタンをクリックします。

(d)　［for C++設定］タブの設定内容

ここでは，［for C++設定］タブの設定内容について説明します。DABroker Libraryがインストールされている環境で，DABroker for C++をインストールし，DABroker for C++を使用してデータベースにアクセスする場合の設定です。

［for C++設定］タブでは，DABroker for C++を使用して開発したJ2EEアプリケーションからのアクセスでエラーが発生した場合の，DABroker for C++のイベントトレースの取得について設定します。エラーが発生した場合にイベントトレースを取得しておくことで，トレースを参照してエラーに対処できるようになります。

DABroker Libraryを使用する場合の［for C++設定］タブの設定内容を次に示します。

イベントトレースの取得の有無，取得する場合のトレース取得サイズやトレース取得レベルを設定します。

取得するトレースの種別を設定します。

［適用］ボタンをクリックします。

DABroker for C++のイベントトレースの詳細については，マニュアル「DABroker for C++」を参照してください。

(e)　環境設定ユティリティとファイルとの対応

環境設定ユティリティで設定した内容は，DABroker Library動作環境定義ファイルに反映されます。環境設定ユティリティとDABroker Library動作環境定義ファイルの対応を次の表に示します。

表4-9　環境設定ユティリティとDABroker Library動作環境定義ファイルの対応

環境設定ユティリティ | DABroker Library動作環境定義ファイルの項目名
タブ名 | 項目名
［共通設定］タブ | 作業ディレクトリ | DABTMP
データベースアクセス処理終了待ちタイムアウト | DABDBA_TIMEOUT
表検索カラム数 | DABSELECTCOLCNT
更新・検索条件カラム数 | DABSELECTINFCNT
ログファイルサイズ［dabsv.log］ | DABSVLOGSIZE
使用するORACLEのバージョン | DABORACLE_TYPE
HiRDBのディクショナリ表のデータ属性 | DABSQL_HiRDB_DICTIONARY_DATATYPE
HiRDB環境変数区切り文字 | DAB_HIRDB_DBINF_ESC
拡張データベースアクセストレースを取得する | DABEXSQL_TRC_LINE
トレースファイルサイズ
XAトレースを取得する | DABXA_LOG_ERROR
［リモートアクセス設定］タブ | HiRDBのBLOB型データ受取バッファサイズ | DABHIRDBA_BLOBBUFSIZE
ORACLEのLONG型データ受取バッファサイズ | DABORADBA_LONGBUFSIZE
漢字コードセット | DABLANGMODE
［for C++設定］タブ | DABroker for C++のトレース取得サイズ | DABCPP_EVTTRC_SIZE
DABroker for C++のトレース取得レベル | DABCPP_EVTTRC_LEVEL
DABroker for C++のトレース取得種別 | DABCPP_EVTTRC_nn

環境設定ユティリティの［アクセストレース設定］ダイアログの項目とDABroker Library動作環境定義ファイルの対応を次の表に示します。

表4-10　［アクセストレース設定］ダイアログの項目とDABroker Library動作環境定義ファイルの対応

項目名（アクセストレースの種類） | DABroker Library動作環境定義ファイルの項目名
CANCEL | DABSQL_TRC_CANCEL
CLOSE | DABSQL_TRC_CLOSE
COMMIT | DABSQL_TRC_COMMIT
CONNECT | DABSQL_TRC_CONNECT
DECLARE | DABSQL_TRC_DECLARE
DESCRIBE | DABSQL_TRC_DESCRIBE
DISCONNECT | DABSQL_TRC_DISCONNECT
EXECUTE | DABSQL_TRC_EXECUTE
FETCH | DABSQL_TRC_FETCH
LOGGING | DABSQL_TRC_LOGGING
LOGLESS | DABSQL_TRC_LOGLESS
PREPARE | DABSQL_TRC_PREPARE
ROLLBACK | DABSQL_TRC_ROLLBACK
OPEN | DABSQL_TRC_OPEN
AUTO_COMMIT_OFF | DABSQL_TRC_AUTO_COMMIT_OFF
AUTO_COMMIT_ON | DABSQL_TRC_AUTO_COMMIT_ON
ATTACH | DABSQL_TRC_ATTACH
ATTRGET | DABSQL_TRC_ATTRGET
ATTRSET | DABSQL_TRC_ATTRSET
BIND | DABSQL_TRC_BIND
CHARFORM | DABSQL_TRC_CHARFORM
CHARID | DABSQL_TRC_CHARID
DEFINE | DABSQL_TRC_DEFINE
DESALLOC | DABSQL_TRC_DESALLOC
DESCANY | DABSQL_TRC_DESCANY
DESFREE | DABSQL_TRC_DESFREE
DETACH | DABSQL_TRC_DETACH
ENVCREATE | DABSQL_TRC_ENVCREATE
ERRGET | DABSQL_TRC_ERRGET
GETPIECE | DABSQL_TRC_GETPIECE
HDLALLOC | DABSQL_TRC_HDLALLOC
HDLFREE | DABSQL_TRC_HDLFREE
LOBCLOSE | DABSQL_TRC_LOBCLOSE
LOBLEN | DABSQL_TRC_LOBLEN
LOBOPEN | DABSQL_TRC_LOBOPEN
LOBREAD | DABSQL_TRC_LOBREAD
LOBWRITE | DABSQL_TRC_LOBWRITE
PARAMGET | DABSQL_TRC_PARAMGET
SESBEGIN | DABSQL_TRC_SESBEGIN
SESEND | DABSQL_TRC_SESEND
SETPIECE | DABSQL_TRC_SETPIECE
GETDIAG | DABSQL_TRC_GETDIAG
GET_INFO | DABSQL_TRC_GET_INFO
SET_INFO | DABSQL_TRC_SET_INFO
EXECUTE_DIRECT | DABSQL_TRC_EXECUTE_DIRECT

DABroker Library動作環境定義ファイルについては，「4.24　DABroker Library動作環境定義ファイル」を参照してください。

(4)　データベース接続のための設定

DABroker Libraryがインストールされている環境で，DABroker for C++をインストールし，DABroker for C++を使用してデータベースに接続する場合には，接続先データベースの定義が必要です。

DABroker for C++を使用してデータベースに接続する場合は，接続先データベース定義ユティリティで設定したデータベース種別名，およびデータベース名を使用してデータベースにアクセスします。接続先データベース定義ユティリティで設定した情報を使用すると，接続条件などが変更されてもアプリケーションを変更する必要がありません。ただし，OTS機能，またはJTS機能を使用する場合は，接続先データベース定義ユティリティで設定した情報を使用できません。

(a)　接続先データベース定義の設定

接続先データベース定義ユティリティは，プログラムフォルダに登録された「DABroker接続先データベース定義」から起動します。「DABroker接続先データベース定義」は，すべてのユーザが操作できます。

接続先データベース定義ユティリティで設定した内容は，接続先データベース定義ファイル（<DABroker Library運用ディレクトリ>¥conf¥dabenv）に出力されます。なお，DABroker Library運用ディレクトリは，DABroker Libraryのインストールディレクトリ（<アプリケーションサーバのインストールディレクトリ>¥DAB）です。

接続先データベース定義の設定手順を次に示します。

プログラムフォルダに登録された［接続先データベース定義］を起動します。
［DABroker接続先データベース定義］ダイアログが表示されます。

使用するデータベースの製品名が記載されたタブを選択し，接続情報を設定します。
次の情報を定義します。

データベース種別名
使用するデータベースに対して付ける任意の名称です。

データベース名
データベースごとに異なる情報の集まりに対して付ける任意の名称です。

データベース名のグループに定義する情報
データベース名のグループに定義する情報は，データベースごとに異なります。詳細については，「(b)　データベース名のグループに定義する情報」を参照してください。

［接続先データベース定義］ダイアログでの必要事項の設定が終わったら，［OK］ボタンをクリックしてダイアログを閉じます。

なお，［接続先データベース定義］ダイアログで設定する，データベース種別名，データベース名，およびデータベース名のグループに定義する情報は，次のような親子関係になります。

この例で示すように，データベース名は，同一データベース種別名に対して，複数定義できます。例えば，ホスト名が異なる二つのHiRDBを，一つのデータベース種別として定義し，アプリケーションでは，データベース名でホストの異なるHiRDBを使い分けられます。このような場合の［接続先データベース定義］ダイアログでの設定方法を次に示します。

データベース種別名，データベース名を新規登録する場合
設定後，［追加］ボタンを選択します。

同一データベース種別名に対して，別のデータベース名を登録する場合
設定後，［追加］ボタンを選択します。

登録されている情報を変更する場合
登録内容を変更したあと，［追加］ボタンを選択します。

データベース種別名またはデータベース名を削除する場合
削除するデータベース種別またはデータベース名を選択して［削除］ボタンを選択してください。

(b)　データベース名のグループに定義する情報

データベース名のグループに定義する情報について，データベースごとに説明します。

●HiRDBまたはXDM/RD E2を使用する場合

HiRDBまたはXDM/RD E2を使用する場合に，データベース名のグループに定義する情報を次の表に示します。

表4-11　データベース名のグループに定義する情報（HiRDBまたはXDM/RD E2を使用する場合）

設定項目名
指定内容

データベース種別名
使用するデータベースに対して付ける任意の名称を指定します。設定規則を次に示します。

接続先データベース定義ユティリティ内でユニークな名称にしてください。

23文字まで指定できます。2バイト文字，半角カタカナ文字は使用しないでください。

データベース名
データベースごとに異なる情報の集まりに対して付ける任意の名称を指定します。設定規則を次に示します。

同一データベース種別名内でユニークな名称にしてください。

23文字まで指定できます。2バイト文字，半角カタカナ文字は使用しないでください。

接続先ホスト名（DBHOST）
HiRDBのホスト名を指定します。

接続先ポート番号（DBNAME）
ポート番号を指定します。

ユーザID（USERID）
接続ユーザIDを指定します。※

パスワード（PASSWD）
パスワードを指定します。※

環境変数
HiRDBクライアントへ渡す環境変数を指定します。設定規則を次に示します。

1,024文字まで指定できます。2バイト文字，および半角カタカナ文字は使用しないでください。

各環境変数の先頭に，必ず区切り文字（@）を記述してください。

PDHOST（ホスト名称，またはIPアドレス），およびPDNAMEPORT（接続するポート番号）は，必ず先頭か末尾で指定してください。

PDHOST，およびPDNAMEPORTは，重複して指定しないでください。PDHOST，およびPDNAMEPORT以外の環境変数は，DABroker Libraryで設定した値をそのまま使えます。

DABroker Libraryでは，指定した環境変数の妥当性はチェックしません。

環境変数グループ
HiRDBクライアントへ渡す環境変数グループ名を指定します。設定規則を次に示します。

30文字まで指定できます。2バイト文字，および半角カタカナ文字は使用しないでください。

DABroker Libraryでは，指定した環境変数グループが有効かどうかはチェックしません。

注※

J2EEアプリケーションでユーザIDとパスワードを指定していない場合は，ここで指定したユーザID，パスワードを使用してデータベースにアクセスします。DABroker Libraryでは，接続先データベース定義ファイルの出力時にパスワードを暗号化していないため，パスワードはJ2EEアプリケーション側で指定するようにしてください。

なお，接続先データベース定義ユティリティで複数定義したデータベース種別名がユニークでも，実際のデータベース種別が同じ場合，同じプログラムから同時に接続できません。

●Oracleを使用する場合

Oracleを使用する場合に，データベース名のグループに定義する情報を次の表に示します。

表4-12　データベース名のグループに定義する情報（Oracleを使用する場合）

設定項目名
指定内容

データベース種別名
使用するデータベースに対して付ける任意の名称を指定します。設定規則を次に示します。

接続先データベース定義ユティリティ内でユニークな名称にしてください。

23文字まで指定できます。2バイト文字，半角カタカナ文字は使用しないでください。

データベース名
データベースごとに異なる情報の集まりに対して付ける任意の名称を指定します。設定規則を次に示します。

同一データベース種別名内でユニークな名称にしてください。

23文字まで指定できます。2バイト文字，半角カタカナ文字は使用しないでください。

リスナー名（DBNAME）
SQL*NET経由でアクセスするOracleのリスナー名称を指定します。ただし，リモートアクセスしない場合は省略します。

ユーザID（USERID）
接続ユーザIDを指定します。※

パスワード（PASSWD）
パスワードを指定します。※

注※

J2EEアプリケーションでユーザIDとパスワードを指定していない場合は，ここで指定したユーザID，パスワードを使用してデータベースにアクセスします。DABroker Libraryでは，接続先データベース定義ファイルの出力時にパスワードを暗号化していないため，パスワードはJ2EEアプリケーション側で指定するようにしてください。

なお，接続先データベース定義ユティリティで複数定義したデータベース種別名がユニークでも，実際のデータベース種別が同じ場合，同じプログラムから同時に接続できません。

(5)　J2EEアプリケーション運用のための設定

J2EEアプリケーションを運用する前に，次の設定をしてください。

J2EEアプリケーションの組み込み

J2EEアプリケーションのインタフェースの定義

サーバで動作するJ2EEアプリケーションの動作環境の設定

(a)　J2EEアプリケーションの組み込み

DABroker Libraryが組み込まれたサーバにJ2EEアプリケーションを格納します。また，次に示すクラスパスを指定します。

<アプリケーションサーバのインストールディレクトリ>¥DABJ¥JdbcDbpsv.jar

<アプリケーションサーバのインストールディレクトリ>¥DABJ¥JdbcDbpsvEx.jar※

注※

DABroker LibraryでJDBC2.0拡張機能を使用する場合に，このパスを指定してください。

ここでは，例として，「<アプリケーションサーバのインストールディレクトリ>¥DABJ¥JdbcDbpsvEx.jar」をクラスパスとして指定します。

簡易構築定義ファイルでは，物理ティアの定義（<tier>タグの定義）のJ2EEサーバの定義で，<configuration>タグにクラスパスの設定を追加します。なお，指定するパラメタの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6.2　簡易構築定義ファイルの指定内容」を参照してください。

<?xml version="1.0" encoding="UTF-8"?>
<model-definition xmlns="http://www.cosminexus.com/mngsvr/schema/ModelDefinition-2.5">
 <!-- Webシステムの属性定義 -->
 <web-system>
   <name>MyWebSystem</name>
     :
   <!-- 物理ティア(combined-tier)の定義 -->
   <tier>
     <tier-type>combined-tier</tier-type>
     <!-- J2EEアプリケーションの組み込みの設定 -->
     <configuration>
       <logical-server-type>j2ee-server</logical-server-type>
       <param>
          <param-name>add.class.path</param-name>
          <param-value><アプリケーションサーバのインストールディレクトリ>¥DABJ¥JdbcDbpsvEx.jar</param-value>
       </param>
     </configuration>
   </tier>
     :
 </web-system>
 <host>
   :
</model-definition>

注　太字の部分が編集部分です。

(b)　J2EEアプリケーションのインタフェースの定義

J2EEアプリケーションのインタフェースを定義します。

(c)　サーバで動作するJ2EEアプリケーションの動作環境の設定

DABroker Libraryでは，JNIを使ってDABrokerの提供するネイティブライブラリを使用します。DABroker Libraryをサーバで動作するJavaアプリケーションとして動作させるときは，次の設定が必要です。

ネイティブライブラリの動作環境の設定

データベースクライアントライブラリの動作環境の設定

●ネイティブライブラリの動作環境の設定

ネイティブライブラリはJDBCドライバを実行する（呼び出す）プロセス上で読み込まれて動作するので，ネイティブライブラリ実行のための動作環境を設定する必要があります。

設定内容

システム環境変数のPATHに「<DABroker Library運用ディレクトリ>¥lib」を設定します。

●データベースクライアントライブラリの動作環境の設定

ネイティブライブラリは，データベースにアクセスする場合に，各データベースが提供するクライアントライブラリを呼び出します。データベースクライアントライブラリの動作環境の設定を次に示します。

データベースライブラリのパスを設定します。
特別な設定は必要ありません。ただし，接続するデータベースによっては動作環境の設定が必要な場合があります。詳細については，接続するデータベースのマニュアルなどを参照してください。
PATHに，次の値を設定します。

HiRDB，またはXDM/RD E2の場合：HiRDBクライアントライブラリのパス名

Oracleの場合：Oracleライブラリ（libclntsh）のパス名

データベースの提供する環境変数を設定します。
JDBCドライバを実行する（呼び出す）プロセス上で有効な環境変数として，各データベースの提供する環境変数を設定する必要があります。
詳細については，「4.3.3　データベースの設定」，接続するデータベースのマニュアルなどを参照してください。

4.3.2　DABroker Libraryのインストールおよび動作環境の設定（UNIXの場合）

ここでは，UNIXでDABroker Libraryを使用するためのインストールおよび動作環境の設定について説明します。

＜この項の構成＞

(1)　インストール

(2)　インストール後のDABroker Libraryのディレクトリ構成

(3)　DABroker Libraryのセットアップ

(4)　DABroker Libraryの動作環境の設定（UNIXの場合）

(5)　データベース接続のための設定

(6)　J2EEアプリケーション運用のための設定

(1)　インストール

製品のインストールには，インストーラを使用します。

使用するJava VMによって，異なった環境変数を設定する必要があることがあります。設定する項目については，各Java VMのドキュメントを参照してください。

(2)　インストール後のDABroker Libraryのディレクトリ構成

UNIXの場合のインストール後のDABroker Libraryのディレクトリ構成を次の表に示します。

表4-13　DABroker Libraryのディレクトリ構成（UNIXの場合）

ディレクトリ | 説明
/opt/Cosminexus | DABJ | DABroker LibraryのJDBCドライバのインストールディレクトリです。
/opt/DABroker | － | DABroker Libraryのインストールディレクトリです。
bin | 実行コマンド格納用ディレクトリです。
lib | ライブラリ格納用ディレクトリです。
obj | オブジェクトファイル格納用ディレクトリです。
AGT | エージェント処理用ディレクトリです。
AGTGRP | グループ管理用ディレクトリです。
msg | メッセージファイル格納用ディレクトリです。
sample | サンプルファイル格納用ディレクトリです。
conf | 定義ファイル格納用ディレクトリです。
spool | トレースファイル，ログファイル格納用ディレクトリです。

（凡例）－：該当しません。

注意

DABroker Libraryをアンインストールする場合，/opt/Cosminexus/DABJは削除されないので，手動で削除してください。

(3)　DABroker Libraryのセットアップ

セットアップでは，DABroker Libraryを管理するユーザをOSに登録し，DABroker Libraryの運用ディレクトリを作成します。セットアップの手順を次に示します。

DABroker Libraryを管理するユーザ（UNIXログインユーザ）をOSに登録します。
ユーザID登録後，パスワードも登録してください。登録方法はOSのマニュアルを参照してください。ここで登録したユーザを，DABroker Libraryの管理ユーザと呼びます。DABroker Libraryの管理ユーザに与えられる権限は，次のとおりです。

DABroker Libraryで提供するファイルおよびディレクトリの所有者としてのアクセス権

DABroker Libraryの運用コマンドの実行権

注　Oracleにアクセスする場合は，登録するユーザのUIDを「3」以上にしてください。

DABroker Libraryのインストールディレクトリのグループおよびユーザを，手順1.で登録した管理グループおよびユーザに変更します。

DABroker Libraryセットアップコマンド（dabsetup）を実行します。
スーパーユーザで，/opt/DABroker/binディレクトリにあるdabsetupを実行します。
(例)　dabsetup /home
dabsetupコマンドは，DABroker Library運用ディレクトリを指定するコマンドです。このコマンドを実行すると，インストールディレクトリのディレクトリおよびファイルが，<パス名>に指定した運用ディレクトリに移動されます。<パス名>を省略した場合，運用ディレクトリはDABroker Libraryのインストールディレクトリ（/opt/DABroker）となります。また，dabsetupコマンドに-dオプションを指定すると，運用ディレクトリの削除もできます。

注意

AIXの場合で，Component ContainerをCロケールで動作させるときは，環境変数「LC__FASTMSG」に「false」が指定されているか確認してください。DABroker Libraryを使用してDBにアクセスし，かつComponent ContainerをCロケールで動作させる場合には，環境変数「LC__FASTMSG」に「false」を指定する必要があります。

(4)　DABroker Libraryの動作環境の設定（UNIXの場合）

DABroker Libraryの動作環境は，DABroker Library動作環境定義ファイルで設定します。また，DABroker Library動作環境定義ファイルでは，トレース取得の設定ができます。DABroker Libraryで取得できるトレースについては，「4.6.5　DABroker Libraryで取得できるトレース」を参照してください。

ここでは，DABroker Libraryの動作環境の設定について説明します。

DABroker Libraryの動作環境は，DABroker Library動作環境定義ファイルで設定します。動作環境定義ファイルは，インストール時に提供されるサンプルを使用して作成します。

提供されるサンプルファイル
/opt/DABroker/sample/dasysconf

動作環境定義ファイルの格納先
<DABroker Library運用ディレクトリ>/conf

DABroker Libraryの動作環境の設定手順を次に示します。

サンプルファイルを動作環境定義ファイルの格納先へコピーします。

コピーしたサンプルファイルを編集します。
必要に応じて，標準値の変更や値の追加をしてください。

共通設定項目（作業ディレクトリ，Oracleのバージョン，拡張データベースアクセストレースの取得の有無など）

リモートアクセス設定項目（データの受け取りバッファサイズなど）

HiRDB設定項目

Oracle設定項目

なお，DABroker Library動作環境定義ファイルは，「DAB」ブロックと「OTHERS」ブロックで構成されます。

「DAB」ブロック

共通設定項目やリモートアクセス設定項目を指定するブロックです。DABroker Libraryはこのブロックの設定項目をチェックするため，不正な名称などを指定していた場合はエラーになります。

「OTHERS」ブロック

HiRDB設定項目やOracle設定項目を指定するブロックです。DABroker Libraryはこのブロックの設定項目をチェックしません。指定したすべての項目が有効となります。

DABroker Library動作環境定義ファイルについては，「4.24　DABroker Library動作環境定義ファイル」を参照してください。

ファイルを保存します。

なお，作成済みのDABroker Library動作環境定義ファイルの内容を変更する場合は，J2EEサーバを停止してください。

(5)　データベース接続のための設定

ここでは，DABroker Libraryを使用してデータベースに接続するために必要な設定について説明します。

HiRDBの言語モードの設定

DABroker LibraryおよびJDBCでの言語モードの設定

(a)　HiRDBの言語モードの設定

データベースとしてHiRDBを使用する場合は，言語モードを設定してください。DABroker Libraryの言語モードとHiRDBの言語モードの対応を次の表に示します。なお，DABroker Libraryの言語モードとは，DABroker Library動作環境定義ファイルのDAB_LANG（LANG環境変数）のことです。

表4-14　DABroker Libraryの言語モードとHiRDBの言語モードの対応

DABroker Libraryの言語モード | HiRDBの言語モード
OS | 言語モード | DAB_LANGの指定値 | SJIS | EUC日本語 | ASCII | UTF-8
AIX | SJIS | Ja_JP | ○ | － | － | －
Ja_JP.IBM-932 | ○ | － | － | －
Ja_JP.IBM-943 | ○ | － | － | －
EUC | ja_JP | － | ○ | － | －
ja_JP.IBM-eucJP | － | ○ | － | －
ASCII | C※ | － | － | ○ | －
UTF-8 | UTF-8 | － | － | － | ○
HP-UX | SJIS | ja_JP.SJIS※ | ○ | － | － | －
EUC | ja_JP.EUC | － | ○ | － | －
ja_JP.UJIS | － | ○ | － | －
ja_JP.eucJP | － | ○ | － | －
ASCII | C | － | － | ○ | －
UTF-8 | UTF-8 | － | － | － | ○
Linux | EUC | ja_JP | － | ○ | － | －
ja_JP.ujis | － | ○ | － | －
japanese | － | ○ | － | －
japanese.euc | － | ○ | － | －
ja_JP.eucjp | － | ○ | － | －
Ja_JP | － | ○ | － | －
ASCII | C※ | － | － | ○ | －
UTF-8 | UTF-8 | － | － | － | ○

（凡例）　○：使用できる　－：使用できない

注※　DAB_LANGの標準値を示します。

(b)　DABroker LibraryおよびJDBCでの言語モードの設定

ENCODELANG，またはsetEncodLangに指定する言語モードは，DABroker Libraryの言語モードと合わせる必要があります。ENCODELANG，またはsetEncodLangの指定方法について次に説明します。

OSの言語モードとDABroker Libraryの言語モードが同じ場合

ENCODELANG，またはsetEncodLangの指定は必要ありません。

OSの言語モードとDABroker Libraryの言語モードが異なる場合

ENCODELANG，またはsetEncodLangに，DABroker Libraryの言語モードと同等の値を指定する必要があります。

注意事項

DABroker Libraryの言語モードと，データベースの言語モードは必ず合わせてください。

データベースの言語モードをDABroker Libraryがサポートしていない場合，DABroker Libraryの言語モードにはASCIIモードを設定し，ENCODELANGまたはsetEncodLangにデータベースの言語モードを指定してください。

(6)　J2EEアプリケーション運用のための設定

J2EEアプリケーションを運用する前に，次の設定をしてください。

J2EEアプリケーションの組み込み

J2EEアプリケーションのインタフェースの定義

サーバで動作するJ2EEアプリケーションの動作環境の設定

(a)　J2EEアプリケーションの組み込み

DABroker Libraryが組み込まれたサーバにJ2EEアプリケーションを格納します。また，環境変数「CLASSPATH」に次に示すパスを追加します。

/opt/Cosminexus/DABJ/JdbcDbpsv.jar

/opt/Cosminexus/DABJ/JdbcDbpsvEx.jar※

注※

DABroker LibraryでJDBC2.0拡張機能を使用する場合に，このパスを指定してください。

(b)　J2EEアプリケーションのインタフェースの定義

J2EEアプリケーションのインタフェースを定義します。

(c)　サーバで動作するJ2EEアプリケーションの動作環境の設定

DABroker Libraryでは，JNIを使ってDABrokerの提供するネイティブライブラリを使用します。DABroker Libraryをサーバで動作するJavaアプリケーションとして動作させるときは，次の設定が必要です。

ネイティブライブラリの動作環境の設定

データベースクライアントライブラリの動作環境の設定

●ネイティブライブラリの動作環境の設定

ネイティブライブラリはJDBCドライバを実行する（呼び出す）プロセス上で読み込まれて動作するので，ネイティブライブラリ実行のための動作環境を設定する必要があります。

設定内容

ライブラリ検索パスを指定する環境変数に，「<DABroker Library運用ディレクトリ>/lib」を設定します。設定する環境変数はOSによって異なります。

LIBPATH（AIXの場合）

LD_LIBRARY_PATH（HP-UXおよびLinuxの場合）

●データベースクライアントライブラリの動作環境の設定

ネイティブライブラリは，データベースにアクセスする場合に，各データベースが提供するクライアントライブラリを呼び出します。データベースクライアントライブラリの動作環境の設定を次に示します。

データベースライブラリのパスを設定します。
特別な設定は必要ありません。ただし，接続するデータベースによっては動作環境の設定が必要な場合があります。詳細については，接続するデータベースのマニュアルなどを参照してください。
ライブラリ検索パスを指定する環境変数に，次の値を指定します。設定する環境変数はOSによって異なります。

LIBPATH（AIXの場合）

LD_LIBRARY_PATH（HP-UXおよびLinuxの場合）

使用しているOSの環境変数に次のパスを設定してください。

HiRDB，またはXDM/RD E2の場合：HiRDBクライアントライブラリのパス名

Oracleの場合：Oracleライブラリ（libclntsh）のパス名

データベースの提供する環境変数を設定します。
JDBCドライバを実行する（呼び出す）プロセス上で有効な環境変数として，各データベースの提供する環境変数を設定する必要があります。
詳細については，「4.3.3　データベースの設定」，接続するデータベースのマニュアルなどを参照してください。

4.3.3　データベースの設定

ここでは，DABroker Libraryを使用してデータベースに接続する場合に必要な設定について説明します。

DABroker Libraryを使用する場合に接続できるデータベースと，必要な設定についての参照先を次に示します。

表4-15　DABroker Libraryを使用する場合に接続できるデータベースと，必要な設定についての参照先

使用できるデータベース | 必要な設定についての参照先
HiRDB | (1)
Oracle | (2)
XDM/RD E2 | (3)

＜この項の構成＞

(1)　HiRDBの設定

(2)　Oracleの設定

(3)　XDM/RD E2の設定

(1)　HiRDBの設定

DABroker Libraryを使用してHiRDBに接続する場合の設定について説明します。なお，データベースとしてHiRDBを使用する場合は，HiRDBをインストールして初期設定を済ませておいてください。詳細については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

ここでは，DABroker Libraryを使用して，HiRDBでJ2EEリソースを扱う場合に必要な次の設定について説明します。

環境変数の設定

環境変数のグループ登録

タイムアウトの設定

なお，同一の環境変数を環境変数グループと環境変数の両方に設定した場合は，環境変数グループで設定した環境変数が優先されます。

(a)　環境変数の設定

次の環境変数を設定する必要があります。環境変数の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

PATH（Windowsの場合）

HiRDBのクライアントライブラリとして，次の値を指定します。通常，HiRDBのインストーラによってシステム環境変数に設定されます。

<HiRDBのホームディレクトリ>¥client¥lib

LIBPATH（AIXの場合）

HiRDBのクライアントライブラリとして，次の値を指定します。

<HiRDBのホームディレクトリ>/client/lib

LD_LIBRARY_PATH（HP-UXおよびLinuxの場合）

HiRDBのクライアントライブラリとして，次の値を指定します。

<HiRDBのホームディレクトリ>/client/lib

PDXAMODE※¹

「1」を指定します。

PDTXACANUM※¹

（HiRDBにアクセスするJ2EEコンポーネントの同時実行数＋1）×（J2EEコンポーネントでアクセスする可能性があるHiRDB数）を指定します。

PDHOST※²

データベースのホスト名またはIPアドレスを指定します。

PDUSER※²

データベースのユーザ名およびデータベースのパスワードを指定します。

PDNAMEPORT※²

データベースのポート番号を指定します。

PDSWAITTIME※²

リクエスト間隔タイムアウトを指定します。

PDCWAITTIME※²

レスポンスタイムアウトを指定します。

PDSWATCHTIME※²

「0」を指定します。コネクションプーリング機能を使用する場合は，「0」を指定してください。

注※1

グローバルトランザクションを使用する場合に設定します。この環境変数は，HiRDBのクライアント環境変数グループには登録できません。

注※2

これらの環境変数は，HiRDBのクライアント環境変数グループとして登録することもできます。登録方法については，「(b)　環境変数のグループ登録」で説明します。

(b)　環境変数のグループ登録

環境変数のグループは，次の方法で登録します。

Windowsの場合
HiRDBのクライアント環境変数登録ツールで「システムグループ」を選択して，環境変数のグループを登録します。この場合，DB Connectorのプロパティ定義では，ここで登録したグループ名を指定してください。

UNIXの場合
HiRDBのクライアント環境変数グループの設定ファイルに登録します。この場合，DB Connectorのプロパティ定義では，ここで登録した環境変数グループの設定ファイルのパスを指定してください。

なお，環境変数のグループ登録の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(c)　タイムアウトの設定

HiRDBのタイムアウトは，次に示すHiRDBのクライアント環境変数に設定します。

PDSWAITTIME

PDCWAITTIME

PDCONNECTWAITTIME

PDNBLOCKWAITTIME

HiRDBのクライアント環境変数の設定については，「(a)　環境変数の設定」を参照してください。

タイムアウトの設定については，マニュアル「アプリケーションサーバ システム設計ガイド」の「8.6.6　データベースでのタイムアウトを設定する」，マニュアル「HiRDB システム定義」，およびマニュアル「HiRDB UAP開発ガイド」を参照してください。

(2)　Oracleの設定

DABroker Libraryを使用してOracleに接続する場合の設定について説明します。なお，データベースとしてOracleを使用する場合は，Oracleをインストールして初期設定を済ませておいてください。詳細については，Oracleのマニュアルを参照してください。

注意

Oracle9i以降はOracle8iの機能範囲内でサポートしています。Oracle9i以降でサポートされた新たな固有の機能は使用できません。

ここでは，DABroker Libraryを使用して，OracleでJ2EEリソースを扱う場合に必要な次の設定について説明します。

環境変数の設定

トランザクションリカバリを行うための権限の設定

タイムアウトの設定

(a)　環境変数の設定

次の環境変数を設定する必要があります。

PATH（Windowsの場合）

Oracleのクライアントライブラリとして，次の値を指定します。通常，Oracleのインストーラによってシステム環境変数に設定されます。

<Oracleのホームディレクトリ>¥bin

LIBPATH（AIXの場合）

Oracleのクライアントライブラリとして，次の値を指定します。

<Oracleのホームディレクトリ>/lib32

LD_LIBRARY_PATH（HP-UXおよびLinuxの場合）

Oracleのクライアントライブラリとして，次の値を指定します。

<Oracleのホームディレクトリ>/lib32

NLS_LANG（UNIXの場合）

Oracleのクライアントで使用する言語を設定します。

設定値の例

japanese_japan.ja16sjis
Japanese_Japan.UTF8

(b)　トランザクションリカバリを行うための権限の設定

Oracleへの接続でグローバルトランザクションを使用する場合には，Oracleの接続ユーザにトランザクションリカバリを行うための権限を付与する必要があります。

付与する権限

SYS.DBA_PENDING_TRANSACTIONSのSELECT権限

FORCE ANY TRANSACTION権限

権限の付与の方法

次のどちらかの方法で権限を付与します。

Oracle Enterprise Managerコンソールを使用する

sqlplusを使用する

次に，Oracle 9.2.0で権限を付与する場合の例を示します。なお，権限を付与する方法の詳細については，Oracleのマニュアルを参照してください。

Oracle Enterprise Managerコンソールを使用する場合の例
Oracle Enterprise Managerコンソールを使用して権限を付与する場合の手順を次に示します。

sysユーザでデータベースに接続します。

［セキュリティ］－［ユーザー］－［<権限を付与するユーザ名>］－［オブジェクト権限］を開きます。

［SYS］－［ビュー］－［DBA_PENDING_TRANSACTIONS］を選択して，SELECT権限を付与します。

sqlplusを使用する場合の例
sqlplusを使用して権限を付与する場合の手順を次に示します。

sysユーザでデータベースに接続します。

次のSQL文を発行します。
grant select on DBA_PENDING_TRANSACTIONS to <権限を付与するユーザ名>;
commit;

(c)　タイムアウトの設定

必要に応じて，Oracleのタイムアウトを設定してください。タイムアウトは，Oracleのサーバ定義のDISTRIBUTED_LOCK_TIMEOUTパラメタに設定します。

なお，このほか，XAOpenStringのSesTmパラメタの設定がタイムアウトに影響します。このパラメタは，チューニングできません。

詳細については，マニュアル「アプリケーションサーバ システム設計ガイド」の「8.6　タイムアウトを設定する」またはマニュアル「アプリケーションサーバ システム設計ガイド」の「9.3　タイムアウトを設定する」，およびOracleのマニュアルを参照してください。

(d)　動的パフォーマンスビューの参照権の設定

Oracleに接続するユーザは，動的パフォーマンスビューの参照権を持っている必要があります。次のどちらかの方法でOracleに接続するユーザに動的パフォーマンスビューの参照権を設定してください。

「GRANT SELECT_CATALOG_ROLE TO <ユーザ名>;」を実行する。

「GRANT SELECT ON V_$INSTANCE TO <ユーザ名>;」，「GRANT SELECT ON V_$PROCESS TO <ユーザ名>;」，および「GRANT SELECT ON V_$SESSION TO <ユーザ名>;」を実行する。

(e)　OS認証を使用する場合の設定（Windowsの場合）

DABroker Libraryのサービスは，Windowsのローカルシステムアカウントを使用しています。そのため，OS認証をするユーザがWindowsのローカルシステムアカウントでない場合は，DABroker Libraryのサービスアカウントを使用するOS認証に変更してください。なお，OS認証を使用できるのは，Javaを使用してデータベースアクセスする場合だけです。

(3)　XDM/RD E2の設定

DABroker Libraryを使用してXDM/RD E2に接続する場合の設定は，HiRDB Type4 JDBC Driverを使用して接続する場合の設定と同じです。HiRDB Type4 JDBC Driverを使用してXDM/RD E2に接続する場合の設定については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「付録L　XDM/RD E2の設定」を参照してください。

4.4　データベースとアプリケーション間の文字コードの変換

アプリケーションからデータベースに文字データを格納するときには，Unicodeからデータベースに設定されている文字コードに変換して格納する必要があります。文字コード変換はJDBCドライバによって行われますが，次に示す内容に従って，あらかじめJDBCドライバに使用する文字コードを設定しておく必要があります。

ここでは，データベースへの接続方法ごとの文字コードの設定方法について説明します。

＜この節の構成＞

(1)　APIを使用して実装したアプリケーションでデータベースに接続する場合

(2)　DB Connectorを使用してデータベースに接続する場合

(1)　APIを使用して実装したアプリケーションでデータベースに接続する場合

JDBCコネクションを取得するとき，ENCODELANGキーに該当値を設定したプロパティを作成し，DABroker Libraryのjava.sql.Driver.connectメソッドまたはjava.sql.DriverManager.getConnectionメソッドの引数に渡してください。

(2)　DB Connectorを使用してデータベースに接続する場合

Connector属性ファイルのencodLangプロパティで指定します。

ベーシックモードでは，ejbserver.jdbc.propertyInfo.ENCODELANGプロパティに使用する文字コードを指定してください。このプロパティに値が指定されている場合，J2EEサーバがJDBCコネクションを取得するときに，ENCODELANGキーに該当値を設定したプロパティを作成し，DABroker Libraryのjava.sql.Driver.connectの引数に渡します。

4.5　受信バッファのプーリングの設定

DABroker Libraryを使用する場合，実行したSQLに対して返却される実行結果を格納する領域をプールして再利用できます。この領域を受信バッファといいます。また，受信バッファをプールするための領域を受信バッファプールといいます。受信バッファをプールすることによって，SQL実行時に受信バッファが頻繁に作成，破棄されることで発生する負荷を削減できます。

また，プールする受信バッファの数を指定できるため，ステートメントプーリング使用時のメモリ占有量を抑制できます。

ここでは，受信バッファの管理と，受信バッファプール数の指定について説明します。

＜この節の構成＞

4.5.1　受信バッファの管理

4.5.2　受信バッファプール数の指定

4.5.1　受信バッファの管理

受信バッファの管理では，プールする受信バッファ数を指定する場合と指定しない場合とで，受信バッファの再利用のしかたが異なります。ここでは，プールする受信バッファ数を指定しない，デフォルトの場合について説明します。受信バッファ数を指定する場合については，「4.5.2　受信バッファプール数の指定」を参照してください。

受信バッファは，Statementごとに受信バッファプールに生成されます。生成された受信バッファはセクションIDで管理され，同一のStatementで再利用されます。なお，ここでは，Statement，PreparedStatement，およびCallableStatementをStatementと総称します。

受信バッファプールの管理の概要を次の図に示します。

図4-1　受信バッファプールの管理の概要（受信バッファプール数を指定しない場合）

受信バッファが生成されるタイミング

Statementの受信バッファはデータベースとの接続時に一つ生成され，そのセクションIDは「1」になります。これ以降はSQL実行時に受信バッファが生成されます。受信バッファが生成されると，受信バッファプールに登録されます。

受信バッファの保持期間

受信バッファプールに登録された受信バッファは，コネクションがクローズされるまで保持されます。ステートメントをクローズしても，受信バッファは破棄されません。

プールする受信バッファの数

プールできる受信バッファの数は，最大1,024個です。

SQLを実行するメソッド

次のメソッドを実行するとSQLが実行され，受信バッファが生成されます。

表4-16　4SQLを実行するメソッド

クラス | メソッド
Connection | prepareCall(String sql)
prepareCall(String sql, int resultSetType, int resultSetConcurrency)
prepareStatement(String sql)
prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
DatabaseMetaData | getProcedures(String catalog, String schemaPattern, String procedureNamePattern)
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
getSchemas()
getTableTypes()
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern)
getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)
getPrimaryKeys(String catalog, String schema, String table)
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)
Statement | executeBatch()
execute(String sql)
executeQuery(String sql)
executeUpdate(String sql)
PreparedStatement | execute()
executeQuery()
executeUpdate()

4.5.2　受信バッファプール数の指定

受信バッファプールに登録してプールする受信バッファの数を指定できます。この数のことを受信バッファプール数といいます。受信バッファプール数を指定することによってSQL実行時の性能を向上でき，メモリ占有量を軽減できます。

受信バッファプール数は，1～1,024個の範囲で指定できます。受信バッファプール数を指定すると，同一コネクション内で受信バッファが再利用されます。そのため，セッションIDが異なるStatementでも，同一コネクションであれば受信バッファを再利用できます。受信バッファが，指定した受信バッファプール数よりも多く必要になった場合は，一時的に受信バッファを生成し，DABroker Libraryから実行結果のデータを受信したあとに破棄します。このような一時的に生成した受信バッファは，受信バッファプールには登録されません。

受信バッファプール数を指定した場合の，受信バッファプールの管理の概要を次の図に示します。

図4-2　受信バッファプールの管理の概要（受信バッファプール数を指定した場合）

受信バッファが生成されるタイミング

受信バッファが生成されるタイミングは，受信バッファプール数を指定しない場合と同じです。詳細については，「4.5.1　受信バッファの管理」を参照してください。

受信バッファを取得または返却するタイミング

受信バッファプールから受信バッファを取得するタイミング，および受信バッファを受信バッファプールに返却するタイミングは，SQLを実行するメソッドによって異なります。

各メソッドの動作は次の三つに分類されます。

表4-17　メソッドの動作の分類

動作 | 説明
1 | メソッド実行時に受信バッファを受信バッファプールから取得する。メソッド終了後，受信バッファを受信バッファプールに戻す。
2 | 動作2に分類されるメソッドのうち，最初に実行するメソッドで受信バッファを受信バッファプールから取得する。メソッドが終了しても，受信バッファは受信バッファプールに戻さない。
3 | 動作2に分類されるメソッドで取得した受信バッファを受信バッファプールに戻す。新たな受信バッファは取得しない。

受信バッファを再利用する際に受信バッファを取得または返却するメソッド，およびメソッドの動作を次の表に示します。動作の列の数字は，上記の表と対応しています。

表4-18　SQLを実行するメソッド，およびメソッドの動作

クラス | メソッド | 動作
Connection | prepareCall(String sql) | 1
prepareCall(String sql, int resultSetType, int resultSetConcurrency) | 1
prepareStatement(String sql) | 1
prepareStatement(String sql, int resultSetType, int resultSetConcurrency) | 1
DatabaseMetaData | getProcedures(String catalog, String schemaPattern, String procedureNamePattern) | 1
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) | 1
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) | 1
getSchemas() | 1
getTableTypes() | 1
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) | 1
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) | 1
getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) | 1
getPrimaryKeys(String catalog, String schema, String table) | 1
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) | 1
Statement | executeBatch() | 1
execute(String sql) | 1
executeQuery(String sql) | 1
executeUpdate(String sql) | 1
close()※ | 3
PreparedStatement | execute() | 1
executeQuery() | 1
executeUpdate() | 1
ResultSet | absolute(int row) | 2
afterLast() | 2
first() | 2
next() | 2
close() | 3

注※　ResultSet#close()メソッドを実行していない場合だけ使用できます。

＜この項の構成＞

(1)　受信バッファプール数の指定方法

(2)　受信バッファプール数の目安

(1)　受信バッファプール数の指定方法

受信バッファプール数は，次のどれかの方法で指定します。また，これらを同時に指定した場合，1，2，3の優先度順に決定されます。

DataSource#setBufferPoolSize()メソッドで指定する。

接続するデータベースの設定で，getConnectionメソッドおよびconnectメソッドの引数Properties infoに，キーワード「BUF_POOL_SIZE」を指定する。

データベースの各種情報の設定で，引数URLに「BUF_POOL_SIZE」を指定する。

指定方法の詳細については，「4.7.4　データベース接続の設定」を参照してください。

(2)　受信バッファプール数の目安

受信バッファプール数は，次の式で求められる数以上の数を目安に設定します。

検索処理に必要な受信バッファ数+更新処理に必要な受信バッファ数

検索処理に必要な受信バッファ数

アプリケーションの中で同時に使用するResultSetの数です。

実行するStatementが4個のアプリケーションの場合の，ResultSetの数の例を次の図に示します。

図4-3　アプリケーション中で同時に使用するResultSetの数

この図の場合，アプリケーションの開始から終了までの間に同時に使用するResultSetの数は3のため，検索処理に必要な受信バッファ数は3となります。

更新処理に必要な受信バッファ数

次のどちらかで求めます。

更新処理を単一スレッドで逐次実行する場合は，1

更新処理をマルチスレッドで同時実行する場合は，アプリケーションの中で同時実行する更新SQLの数

実際に必要な受信バッファ数が，この式を基に設定した受信バッファ数を超えた場合，受信バッファを新たに生成し，使用後に破棄します。このとき，生成した受信バッファは受信バッファプールに登録されません。この場合，オブジェクトの作成，破棄が頻発するため，性能が劣化することがあります。ただし，設定した受信バッファ数を超えた分の受信バッファは使用後に破棄するため，式を基に設定した場合よりメモリ占有量は軽減します。

4.6　DABroker Libraryを使用する場合のトラブルシュート

ここでは，DABroker Libraryを使用する場合のトラブルシュートについて説明します。

＜この節の構成＞

4.6.1　snapshotログとして収集できる資料

4.6.2　DABroker Libraryで取得できるログの種類と出力先

4.6.3　DABroker Libraryのスプール情報の内容

4.6.4　資料取得のための設定

4.6.5　DABroker Libraryで取得できるトレース

4.6.6　DABroker Libraryのトレースファイル運用時の留意事項

4.6.7　データベースと接続中にトラブルが発生した場合

4.6.1　snapshotログとして収集できる資料

DABroker Libraryの資料は，snapshotログとして収集できます。

snapshotログとして収集できる資料については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「付録A　snapshotログの収集対象一覧」を参照してください。

4.6.2　DABroker Libraryで取得できるログの種類と出力先

DABroker Libraryでは，トラブルシューティングに使用するログとして，スプール情報を取得します。スプール情報として取得できるのは，次の情報です。

メッセージログ

拡張データベースアクセストレース

エラートレース

Exceptionトレースログ

イベントトレース（DABroker for C++をインストールしている場合）

XAトレース

また，これらのログは，アプリケーションサーバのログにトレース共通ライブラリ形式（マルチプロセス）で出力されます。トレース共通ライブラリ形式のログの出力形式および出力項目については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「5.2.1　トレース共通ライブラリ形式のログの出力形式と出力項目」を参照してください。また，トレース共通ライブラリ形式のログを参照する場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「5.2.2　トレース共通ライブラリ形式のログを参照する場合の注意」を参照してください。

「<DABroker Libraryの運用ディレクトリ>¥spool下」（Windowsの場合），または「<DABroker Libraryの運用ディレクトリ>/spool下」（UNIXの場合）のすべてのファイルをコピーして保存してください。<DABroker Libraryの運用ディレクトリ>とは，「<アプリケーションサーバのインストールディレクトリ>¥DAB」（Windowsの場合），または「/opt/DABroker」（UNIXの場合）のことです。なお，環境設定によって出力先を変更している場合は，変更した出力先のファイルをコピーして保存してください。

DABroker Libraryのスプール情報のうち，Exceptionトレースログは，運用開始前に取得のための設定をしておく必要があります。Exceptionトレースログ取得の設定については，「4.6.4　資料取得のための設定」を参照してください。

注意

HP-UXでメッセージログファイルへの書き込みが失敗した場合，書き込みに失敗要因のメッセージと，メッセージログファイルへ書き込もうとしたメッセージをシステムログに出力します。この場合，システムログに対応していないメッセージを書き込むことがあるので，注意してください。

4.6.3　DABroker Libraryのスプール情報の内容

DABroker Libraryのスプール情報の調査方法について説明します。

DABroker Libraryのスプール情報には，次の種類があります。これらの情報は，<DABroker Libraryの運用ディレクトリ>¥spool（Windowsの場合），または<DABroker Libraryの運用ディレクトリ>/spool（UNIXの場合）に出力されています。

表4-19　DABroker Libraryのスプール情報

スプール情報の種類
対応するファイル

メッセージログ
dabsv.log
dabsv.logold

拡張データベースアクセストレース
db_accessディレクトリ下のファイル

エラートレース
dabevttrcerr1.txt（ログ出力用ファイル）
dabevttrcerr2.txt（バックアップ用ファイル）※1

Exceptionトレースログ
J2EEサーバ名称+MTrc.logおよびJ2EEサーバ名称+MTrcOLD.log

イベントトレース※2
dabevttrcXXX1およびdabevttrcXXX2

XAトレース
db_xainfo.log

注※1　これらのほか，ワークファイルが，dabevttrcerr1.txt.lockという名称で作成されます。

注※2　DABroker for C++をインストールしている場合に出力されます。

それぞれの情報について説明します。

また，このほか，DABroker Libraryのログとしては，次のJDBCドライバのトレースが取得できます。これらのトレースは，アプリケーション開発時に設定されている場合だけ出力されます。

JDBCドライバのトレース（JDBCインタフェースメソッドトレース）

JDBCドライバのトレース（DABroker Libraryとのイベントトレース）

＜この項の構成＞

(1)　メッセージログ

(2)　拡張データベースアクセストレース

(3)　エラートレース

(4)　Exceptionトレースログ

(5)　イベントトレース

(6)　XAトレースの取得形式

(7)　JDBCドライバのトレース（JDBCインタフェースメソッドトレース）

(8)　JDBCドライバのトレース（DABroker Libraryとのイベントトレース）

(1)　メッセージログ

DABroker Libraryのメッセージが出力されたファイルです。

(2)　拡張データベースアクセストレース

データベースへの接続から切断までのアクセス情報を出力したトレースです。データベースへの接続ごとに出力されます。

拡張データベースアクセストレースは，次のように利用できます。

データベースのアクセス中に発生したトラブルの迅速な切り分け

24時間稼働に対応するJ2EEアプリケーションの稼働状態でのトラブル調査

マルチスレッド環境でJ2EEアプリケーションが動作している場合のスレッドごとのデータベースアクセス履歴取得

コネクションプーリングなどの機能を使用している場合のデータベースへの接続ごとのデータベースアクセス履歴取得

トラブルが再現調査できない場合の常時トレース取得

なお，出力するイベントの種類や，トレースファイルの最大容量などは，DABroker Libraryの［環境設定ユティリティ］，またはDABroker Library動作環境定義ファイルで定義しておきます。DABroker Libraryの動作環境の設定については，Windowsの場合は「4.3.1(3) DABroker Libraryの動作環境の設定（Windowsの場合）」，UNIXの場合は「4.3.2(4) DABroker Libraryの動作環境の設定（UNIXの場合）」を参照してください。DABroker Library動作環境定義ファイルの詳細については，「4.24　DABroker Library動作環境定義ファイル」を参照してください。

(a)　出力形式

拡張データベースアクセストレースのファイル出力形式を次に示します。斜体は可変の情報です。拡張データベースアクセストレースは，次の2種類の情報で構成されます。

ヘッダ情報

個々のトレース情報

個々のトレース情報は，出力項目を示すタイトル行の下に出力されます。

Windowsの場合

*-------------------------------------------------------*
*- DataBase Access Information (DRV)                   -*
*- Date  YYYY/MM/DD hh:mm:ss.nnnnnn                    -*
*-------------------------------------------------------*
DABroker Connect ID    : AAAAA(BBBBB)
Process ID             : CCCCC
UserID                 : DDDDD
Client Name            : EEEEE
(DB別出力情報)
Lang Mode              : GGGGG

THREAD-ID  CID   EVT   START-TIME   END-TIME   RETCODE  BLOCKCNT  (Windows QueryPerformance Counter) HiRDB_CONNECTION_ID
（トレース情報）
(SQL)SS…SS
（トレース情報）

UNIXの場合

*-------------------------------------------------------*
*- DataBase Access Information (DRV)                   -*
*- Date  YYYY/MM/DD hh:mm:ss.nnnnnn                    -*
*-------------------------------------------------------*
DABroker Connect ID    : AAAAA(BBBBB)
Process ID             : CCCCC
UserID                 : DDDDD
Client Name            : EEEEE
(DB別出力情報)
Lang Mode              : GGGGG

THREAD-ID  CID   EVT   START-TIME   END-TIME   RETCODE
BLOCKCNT   HiRDB_CONNECTION_ID
（トレース情報）
(SQL)SS…SS
（トレース情報）

(b)　出力項目

拡張データベースアクセストレースの出力項目について，次の表に示します。斜体は可変の情報です。

表4-20　拡張データベースアクセストレースの出力項目

項目
内容

ヘッダ情報

DRV
DABroker Libraryのデータベースアクセスドライバの種別に従い，次の識別子が出力されます。

HiRDB接続の場合：HiRDB Driver

Oracle8i接続の場合：ORACLE8i Driver※（Oracle Call Interface 8iを使用）

Oracle7接続の場合：ORACLE7 Driver（Oracle Call Interface 7を使用）

Date:YYYY/MM/DD hh:mm:ss.nnnnnn
ファイル作成日時（YYYY/MM/DD hh:mm:ss.nnnnnn）が出力されます。

YYYY：西暦年，MM：月，DD：日

hh：時，mm：分，ss：秒，nnnnnn：マイクロ秒

DABroker Connect ID:AAAAA(BBBBB)
データベース接続識別子が出力されます。

Process ID:CCCCC
実行プロセスIDが出力されます。

UserID:DDDDD
接続ユーザIDが出力されます。
DABroker LibraryでORACLEのOS認証機能を使用した場合は，「OS authority」となります。

Client Name:EEEEE
J2EEアプリケーション名称が出力されます。名称が設定されていない場合は空白になります。

(DB別出力情報)
接続データベースによって異なる情報が出力されます。

HiRDBの場合

PDHOST：
HiRDB接続時のPDHOSTの設定内容です。
未設定の場合は，"Not Indicator"が出力されます。

PDNAMEPORT：
HiRDB接続時のPDNAMEPORTの設定内容です。
未設定の場合は，"Not Indicator"が出力されます。

Oracleの場合

SQLNET：
Oracleリスナー名が出力されます。
未設定の場合は，"Not Indicator"が出力されます。

Lang Mode:GGGGG
実行言語モードが出力されます。

個々のトレース情報

THREAD-ID
実行スレッドIDが出力されます。

CID
カーソル番号が出力されます。

EVT
DABroker Libraryがデータベースに要求した処理内容を示す文字列が出力されます。データベースアクセストレースおよび拡張データベースアクセストレースの内容が含まれます。
DABroker Libraryの［環境設定ユティリティ］またはDABroker Library動作環境定義ファイルで設定された内容のイベントが出力されます。なお，すべてのイベントを出力しない設定にしている場合は，ヘッダだけが出力されます。なお，何か一つでもイベントを出力する設定にしている場合は，GET_DIAGイベントは必ず出力されます。

出力されるイベントを次に示します。

ATTACH：サーバとのアクセスパス作成要求を実行します。

ATTRGET：ハンドル属性の取得要求を実行します。

ATTRSET：ハンドル属性の設定要求を実行します。

AUTOCOMOFF：AUTO COMMITモードの解除要求を実行します。

AUTOCOMON：AUTO COMMITモードの設定要求を実行します。

BIND：パラメタのバインド要求を実行します。

CHARFORM：キャラクタセットフォームの取得要求を実行します。

CHARID：キャラクタセットIDの取得要求を実行します。

DEFINE：パラメタの定義要求を実行します。

DESALLOC：記述子の領域確保を実行します。

DESC_OUT：前処理したSQLの出力情報を返します。

DESC_IN ：前処理したSQLの入力情報を返します。

DESCANY：オブジェクトの記述要求を実行します。

DESFREE：記述子の領域解放を実行します。

DETACH：データベースアクセスパス削除要求を実行します。

ENVCREATE：環境作成要求を実行します。

ERRGET：エラー情報取得要求を実行します。

EXECDIRECT：SQLの前処理後の実行処理です。

GET_DIAG：エラー詳細情報の取得処理を実行します。

GETINFO：接続後の動作情報の取得要求を実行します。

GETPIECE：ピース情報の取得要求を実行します。

HDLALLOC：ハンドルの領域確保を実行します。

HDLFREE：ハンドルの領域解放を実行します。

LOBCLOSE：BFILEデータのクローズ要求を実行します。

LOBLEN：LOBデータの長さ取得要求を実行します。

LOBOPEN：BFILEデータのオープン要求を実行します。

LOBREAD：LOBデータの読み込み要求を実行します。

LOBWRITE：LOBデータの書き込み要求を実行します。

PARAMGET：パラメタ情報の取得要求を実行します。

SESBEGIN：セッション開始要求を実行します。

SESEND：セッション終了要求を実行します。

SETINFO：接続後の動作情報の設定要求を実行します。

SETPIECE：ピース情報の設定要求を実行します。

START-TIME
アクセス開始日時（YYYY/MM/DD hh:mm:ss.nnnnnn）が出力されます。

YYYY：西暦年，MM：月，DD：日

hh：時，mm：分，ss：秒，nnnnnn：マイクロ秒

END-TIME
アクセス終了日時（YYYY/MM/DD hh:mm:ss.nnnnnn）が出力されます。

YYYY：西暦年，MM：月，DD：日

hh：時，mm：分，ss：秒，nnnnnn：マイクロ秒

RETCODE
データベースから返されるリターンコードが出力されます。

BLOCKCNT
FETCH時の行取得件数が出力されます。

(Windows QueryPerformance Counter)
Windowsの場合に，高分解パフォーマンス情報が表示されます。

HiRDB_CONNECTION_ID
コネクションID（aaaa:bbbb:cccc）が出力されます。

aaaa：
フロントエンドサーバ名（HiRDB/Parallel Server使用時）またはシングルサーバ名（HiRDB/Single Server使用時）

bbbb：
aaaaで示すサーバの接続通番

cccc：
aaaaで示すサーバのプロセスID。
コネクションIDは，HiRDBクライアントのバージョンが07-01以降で，かつサーバがHiRDBである場合だけ出力されます。サーバがHiRDBで，かつHiRDBクライアントのバージョンが07-01よりも前の場合は，ヘッダ（HiRDB_CONNECTION_ID）だけが出力され，コネクションIDは出力されません。また，サーバがXDM/RD E2の場合は，ヘッダ（HiRDB_CONNECTION_ID）およびコネクションIDは出力されません。なお，この情報は，CONNECT，COMMIT，ROLLBACK，PREPARE，EXECUTE，DIRECTを実行したとき，最新の情報に更新されます。

(SQL)SS…SS
クライアントから要求のあったSQLの内容が出力されます。この項目は，必要に応じて出力されます。

注※

DABroker LibraryからOracle8i，Oracle9iおよびOracle10gの機能を使用する場合に出力されます。

(c)　ファイル名称規則

拡張データベースアクセストレースのファイルは，次のディレクトリに作成されます。

Windowsの場合
<DABroker Library運用ディレクトリ>¥spool¥db_access

UNIXの場合
<DABroker Library運用ディレクトリ>/spool/db_access

拡張データベースアクセストレースのファイル名称は，次の規則に従います。斜体は可変の情報です。

spdb_XXXXXXXX_YYYYYYYY_HHHHHHHHHHHHHHHH_<接続データベース名称>ZZZZZ.IIIIII

ファイル名称中の文字列について次に示します。

表4-21　拡張データベーストレースのファイル名称の規則

項目
意味

XXXXXXXX
実行プロセスIDが設定されます。

YYYYYYYY
データベース接続識別子が設定されます。

HHHHHHHHHHHHHHHH
実行プロセスごとにユニークな接続識別子が設定されます。

＜接続データベース名称＞
接続データベース名称です。指定したデータベース種別によって，次のどれかが設定されます。

HiRDBの場合：HiRDB

Oracle8i接続の場合：ORACLE8i

Oracle7の場合：ORACLE7

ZZZZZ
識別順序番号が設定されます。
同じ実行プロセスIDで，かつ同じデータベース接続識別子のファイルがある場合に，00000から32767までの番号を付加します。

IIIIII
ファイル拡張子が設定されます。

log：最新のトレースファイル

logold：1世代前のトレースファイル

(3)　エラートレース

エラートレースは，ログファイルに出力されるDABroker Libraryのエラー情報です。

エラートレースとして出力される情報を次に示します。

エラー事象を示す情報
エラーメッセージなどが出力されます。

データベース接続情報
データベース接続に関連する情報が出力されます。

履歴情報
エラーが発生する前に要求を受けた情報，前回コミットまたはロールバックが実行された時間，SQL文の実行要求処理中の実行中カーソルでの要求ごとの履歴情報などが出力されます。

(a)　エラー事象を示す情報

エラー事象を示す情報の出力形式および出力項目について説明します。

出力形式

エラー事象を示す情報のファイル出力形式を次に示します。斜体は可変の情報です。

YYYY/MM/DD hh:mm:ss.sss TID=AAAA SS..SS

エラー事象を示す情報の出力例を次に示します。

2004/05/07 13:30:09.555  TID=4040 KFPA11561-E Specified authorization identifier has no connect privilege

出力項目

エラー事象を示す情報の出力項目について，次の表に示します。

表4-22　エラートレースのエラー事象を示す情報の出力項目

項目
意味

YYYY/MM/DD hh:mm:ss.sss
エラー発生日時が出力されます。
YYYY：西暦年，MM：月，DD：日
hh：時，mm：分，ss：秒，sss：ミリ秒

AAAA
エラー発生スレッドID（16進数値）が出力されます。

SS...SS
エラーメッセージが出力されます。

(b)　データベース接続情報

データベース接続情報の出力形式および出力項目について説明します。

出力形式

エラートレースのデータベース接続情報のファイル出力形式を次に示します。斜体は可変の情報です。

YYYY/MM/DD hh:mm:ss.sss PID=BBBB InitID=CCCC ConID=DDDD CName=EEEE DBID=FFFF CID=GGGG(HHHH,IIII)

エラートレースのデータベース接続情報の出力例を次に示します。

2004/05/07 13:30:21.232 PID=1752 InitID=701 ConID=10701 CName=DABLIBAP DBID=1 CID=1(0,0)

出力項目

エラートレースのデータベース接続情報のファイル出力項目について，次の表に示します。

表4-23　エラートレースのデータベース接続情報の出力項目

項目
意味

YYYY/MM/DD hh:mm:ss.sss
データベース接続日時が出力されます。
YYYY：西暦年，MM：月，DD：日
hh：時，mm：分，ss：秒，sss：ミリ秒

BBBB
プロセスID（10進数値）が出力されます。

CCCC
DABroker Library接続ID（16進数値）が出力されます。

DDDD
データベース接続識別子（16進数値）が出力されます。

EEEE
J2EEアプリケーションの名称が出力されます。ただし，名称なしの場合は空白となります。

FFFF
データベースID（10進数値）が出力されます。
1：HiRDB
7：Oracle8i
8：Oracle9i

GGGG
実行中カーソルID（10進数値）が出力されます。

HHHH
保守用情報が出力されます。

IIII
保守用情報が出力されます。

(c)　履歴情報

履歴情報の出力形式および出力項目について説明します。

出力形式

エラートレースの履歴情報のファイル出力形式を次に示します。

ヘッダ「START-TIME EXEC-TIME TID COUNT REQ-CODE DATA」の下に，次に示す形式でトレース情報が出力されます。斜体は可変の情報です。

YYYY/MM/DD hh:mm:ss.sss mmmm:ss.sss JJJJJJJJ KKKKKKKK LLLL MMMM NNNNNNNN OOOOOOOO PP..PP

エラートレースの履歴情報の出力例を以下に示します。

START-TIME               EXEC-TIME    TID    COUNT  REQ-CODE  DATA
2004/05/07 15:37:16.733  0:00.030     1712        7 1022 NOW  00000000​ 00000001​
2004/05/07 15:36:18.369  0:00.000     1712        6 1022 OLD  00000001​ 00000002​
2004/05/07 15:35:59.191  0:00.281     1712        2 1021 PRE  00000000​ 00000002​
INSERT INTO "HS
2004/05/07 15:36:18.369  0:00.000     1712        6 1022 EXE  00000001​ 00000002​

出力項目

エラートレースの履歴情報のファイル出力項目について，次の表に示します。

表4-24　エラートレースの履歴情報の出力項目

項目
意味

YYYY/MM/DD hh:mm:ss.sss
要求開始日時が出力されます。
YYYY：西暦年，MM：月，DD：日
hh：時，mm：分，ss：秒，sss：ミリ秒

mmmm:ss.sss
要求実行時間が出力されます。
mmmm：分，ss：秒，sss：ミリ秒

JJJJJJJJ
要求元スレッドID（16進数値）が出力されます。

KKKKKKKK
コネクト要求からの累計要求カウント数（16進数値）が出力されます。FETの場合は，SQL文実行時のFETの要求回数0xFFFFFFFFを超えた場合は，0から循環します。

LLLL
要求コード（10進数値）要求コードの詳細は，「表4-25　要求コード・応答コード一覧」を参照してください。

MMMM
大きくわけて次の3種類に分類されます。

共通履歴情報
NOW：実行中の情報
OLD：一つ前の要求の情報

SQL文の実行要求時に指定されたカーソルの履歴情報
SPRE：SQL PREPARE処理
EXE：SQL EXECUTE処理
FET1：SQL FETCH処理初回
FET：SQL FETCH処理
CLS：SQL CLOSE処理

コミット/ロールバック情報
CMT：コミット処理
RBK：ロールバック処理

詳細は，「表4-26　各履歴種別によるDATA内容」を参照してください。

NNNNNNNN
情報1（16進数値）
詳細は，「表4-26　各履歴種別によるDATA内容」を参照してください。

OOOOOOOO
情報2（16進数値）
詳細は，「表4-26　各履歴種別によるDATA内容」を参照してください。

PP..PP
詳細情報（任意文字列）
詳細は，「表4-26　各履歴種別によるDATA内容」を参照してください。

データベース接続情報に出力される，要求コードおよび応答コードの一覧を次の表に示します。

表4-25　要求コード・応答コード一覧

要求コード・応答コード
（LLLL）
種別

1001
コネクション解放

1002
データベース接続

1003
データベース切り離し

1004
Commit

1005
Rollback

1006
表一覧取得準備

1007
表一覧取得

1008
表一覧取得後処理

1009
列一覧取得準備

1010
列一覧取得

1011
列一覧取得後処理

1012
索引一覧取得準備

1013
索引一覧取得

1014
索引一覧取得後処理

1015
表権限一覧取得準備

1016
表権限一覧取得

1017
表権限一覧取得後処理

1018
列権限一覧取得準備

1019
列権限一覧取得

1020
列権限一覧取得後処理

1021
SQL実行準備

1022
SQL実行

1023
SQL実行結果取得

1024
SQL実行後処理

1035
SQL実行結果取得オプション

1036
BLOBファイル削除

1037
プライマリキー一覧取得準備

1038
プライマリキー一覧取得

1039
プライマリキー一覧取得後処理

1040
BLOB，CLOBおよびBFILE分割取得

1041
自動Commit設定

1042
自動Commit解除

1050
XAトランザクション制御

1501
ストアドプロシジャ一覧取得準備

1502
ストアドプロシジャ一覧取得

1503
ストアドプロシジャ一覧取得後処理

1504
ストアドプロシジャ列一覧取得準備

1505
ストアドプロシジャ列一覧取得

1506
ストアドプロシジャ列一覧取得後処理

1507
ストアドプロシジャパラメタ定義情報取得

1508
ストアドプロシジャ実行準備

1509
ストアドプロシジャ実行

1510
ストアドプロシジャ拡張実行

2001
正常応答

2002
異常応答

データベース接続情報に出力される，各履歴種別によるDATA内容の一覧を次の表に示します。

表4-26　各履歴種別によるDATA内容

履歴種別(MMMM) | 情報1(NNNNNNNN) | 情報2(OOOOOOOO) | 詳細情報(PP..PP)
PRE | 検索カラム数 | ?パラメタ定義数 | SQLの先頭16バイト（マルチバイト文字コードの途中の場合はその文字は出力しません）
EXE | SQL実行件数※ | ?パラメタ指定数 | －
FET1 | 要求時検索件数 | 最大検索件数 | －
FET | 累計検索件数 | 要求時検索件数 | －
CLS | 0固定 | 0固定 | －
CMT | － | － | －
RBK | － | － | －
NOW | 今回の要求コードで取得した情報 | － | －
OLD | 前回の要求コードで取得した情報 | － | －

（凡例）

－：該当しない

注※

INSERT，UPDATE，DELETE実行時の件数

(4)　Exceptionトレースログ

Exceptionトレースログは，メソッド実行時に障害が発生した場合に障害要因を分析するためのトレース情報です。障害発生時の問題個所の切り分けをするときに有効です。メソッドの呼び出し情報，メソッドの戻り値の情報，および例外（Exception）の情報が，製品名称などが出力されたヘッダと合わせて出力されます。

Exceptionトレースログとして出力される情報を次に示します。

表4-27　 Exceptionトレースログとして出力される情報

情報の種類 | 内容
ヘッダ | 出力情報の通番
製品名称
メソッドの呼び出し情報 | ログの取得時間
スレッド識別情報
メソッドの呼び出し識別情報
クラス名，オブジェクトID，メソッド名
コネクションハンドル
セクションID（カーソルIDと同じことを表現しています）
メソッドの引数
メソッドの戻り情報 | ログの取得時間
スレッド識別情報
メソッドの戻り識別情報
クラス名，オブジェクトID，メソッド名
コネクションハンドル
セクションID（カーソルIDと同じことを表現しています）
メソッドの引数
Exceptionの情報 | ログの取得時間
スレッド識別情報
Exceptionのスタックトレース

Exceptionトレースログは，SQLException，BatchUpdateException，またはXAExceptionが発生したときに，環境変数に設定した設定情報を基に，Exceptionがthrowされる前にファイルに出力されます。Exceptionトレースを出力するメソッドと，ログ出力に関連する環境変数については，「4.6.2　DABroker Libraryで取得できるログの種類と出力先」を参照してください。

(a)　出力形式と出力項目

Exceptionトレースログの出力形式を，トレース取得レベル5の場合の出力例を基に説明します。

出力される内容について次の表で示します。項番は出力例中の番号と対応しています。

表4-28　 Exceptionトレースログの出力項目

項番 | 区分 | 表示 | 意味
1 | ヘッダ | [XXXX] | 出力情報の通番を示します。
2 | Cosminexus DABroker for Java , DABroker for Java Version 2 XX-XX-XX | DABroker Libraryのログであることを示します。
3 | 共通 | XXXX/XX/XX XX:XX:XX.XXX | ログの取得時間を示します。
4 | Thread[XXXX,XXXXX,XXXX]@XXXX | スレッド識別情報を示します。
5 | [JdbcDbpsvXXXX@XXXX.XXXX] | クラス名，オブジェクトID，メソッド名を示します。
6 | HANDLE(XXXX) | ConnectionHandleを示します。
7 | SID(XXX) | セクションID（カーソルIDと同じことを表現しています）を示します。
8 | メソッドの呼び出し情報 | [E] | メソッドの呼び出し識別情報を示します。
9 | XXXX=XXXX | メソッドの引数を示します。
10 | メソッドの戻り情報 | [R] | メソッドからの戻り識別情報を示します。
11 | Return=XXXX | メソッドの戻り値を示します。
12 | Exception情報 | JP.co.Hitachi.soft.DBPSV_Driver.XXXXException:XXXX | Exceptionのスタックトレースを表示します。

(b)　解析方法

ここでは，(1)で示した出力例を使用して，Exceptionトレースログの解析方法について説明します。

Exceptionトレースログは，次の手順で解析します。

解析するログの通番から，ログ情報を抜き出します。

ログ情報を，Thread識別情報で分類して，ログごとに分割します。

ログの取得時間によって，ログ情報を時系列に並べます。
手順1.～3.を実施すると，次のような表を作成できます。

時間
スレッド1
スレッド2
スレッド3
スレッド4

Thread[main,5,main]
@1259414​
Thread[Thread-0,5,main]
@30090737​
Thread[Thread-1,5,main]
@5462872​
Thread[Thread-2,5,main]
@25253977​

2004/07/06 23:07:09.129
JdbcDbpsvConnection
@82c01f.createStatement(1)
－
－
－

2004/07/06 23:07:09.160
JdbcDbpsvStatement
@1e4cbc4.execute
－
－
－

2004/07/06 23:07:14.285
JdbcDbpsvConnection
@82c01f.commit
－
－
－

2004/07/06 23:07:14.301
JdbcDbpsvConnection
@82c01f.prepareStatement(1)
－
－
－

2004/07/06 23:07:26.567
JdbcDbpsvConnection
@82c01f.commit
－
－
－

2004/07/06 23:07:26.567
JdbcDbpsvStatement
@1e4cbc4.executeQuery
－
－
－

2004/07/06 23:07:26.567
JdbcDbpsvStatement
@1e4cbc4.execute
－
－
－

2004/07/06 23:07:28.332
JdbcDbpsvResultSet
@3eca90.close
JdbcDbpsvConnection
@82c01f.prepareStatement(1)
－
－

2004/07/06 23:07:28.332
JdbcDbpsvConnection
@82c01f.commit
－
－
－

2004/07/06 23:07:28.348
－
－
JdbcDbpsvConnection
@82c01f.prepareStatement(1)
－

2004/07/06 23:07:30.332
－
－
－
JdbcDbpsvConnection
@82c01f.rollback

2004/07/06 23:07:42.098
－
－
－
JdbcDbpsvConnection
@82c01f.close

2004/07/06 23:07:42.535
－
－
SQLException発生
KFDJ00002-E Statement or Connection is closed.
－

（凡例）

－：該当しない

Exceptionエラーの内容を確認します。
2004/07/06 23:07:42.535のスレッド3でSQLExceptionが発生しています。メッセージの内容から，この時点でStatementオブジェクト，またはConnectionオブジェクトがすでにクローズされていることによるエラーだとわかります。

時系列にオブジェクトの流れを確認します。
2004/07/06 23:07:09.129のスレッド1，2004/07/06 23:07:28.332のスレッド2，2004/07/06 23:07:28.348のスレッド3，2004/07/06 23:07:30.332のスレッド4のConnectionオブジェクトのオブジェクトIDが同じであることから，四つのスレッドが同一コネクションで処理されていることがわかります。

エラーの原因となっている個所を探します。
四つのスレッドが同一コネクションであることがわかったため，Statement.closeメソッド，またはConnection.closeメソッドを実行している個所を探します。この例の場合は，スレッド4が2004/07/06 23:07:42.098でConnection.closeメソッドを実行しています。
このことから，2004/07/06 23:07:42.535のスレッド3で発生したSQLExceptionの原因は，スレッド４が2004/07/06 23:07:42.098でConnection.closeメソッドを実行していたためであることが，わかります。

(c)　トレース取得レベルごとの出力例

トレース取得レベルごとの出力例を次に示します。

トレース取得レベル1の場合の出力例

[1] Cosminexus DABroker for Java , DABroker for Java Version 2 02-11-/D
2004/07/21 17:59:41.001 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvXADataSource@59920001​.getXAConnection(1)]
                       HANDLE(0) : SID(0)
2004/07/21 17:59:41.020 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvXAConnection@8bf8002.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 17:59:41.554 Thread[main,5,main]@2113601537​ [R][JdbcDbpsvXAConnection@8bf8002.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@33690002​
2004/07/21 17:59:41.554 Thread[main,5,main]@2113601537​
[R][JdbcDbpsvXADataSource@59920001​.getXAConnection(1)]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAConnection@8bf8002
2004/07/21 17:59:41.557 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvXAConnection@8bf8002.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 17:59:41.557 Thread[main,5,main]@2113601537​ [R][JdbcDbpsvXAConnection@8bf8002.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@33690002​
2004/07/21 17:59:41.561 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvXAConnection@8bf8002.getConnection]
                       HANDLE(0) : SID(0)
2004/07/21 17:59:41.649 Thread[main,5,main]@2113601537​ [R][JdbcDbpsvXAConnection@8bf8002.getConnection]
                       HANDLE(883163352​) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection@78688002​
2004/07/21 17:59:41.649 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvConnection@78688002​.prepareStatement(1)]
                       HANDLE(883163352​) : SID(0)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 17:59:41.819 Thread[main,5,main]@2113601537​ [R][JdbcDbpsvConnection@78688002​.prepareStatement(1)]
                       HANDLE(883163352​) : SID(1)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvPreparedStatement@d334002
2004/07/21 17:59:41.977 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvConnection@78688002​.close]
                       HANDLE(883163352​) : SID(0)
2004/07/21 17:59:42.886 Thread[main,5,main]@2113601537​ [R][JdbcDbpsvConnection@78688002​.close]
                       HANDLE(883163352​) : SID(0)
2004/07/21 17:59:42.945 Thread[main,5,main]@2113601537​ [E][JdbcDbpsvConnection@78688002​.createStatement(1)]
                       HANDLE(883163352​) : SID(0)
2004/07/21 17:59:42.946 Thread[main,5,main]@2113601537​:JP.co.Hitachi.soft.DBPSV_Driver.SQLException:
KFDJ00006-E Connection is closed.[JdbcDbpsvConnection.createStatement(1)]
       at JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection.createStatement(JdbcDbpsvConnection.java:529)
       at TRC_ex.main(TRC_ex.java:81)

トレース取得レベル2の場合の出力例

[1] Cosminexus DABroker for Java , DABroker for Java Version 2 02-11-/D
2004/07/21 19:00:56.992 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvXADataSource@5996096​b.getXAConnection(1)]
                       HANDLE(0) : SID(0)
2004/07/21 19:00:57.012 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvXAConnection@8bb8968.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 19:00:57.561 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvXAConnection@8bb8968.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0968
2004/07/21 19:00:57.561 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvXADataSource@5996096​b.getXAConnection(1)]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAConnection@8bb8968
2004/07/21 19:00:57.565 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvXAConnection@8bb8968.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 19:00:57.565 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvXAConnection@8bb8968.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0968
2004/07/21 19:00:57.569 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvXAConnection@8bb8968.getConnection]
                       HANDLE(0) : SID(0)
2004/07/21 19:00:57.660 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvXAConnection@8bb8968.getConnection]
                       HANDLE(883163368​) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection@7862c968
2004/07/21 19:00:57.660 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvConnection@7862c968.prepareStatement(1)]
                       HANDLE(883163368​) : SID(0)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 19:00:57.779 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvConnection@7862c968.prepareStatement(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvPreparedStatement@d4dc968
2004/07/21 19:00:57.840 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvPreparedStatement@d4dc968.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 19:00:57.854 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvPreparedStatement@d4dc968.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=1
2004/07/21 19:00:57.854 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvConnection@7862c968.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:00:57.886 Thread[main,5,main]@2113866091​ [R][JdbcDbpsvConnection@7862c968.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:00:57.916 Thread[main,5,main]@2113866091​ [E][JdbcDbpsvConnection@7862c968.createStatement(1)]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:00:57.917 Thread[main,5,main]@2113866091​:JP.co.Hitachi.soft.DBPSV_Driver.SQLException: KFDJ00006-E Connection is closed.[JdbcDbpsvConnection.createStatement(1)]
       at JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection.createStatement(JdbcDbpsvConnection.java:529)
       at TRC_ex.main(TRC_ex.java:81)

（凡例）

下線は，トレース取得レベル1ではトレースが出力されないメソッドの情報です。

トレースレベル3の場合の出力例

[1] Cosminexus DABroker for Java , DABroker for Java Version 2 02-11-/D
2004/07/21 19:01:28.755 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXADataSource@5996095​b.getXAConnection(1)]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:28.774 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAConnection@8bb8958.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.329 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAConnection@8bb8958.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0958
2004/07/21 19:01:29.329 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXADataSource@5996095​b.getXAConnection(1)]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAConnection@8bb8958
2004/07/21 19:01:29.332 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAConnection@8bb8958.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.332 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAConnection@8bb8958.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0958
2004/07/21 19:01:29.333 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAResource@336d0958.start]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4958
                       flags=0
2004/07/21 19:01:29.372 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAResource@336d0958.start]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.389 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAConnection@8bb8958.getConnection]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.477 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAConnection@8bb8958.getConnection]
                       HANDLE(883163368​) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection@78b60958
2004/07/21 19:01:29.478 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvConnection@78b60958.prepareStatement(1)]
                       HANDLE(883163368​) : SID(0)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 19:01:29.571 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvConnection@78b60958.prepareStatement(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvPreparedStatement@13934958​
2004/07/21 19:01:29.614 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvPreparedStatement@13934958​.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 19:01:29.624 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvPreparedStatement@13934958​.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=1
2004/07/21 19:01:29.624 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvConnection@78b60958.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:01:29.656 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvConnection@78b60958.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:01:29.656 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAResource@336d0958.end]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4958
                       flags=67108864​
2004/07/21 19:01:29.658 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAResource@336d0958.end]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.659 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAResource@336d0958.prepare]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4958
2004/07/21 19:01:29.675 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAResource@336d0958.prepare]
                       HANDLE(0) : SID(0)
                       Return=0
2004/07/21 19:01:29.675 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvXAResource@336d0958.commit]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4958
                       onePhase=false
2004/07/21 19:01:29.681 Thread[main,5,main]@2113866075​ [R][JdbcDbpsvXAResource@336d0958.commit]
                       HANDLE(0) : SID(0)
2004/07/21 19:01:29.681 Thread[main,5,main]@2113866075​ [E][JdbcDbpsvConnection@78b60958.createStatement(1)]
                       HANDLE(883163368​) : SID(0)
2004/07/21 19:01:29.682 Thread[main,5,main]@2113866075​:JP.co.Hitachi.soft.DBPSV_Driver.SQLException: KFDJ00006-E Connection is closed.[JdbcDbpsvConnection.createStatement(1)]
        at JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection.createStatement(JdbcDbpsvConnection.java:529)
        at TRC_ex.main(TRC_ex.java:81)

（凡例）

太字は，トレース取得レベル1ではトレースが出力されないメソッドの情報です。

下線は，トレース取得レベル2ではトレースが出力されないメソッドの情報です。

トレース取得レベル5の場合の出力例

[1] Cosminexus DABroker for Java , DABroker for Java Version 2 02-11-/D
2004/07/21 18:58:47.122 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXADataSource@5996092​a.getXAConnection(1)]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:47.141 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAConnection@8bb8929.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:47.705 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAConnection@8bb8929.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0929
2004/07/21 18:58:47.706 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXADataSource@5996092​a.getXAConnection(1)]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAConnection@8bb8929
2004/07/21 18:58:47.709 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAConnection@8bb8929.getXAResource]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:47.709 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAConnection@8bb8929.getXAResource]
                       HANDLE(0) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvXAResource@336d0929
2004/07/21 18:58:47.710 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAResource@336d0929.start]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4929
                       flags=0
2004/07/21 18:58:47.750 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAResource@336d0929.start]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:47.770 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAConnection@8bb8929.getConnection]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:47.858 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAConnection@8bb8929.getConnection]
                       HANDLE(883163368​) : SID(0)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection@78454929​
2004/07/21 18:58:47.858 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvConnection@78454929​.prepareStatement(1)]
                       HANDLE(883163368​) : SID(0)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 18:58:47.952 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvConnection@78454929​.prepareStatement(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvPreparedStatement@d2ec929
2004/07/21 18:58:47.994 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvPreparedStatement@d2ec929.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 18:58:47.994 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvPreparedStatement@d2ec929.execute(1)]
                       HANDLE(883163368​) : SID(1)
                       sql=INSERT INTO TRC_ex VALUES(?)
2004/07/21 18:58:48.004 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvPreparedStatement@d2ec929.execute(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=false
2004/07/21 18:58:48.004 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvPreparedStatement@d2ec929.executeUpdate(1)]
                       HANDLE(883163368​) : SID(1)
                       Return=1
2004/07/21 18:58:48.004 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvConnection@78454929​.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 18:58:48.037 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvConnection@78454929​.close]
                       HANDLE(883163368​) : SID(0)
2004/07/21 18:58:48.037 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAResource@336d0929.end]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4929
                       flags=67108864​
2004/07/21 18:58:48.039 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAResource@336d0929.end]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:48.039 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAResource@336d0929.prepare]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4929
2004/07/21 18:58:48.053 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAResource@336d0929.prepare]
                       HANDLE(0) : SID(0)
                       Return=0
2004/07/21 18:58:48.053 Thread[main,5,main]@2113866026​ [E][JdbcDbpsvXAResource@336d0929.commit]
                       HANDLE(0) : SID(0)
                       xid=MyXid@5ffe4929
                       onePhase=false
2004/07/21 18:58:48.059 Thread[main,5,main]@2113866026​ [R][JdbcDbpsvXAResource@336d0929.commit]
                       HANDLE(0) : SID(0)
2004/07/21 18:58:48.059 Thread[main,5,main]@2113866026​
[E][JdbcDbpsvConnection@78454929​.createStatement(1)]
                       HANDLE(883163368​) : SID(0)
2004/07/21 18:58:48.060 Thread[main,5,main]@2113866026​:JP.co.Hitachi.soft.DBPSV_Driver.SQLException: KFDJ00006-E Connection is closed.[JdbcDbpsvConnection.createStatement(1)]
       at JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvConnection.createStatement(JdbcDbpsvConnection.java:529)
       at TRC_ex.main(TRC_ex.java:81)

（凡例）

太字は，トレース取得レベル1ではトレースが出力されないメソッドの情報です。

下線は，トレース取得レベル2ではトレースが出力されないメソッドの情報です。

(5)　イベントトレース

イベントトレースは，DABroker for C++をインストールしている場合に出力されます。

DABroker for C++の機能を使ってデータベースにアクセスする場合のイベントトレースが出力されます。イベントトレースは，次のファイルに取得されます。

Windowsの場合
<DABroker Library運用ディレクトリ>¥spool¥dabevttrccpp1

UNIXの場合
<DABroker Library運用ディレクトリ>/spool/dabevttrccpp1

なお，イベントトレースファイルが満杯になった場合，ラップアラウンドでトレースが出力されます。この場合は，バックアップファイル（dabevttrccpp2）が作成され，1世代だけ（dabevttrccpp1）が管理されます。

取得するイベントトレースの設定については，「4.7.4　データベース接続の設定」を参照してください。

(a)　出力形式

イベントトレースの出力形式について説明します。

ヘッダ「LEVEL VPID PID TID DATE TIME EVENT」の下に，次に示す形式でトレース情報が出力されます。

レベル 仮想プロセスID プロセスID スレッドID 日付 時刻 動作結果

イベントトレースの出力例を次に示します。

LEVEL    VPID     PID  TID  DATE       TIME            EVENT
40000010​ 00120000​ 711a 0001 2004/06/01 11:38:29.300000 イベント1
40000010​ 00120000​ 711a 0002 2004/06/01 11:38:30.100000 イベント2
40000010​ 00120000​ 711b 0001 2004/06/01 11:38:30.150000 イベント3
40000010​ 00120000​ 711b 0002 2004/06/01 11:38:30.250000 イベント4

(b)　出力項目

イベントトレースの出力項目について，次の表に示します。

表4-29　DABroker Libraryのイベントトレースの出力項目

ヘッダ | 項目 | 説明
LEVEL | レベル | トレースに出力したレベルが出力されます。
VPID | 仮想プロセスID | 仮想プロセスIDが出力されます。
PID | プロセスID | プロセスIDが出力されます。
TID | スレッドID | スレッドIDが出力されます。
DATE | 日付 | 取得した日付が出力されます。
TIME | 時刻 | 取得した時刻が出力されます。
EVENT | 動作結果 | 実行時の動作結果のログが出力されます。

(6)　XAトレースの取得形式

XAインタフェースでのトラブルシュート情報は，XAトレースファイルとして次のファイルに出力されます。

Windowsの場合
<DABroker Library運用ディレクトリ>¥spool¥db_xainfo.log

UNIXの場合
<DABroker Library運用ディレクトリ>/spool/db_xainfo.log

(a)　出力形式

XAトレースファイルの出力形式を次に示します。斜体は可変の情報です。

日付 時刻 プロセスID:スレッドID イベント種別:XA関数名 rmid=rrrr flags=ffff RMName="nnnn" xa_info="iiii" xid=[ffff:gggg:bbbb:dddd] count=cccc return code=rrrr

XAトレースファイルの出力例を次に示します。

(b)　出力項目

XAトレースファイルの出力項目について，次の表に示します。

表4-30　DABroker LibraryのXAトレースの出力項目

項目名
説明

日付
出力した年月日（YYYY/MM/DD）が出力されます。

YYYY：西暦年，MM：月，DD：日

時刻
出力した時刻（hh:mm:ss:nnnnnn）が表示されます。

hh：時，mm：分，ss：秒，nnnnnn：マイクロ秒

[プロセスID：スレッドID]
プロセスIDとスレッドIDが出力されます。

[イベント種別：XA関数名]
イベント種別と，XA関数の名前が出力されます。

イベント種別
次のどちらかが出力されます。
"call"：関数呼び出しであることを示します。
"end"：関数リターンであることを示します。

XA関数名
XA関数名が出力されます。

rmid=rrrr
RMIDが出力されます。

flags=ffff
フラグパラメタが出力されます。

RMName="nnnn"
RM名称が出力されます。

xa_info="iii "
XA文字列が出力されます。
この項目は，XA関数が，xa_open()，またはxa_close()の場合だけ，出力されます。

xid=[ffff:gggg:bbbb:dddd]
XIDが出力されます。
この項目は，XA関数が，xa_open()，またはxa_close()以外の場合だけ，出力されます。
ffff：フォーマットIDが出力されます。
gggg：グローバルトランザクションID長が出力されます。
bbbb：ブランチ修飾子長が出力されます。
dddd：XIDデータが出力されます。

count=cccc
リカバリ情報取得カウントが出力されます。
この項目は，XA関数がxa_recover()の場合だけ，出力されます。

return code = rrrr
XA関数の戻り値が出力されます。
この項目は，イベント種別が"end"の場合だけ出力されます。

(7)　JDBCドライバのトレース（JDBCインタフェースメソッドトレース）

J2EEアプリケーションまたはバッチアプリケーション開発時に，DABroker LibraryのAPIを使用して，JDBCドライバのトレースを出力するように設定できます。

ここでは，JDBCドライバのトレースのうち，JDBCインタフェースメソッドのトレースについて説明します。

(a)　出力形式

JDBCインタフェースメソッドのトレースの出力形式を次に示します。斜体は可変の情報です。

[DABroker for Java Version 2] [JDBC Interface メソッド状態][JdbcDbpsvクラス名.メソッド名] 引数または戻り値=値

JDBCインタフェースメソッドのトレースの出力例を次の図に示します。

(b)　出力項目

JDBCインタフェースメソッドのトレースの出力項目について，次の表に示します。

表4-31　 JDBCインタフェースメソッドのトレースの出力項目

項目
説明

[DABroker for Java Version 2]
DABroker Libraryのトレースであることを示します。

[JDBC Interface メソッド状態]
使用したJDBCインタフェースメソッドの状態を示します。
Entry：メソッドの呼び出し
Return：メソッドの戻り

[JdbcDbpsvクラス名. メソッド名]
使用したJDBCインタフェースメソッドの「クラス名.メソッド名」を示します。

引数または戻り値=値
該当する「クラス名.メソッド名」の引数の値，または戻り値が出力されます。
引数の場合，引数名=値の形式で出力されます。
戻り値の場合，Return=値の形式で出力されます。

(8)　JDBCドライバのトレース（DABroker Libraryとのイベントトレース）

J2EEアプリケーションまたはバッチアプリケーション開発時に，DABroker LibraryのAPIを使用して，JDBCドライバのトレースを出力するように設定できます。

ここでは，JDBCドライバとDABroker Libraryとのイベントトレースについて説明します。

(a)　出力形式

DABroker Libraryとのイベントトレースの出力形式を次に示します。

[DABroker for Java Version 2] [Server Event イベント] 送信データ種別

DABroker Libraryとのイベントトレースの出力例を次に示します。

(b)　出力項目

DABroker Libraryとのイベントトレースの出力項目について，次の表に示します。

表4-32　DABrokerとのイベントトレースの出力項目

項目
説明

[DABroker for Java Version 2]
DABroker Libraryのトレースであることを示します。

[Server Event イベント]
DABroker Libraryでのイベントを示します。

送信データ種別
送受信データ種別が，aa…aa <bb…bb>（cc…cc,dd…dd）SIZE：XXXの形式で出力されます

aa…aa
オペレーション種別が出力されます。
表示されるオペレーション種別とその意味は次のとおりです。

Disconnect(Connection)：DABroker Libraryとのコネクション解放要求

Connect(Database)：データベースとの接続要求

Disconnect(Database)：データベースとの接続解放要求

Commit：トランザクションのコミット要求

Rollback：トランザクションのロールバック要求

LIST(Table)：表一覧取得要求

LIST(Column)：列一覧取得要求

LIST(Index)：索引一覧取得要求

LIST(TablePrivileges)：表権限一覧取得要求

LIST(ColumnPrivileges)：列権限一覧取得要求

LIST(Procedure)：プロシジャ一覧取得要求

LIST(ProcedureColumn)：プロシジャ列一覧取得要求

EXT-CMD：SQLの実行要求

EXE(Procedure)：プロシジャの実行要求

Cancel：非同期キャンセル要求

Result：正常応答

Error：エラー応答

Result(Cancel)：正常応答（非同期キャンセル）

Error(Cancel)：エラー応答（非同期キャンセル）

XA：CALL：XAオペレーションの実行

XA：AUTOCOMMIT<ON>：XALocalCommitMode（true）の実行

XA：AUTOCOMMIT<OFF>：XALocalCommitMode（false）の実行

bb…bb
付加情報が出力されます。
オペレーション種別が，LIST（xxxxx）およびEXT-CMDの場合に表示されます。

cc…cc
リターンコードが出力されます。

dd…dd
詳細コードが出力されます。

XXX
DABroker LibraryでのイベントがPutの場合は，送信したデータのサイズが出力されます。
DABroker LibraryでのイベントがGetの場合は，受け取ったデータのサイズが出力されます。

4.6.4　資料取得のための設定

DABroker Libraryのログは，トラブルシューティングに必要な資料です。

環境設定ユティリティまたはDABroker Library動作環境定義ファイルで，ログファイルサイズなどを設定してください。なお，デフォルトの資料取得の設定から変更しない場合は，設定は不要です。

DABroker Libraryでは，JDBCドライバのトレース情報やスプール情報を取得できます。また，障害発生時には，アプリケーションサーバの定義を取得してください。これらの情報を使用して，障害が発生したときに設定されていた定義内容を確認します。

ここでは，これらの情報を取得するための設定について説明します。

＜この項の構成＞

(1)　JDBCドライバのトレース情報の取得

(2)　スプール情報の取得

(3)　DABroker Libraryに関する定義情報

(1)　JDBCドライバのトレース情報の取得

DABroker Libraryでは，スプール情報のほかに次のJDBCドライバのトレースも取得できます。

JDBCインタフェースメソッドトレース

DABroker Libraryのイベントトレース

ただし，これらのトレースを取得するためには，アプリケーション開発時にJDBCドライバのトレース取得のための設定をしておく必要があります。設定方法については，「4.7.4　データベース接続の設定」を参照してください。

(2)　スプール情報の取得

DABroker Libraryでは，スプール情報として，メッセージログ，拡張データベースアクセストレース，Exceptionトレースログなどを取得できます。環境設定ユティリティ（Windowsの場合）またはDABroker Library動作環境定義ファイル（UNIXの場合）で，メッセージログ，拡張データベースアクセストレースのファイルサイズなどを設定してください。環境設定ユティリティまたはDABroker Library動作環境定義ファイルの設定については，Windowsの場合は「4.3.1(3) DABroker Libraryの動作環境の設定（Windowsの場合）」，UNIXの場合は「4.3.2(4) DABroker Libraryの動作環境の設定（UNIXの場合）」を参照してください。

また，Exceptionトレースログを取得するためには，運用開始前に取得のための設定が必要です。ここでは，Exceptionトレースログ取得の設定について説明します。

Exceptionトレースログ取得の設定では，次の内容を設定します。

トレース取得レベル

ファイル出力先

ファイル出力情報量

メモリ内取得情報量

それぞれの設定方法について説明します。

●トレース取得レベル

Exceptionトレースログは，メソッド実行時に，SQLException，BatchUpdateException，またはXAExceptionが発生した場合に出力されます。Exceptionトレースログを出力するメソッドには，メソッドごとにトレース取得レベルが定義されています。出力するトレース取得レベルを指定することで，目的に応じた内容のトレースを出力できるようになります。

設定方法
トレース取得レベルは，次の環境変数で指定します。

環境変数名
説明

DAB_TRACELEVEL
トレース取得レベルとして，1～5を指定します。ただし，トレース取得レベル4は現在未使用であり，4が指定された場合は3と同じ動きとなります。

ここでは，どのトレース取得レベルまでログを取得するかを指定します。例えば，トレース取得レベル3を指定した場合は，トレース取得レベル1および2の内容が取得できます。トレース取得レベル5が指定された場合は，内部呼び出しを含め，ログ取得対象メソッドをすべて取得します。

指定を省略した場合，または不正な値を指定した場合は，トレース取得レベルとして，1を仮定します。

ログを取得するメソッドは，指定された値で取得されるメソッドすべてとなります。

指定値の前後にスペースがあった場合は，スペースを削除した値を指定値として扱います。

トレース取得レベルと取得できるログの内容
Exceptionトレースログのトレース取得レベルと取得できるログの内容を次の表に示します。

表4-33　Exceptionトレースログのトレース取得レベル

トレース取得レベル
取得できるログの内容
説明

1

データベースとの接続と切断

ステートメントの作成とクローズ

静的SQLの実行

標準のトレース取得レベルです。コネクションとステートメントの状態と実行順序を調査したい場合に指定してください。

2

トレース取得レベル1の内容

トランザクションのコミット，およびロールバック

データベースへのアクセス要求

ResultSetクラスの処理

各オブジェクトの処理

データベースのアクセス要求の状態と実行順序を調査したい場合に指定してください。ソースとログの比較が容易になります。

3

トレース取得レベル1および2の内容

XA要求

XA要求の状態と実行順序を調査したい場合に指定してください。

5

トレース取得レベル1，2および3の内容

JDBCドライバの内部呼び出し

内部処理の状態と実行順序を調査したい場合に指定してください。

Exceptionトレースログを出力するメソッドのトレース取得レベル
Exceptionトレースログを出力するメソッドのトレース取得レベルを次の表に示します。

表4-34　Exceptionトレースログを取得するメソッドのトレース取得レベル

クラス名 | メソッド名 | トレース取得レベル | 備考
CallableStatement | boolean execute()※1 | 2 | Statementクラス，およびPreparedStatementクラスのメソッドをオーバーライドしたメソッド。
ResultSet executeQuery()※1 | 2
int executeUpdate()※1 | 2
boolean execute(String sql)※2 | 1
int[] executeBatch() | 2
ResultSet executeQuery(String sql)※2 | 1
int executeUpdate(String sql)※2 | 1
Connection | void close() | 1 | －
void commit() | 2 | －
Statement createStatement()※1 | 1 | －
Statement createStatement(int resultSetType, int resultSetConcurrency)※2 | 1 | －
DatabaseMetaData getMetaData() | 2 | －
CallableStatement prepareCall(String sql)※1 | 1 | －
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)※2 | 1 | －
PreparedStatement prepareStatement(String sql)※1 | 1 | －
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)※2 | 1 | －
void rollback() | 2 | －
void setAutoCommit(boolean autoCommit) | 2 | －
DatabaseMetaData | ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) | 2 | －
ResultSet getCatalogs() | 2 | －
ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) | 2 | －
ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) | 2 | －
Connection getConnection() | 2 | －
ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) | 2 | －
ResultSet getExportedKeys(String catalog, String schema, String table) | 2 | －
ResultSet getImportedKeys(String catalog, String schema, String table) | 2 | －
ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) | 2 | －
ResultSet getPrimaryKeys(String catalog, String schema, String table) | 2 | －
ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) | 2 | －
ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) | 2 | －
ResultSet getSchemas() | 2 | －
ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) | 2 | －
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) | 2 | －
ResultSet getTableTypes() | 2 | －
ResultSet getTypeInfo() | 2 | －
ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) | 2 | －
ResultSet getVersionColumns(String catalog, String schema, String table) | 2 | －
Driver | Connection connect(String url, Properties info) | 1 | －
PreparedStatement | boolean execute()※1 | 2 | －
ResultSet executeQuery()※1 | 2 | －
int executeUpdate()※1 | 2 | －
ResultSetMetaData getMetaData() | 2 | －
boolean execute(String sql)※2 | 1 | Statementクラスのメソッドをオーバーライドしたメソッド。
int[] executeBatch() | 2
ResultSet executeQuery(String sql)※2 | 1
int executeUpdate(String sql)※2 | 1
ResultSet | boolean absolute(int row) | 2 | データベースにアクセスするときだけ取得します。
void afterLast() | 2
void beforeFirst() | 2
void close() | 2 | －
boolean first() | 2 | データベースにアクセスするときだけ取得します。
ResultSetMetaData getMetaData() | 2 | －
Statement getStatement() | 2 | －
boolean last() | 2 | データベースにアクセスするときだけ取得します。
boolean next() | 2
boolean relative(int rows) | 2
Statement | void cancel() | 2 | －
void close() | 1 | －
boolean execute(String sql) | 1 | －
int[] executeBatch() | 2 | －
ResultSet executeQuery(String sql) | 1 | －
int executeUpdate(String sql) | 1 | －
ResultSet getResultSet() | 2 | －
DataSource | Connection getConnection()※1 | 1 | －
Connection getConnection(String username, String password)※2 | 1 | －
PooledConnection | void close() | 1 | －
Connection getConnection() | 1 | －
ConnectionPoolDataSource | PooledConnection getPooledConnection()※1 | 1 | －
PooledConnection getPooledConnection(String username, String password) ※2 | 1 | －
XAConnection | XAResource getXAResource() | 1 | －
XADataSource | XAConnection getXAConnection()※1 | 1 | －
XAConnection getXAConnection(String user, String password)※2 | 1 | －
XAResource | void commit(Xid xid, boolean onePhase) | 3 | －
void end(Xid xid, int flags) | 3 | －
void forget(Xid xid) | 3 | －
boolean isSameRM(XAResource xares) | 3 | －
int prepare(Xid xid) | 3 | －
Xid[] recover(int flag) | 3 | －
void rollback(Xid xid) | 3 | －
void start(Xid xid, int flags) | 3 | －

（凡例）－：該当しない

注※1　メソッド名は，「メソッド名(1)」と出力されます。

注※2　メソッド名は，「メソッド名(2)」と出力されます。

●ファイル出力先

Exceptionトレースログを出力するファイルの出力先を設定できます。

設定方法
ファイル出力先は，次の環境変数で指定します。

環境変数名
説明

DAB_FILEDIR
Exceptionトレースログの出力先のディレクトリを絶対パスで指定します。

指定を省略した場合は，次の場所にExceptionトレースログが出力されます。
Windowsの場合
<DABroker Library運用ディレクトリ>¥spool
UNIXの場合
<DABroker Library運用ディレクトリ>/spool

ファイルの出力先として，<ファイルの出力先ディレクトリ>¥<J2EEサーバ名称+MTrc.log>のバイト数が259バイトを超える値は指定しないでください。環境変数の設定値のバイト数の上限は，1,024バイトです。上限を超えた場合は，先頭から1,024バイト分だけが有効になります。

指定値の前後にスペースがあった場合は，スペースを削除した値を指定値として扱います。

●ファイル出力情報量

Exceptionトレースログを出力するファイルの出力情報量を設定できます。

設定方法
ファイル出力情報量は，次の環境変数で指定します。

環境変数名
説明

DAB_FILEOUTNUM
ファイル出力情報量として，メモリ内取得情報をファイルに出力する回数の上限を指定します。指定できる範囲は，1～50です。

指定を省略した場合，または不正な値を指定した場合は，出力情報量として，5を仮定します。指定された値が1以下の場合は1，50以上の場合は50を出力情報量として仮定します。

指定した上限を超えて出力しようとすると，カレントファイルは1世代前のファイルとなり，新しくカレントファイルが作成されて，情報が出力されます。

環境変数の設定値のバイト数の上限は，10バイトです。上限を超えた場合には，先頭から10バイト分だけが有効になります。

指定値の前後にスペースがあった場合は，スペースを削除した値を指定値として扱います。

情報量の上限
一つのファイルに出力する情報量の上限（単位：行）は，次の算出式で求められます。

情報量の上限＝（DAB_ONMEMNUMの指定値）×（DAB_FILEOUTNUMの指定値）

なお，Exceptionトレースログを出力するためのファイルサイズの概算（単位：キロバイト）は，次の算出式で求められます。

出力するファイルサイズ＝2×メモリ内取得情報量（DAB_ONMEMNUMの指定値）×ファイル出力情報量（DAB_FILEOUTNUMの指定値）×2

●メモリ内取得情報量

Exceptionトレースログを出力するファイルのメモリ内取得情報量を設定できます。

設定方法
メモリ内取得情報量は，次の環境変数で指定します。

環境変数名
説明

DAB_ONMEMNUM
メモリ内取得情報量として，メモリ内で保持する情報量の上限を指定します。指定できる範囲は500～10,000（単位は，行※）です。

指定を省略した場合，または不正な値を指定した場合は，メモリ内取得情報量として，1,000を仮定します。指定された範囲が500以下の場合は500，10,000以上の場合は10,000をメモリ内取得情報量として仮定します。

指定した上限を超えて保持しようとすると，ラップアラウンドします。

環境変数の設定値のバイト数の上限は，10バイトです。上限を超えた場合には，先頭から10バイト分だけが有効になります。

指定値の前後にスペースがあった場合は，スペースを削除した値を指定値として扱います。

注※　1行とは，メソッドの呼び出し情報，メソッドの戻り情報，およびException情報のそれぞれで一度に取得する情報のことです。

メモリ所要量の算出式
Exceptionトレースログを出力するために必要となるメモリ所要量（単位：キロバイト）は，次の算出式で求められます。

メモリ所要量＝2×メモリ内取得情報量（DAB_ONMEMNUMの指定値）

(3)　DABroker Libraryに関する定義情報

トラブルが発生した際に，次のファイルを取得するようにしてください。

Windowsの場合

<DABroker Library運用ディレクトリ>¥conf¥dasys.conf（DABroker Library動作環境定義ファイル）

<DABroker Library運用ディレクトリ>¥conf¥dabenv（接続先データベース定義ファイル）

UNIXの場合

<DABroker Library運用ディレクトリ>/conf/dasys.conf（DABroker Library動作環境定義ファイル）

<DABroker Library運用ディレクトリ>/conf/dabenv（接続先データベース定義ファイル）

トラブルシューティング用に保存するファイルからは，パスワードなどの公開できない情報を削除することをお勧めします。

4.6.5　DABroker Libraryで取得できるトレース

DABroker Libraryの動作環境設定で，必要に応じて，トレース取得の設定をしてください。取得できるトレースを次に示します。

拡張データベースアクセストレース

XAトレース

拡張データベースアクセストレース

通常の運用ではトレースは採取しませんが，障害などの不具合の調査が必要なときに，拡張データベースアクセストレースを取得します。

拡張データベースアクセストレースは，データベースへの接続から切断までのアクセス情報を出力したトレースです。データベースへの接続ごとに出力されます。

拡張データベースアクセストレースは，次のように利用できます。

データベースのアクセス中に発生したトラブルの迅速な切り分け

24時間稼働に対応するJ2EEアプリケーションの稼働状態でのトラブル調査

マルチスレッド環境でJ2EEアプリケーションが動作している場合のスレッドごとのデータベースアクセス履歴取得

コネクションプーリングなどの機能を使用している場合のデータベースへの接続ごとのデータベースアクセス履歴取得

トラブルが再現調査できない場合の常時トレース取得

XAトレース

XAトレースはXAインタフェースでエラーを検知した場合に，エラートレースを取得します。XAインタフェースでエラーが発生した場合にエラーの内容をトレースできるように，XAトレースの取得を設定してください。

4.6.6　DABroker Libraryのトレースファイル運用時の留意事項

ここでは，DABroker Libraryのトレースファイル運用時の留意事項について説明します。

＜この項の構成＞

(1)　拡張データベースアクセストレースファイル

(2)　エラートレースファイル

(3)　Exceptionトレースログのファイル

(4)　JDBCドライバのトレースファイル

(1)　拡張データベースアクセストレースファイル

拡張データベースアクセストレースファイル運用時の注意事項を次に示します。

拡張データベースアクセストレースでは，DABroker Library動作環境定義ファイルで設定した行数を超える出力があった場合，現在のトレースファイルがバックアップファイルとして別名で保存されます。トレース内容は，トレースファイルの先頭から再び出力されます。

バックアップファイルは1世代前までしか残りません。このため，すでにバックアップファイルがある場合に，現在のトレースファイルが設定した行数を超えると， 既存のバックアップファイルが上書きされます。複数世代のバックアップファイルを保存する必要がある場合は，あらかじめ別のディレクトリに退避してください。

トレースファイルは実行しているコネクションの数だけ作成されます。

トレースファイルは自動的に削除されません。ユーザが不要になった時点で削除してください。

ハードディスクの空き容量が十分でない場合，トレースの出力が停止されることがあります。

(2)　エラートレースファイル

エラートレースファイル運用時の注意事項を次に示します。

dabevttrcerr1.txtファイルのサイズが512キロバイトを超えている場合にログを出力すると，dabevttrcerr1.txtファイルをバックアップ用ファイル（dabevttrcerr2.txt）に名称を変更したあと，新規作成したdabevttrcerr1.txtファイルにログを出力します。

バックアップ用ファイルは1世代前までだけ残せます。バックアップファイルを保存する必要がある場合は，あらかじめ別のディスクに退避してください。

ハードディスクの空き容量が十分でない場合，ログの出力を停止します。

(3)　Exceptionトレースログのファイル

Exceptionトレースログのファイル運用時の注意事項を次に示します。

Exceptionトレースログのファイルは1世代前まで保持されます。ファイル出力時にすでにカレントファイルと1世代前のファイルが存在する場合は，1世代前のファイルが削除され，カレントファイルが1世代前のファイルに置き換えられます。

ファイルの出力先は，環境変数DAB_FILEDIRで設定できます。
デフォルトは，<DABroker Library運用ディレクトリ>¥spool（Windowsの場合），または<DABroker Library運用ディレクトリ>/spool（UNIXの場合）です。
<ファイルの出力先ディレクトリ>¥J2EEサーバ名称+MTrc.logl（Windowsの場合），または<ファイルの出力先ディレクトリ>/J2EEサーバ名称+MTrc.logl（UNIXの場合）のバイト数が259バイトを超えないように注意してください。また，<ファイルの出力先ディレクトリ>¥J2EEサーバ名称+MTrcOLD.log（Windowsの場合），または<ファイルの出力先ディレクトリ>/J2EEサーバ名称+MTrcOLD.log（UNIXの場合）のバイト数が259バイトを超える場合も注意が必要です。
259バイトを超えた場合の動作は，次のようになります。

<ファイルの出力先ディレクトリ>¥J2EEサーバ名称+MTrc.log のバイト数が259バイトを超えた場合，ログファイル，および1世代前のファイルが作成されません。

<ファイルの出力先ディレクトリ>¥<J2EEサーバ名称+MTrc.log>のバイト数が259バイトを超えない場合に，<ファイルの出力先ディレクトリ>¥<J2EEサーバ名称+MTrcOLD.log>のバイト数が259バイトを超えたときは，ログファイルは作成されますが，1世代前のファイルが作成されません。この場合，ファイル出力情報量を超えても1世代前のファイルが作成されないで，カレントファイルへ出力され続けます。

ファイルの作成や出力に失敗した場合，ログファイルに情報が出力されません。このとき，J2EEアプリケーションへのエラーメッセージの返却や，リトライは実行されません。エラーになった要因が解決されると，ログファイルにファイルが出力されるようになります。
ログファイル初回接続時にエラーが発生した場合に考えられる要因を次に示します。

ディレクトリが存在しない，またはディレクトリに対する権限がない

カレントファイルを1世代前のファイルに移動できない

1世代前のファイルを削除できない

ログファイル出力時にエラーが発生した場合に考えられる要因を次に示します。

ディレクトリが存在しない，またはディレクトリに対する権限がない

カレントファイルを作成または出力できない

カレントファイルを1世代前のファイルに移動できない

1世代前のファイルを削除できない

(4)　JDBCドライバのトレースファイル

JDBCドライバのトレースファイル運用時の注意事項を次に示します。

JDBCドライバ内でトレース情報の数がエントリ数を超えた場合は，トレースの古い順にトレース情報が上書きされます。

JDBCインタフェースメソッドトレース（キーワード：JDBC_IF）は，EntryおよびReturnでそれぞれ1エントリのトレース領域を使用します。

DABrokerとのイベントトレース（キーワード：SV_EVENT）は，送信または受信イベントでそれぞれ1エントリのトレース領域を使用します。

4.6.7　データベースと接続中にトラブルが発生した場合

データベースとの接続中に，アプリケーションサーバの構成ソフトウェアであるDABroker Libraryでトラブルが発生した場合，DABroker Libraryによってデータベースとの接続は切り離されます。また，DABroker Libraryを強制終了した場合も同様です。

このとき，次の処理が実行されます。

DABroker Libraryが異常終了した場合
データベースで実行中の処理はロールバックされます。

DBMSが異常終了した場合
データベースで実行中の処理は，DBMSの制御に従って処理されます。

トラブルへの対応後，必要に応じてデータベースに再接続してください。

また，データベースアクセス，DABroker LibraryまたはJDBCドライバでエラーが発生した場合，例外としてSQLExceptionがスローされます。このSQLExceptionオブジェクトのreasonには，次の項目が設定されています。トラブルへの対処に利用してください。

JDBCドライバのメッセージ

エラーを検知したクラス名称とメソッド名称

DABroker Libraryからのメッセージ（メッセージがある場合）

なお，次のエラーが発生した場合は，SQLExceptionはスローされません。

Driver.connectionメソッドでデータベースに接続できない場合

URL指定でnullが返却される場合
DABroker Libraryで対象にしていないURLが指定された場合などが該当します。

この場合は，JDBCインタフェースの仕様で決まっている処理が実行されます。

なお，データベースとしてHiRDB，またはOracleを利用している場合，性能解析トレースファイルに出力されたコネクションIDと，DABroker LibraryやHiRDBクライアント，またはOracleクライアントのログファイルやトレースファイルに出力されたコネクションIDを突き合わせて確認することで，トラブルが発生したコネクションを確認できます。確認方法については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「付録B　データベースと接続中にトラブルが発生したコネクションの特定」を参照してください。

注意

07-01以前のバージョンのHiRDBに接続していて，グローバルトランザクションとローカルトランザクションが混在している場合，性能解析トレースに出力されるコネクションIDと実際の接続状態に不整合が生じます。

例えば，コネクションの障害検知機能を無効にして，次のようなグローバルトランザクションとローカルトランザクションが混在している処理を実行する場合，6.～8.および9.～13.の処理で性能解析トレースに出力される情報と実際の接続状態に不整合が生じます。

6.～8.の処理では，ローカルトランザクションのコネクションIDは出力されずに，グローバルトランザクションのコネクションIDが出力されます。

9.～13.の処理では，グローバルトランザクションのコネクションIDは出力されずに，ローカルトランザクションのコネクションIDが出力されます。

このように，ローカルトランザクションのコネクションIDや，ローカルトランザクション実行後のグローバルトランザクションのコネクションIDを追跡することはできません。なお，7.のローカルトランザクションの処理で，コネクションが切り替わりますが，アプリケーションサーバには通知されません。

グローバルトランザクションとローカルトランザクションの混在は，使用するDBConnectorのトランザクションサポートレベルがXATransactionの場合に，トランザクションを開始する前にコネクションを取得してSQLを実行したときにも発生します。

4.7　DABroker Libraryを使用したデータベース接続の実装

ここでは，DABroker Libraryが提供する機能を使用してデータベース接続をする場合の実装方法や注意事項について説明します。

＜この節の構成＞

4.7.1　DABroker Libraryで開発するアプリケーション

4.7.2　JDBC2.0の概要

4.7.3　JDBC2.0拡張機能の概要

4.7.4　データベース接続の設定

4.7.5　JDBC2.0拡張機能を使用したデータベース接続の設定

4.7.6　エラー時のJDBCドライバの処理

4.7.7　データ型の対応

4.7.8　データベース接続の実装時の注意事項

4.7.1　DABroker Libraryで開発するアプリケーション

DABroker Libraryは，JDBCドライバとDABrokerのデータベース接続部品から構成されたデータベースに接続するミドルウェアです。

DABroker Libraryを利用して開発したアプリケーションは，JDKが対応するWWWブラウザで動作します。開発したアプリケーションを組み込むマシンには，DABroker Libraryが提供するJDBCドライバが必要です。DABroker Libraryはサーバで動作するアプリケーションだけサポートしています。

アプリケーションサーバを利用したデータベース接続の流れを次の図に示します。

図4-4　アプリケーションサーバを利用したデータベース接続

DABroker Libraryで開発したアプリケーションは，アプリケーションサーバに組み込んで使用します。アプリケーションからの要求は，アプリケーションサーバ上にあるJDBCドライバを経由し，DABroker Libraryで処理されます。

アプリケーションサーバのアプリケーションの動作時には，DABroker Libraryで提供するネイティブライブラリがアプリケーションサーバ上に動的にロードされます。ネイティブライブラリがロードされると，Java標準のネイティブライブラリインタフェースである，JNIを使用してアプリケーションとDABroker Libraryを接続します。ネイティブライブラリを使用することで，アプリケーションとDABroker Libraryとの接続処理を高速化し，高性能なデータベース接続を実現します。また，同一マシン上にアプリケーション，JDBCドライバ，DABroker Libraryがあるため，通信処理のオーバーヘッドがなく，Javaアプレットやクライアントで動作するアプリケーションに比べて高性能な処理を実現します。

4.7.2　JDBC2.0の概要

ここでは，DABroker Libraryで提供する，JDBC2.0基本規格に沿った機能の概要と注意事項について説明します。JDBC1.0が提供するクラスとメソッドの機能，およびJDBC2.0で規格化されていないDBPドライバだけの機能については，マニュアル「アプリケーションサーバ リファレンス API編」を参照してください。

＜この項の構成＞

(1)　ResultSetの拡張

(2)　バッチ更新

(3)　JDBC SQLタイプの扱い

(1)　ResultSetの拡張

JDBC2.0基本規格では，ResultSet（ResultSetクラス）の拡張機能として，「スクロール」と「並行処理」が追加されています。

(a)　スクロールタイプ

ResultSetのスクロールタイプには，次の3種類があります。

順方向専用型
JDBC1.0からの標準のスクロールタイプです。ResultSet内を，順方向（上から下）にだけスクロールできます。

スクロール非反映型
JDBC2.0で導入されたスクロールタイプです。ResultSet内を，順方向，逆方向にスクロールできます。また，現在の位置からの相対位置指定の移動，絶対位置への移動もできます。
「非反映型」とは，ResultSetが開かれている間に加えられた変更が，そのResultSetに反映されないことを意味します。つまり，基盤となるデータの静的なビューを提供するだけで，ResultSetに含まれる行，その順序，および列の値は，ResultSetの作成時に固定されます。

スクロール反映型
JDBC2.0で導入されたスクロールタイプです。DABroker Libraryではサポートしていません。ResultSetが開かれている間に加えられた変更が，そのResultSetに反映される点がスクロール非反映型とは異なります。
「変更の反映」という点では，「そのResultSet自身による変更の反映」，「同一トランザクション内での，ほかのResultSetでの変更の反映」，「ほかのトランザクションによる変更の反映」などがありますが，どこまで保証するかはドライバの実装レベル，およびDBMSのトランザクション遮断レベルに依存します。

(b)　並行処理タイプ

ResultSetの並行処理タイプには，次の種類があります。

読み取り専用型
JDBC1.0からの標準の並行処理タイプです。ResultSetからの更新はできません。

更新可能型
JDBC2.0で導入された並行処理タイプです。ResultSetからの更新（UPDATE，INSERT，DELETE）ができます。DABroker Libraryではサポートしていません。

(c)　ResultSetタイプ

スクロールタイプと並行処理タイプを組み合わせることで，ResultSetには6種類のタイプがあります。DABroker Libraryでは，このうち2種類をサポートしています。ResultSetタイプは，ConnectionクラスのcreateStatementメソッド，prepareStatementメソッド，またはprepareCallメソッドで，Statementクラス（またはそのサブクラス）のインスタンスを取得する時に指定します。

6種類のResultSetタイプとDABroker Libraryでのサポートを，次の表に示します。

表4-35　ResultSetのタイプ

ResultSetタイプ | DABroker Libraryでのサポート
スクロールタイプ | 並行処理タイプ
順方向専用型 | 読み取り専用型 | ○
更新可能型 | ×
スクロール非反映型 | 読み取り専用型 | ○
更新可能型 | ×
スクロール反映型 | 読み取り専用型 | ×
更新可能型 | ×

（凡例）

○：サポートしている

×：サポートしていない

サポートしていないResultSetタイプが指定された場合，エラーにはしないで，指定されたResultSetタイプにいちばん近いResultSetタイプを使用してStatementクラス（またはそのサブクラス）のインスタンスを生成します。また，警告メッセージをConnectionクラスのSQLWarningに格納します。

更新可能型の並行処理タイプはサポートしていないため，ResultSetクラスに使用できないメソッドがあります。これらの使用できないメソッドが呼び出された場合は，無条件にSQLExceptionをthrowします。どのメソッドが使用できないかについては，「4.16　ResultSetクラス」を参照してください。

(d)　スクロール型ResultSet使用時の注意点

スクロール型ResultSetでは，DABroker Library内ですべての検索データをキャッシングします。データ量が大量な場合は，メモリ不足や性能劣化が発生する可能性が大きくなります。このため，スクロール型ResultSetを使用する場合は，「SQLに条件を付加する」，「StatementクラスのsetMaxRowsメソッドを呼び出す」など，検索データ量をあらかじめ抑制してください。

(2)　バッチ更新

JDBC2.0基本規格では，Statementクラス，PreparedStatementクラス，およびCallableStatementクラスにバッチ更新機能が追加されています。バッチ更新機能を使うと，複数のSQL，または複数のパラメタ値を登録し，一括で実行できます。

注意

バッチ更新機能を使用する場合，ConnectionクラスのAUTOコミットモードをOFFにしてください。これは，バッチ更新の途中でエラーが発生した場合，そのトランザクションの有効・無効をアプリケーション側で制御する必要があるためです。AUTOコミットモードがON（初期状態）の場合，バッチ更新の途中でエラーが発生しても，エラーが発生する一つ前までのSQL実行は有効となるため，注意が必要です。アプリケーションサーバでJTAトランザクションを使用している場合，AUTOコミットモードはOFFになります。

(a)　Statementクラスでのバッチ更新

概要

複数の更新系SQLをaddBatchメソッドで登録します。

登録した更新系SQLを，executeBatchメソッドを使用して一括で実行します。

一括実行の結果として，それぞれの更新系SQLによって更新された行数の配列を返します。

一括実行の途中でエラーが発生した場合，BatchUpdateExceptionをthrowします。

登録したSQL中に検索系SQLがある場合，executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項

DABrokerとのインタフェース上，複数のSQLを一括実行できないため，DABroker Libraryでは，登録されたSQLを逐次実行することでバッチ更新を実現しています。

(b)　PreparedStatementクラスでのバッチ更新

概要

PreparedStatementインスタンス生成時に指定した，更新系SQLに対する？パラメタを，通常の手順（setXXXメソッド）で設定します。

addBatchメソッドで，？パラメタのセットを登録します。

登録した複数セットの？パラメタを，executeBatchメソッドで一括実行します。

一括実行の結果として，それぞれの？パラメタのセットで更新された行数の配列を返します。

一括実行の途中でエラーが発生した場合，BatchUpdateExceptionをthrowします。

PreparedStatementインスタンス生成時に指定したSQLが検索系SQLである場合，executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項

定義系および制御系SQLについては，addBatchメソッドを実行しないでください。

(c)　CallableStatementクラスでのバッチ更新

概要

CallableStatementインスタンス生成時に指定した，SQLに対する？パラメタを，通常の手順（setXXXメソッド）で設定します。

addBatchメソッドで，入力パラメタのセットを登録します。

登録した複数セットの入力パラメタを，executeBatchメソッドで一括実行します。

一括実行の結果として，それぞれの入力パラメタのセットで実行された，SQLの返却値（更新行数）の配列を返します。

一括実行の途中でエラーが発生した場合，BatchUpdateExceptionをthrowします。

CallableStatementインスタンス生成時に指定したSQLが更新行数を返さない場合，および出力パラメタか入出力パラメタを持つ場合，executeBatchメソッド呼び出し時にBatchUpdateExceptionをthrowします。

注意事項

定義系および制御系SQLについては，addBatchメソッドを実行しないでください。

(d)　HiRDBの場合のバッチ更新

HiRDBの場合のバッチ更新処理は，次の2種類に分けられます。

逐次実行
複数のSQLに分けて実行する更新処理です。

一括実行
HiRDBの配列更新機能を使用して実行する更新処理です。

HiRDBの配列更新機能とは，データベースにより提供される次の機能を指します。

HiRDBの配列を使用したINSERT機能

HiRDBの配列を使用したUPDATE機能

HiRDBの配列を使用したDELETE機能

HiRDBクライアント経由XDM／RD E2で使用するXDM／RD E2の配列を使用したINSERT機能

HiRDBクライアント経由XDM／RD E2で使用するXDM／RD E2の配列を使用したUPDATE機能

HiRDBクライアント経由XDM／RD E2で使用するXDM／RD E2の配列を使用したDELETE機能

HiRDBの配列更新機能では，複数の?パラメタセットを配列形式で扱い，一度に処理することができます。そのため，データベースとの通信回数が減り，大量のデータを高速に更新できます。

HiRDBの配列更新機能を使用するには，BlockUpdate設定をtrueにします。ただし，接続するHiRDBのバージョンによって使用できない場合があります。HiRDBの配列更新機能の詳細については，マニュアル「HiRDB UAP開発ガイド」およびマニュアル「HiRDB SQLリファレンス」を参照してください。

●addBatchメソッド－executeBatchメソッド使用時の仕様

次に，バッチ更新時に使用するaddBatchメソッド－executeBatchメソッド使用時の仕様を，BlockUpdate設定がtrueの場合とfalseの場合に分けて示します。

表4-36　addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がtrue，HiRDBの場合）

実行するSQL文
DABrokerの仕様（処理方法）

HiRDB Version 6
HiRDB Version 7 07-00以降かつ07-00-/K以前
HiRDB Version 7 07-00-/L以降かつHiRDB Version 7 07-01未満
HiRDB Version 7 07-01以降

INSERT文
（VALUES句指定）
逐次実行
一括実行
一括実行
一括実行

INSERT文
（SELECT句指定）
逐次実行
KFPA19408-E
逐次実行
一括実行

UPDATE文
逐次実行
KFPA19408-E
逐次実行
一括実行

DELETE文
逐次実行
KFPA19408-E
逐次実行
一括実行

CALL文（OUTまたはINOUTパラメタあり）
KFDJ00010-E
KFDJ00010-E
KFDJ00010-E
KFDJ00010-E

CALL文（INパラメタだけ）
逐次実行
逐次実行
逐次実行
逐次実行

（凡例）

一括実行：HiRDBの配列更新機能を使用してSQLを一括実行する

逐次実行：HiRDBの配列更新機能を使用しないでSQLを分けて実行する

KFPA19408-E：エラー（KFPA19408-E）が発生する。HiRDBの配列更新機能は使用できない

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれていた場合，例外となる

表4-37　 addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がfalseまたは指定なし，HiRDBの場合）

実行するSQL文 | DABrokerの仕様（処理方法）
INSERT文（VALUES句指定） | 逐次実行
INSERT文（SELECT句指定） | 逐次実行
UPDATE文 | 逐次実行
DELETE文 | 逐次実行
SELECT文 | KFDJ00010-E
CALL文（OUTまたはINOUTパラメタあり） | KFDJ00010-E
CALL文（INパラメタだけ） | 逐次実行

（凡例）

逐次実行：HiRDBの配列更新機能を使用しないでSQLを分けて実行する

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれていた場合，例外となる

表4-38　addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がtrue，HiRDBクライアント経由XDM/RD E2の場合）

実行するSQL | DABrokerの仕様（処理方式）
HiRDBクライアント08-02未満 | HiRDBクライアント08-02以降
XDM／RD E2（11-03未満） | XDM／RD E2（11-03以降）
INSERT文（VALUES句指定） | 逐次実行 | 逐次実行 | 一括実行
INSERT文（SELECT句指定） | 逐次実行 | 逐次実行 | 一括実行
UPDATE文 | 逐次実行 | 逐次実行 | 一括実行
DELETE文 | 逐次実行 | 逐次実行 | 一括実行
SELECT文 | KFDJ00010-E | KFDJ00010-E | KFDJ00010-E
CALL文（OUT，またはINOUTパラメタ有） | KFDJ00010-E | KFDJ00010-E | KFDJ00010-E
CALL文（INパラメタだけ） | 逐次実行 | 逐次実行 | 逐次実行

（凡例）

一括実行：HiRDBの配列更新機能を使用してSQLを一括実行する

逐次実行：HiRDBの配列更新機能を使用しないでSQLを分けて実行する

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれている場合，例外となる

表4-39　addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がfalseまたは指定なし，HiRDBクライアント経由XDM/RD E2の場合）

実行するSQL文 | DABrokerの仕様
INSERT文（VALUES句指定） | 逐次実行
INSERT文（SELECT句指定） | 逐次実行
UPDATE文 | 逐次実行
DELETE文 | 逐次実行
SELECT文 | KFDJ00010-E
CALL文（OUT，またはINOUTパラメタあり） | KFDJ00010-E
CALL文（INパラメタだけ） | 逐次実行

（凡例）

逐次実行：HiRDBの配列更新機能を使用しないでSQLを分けて実行する

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれている場合，例外となる

●HiRDBの配列更新機能の使用方法

HiRDBの配列更新機能の使用方法を次に示します。

BlockUpdate設定をtrueにします。
Connect時に，プロパティとしてBLOCK_UPDATE=TRUEを指定するか（DataSourceを使用する場合はsetBlockUpdate(true)），JdbcDbpsvPreparedStatementのsetBlockUpdate(true)を指定します。

パラメタが一つ以上あるSQLを前処理します。

PreparedStatementクラス，またはCallableStatementクラスのsetメソッドで，?パラメタに対する値を設定します。

addBatchメソッドで，?パラメタセットを追加します。

executeBatchメソッドで，バッチ更新を実行します。

●HiRDBの配列更新機能使用時の注意事項

共通項目
サポートするHiRDB全バージョン共通の注意事項を次に示します。

HiRDBの配列更新機能を使用するには，接続時のプロパティ情報，またはデータソースのBlockUpdateをtrueで設定するか，PreparedStatementのsetBlockUpdateメソッドをtrueに設定する必要があります。

HiRDBの配列更新機能は，?パラメタを持つSQL文に対して有効です。プロシジャやStatementクラスのaddBatch(String sql)を使用した場合は有効となりません。

パラメタセットを登録する場合，PreparedStatement，またはCallableStatementのaddBatchメソッドを使用してください。StatementのaddBatch(String sql)を使用するとエラーになります。

HiRDBの配列更新機能は，addBatchメソッドで登録したパラメタセットが2件以上ある場合に有効です。1件の場合はHiRDBの配列更新機能を使用しないで実行されます。

実行するSQLには，?パラメタが一つ以上必要です。?パラメタがない場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

XA環境下のHiRDBに接続してバッチ更新を実行する場合，setAutoCommit(false)を設定する必要があります。setAutoCommit(false)を設定しないで実行するとHiRDBでエラーになります。

DECIMAL型データをパラメタセットに設定する場合，配列に指定するDECIMAL型データの精度，および位取りはHiRDBの表定義属性に合わせられます。整数部のけた数がHiRDBの表定義の整数部のけた数より大きいと，けたあふれが発生してエラーになります。

SMALLINT型，INTEGER型，またはDECIMAL型の列に，setInt，またはsetStringを使用して範囲外のデータを設定するとエラーになります。

配列更新の途中でエラーが発生した場合，エラーが発生する直前までの実行もすべて無効になります。

?パラメタにHiRDBの繰り返し列（複数要素を格納できる列）を指定している場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

setNullメソッドで，HiRDBの表定義の列属性がCHAR，NCHAR，MCHAR，DATE，TIME，またはTIMESTAMPの場合，列属性と同じjava.sql.Typesを指定していると，HiRDBの配列更新機能は使用されないで，逐次実行されます。

setNullメソッドで，HiRDBの表定義の列属性と異なるjava.sql.Typesを指定している場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。ただし，次の場合は，HiRDBの配列更新機能が実行されます。
・HiRDBの表定義の列属性がCHAR，NCHAR，またはMCHARで，java.sql.Typesにjava.sqlTypes.VARCHARを指定した場合
・HiRDBの表定義の列属性がDATE，TIME，またはTIMESTAMPで，java.sql.Typesにjava.sql.Types.CHARを指定した場合

HiRDBのバージョンが07-00の場合の注意事項
HiRDBのバージョンが07-00の場合，次に示すバージョン固有の注意事項があります。共通項目と合わせて注意してください。

HiRDBのバージョンが07-00の場合，使用できるHiRDBの配列更新機能は，「配列を使用したINSERT機能（INSERT VALUE句だけ）」です。「配列を使用したINSERT機能（INSERT VALUE句以外）」，「配列を使用したUPDATE機能」，および「配列を使用したDELETE機能」は使用できません。

?パラメタにHiRDBのBLOB型の列，または定義長32,001バイト以上のBINARY型の列を指定している場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

WITH DEFAULT指定のBLOB型の列，またはWITH DEFAULT指定で定義長32,001バイト以上のBINARY型の列の場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

HiRDBの行単位トリガを定義した表に対して更新する場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

HiRDBのバージョンが07-01以降の場合の注意事項
HiRDBのバージョンが07-01以降の場合，次に示すバージョン固有の注意事項があります。共通項目と合わせて注意してください。

「配列を使用したINSERT機能」，「配列を使用したUPDATE機能」，および「配列を使用したDELETE機能」が使用できます。

?パラメタにデータ長が32,001バイト以上のBINARYデータを指定している場合，HiRDBの配列更新機能は使用されないで，逐次実行されます。

HiRDBのBLOB型列に対して32,001バイト以上のデータを指定している場合，HiRDBの配列更新機能は使用され，逐次実行されます。

(e)　Oracleの場合のバッチ更新

ここでは，Oracleの場合のバッチ更新について説明します。

●addBatchメソッド－executeBatchメソッド使用時の仕様

次に，PreparedStatementおよびCallableStatementでのaddBatchメソッド－executeBatchメソッド使用時の仕様を，BlockUpdate設定がtrueの場合，falseの場合に分けて示します。

表4-40　 addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がtrue，Oracleの場合）

実行するSQL文 | DABrokerの仕様（処理方法）
INSERT文（VALUES句指定） | 逐次実行
INSERT文（SELECT句指定） | 逐次実行
UPDATE文 | 逐次実行
DELETE文 | 逐次実行
SELECT文 | KFDJ00010-E
BEGIN文（OUTまたはINOUTパラメタあり） | KFDJ00010-E
BEGIN文（INパラメタだけ） | 逐次実行

（凡例）

逐次実行：SQLを分けて実行する

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれていた場合，例外となる

表4-41　 addBatchメソッド－executeBatchメソッド使用時の仕様（BlockUpdate設定がfalseまたは指定なし，Oracleの場合）

実行するSQL文 | DABrokerの仕様（処理方法）
INSERT文（VALUES句指定） | 逐次実行
INSERT文（SELECT句指定） | 逐次実行
UPDATE文 | 逐次実行
DELETE文 | 逐次実行
SELECT文 | KFDJ00010-E
BEGIN文（OUTまたはINOUTパラメタあり） | KFDJ00010-E
BEGIN文（INパラメタだけ） | 逐次実行

（凡例）

逐次実行：SQLを分けて実行する

KFDJ00010-E：エラー（KFDJ00010-E）が発生する。JDBC2.0規格では，executeBatchメソッドで更新行数を返さないもの（SELECTなど）が含まれていた場合，例外となる

●addBatchメソッド使用時の注意事項

実行するSQLに?パラメタを一つ以上含めてください。

配列に指定するデータ型が異なる場合にはエラーとなります。

アプリケーションサーバから使用する場合は，PreparedStatementクラスのsetBlockUpdateメソッドは使用できません。

(3)　JDBC SQLタイプの扱い

JDBC2.0基本規格では，幾つかの新しいJDBC SQLタイプが追加されています。追加されたJDBC SQLタイプとDABroker Libraryでのサポートを，次の表に示します。

表4-42　 追加されたJDBC SQLタイプとDABroker Libraryでのサポート

追加されたJDBC SQLタイプ | DABroker Libraryでのサポート
BLOB | ○
CLOB | △
ARRAY | ×
REF | ×
DISTINCT | ×
STRUCT | ×
JAVA OBJECT | ×

（凡例）

○：Oracle9i，Oracle10g，およびHiRDBでサポートしている

△：Oracle9i，およびOracle10gでだけサポートしている

×：サポートしていない

(a)　検索データ取得時のデータ変換

追加されたJDBC SQLタイプと，ResultSetクラスのgetXXXメソッドとのデータ変換について，次の表に示します。変換できないJDBC SQLタイプに対してgetXXXメソッドが呼び出された場合は，SQLExceptionをthrowします。接続データベースがどのJDBC SQLタイプをサポートしているかは，「4.7.7　データ型の対応」を参照してください。

なお，JDBC2.0規格ではgetUnicodeStreamメソッドが推奨されないメソッドとなったため，代わりにgetCharacterStreamが追加されています。

表4-43　 ResultSetクラスのgetXXXメソッドとJDBC SQLタイプとのデータ変換 （1）

getXXXメソッド
JDBC SQLタイプ

B
I
T
T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
F
L
O
A
T
R
E
A
L
D
O
U
B
L
E
N
U
M
E
R
I
C
D
E
C
I
M
A
L
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R

getByte
○
◎
○
○
○
○
○
○
○
○
○
○
○

getShort
○
○
◎
○
○
○
○
○
○
○
○
○
○

getInt
○
○
○
◎
○
○
○
○
○
○
○
○
○

getLong
○
○
○
○
◎
○
○
○
○
○
○
○
○

getFloat
○
○
○
○
○
○
◎
○
○
○
○
○
○

getDouble
○
○
○
○
○
◎
○
◎
○
○
○
○
○

getBigDecimal
○
○
○
○
○
○
○
○
◎
◎
■
○
○

getBoolean
◎
○
○
○
○
○
○
○
○
○
○
○
○

getString
○
○
○
○
○
○
○
○
○
○
◎
◎
○

getBytes
－
－
－
－
－
－
－
－
－
－
－
－
－

getDate※1
－
－
－
－
－
－
－
－
－
－
○
○
○

getTime※1
－
－
－
－
－
－
－
－
－
－
○
○
○

getTimestamp※1
－
－
－
－
－
－
－
－
－
－
○
○
○

getAsciiStream
－
－
－
－
－
－
－
－
－
－
○
○
◎

getUnicodeStream
－
－
－
－
－
－
－
－
－
－
○
○
◎

getBinaryStream
－
－
－
－
－
－
－
－
－
－
－
－
－

getObject
○
○
○
○
○
○
○
○
○
○
○
○
○

getCharacter
Stream
－
－
－
－
－
－
－
－
－
－
○
○
◎

getArray
（未サポート）
－
－
－
－
－
－
－
－
－
－
－
－
－

getBlob※2
－
－
－
－
－
－
－
－
－
－
－
－
－

getClob※3
－
－
－
－
－
－
－
－
－
－
－
－
－

getRef
（未サポート）
－
－
－
－
－
－
－
－
－
－
－
－
－

（凡例）

◎：完全に変換できる

○：変換できる。ただし，変換元のデータの内容によってはデータの欠落や変換エラーとなることがある

■：設定値が定義長に満たない場合，エラーが発生する

－：変換できない

注※1

引数にjava.util.Calendarオブジェクトを指定するgetDate，getTimeおよびgetTimestampメソッドを実行すると，データベースに格納されたデータが指定したjava.util.Calendarオブジェクトのタイムゾーンであるとして，実行しているアプリケーションのデフォルトのタイムゾーンに変換して取得します。

注※2

Oracle9i，Oracle10g，およびHiRDBでサポートしています。

注※3

Oracle9i，およびOracle10gでサポートしています。

表4-44　 ResultSetクラスのgetXXXメソッドとJDBC SQLタイプとのデータ変換 （2）

getXXXメソッド
JDBC SQLタイプ

D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
J
A
V
A
O
B
J
E
C
T
S
T
R
U
C
T
A
R
R
A
Y
B
L
O
B
C
L
O
B
R
E
F

getByte
－
－
－
－
－
－
－
－
－
－
－
－

getShort
－
－
－
－
－
－
－
－
－
－
－
－

getInt
－
－
－
－
－
－
－
－
－
－
－
－

getLong
－
－
－
－
－
－
－
－
－
－
－
－

getFloat
－
－
－
－
－
－
－
－
－
－
－
－

getDouble
－
－
－
－
－
－
－
－
－
－
－
－

getBigDecimal
－
－
－
－
－
－
－
－
－
－
－
－

getBoolean
－
－
－
－
－
－
－
－
－
－
－
－

getString
○
○
○
○
○
○
－
－
－
－
－
－

getBytes
－
－
－
◎
◎
○
－
－
－
－
－
－

getDate※1
◎
－
○
－
－
－
－
－
－
－
－
－

getTime※1
－
◎
○
－
－
－
－
－
－
－
－
－

getTimestamp※1
○
－
◎
－
－
－
－
－
－
－
－
－

getAsciiStream
－
－
－
○
○
○
－
－
－
－
－
－

getUnicodeStream
－
－
－
○
○
○
－
－
－
－
－
－

getBinaryStream
－
－
－
○
○
◎
－
－
－
－
－
－

getObject
○
○
○
○
○
○
▲
▲
△
▼
▼
△

getCharacter
Stream
－
－
－
○
○
○
－
－
－
－
－
－

getArray
（未サポート）
－
－
－
－
－
－
－
－
▲
－
－
－

getBlob※2
－
－
－
－
－
○※4
－
－
－
●
－
－

getClob※3
－
－
－
－
－
－
－
－
－
－
●
－

getRef
（未サポート）
－
－
－
－
－
－
－
－
－
－
－
▲

（凡例）

◎：完全に変換できる

○：変換できる。ただし，変換元のデータの内容によってはデータの欠落や変換エラーとなることがある

●：完全に変換できる組み合わせは，接続するデータベースがOracle9iまたはOracle10gの場合以外では，JDBC SQLタイプが未サポートのため使えない

▼：変換できる組み合わせは，接続するデータベースがOracle9iまたはOracle10gの場合以外では，JDBC SQLタイプが未サポートのため使えない

▲：完全に変換できる組み合わせは，JDBC SQLタイプが未サポートのため使えない

△：変換できる組み合わせは，JDBC SQLタイプが未サポートのため使えない

－：変換できない

注※1

引数にjava.util.Calendarオブジェクトを指定するgetDate，getTimeおよびgetTimestampメソッドを実行すると，データベースに格納されたデータが指定したjava.util.Calendarオブジェクトのタイムゾーンであるとして，実行しているアプリケーションのデフォルトのタイムゾーンに変換して取得します。

注※2

Oracle9i，Oracle10g，およびHiRDBでサポートしています。

注※3

Oracle9i，およびOracle10gでサポートしています。

注※4

HiRDBでだけサポートしています。

(b)　？パラメタ設定時のデータ変換

追加されたJDBC SQLタイプと，PreparedStatementクラスのsetXXXメソッドとのデータ変換について，次の表に示します。JDBC SQLタイプをサポートしていない場合，setXXXメソッドはSQLExceptionをthrowします。接続データベースがどのJDBC SQLタイプをサポートしているかは，「4.7.7　データ型の対応」を参照してください。

なお，JDBC2.0規格では，setUnicodeStreamメソッドが推奨されないメソッドとなったため，代わりにsetCharacterStreamが追加されています。

表4-45　 追加されたJDBC SQLタイプとsetXXXメソッド

setXXXメソッド | データ変換されるJDBC SQLタイプ
setCharacterStream | CHAR，VARCHAR，またはLONGVARCHAR
setRef（未サポート） | REF
setBlob※1 | BLOB，LONGVARBINARY
setClob※2 | CLOB
setArray（未サポート） | ARRAY

注※1

Oracle9i，Oracle10g，およびHiRDBでサポートしています。

注※2

Oracle9i，およびOracle10gでサポートしています。

表4-46　 setXXXメソッドとJDBC SQLタイプとのデータ変換 （1）

setXXXメソッド
JDBC SQLタイプ

B
I
T
T
I
N
Y
I
N
T
S
M
A
L
L
I
N
T
I
N
T
E
G
E
R
B
I
G
I
N
T
F
L
O
A
T
R
E
A
L
D
O
U
B
L
E
N
U
M
E
R
I
C
D
E
C
I
M
A
L
C
H
A
R
V
A
R
C
H
A
R
L
O
N
G
V
A
R
C
H
A
R

setByte
○
◎
○
○
○
○
○
○
○
○
○
○
○

setShort
○
○
◎
○
○
○
○
○
○
○
○
○
○

setInt
○
○
○
◎
○
○
○
○
○
○
○
○
○

setLong
○
○
○
○
◎
○
○
○
○
○
○
○
○

setFloat
○
○
○
○
○
○
◎
○
○
○
○
○
○

setDouble
○
○
○
○
○
◎
○
◎
○
○
○
○
○

setBigDecimal
○
○
○
○
○
○
○
○
◎
◎
○
○
○

setBoolean
◎
○
○
○
○
○
○
○
○
○
○
○
○

setString
○
○
○
○
○
○
○
○
○
○
◎
◎
○

setBytes
－
－
－
－
－
－
－
－
－
－
－
－
－

setDate
－
－
－
－
－
－
－
－
－
－
○
○
○

setTime
－
－
－
－
－
－
－
－
－
－
○
○
○

setTimestamp
－
－
－
－
－
－
－
－
－
－
○
○
○

setAsciiStream
－
－
－
－
－
－
－
－
－
－
○※4
○※4
○※4

setUnicodeStream※1
－
－
－
－
－
－
－
－
－
－
○
○
○

setBinaryStream
－
－
－
－
－
－
－
－
－
－
－
－
－

setObject
○
○
○
○
○
○
○
○
○
○
○
○
○

setCharacterStream
－
－
－
－
－
－
－
－
－
－
○※5
○※5
○※5

setArray
（未サポート）
－
－
－
－
－
－
－
－
－
－
－
－
－

setBlob※2
－
－
－
－
－
－
－
－
－
－
－
－
－

setClob※3
－
－
－
－
－
－
－
－
－
－
－
－
－

setRef
（未サポート）
－
－
－
－
－
－
－
－
－
－
－
－
－

（凡例）

◎：完全に変換できる

○：変換できる。ただし，変換元のデータの内容によってはデータの欠落や変換エラーとなることがある

－：変換できない

注※1

Oracle9i，Oracle10g，およびHiRDBでサポートしています。

注※2

Oracle9i，およびOracle10gでサポートしています。

注※3

長さが0のデータを設定するとエラーになります。

注※4

接続データベースがOracleの場合，長さが0のデータを設定すると，NULL値に変換します。

注※5

java.io.Readerオブジェクトから取得できるデータの長さが引数で指定した長さより短い場合，次のように引数で指定した長さまで0を補完します。

表4-47　 setXXXメソッドとJDBC SQLタイプとのデータ変換（2）

setXXXメソッド
JDBC SQLタイプ

D
A
T
E
T
I
M
E
T
I
M
E
S
T
A
M
P
B
I
N
A
R
Y
V
A
R
B
I
N
A
R
Y
L
O
N
G
V
A
R
B
I
N
A
R
Y
J
A
V
A
O
B
J
E
C
T
S
T
R
U
C
T
A
R
R
A
Y
B
L
O
B
C
L
O
B
R
E
F

setByte
－
－
－
－
－
－
－
－
－
－
－
－

setShort
－
－
－
－
－
－
－
－
－
－
－
－

setInt
－
－
－
－
－
－
－
－
－
－
－
－

setLong
－
－
－
－
－
－
－
－
－
－
－
－

setFloat
－
－
－
－
－
－
－
－
－
－
－
－

setDouble
－
－
－
－
－
－
－
－
－
－
－
－

setBigDecimal
－
－
－
－
－
－
－
－
－
－
－
－

setBoolean
－
－
－
－
－
－
－
－
－
－
－
－

setString
○
○
○
○
○
○
－
－
－
－
－
－

setBytes
－
－
－
◎
◎
○
－
－
－
－
－
－

setDate
◎
－
○
－
－
－
－
－
－
－
－
－

setTime
－
◎
○
－
－
－
－
－
－
－
－
－

setTimestamp
○
－
◎
－
－
－
－
－
－
－
－
－

setAsciiStream
－
－
－
○
○※4
○※4
－
－
－
－
－
－

setUnicodeStream※3
－
－
－
○
○
○
－
－
－
－
－
－

setBinaryStream
－
－
－
○
○※4
○※4
－
－
－
－
－
－

setObject
○
○
○
○
○
○
▲
▲
△
▼
▼
△

setCharacterStream
－
－
－
○※5
○※5
○※5
－
－
－
－
－
－

setArray（未サポート）
－
－
－
－
－
－
－
－
▲
－
－
－

setBlob※1
－
－
－
－
－
○※1
－
－
－
●※2※4
－
－

setClob※2
－
－
－
－
－
－
－
－
－
－
●※4
－

setRef（未サポート）
－
－
－
－
－
－
－
－
－
－
－
▲

（凡例）

◎：完全に変換できる

○：変換できる。ただし，変換元のデータの内容によってはデータの欠落や変換エラーとなることがある

●：完全に変換できる組み合わせは，接続するデータベースがOracle9iまたはOracle10gの場合以外では，JDBC SQLタイプが未サポートのため使えない

▼：変換できる組み合わせは，接続するデータベースがOracle9iまたはOracle10gの場合以外では，JDBC SQLタイプが未サポートのため使えない

▲：完全に変換できる組み合わせは，JDBC SQLタイプが未サポートのため使えない

△：変換できる組み合わせは，JDBC SQLタイプが未サポートのため使えない

－：変換できない

注※1

Oracle9i，Oracle10g，およびHiRDBでサポートしています。

注※2

Oracle9i，およびOracle10gでサポートしています。

注※3

長さが0のデータを設定するとエラーになります。

注※4

接続データベースがOracleである場合，長さが0であるデータを設定するとNULL値に変換します。

注※5

java.io.Readerオブジェクトから取得できるデータの長さが引数で指定した長さより短い場合，次のように引数で指定した長さまで0を補完します。

4.7.3　JDBC2.0拡張機能の概要

ここでは，DABroker Libraryで提供するJDBC2.0拡張機能の概要を説明します。各メソッドでの制限事項については，「4.10　DABroker Libraryで使用するAPIの一覧」を参照してください。

＜この項の構成＞

(1)　JNDI連携

(2)　接続プール

(3)　分散トランザクション機能

(1)　JNDI連携

JNDI連携とは，DBMSとの接続情報をJNDIに登録し，登録した接続情報を使用してDBMSと接続する機能です。一度接続情報を登録すれば，DBMSとの接続時に接続情報を設定する必要がなくなります。JNDI連携の操作については，「4.7.5　JDBC2.0拡張機能を使用したデータベース接続の設定」を参照してください。

(2)　接続プール

接続プール機能は，DataSourceオブジェクトとJNDIを使用してデータベースと接続した場合だけ使用できます。

データベースとの接続をためる（プール）機能の概要について説明します。

(a)　概要

DBMSとの接続をプールします。この機能は，DBMSとの接続および解放によるオーバーヘッドを縮小し，サーバアプリケーションの性能向上に役立ちます。

アプリケーションに影響を与えないため，接続プールの有無を意識する必要がない。

システム構築時に，接続プール機能を任意に選択できる（ユーザが作成する，アプリケーションサーバのベンダが提供するものを使用する，またはJDBCのベンダが提供するものを使用する）。

接続プール機能では，アプリケーションとのインタフェースとして，DataSourceクラスを提供する。

JDBC2.0拡張機能では，接続プール機能とのインタフェースとして，ConnectionPoolDataSourceクラスとPooledConnectionクラスを提供する。

ConnectionPoolDataSourceクラスは，JDBC2.0拡張機能が提供するDataSourceクラスと同様に，接続情報の設定および取得用のメソッドを提供する。

(b)　関連するクラス

接続プール機能に関連するクラスを次の表に示します。

表4-48　 接続プールに関連するクラス

クラス
概要

javax.sql.
ConnectionEventListener

接続プール機能が提供

接続プール機能で，接続の切断，SQLエラーなどをこのクラスのオブジェクトから検知※1

javax.sql.DataSource

接続プール機能が提供

データベース接続時のアプリケーションとのインタフェース

接続プールを制御

JNDIに登録して使用

javax.sql.
ConnectionPoolDataSource

JDBC2.0拡張機能が提供※2

データベース接続に必要な接続情報の設定および取得用のメソッドを提供

接続プール機能が使用

JNDIに登録して使用

このクラスのオブジェクトからPooledConnectionオブジェクトを取得

javax.sql.PooledConnection

JDBC2.0拡張機能が提供※2

接続プール機能が使用

このクラスのオブジェクトがプール対象

このクラスのオブジェクトからConnectionオブジェクトを取得

注※1

connectionErrorOccurredが返されるのは次のエラーコードの場合です。

接続データベースがHiRDB：-720，-722，-723，-728，-732，-932，-1700

接続データベースがOracle：28，1012，3113，3114，12571

注※2

JDBC2.0拡張機能が提供するパッケージ名称とクラス名称を次に示します。

種類 | 名称
パッケージ | JP.co.Hitachi.soft.DBPSV_Driver
ConnectionPoolDataSourceクラス | JdbcDbpsvConnectionPoolDataSource
PooledConnectionクラス | JdbcDbpsvPooledConnection

(3)　分散トランザクション機能

分散トランザクション機能とは，Sun Microsystemsの提唱するJava Transaction API（JTA）規格を基に，トランザクションマネージャと連携する，接続プール機能の拡張機能です。

分散トランザクション機能は，XADataSourceクラスとJNDIを使用してデータベースと接続した場合だけ使用できます。

分散トランザクション機能の概要について説明します。

(a)　概要

JTSおよびJTAとの連携によって，Sun Microsystemsの提唱するJava Transaction API（JTA）規格に沿った，分散トランザクションを構築できます。

システム構築時に，トランザクション連携機能を任意に選択できます（ユーザが作成する，APServerベンダ提供のものを使用する，またはJDBCベンダが提供するものを使用する）。

トランザクション連携機能は，接続プールの拡張機能として，トランザクションマネージャが提供する，JTAやJTSを使用します。

トランザクション連携機能では，アプリケーションとのインタフェースとして，DataSourceクラスを提供します。

JDBC2.0拡張機能では，トランザクション連携機能とのインタフェースとして，XADataSourceクラスとXAConnectionクラスを提供します。また，トランザクションマネージャとのインタフェースとして，XAResourceクラスを提供します。

XADataSourceクラスは，JDBC2.0拡張機能が提供するDataSourceクラスと同様に，接続情報の設定および取得用のメソッドを提供します。

接続プールの場合と同様に，アプリケーションが使用するConnectionオブジェクトはXAConnectionクラスが生成しますが，PooledConnectionクラスやJDBC2.0拡張機能が提供するDataSourceクラスが生成するConnectionオブジェクトと比べて，次の点が異なります。

接続情報にXALocalCommitMode(true)を設定していない場合には，XADataSourceクラス使用時，AutoCommitのモードはOFFになります。また，AutoCommitのモードをONにしたり（ConnectionクラスのsetAutoCommit(true)メソッドの発行），Connectionクラスのcommitメソッド，またはrollbackメソッドを実行したりすると，SQLExceptionとなります。ただし，XALocalCommitMode(true)をプロパティに設定している場合だけAutoCommitのモードはONとなります。

一つのXAResourceに対して複数のConnectionクラスを生成してもトランザクションは一つになります。XAResource，Connectionは一対一で使用するようにしてください。トランザクションがローカルトランザクション※1の場合，ConnectionクラスのsetAutoCommit(true)メソッド，commitメソッド，およびrollbackメソッドを呼び出せます。同じXAResourceを使用するトランザクションがグローバルトランザクション※2を開始すると，自動的にAutoCommitのモードはOFFになります。再び，トランザクションがローカルトランザクションに移行すると，開始前のAutoCommitのモードに変更されます。複数のConnectionを使用して，トランザクションがローカルトランザクションのときにsetAutoCommitメソッドでAutoCommitのモードを変更する場合は，すべてのConnectionクラスのオブジェクトに対してそれぞれsetAutoCommitメソッドを呼び出してAutoCommitのモードを統一させる必要があります。現在のトランザクションがローカルトランザクションで，AutoCommitのモードがOFFの状態で新たにConnectionを生成した場合，新しいConnectionクラスのオブジェクトに対してsetAutoCommit(false)を実行してください。

注※1

ローカルトランザクションとは，XAResourceクラスのstart実行前，またはXAResourceクラスのend実行後の状態にあるトランザクションのことです。

注※2

グローバルトランザクションとは，XAResourceクラスのstart実行後，またはXAResourceクラスのendを実行するまでの状態にあるトランザクションのことで，トランザクションマネージャがトランザクション制御を行っている状態を指します。

次の状態のとき，Connectionクラスのcloseメソッドを実行しても，接続しているデータベースによってトランザクションが決着されないことがあります。

接続情報にXALocalCommitMode(true)を設定している。

AutoCommitのモードをOFFにしている。

ローカルトランザクション内でSQLを実行し，Connectionクラスのcommitメソッド，またはrollbackメソッドを実行しない。

トランザクションを決着させるには，Connectionクラスのcloseメソッドを実行する前に，明示的にConnectionクラスのcommitメソッド，またはrollbackメソッドを実行する必要があります。

HiRDBの配列更新機能を使用するには，setXALocalCommitMode(true)，およびsetBlockUpdate(true)に設定してHiRDBに接続後，AutoCommit(false)を指定する必要があります。HiRDBにsetXALocalCommitMode(true)を設定して接続し，HiRDBの配列更新機能を使用する例を次に示します。
なお，HiRDBの配列更新機能については，「4.7.2(2)　バッチ更新」を参照してください。

XADataSource xads = new XADataSource();
xads.setDatabaseName("HIRDB");
xads.setXALocalCommitMode(true);
               ・
               ・
Connection con = xaconnection.getConnection();
String sql = "INSERT INTO SAMPLE VALUES(?)";
PreparedStatement pst = con.prepareStatement(sql);
con.setAutoCommit(false);
pst.setInt(1,10);
pst.addBatch();
pst.setInt(1,20);
pst.addBatch();
pst.executeBatch();
con.commit();

DABroker Libraryは，SQLの前処理を複数のCommit，Rollbackにわたって保持します。
この機能をXA環境下で使用できるデータベースは，HiRDBのバージョンが07-01以降です。また，SQLの前処理の保持機能が使用できるのは，グローバルトランザクション，およびローカルトランザクションを混在せずに使用している場合だけです。
ローカルトランザクションとグローバルトランザクションを混在させて使用すると，ローカルトランザクションSQLの前処理の保持機能は使用できません。
XA環境下でローカルトランザクションとグローバルトランザクションが混在したJavaUPの場合の前処理保持状態を次に示します。

図4-5　XA環境下でローカルトランザクションとグローバルトランザクションが混在したJavaUPの場合の前処理保持状態

(b)　関連するクラス

分散トランザクション機能に関連するクラスを次の表に示します。

表4-49　 分散トランザクションに関連するクラス

クラス
概要

javax.sql.
ConnectionEventListener

トランザクション連携機能が提供

トランザクション連携機能で，接続の切断，SQLエラーなどをこのクラスのオブジェクトから検知※1

javax.sql.DataSource

トランザクション連携機能が提供

データベース接続時のアプリケーションとのインタフェース

トランザクションマネージャとの連携および接続プールを制御

JNDIに登録して使用

javax.sql.XADataSource

JDBC2.0拡張機能が提供※2

データベース接続に必要な接続情報の設定および取得用のメソッドを提供

トランザクション連携機能が使用

JNDIに登録して使用

このクラスのオブジェクトからXAConnectionオブジェクトを取得

javax.sql.XAConnection

JDBC2.0拡張機能が提供※2

PooledConnectionクラスのサブクラス

トランザクション連携機能が使用

このクラスのオブジェクトがプール対象

このクラスのオブジェクトからConnectionオブジェクトを取得

javax.transaction.xa.
XAResource

JDBC2.0拡張機能が提供※2

トランザクションマネージャが使用するXA関連メソッドを提供

javax.transaction.xa.Xid

JDBC2.0拡張機能※2およびトランザクションマネージャが提供

XAResourceクラスの引数および戻り値として使用

注※1

connectionErrorOccurredが返されるのは次のエラーコードの場合です。

接続データベースがHiRDB：-720，-722，-723，-728，-732，-932，-1700

接続データベースがOracle：28，1012，3113，3114，12571

注※2

JDBC2.0拡張機能が提供するパッケージ名称とクラス名称を次に示します。

種類 | 名称
パッケージ | JP.co.Hitachi.soft.DBPSV_Driver
XADataSourceクラス | JdbcDbpsvXADataSource
XAConnectionクラス | JdbcDbpsvXAConnection
XAResourceクラス | JdbcDbpsvXAResource
Xidクラス | JdbcDbpsvXid

4.7.4　データベース接続の設定

DABroker Libraryで開発するアプリケーションでは，次の項目を設定します。ただし，トレースを取得するための情報の設定は任意です。

使用するJDBCドライバの設定

接続するデータベースの設定

データベースに接続するための各種情報の設定

トレースを取得するための情報の設定（任意）

ここでは，それぞれの設定内容について説明します。

なお，アプリケーション運用時に必要となる，アプリケーションの組み込みやインタフェースの定義については，「4.3.1(5)　J2EEアプリケーション運用のための設定」を参照してください。

＜この項の構成＞

(1)　使用するJDBCドライバの設定

(2)　接続するデータベースの設定

(3)　データベースに接続するための各種情報の設定

(4)　トレースを取得するための情報の設定

(1)　使用するJDBCドライバの設定

JDBCドライバのロードに，次のドライバ名称およびパッケージ名称を設定します。なお，DABroker Libraryで提供するJDBCドライバは，JDBC2.1の規格に準拠しています。

設定項目 | 設定値
ドライバ名称 | JdbcDbpsvDriver
パッケージ名称 | JP.co.Hitachi.soft.DBPSV_Driver

ドライバ名称およびパッケージ名称は，次のどちらかの方法で設定してください。

Class.forNameメソッドでの設定
Class.forNameメソッドでアプリケーションからJDBCドライバを登録します。
アプリケーション内に次のように記述してください。

Class.forName("JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver")

システム（java.lang.System）プロパティのjdbc.driversでの指定
システムプロパティにJDBCドライバを登録します。
システムプロパティでの指定方法は，Javaの各処理系の仕様に依存します。
次に，システムプロパティへの登録方法を示します。

Appletviewerでの指定－Javaアプレットの場合
[JAVA_HOME]/.hotjava/propertiesファイルに次の記述を追加してください。複数のドライバを使用する場合は，「:（コロン）」で区切って記述してください。なお，［JAVA_HOME］とは，環境変数PATHに設定した値のことです。［JAVA_HOME］は，Java実行環境によって異なります。

jdbc.drivers="JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver"

Javaのメソッドでの設定
System.setPropertyメソッドを使用してシステムプロパティに登録してください。次のように記述してください。

System.setProperty("jdbc.drivers", "JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver") ;

JDBCドライバの使用方法の詳細については，JDBC関連ドキュメントを参照してください。

(2)　接続するデータベースの設定

DABroker Libraryで開発するアプリケーションは，DABrokerに接続してデータベースに接続します。DABrokerおよびデータベースは，次のどちらかの方法で設定してください。

Driver.connectメソッドの直接呼び出し

DriverManager.getConnectionメソッドの使用

同時に多数のユーザが接続するシステムの場合，ドライバマネージャを使用する接続方法では，ドライバマネージャ内で待ちが発生することがあります。多数のユーザが同時に接続することが想定されるシステムでは，Driver.connectメソッドの直接呼び出しの接続方法でアプリケーションを開発することをお勧めします。

Driver.connectメソッドの直接呼び出しによる接続方法
次のように，Driverクラスのconnectメソッドを直接呼び出すことができます。

Driver drv = new JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver();
Connection con = drv.connect(String url,Properties info);

DriverManager.getConnectionメソッドの使用による接続方法
DABrokerとの接続は，DriverManager.getConnectionメソッドを使用します。引数のパターンは，次のどちらかです。

DriverManager.getConnection(String url,String user,String password);
DriverManager.getConnection(String url,Properties info);

次の表に，DriverManager.getConnectionメソッド，およびDriver.connectメソッドの引数の内容を示します。

表4-50　 getConnectionメソッドおよびconnectメソッドの引数の内容

引数
設定内容
指定

String url
データベースに接続するための各種情報の設定用URL構文（「(3)　データベースに接続するための各種情報の設定」参照）
必須

String user
データベース接続のユーザID※¹
必須

String password
データベース接続のパスワード※¹
任意

Properties info
データベース接続のユーザID※¹
（キーワード："user"）
必須

データベース接続のパスワード※¹
（キーワード："password"）
任意

アプリケーションの名称※²
（キーワード："UAPNAME"）
任意

DABrokerからの受信データのバッファ長※³
（キーワード："BUF_SIZE"）
任意

トレース取得の有無
（キーワード："JDBC_IF，SV_EVENT，TRC_NO"，
「(4)　トレースを取得するための情報の設定」参照）
任意

エンコード文字形態※⁴
（キーワード："ENCODELANG"）
任意

JDBCで取り扱うバッファ長※⁵
（キーワード："ROW_SIZE"）
任意

OS認証機能使用の有無※6
（キーワード："DAB_OSAUTH"）
任意

警告の保持※7
（キーワード："SQLWARNING_IGNORE"）
任意

HiRDBのカーソルの保持※8
（キーワード："HIRDB_CURSOR"）
任意

複数のパラメタセットの処理方法※9
（キーワード："BLOCK_UPDATE"）
任意

Execute Direct機能使用の有無※10
（キーワード："EXECUTE_DIRECT_MODE"）
任意

LONGVARBINARY型データアクセスモード※11
（キーワード："LONGVARBINARY_ACCESS"）
任意

DABrokerからの受信データのバッファプール数※12
（キーワード："BUF_POOL_SIZE"）
任意

注※1

データベースに接続するためのユーザID，およびパスワードは，あらかじめデータベースに登録しておいてください。

なお，ユーザIDだけを指定し，パスワードの指定を省略した場合でも，データベースに接続できます。ただし，ユーザIDの指定を省略し，パスワードだけを指定した場合は，データベースに接続できません（データベースの仕様に従っています）。

注※2

開発するアプリケーションを一意に識別するための名称です。DABrokerで取得する，アプリケーションとの通信トレースのPAPNAMEに使用されます。指定を省略した場合は，「DABroker for Java Version 2」が使用されます。

アプリケーションの名称は，30バイト以内の文字列で指定してください。31バイト以上の文字列を指定した場合，31バイト以降は切り捨てられます。

注※3

DABrokerからの受信データを格納するためのバッファ長を，キロバイト単位の数字文字列で指定します。BLOBデータなどの長大データを使用する場合，想定されるデータ長以上の値をこの項目に指定します。

指定値

1～16000

指定を省略した場合，数字以外を指定した場合，または1より小さい値を指定した場合は64が仮定されます。16000より大きい値を指定した場合は16000が仮定されます。

値が仮定されたときは，Exceptionトレースログに値が仮定されたことを表すメッセージ（KFDJ01009-W）が出力されます。出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ01009-W」を参照してください。

ただし，BUF_SIZEの上限が16,000キロバイトのため，BLOBデータなどの16,000キロバイトを超えるデータに一度にアクセスすることはできません。データベース種別がHiRDBの場合は，指定したバイト数を取り出すSTRING のインタフェース（BLOBデータの部分抽出機能）があるため，ここで指定したサイズ以下のサイズに分割して取り出してください。BLOBデータの部分抽出機能の詳細については，マニュアル「HiRDB UAP開発ガイド」，およびマニュアル「HiRDB SQLリファレンス」を参照してください。

注※4

Stringクラスで文字変換に使用するエンコード文字形態を指定します。

指定値

Javaがサポートしている文字エンコーディング：

MS932など，指定したエンコード文字形態を使用します。

OFF：

JavaVMがサポートしている標準エンコードを使用します。

次にDABrokerの漢字コードセットの値とJDBC内のエンコーディングの対応を示します。

DABroker（UNIX）のDAB_LANGの値，またはDABroker（Windows）のDABLANGMODEの漢字コードセットの値 | JDBC内の文字エンコーディング
SJIS（シフトJIS）モード | VMの標準エンコードを使用します。
EUCモード | EUCJIS
ASCIIモード | 8859_1
UTF-8モード | UTF-8

指定を省略した場合，OFFが仮定されます。

注※5

JDBCで取り扱うバッファ長を指定します。指定はメガバイト単位の数字文字列で指定します。利用するデータベースの1レコードの長さより大きい値を指定してください。

指定値

16～512

指定を省略した場合，数字以外を指定した場合，または16より小さい値を指定した場合は16が仮定されます。

512より大きい値を指定した場合は512が仮定されます。

注※6

OS認証機能を使用したデータベース接続をするかどうか指定します。

指定値

TRUE ：使用します。

FALSE：使用しません。

指定を省略した場合は，FALSEが仮定されます。この指定は，Oracle9i 9.2.0に接続する場合だけ有効です。それ以外のバージョンのOracleに対して指定した場合は動作を保証しません。接続するデータベースがOracle以外の場合は，指定値に関係なく，OS認証機能を使用しません。

注※7

データベースから返される警告を，Connectionクラスで保持するかどうかを指定します。

指定値

TRUE ：保持しません。

FALSE：保持します。

指定を省略した場合は，FALSEが仮定されます。

注※8

HiRDBでの検索時，カーソルが複数のCommitにわたって有効かどうかを指定します。

指定値

TRUE：カーソルは保持されます。アプリケーションは，続けてFetchできます（LOCK TABLE UNTIL DISCONNECTが前提です）。

FALSE：カーソルはクローズされます。

指定を省略した場合は，FALSEが仮定されます。Oracleでは，カーソルは常に複数のCommit，またはRollbackにわたって有効です。通常，Fetch時，DABrokerにFetchデータをバッファリングするため，Commit直後のFetchでエラーが発生するとは限りません。

MetaDataを取得する場合，「TRUE」を指定してLOCK TABLE UNTIL DISCONNECTをしないで，複数のCommitにわたってFetchを行うとエラーが発生します。MetaDataを取得する場合は，「TRUE」を設定しないでください。

MetaDataを取得する場合，「FALSE」，またはデフォルトの状態でResultSetのFetch実行中にCommitを実行するとエラーが発生します。

この機能については，マニュアル「HiRDB SQLリファレンス」を参照してください。

注※9

接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを指定します。

指定値

TRUE ：一度に処理します。

FALSE：パラメタセットを一つずつ分割して処理します。

指定を省略した場合は，FALSEが仮定されます。この指定は，接続データベースがHiRDBのときだけ有効です。HiRDB以外のデータベースの場合は，常にパラメタセットを一つずつ分割して処理します。また，実際にパラメタセットが一度に処理されるかどうかは，DABrokerおよびHiRDBの仕様に従います。

注※10

接続データベースがHiRDBの場合，INSERT，UPDATE，DELETEなど，Statementクラスを使用したデータベースの更新でHiRDBのEXECUTE DIRECT機能を使用するかどうかを指定します。

指定値

TRUE ：EXECUTE DIRECT機能を使用します。

FALSE：EXECUTE DIRECT機能を使用しません。

指定を省略した場合は，FALSEが仮定されます。この指定は，接続データベースがHiRDBのときだけ有効であり，HiRDB以外のデータベースの場合は，常にEXECUTE DIRECT機能を使用しません。

注※11

LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースのアクセス方法を指定します。

指定値

REAL：実データでアクセスします（デフォルト）。

LOCATOR：HiRDBの位置づけ子（locator）機能を使用してアクセスします。

上記以外：「REAL」を指定したものとします。なお，次のどれかの場合，「LOCATOR」を指定しても「REAL」が指定されたと見なします。

接続先DBがHiRDB 以外

接続先DBであるHiRDBのHiRDBサーバ，またはHiRDBクライアントライブラリのバージョンが07-00以前

LONGVARBINARY_ACCESSを指定した場合の注意事項を次に示します。

BUF_SIZEとLONGVARBINARY_ACCESSを指定した場合
BUF_SIZEおよびLONGVARBINARY_ACCESSの指定によって，BLOB／BINARYデータの取得方法が変化します。BLOB／BINARYデータの取得方法については，「(3)(b)　URLに指定する各種情報」の「BLOB／BINARYデータの取得方法」を参照してください。

実行性能
LONGVARBINARY_ACCESSに「REAL」を指定すると，データベースへのアクセスは，ResultSet.nextまたはCallableStatement.execute実行時に1回行われるのに対し，「LOCATOR」を指定すると，ResultSet.nextまたはCallableStatement.execute実行時と，getBytesなどのデータを取得するメソッド実行時の2回行われます。そのため，「LOCATOR」を指定すると「REAL」を指定した場合に比べて性能が低下する場合があります。

AUTOコミット
LONGVARBINARY_ACCESSが「LOCATOR」でかつ，AUTOコミットが有効の場合，ストアドプロシジャのBLOB／BINARY型出力パラメタを受け取れません（getBytesなどでデータを取得できません）。ストアドプロシジャの出力パラメタを受け取るにはAUTOコミットを無効にしてください。

トランザクション終了後のデータ操作
LONGVARBINARY_ACCESSが「LOCATOR」の場合，SQLの実行結果取得（ResultSet.next，CallableStatement.execute）からデータ操作（Blob.getBytes，InputStream.readなど）までにトランザクションが終了すると，データ操作ができません。また，HIRDB_CURSORが「TRUE」であってもトランザクション終了後のデータ操作は実行できません。
そのため，データ操作はトランザクション終了前に行ってください。

注※12

DABrokerからの受信データを格納するためのバッファプール数を設定します。指定しない場合は，0（デフォルト）が仮定されます。受信バッファプール数指定機能については，「4.5.2　受信バッファプール数の指定」を参照してください。

指定値

0（デフォルト）
受信バッファプール数指定機能を使用しません。受信バッファをすべてプールします。

1～1024
引数に指定された値を受信バッファプール数に設定します。ただし，接続するデータベースがHiRDBまたはORACLE以外の場合は，受信バッファプール数は1～64になります。この場合，64より大きい値を指定しても64個までしかプールできません。

上記以外
0より小さい値を指定した場合，または数字以外を指定した場合は0が仮定されます。1024より大きい値を設定した場合は1024が仮定されます。
値が仮定されたときは，Exceptionトレースログにメッセージ（KFDJ01011-W）が出力されます。このメッセージが出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ01011-W」を参照してください。
ただし，SQLWarnningは作成されません。

(3)　データベースに接続するための各種情報の設定

ここでは，DABrokerおよびデータベースの各種情報の設定について説明します。

(a)　URLの指定形式

引数URLは，次の形式で指定します。

なお，任意に指定する項目については，［］（角括弧）で示しています。

jdbc:hitachi:dbplib://DB =データベース種別[,DBID = データベースの接続情報][,DBENV = 接続先データベース定義情報][,DBHOST = データベース(HiRDB)のホスト名][,BUF_SIZE = 受信バッファ長][,ENCODELANG = 変換文字指定]
[,HIRDB_CURSOR = HiRDBカーソル動作モード]

必須の指定を省略した場合は，エラー（SQLExceptionをthrowする）となります。

URLで指定する項目の中または項目の間でスペースを指定すると，指定値が無効となります。

(b)　URLに指定する各種情報

各種情報に指定する内容を，次に示します。

●URLでの指定項目

表4-51　URLでの指定項目

各種情報
指定内容

データベース種別
（DB=）
DABrokerから接続するデータベースの種別を指定します。
指定値：表4-52参照
指定は必須です。

データベースの
接続情報
（DBID=）
接続するデータベース情報を指定します。
指定値：表4-53参照

接続先データベース定義情報
（DBENV=）
DABrokerの接続先データベース定義情報を次の形式で指定します。
データベース種別名：データベース名
データベース種別がDABroker－Database Connection Serverの場合は，必ずこの項目を指定します。それ以外のデータベース種別の場合は，ここでの指定値は無視されます。

データベースのホスト名
（DBHOST=）
データベースの種別にHiRDBを指定する場合，HiRDBのホスト名を指定します。なお，HiRDB以外のデータベースを指定する場合，ここでの指定値は無視されます。
指定値：ホスト名
指定は任意です。

受信バッファ長
（BUF_SIZE=）
DABrokerからの受信データを格納するためのバッファ長を，キロバイト単位の数字文字列で指定します。BLOBデータなどの長大データを使用する場合，想定されるデータ長以上の値をこの項目に指定します。
指定値：1～16000
指定を省略した場合，数字以外を指定した場合，または1より小さい値を指定した場合は64が仮定されます。16000より大きい値を指定した場合は16000が仮定されます。
値が仮定されたときは，Exceptionトレースログに値が仮定されたことを表すメッセージ（KFDJ01009-W）が出力されます。出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ01009-W」を参照してください。
ただし，BUF_SIZEの上限が16,000キロバイトのため，BLOBデータなどの16,000キロバイトを超えるデータに一度にアクセスすることはできません。データベース種別がHiRDBの場合は，指定したバイト数を取り出すSTRING のインタフェース（BLOBデータの部分抽出機能）があるため，ここで指定したサイズ以下のサイズに分割して取り出してください。BLOBデータの部分抽出機能の詳細については，マニュアル「HiRDB UAP開発ガイド」，およびマニュアル「HiRDB SQLリファレンス」を参照してください。

受信バッファプール数（BUF_POOL_SIZE）
DABrokerからの受信データを格納するためのバッファプール数を設定します。指定しない場合は，0（デフォルト）が仮定されます。受信バッファプール数指定機能については，「4.5.2　受信バッファプール数の指定」を参照してください。
指定値：

0（デフォルト）

受信バッファプール数指定機能を使用しません。受信バッファをすべてプールします。

1～1024

引数に指定された値を受信バッファプール数に設定します。ただし，接続するデータベースがHiRDBまたはORACLE以外の場合は，受信バッファプール数は1～64になります。この場合，64より大きい値を指定しても64個までしかプールできません。

上記以外

0より小さい値を指定した場合，または数字以外を指定した場合は0が仮定されます。1024より大きい値を設定した場合は1024が仮定されます。

値が仮定されたときは，Exceptionトレースログにメッセージ（KFDJ01011-W）が出力されます。このメッセージが出力される契機はDriverManager.getConnectionメソッドなどでConnectionオブジェクトを取得するときです。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ01011-W」を参照してください。
ただし，SQLWarnningは作成されません。

変換文字指定
（ENCODELANG=）
Stringクラスで文字変換に使用するエンコード文字形態を指定します。
指定値：Javaがサポートしている文字エンコーディング（MS932など），またはOFF（JavaVMがサポートしている標準エンコードを使用します）
指定は任意です。指定を省略した場合，OFFが仮定されます。

HiRDBカーソル動作モード
（HIRDB_CURSOR=）
HiRDBでの検索時，カーソルが複数のCommitにわたって有効かどうかを指定します。
指定値：

TRUE

カーソルは保持されます。アプリケーションは，続けてFetchできます（LOCK TABLE UNTIL DISCONNECTが前提です）。

FALSE

カーソルはクローズされます。

指定を省略した場合は，FALSEが仮定されます。Oracleでは，カーソルは常に複数のCommit，またはRollbackにわたって有効です。通常，Fetch時，DABrokerにFetchデータをバッファリングするため，Commit直後のFetchでエラーが発生するとは限りません。
MetaDataを取得する場合，「TRUE」を指定してLOCK TABLE UNTIL DISCONNECTをしないで，複数のCommitにわたってFetchを行うとエラーが発生します。MetaDataを取得する場合は，「TRUE」を設定しないでください。
MetaDataを取得する場合，「FALSE」またはデフォルトの状態で，ResultSetのFetch実行中にCommitを実行するとエラーが発生します。
接続データベースがHiRDBで検索SQL（SELECT文）に「UNTIL DISCONNECT」を記述した場合は，「TRUE」を指定するか，DataSourceクラスのsetHiRDBCursorModeメソッドで「true」を設定してください。設定しない場合，Commitをわたった検索中のResultSetクラスオブジェクトに対してcloseメソッドを実行してもカーソルをクローズしません。
この機能を使用する場合，マニュアル「HiRDB SQLリファレンス」を参照してください。

●データベースの指定値

表4-52　データベース種別の指定値

データベース種別 | データベース種別の指定値
Oracle | oracleまたはORACLE
Oracle8i※ | oracle8iまたはORACLE8I
HiRDB | hirdbまたはHIRDB

注

指定値の文字列は，大文字，小文字のどちらでもかまいません。

「=」の前後に，空白またはタブ文字を指定した場合は，エラー（SQLExceptionをthrowする）となります。

注※

データベース種別にOracle8iの指定値を指定して，DABroker環境設定の「使用するOracleのバージョン」にOracle9iを指定した場合はOracle9iに，Oracle10gを指定した場合はOracle10gに接続できます。

表4-53　データベースの接続情報の指定値

データベース種別 | データベースの接続情報の指定内容 | 指定の省略可否
Oracle | SQL*Netの接続文字列※¹ | 任意※¹
Oracle8i
HiRDB | HiRDBのシステムポート番号※¹※² | 任意※¹

注

「=」の前後に，空白またはタブ文字を指定した場合は，エラー（SQLExceptionをthrowする）となります。

「DB=データベース種別」との区切りに「,（コンマ）」を使用します。

「,（コンマ）」を2回以上指定した場合は，最後の「,（コンマ）」以降がデータベースの接続情報の指定となります。

データの区切りに「,（コンマ）」以外のキーを使用した場合は，データベース接続情報の指定は無効となります。

注※1

指定を省略する場合は，DABrokerの動作環境定義ファイルでの指定が有効になります。

注※2

HiRDBクライアントの環境変数グループ名を指定する場合は，グループ名の先頭に@を付加します。

（例1）

Windowsの場合

HiRDBクライアントの環境変数グループ名がHiRDB_ENV_GROUPのときは，次のように指定します。

DBID=@DABENVGRP=HiRDB_ENV_GROUP

（例2）

UNIXの場合

HiRDBクライアントの環境変数グループ名のパスが/HiRDB_P/Client/HiRDB.iniのときは，次のように指定します。

DBID=@DABENVGRP=/HiRDB_P/Client/HiRDB.ini

DBID=@DABENVGRP=＜環境変数グループ名＞を指定する場合は，指定内容に半角の空白を含めないでください。指定内容が次に示す例のどれかに該当する場合，DBIDは正しく設定されません。

（例）

DBID=@DABENVGRP=＜環境変数グループ名＞の指定内容に半角スペースを含みます。OSはWindowsで，環境変数グループ名はHiRDB_ENV_GROUPとします。

半角の空白を△で示します。

DBID△=@DABENVGRP=HiRDB_ENV_GROUP

DBID=△@DABENVGRP=HiRDB_ENV_GROUP

DBID=@△DABENVGRP=HiRDB_ENV_GROUP

DBID=@DABENVGRP△=HiRDB_ENV_GROUP

DBID=@DABENVGRP=△HiRDB_ENV_GROUP

DBID=@DABENVGRP=HiRDB_ENV_GROUP△

●BLOB／BINARYデータの取得方法

LONGVARBINARY_ACCESSを指定した場合の各メソッド実行時の動作を次に示します。

接続先データベースにHiRDBを指定した場合

表4-54　BLOB／BINARYデータの取得方法（1）

指定値
CallableStatement.execute
および
ResultSet.next
CallableStatement.getBytes
および
ResultSet.getBytes
Blob.getBytes

REAL
BLOB／BINARYデータの全体を接続先データベースから取得します。
ResultSet.nextで取得したBLOB／BINARYデータを使用します。
ResultSet.nextで取得したBLOB／BINARYデータから，引数で指定された範囲を切り出して取得します。

LOCATOR
BLOB／BINARYデータの全体ではなく，接続先データベース内のBLOB／BINARYデータを示すロケータを取得します。
BLOB／BINARYデータの全体を接続先データベースからBUF_SIZE×1,024バイト単位に分割して取得します。
引数で指定された範囲のBLOB／BINARYデータを接続先データベースからBUF_SIZE×1,024バイト単位に分割して取得します。

表4-55　BLOB／BINARYデータの取得方法（2）

指定値
CallableStatement.getBinaryStream
および
ResultSet.getBinaryStreamBlob.getBinaryStream
Blob.length
Blob.position

REAL
getBinaryStreamによって取得したInputStreamのreadメソッドを実行した場合，ResultSet.nextで取得したBLOB／BINARYデータから抽出して取得します。
ResultSet.nextメソッドで取得したBLOB／BINARYデータから，データ長を取得します。
ResultSet.nextで取得したBLOB／BINARYデータから，検索パターンに一致する位置を取得します。

LOCATOR
getBinaryStreamによって取得したInputStreamのreadメソッドを実行した場合，接続先データベースからデータを取得します。
接続先データベースからデータ長を取得します。
接続先データベースから，検索パターンに一致する位置を取得します。

表4-56　BLOB／BINARYデータの取得方法（3）

指定値 | InputStream.available※ | InputStream.skip※
REAL | ロケータの示す実データの長さ以下の値を返します。 | ロケータの示す実データの長さ以下の値を返します。
LOCATOR | BUF_SIZE×1,024バイト以下の値を返します。 | BUF_SIZE×1,024バイト以下の値を返します。

注※

CallableStatement.getBinaryStream，ResultSet.getBinaryStream，またはBlob.getBinaryStreamで取得したInputStreamです。

接続先データベースにOracleを指定した場合

表4-57　BLOB／BINARYデータの取得方法（4）

指定値
CallableStatement.execute
および
ResultSet.next
CallableStatement.getBytes
および
ResultSet.getBytes
Blob.getBytes

REAL
BLOB／BINARYデータの全体を接続先データベースからBUF_SIZE ×1,024バイト単位に分割して取得します。
ResultSet.nextで取得したBLOB／BINARYデータを使用します。
ResultSet.nextで取得したBLOB／BINARYデータから，引数で指定された範囲を切り出して取得します。

LOCATOR

表4-58　BLOB／BINARYデータの取得方法（5）

指定値
CallableStatement.getBinaryStream
および
ResultSet.getBinaryStreamBlob.getBinaryStream
Blob.length
Blob.position

REAL
ResultSet.nextで取得したBLOB／BINARYデータを使用します。
ResultSet.nextで取得したBLOB／BINARYデータから，データ長を取得します。
ResultSet.nextで取得したBLOB／BINARYデータから，検索パターンに一致する位置を取得します。

LOCATOR

表4-59　BLOB／BINARYデータの取得方法（6）

指定値 | InputStream.available※ | InputStream.skip※
REAL | ロケータの示す実データの長さ以下の値を返します。 | ロケータの示す実データの長さ以下の値を返します。
LOCATOR

注※

CallableStatement.getBinaryStream，ResultSet.getBinaryStream，またはBlob.getBinaryStreamで取得したInputStreamです。

(4)　トレースを取得するための情報の設定

JDBCドライバでは，次のトレースを取得できます。トレースの出力内容については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「7.　性能解析トレースを使用した性能解析」を参照してください。

JDBCインタフェースメソッドトレース

DABrokerとのイベントトレース

(a)　トレースの取得および出力ストリームの設定方法

次の項目を指定して，トレースの取得を設定してください。次の項目が指定されていない場合は，トレースを取得できません。

DriverManager.getConnectionメソッドまたはDriver.connectメソッドの引数Properties infoでのトレース取得有無の指定

DriverManager.setLogWriterメソッドでの，トレースの出力ストリームの指定

1.のProperties infoで指定する値を次の表に示します。1.のメソッドと引数については，「(3)　データベースに接続するための各種情報の設定」を参照してください。

表4-60　 トレースを取得するための指定値

トレースの種類
およびトレース関連項目
Properties infoの
キーワード
Properties infoの値

JDBCインタフェースメソッド
トレース※¹
JDBC_IF

指定値

ON：トレースを取得する

OFF：トレースを取得しない

DABrokerとのイベント
トレース※¹
SV_EVENT

指定値

ON：トレースを取得する

OFF：トレースを取得しない

各トレースのエントリ数※²
TRC_NO

デフォルト値

500（エントリ）

指定範囲

10～1000（エントリ）

注※1

ONまたはOFF以外の値を指定した場合は「トレースを取得しない」設定となります。

注※2

数字以外の値を指定した場合は「トレースを取得しない」設定となります。

(b)　指定したストリームへの出力タイミング

トレースは，各トレースのエントリ数分，JDBCドライバで保持されます。

保持されたトレースは，次のタイミングでDriverManager.setLogWriterメソッドで指定した出力ストリームに出力されます。

Connection.Closeメソッドの呼び出し（正常終了時）

エラー発生時（SQLExceptionのthrow時）

(c)　JDBCドライバでのトレース取得時の注意事項

JDBCドライバは，JDBCドライバ内でトレース情報の数がエントリ数を超えた場合は，トレースの古い順にトレース情報を上書きします。

JDBCインタフェースメソッドトレース（キーワード：JDBC_IF）は，EntryおよびReturnでそれぞれ1エントリのトレース領域を使用します。

DABrokerとのイベントトレース（キーワード：SV_EVENT）は，送信または受信イベントでそれぞれ1エントリのトレース領域を使用します。

4.7.5　JDBC2.0拡張機能を使用したデータベース接続の設定

JDBC2.0拡張機能で提供するJNDI連携機能を使用した，データベースへ接続する操作について説明します。この機能はアプリケーションサーバのJ2EEサーバモード，DB Connectorを使用する場合は，アプリケーションで設定する必要はありません。

＜この項の構成＞

(1)　DataSourceオブジェクトの生成

(2)　データベースに接続するための各種情報の設定

(3)　JNDIへの情報の登録

(4)　JNDIからの情報の取得

(5)　データベースへの接続

(6)　JDBC2.0拡張機能で提供する機能のトレースを取得するための情報の指定

(1)　DataSourceオブジェクトの生成

接続情報の設定は，DataSourceオブジェクトで実行します。

DataSourceオブジェクトの生成で必要な，ドライバ拡張機能のパッケージ名称およびDataSourceクラス名称を次に示します。

指定項目 | 指定値
パッケージ名称 | JP.co.Hitachi.soft.DBPSV_Driver
DataSourceクラス名称 | JdbcDbpsvDataSource

DataSourceオブジェクトの生成例を次に示します。

JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource  ds = null ;
ds = new JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource() ;

(2)　データベースに接続するための各種情報の設定

データベースに接続するための各種情報は，JDBC2.0拡張機能で提供するメソッドで設定します。提供するメソッドを次の表に示します。

表4-61　 各種情報を設定するメソッド

メソッド | 機能
setNetworkProtocol | DABrokerとの接続種別を設定します。
setServerName | 接続するDABrokerのホスト名を設定します。
setPortNumber | 接続するDABrokerのポート番号を設定します。
setDatabaseName | 接続するデータベースの種別を設定します。
setDescription | 接続するデータベースに必要な接続付加情報を設定します。
setDBHostName | 接続するHiRDBのホスト名を設定します。
setDBEnv | DABrokerの接続先データベース定義情報を設定します。
setEncodLang | エンコード文字形態を設定します。
setJDBC_IF_TRC | JDBCインタフェースメソッドトレースの取得の有無を設定します。
setSV_EVENT_TRC | DABrokerとのイベントトレースの取得の有無を設定します。
setTRC_NO | トレースのエントリ数を設定します。
setUapName | アプリケーション名称を設定します。
setBufSize | DABrokerからの受信データのバッファ長を設定します。
setUser | データベース接続のユーザIDを設定します。
setPassword | データベース接続のパスワードを設定します。
setXAOpenString※ | XA_OPEN文字列を設定します。
setXACloseString※ | XA_CLOSE文字列を設定します。
setRMID※ | リソースマネージャの識別子を設定します。
setXAThreadMode※ | XA使用時のスレッドモードを設定します。
setXALocalCommitMode※ | XA使用時，データベースのオートコミットを有効にするかどうかを設定します。
setRowSize | JDBCで取り扱うバッファ長を指定します。
setOSAuthorize | OS認証機能を使用してデータベースに接続するかどうかを設定します。
setSQLWarningIgnore | データベースから返される警告をConnectionクラスで保持するかどうかの情報を設定します。
setHiRDBCursorMode | 接続データベースがHiRDBの場合，検索時にカーソルが複数のCommitにわたって有効かどうかを設定します。
setNotErrorOccurred | connectionErrorOccurredが呼ばれるかどうかを設定します。
setBlockUpdate | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。
setExecuteDirectMode | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新でHiRDBのExecute Direct機能を使用するかどうかを設定します。
setLONGVARBINARY_Access | HiRDBでLONGVARBINARY（列属性BLOB，列属性BINARY）へのアクセス方法を設定します。
setBufferPoolSize | DABrokerからの受信データのバッファプール数を設定します。

注※

JdbcDbpsvXADataSourceクラスでだけ提供するメソッドです。

JDBC2.0拡張機能では，接続情報を取得するためのメソッドも提供しています。接続情報を取得するためのメソッドを次の表に示します。

表4-62　 各種情報を取得するメソッド

メソッド | 機能
getNetworkProtocol | DABrokerとの接続種別を取得します。
getServerName | 接続するDABrokerのホスト名を取得します。
getPortNumber | 接続するDABrokerのポート番号を取得します。
getDatabaseName | 接続するデータベースの種別を取得します。
getDescription | 接続するデータベースに必要な接続付加情報を取得します。
getDBHostName | 接続するHiRDBのホスト名を取得します。
getDBEnv | DABrokerの接続先データベース定義情報を取得します。
getEncodLang | エンコード文字形態を取得します。
getJDBC_IF_TRC | JDBCインタフェースメソッドトレースの取得の有無を取得します。
getSV_EVENT_TRC | DABrokerとのイベントトレースの取得の有無を取得します。
getTRC_NO | トレースのエントリ数を取得します。
getUapName | アプリケーション名称を取得します。
getBufSize | DABrokerからの受信データのバッファ長を取得します。
getUser | データベース接続のユーザIDを取得します。
getPassword | データベース接続のパスワードを取得します。
getXAOpenString※ | XA_OPEN文字列を取得します。
getXACloseString※ | XA_CLOSE文字列を取得します。
getRMID※ | リソースマネージャの識別子を取得します。
getXAThreadMode※ | XA使用時のスレッドモードを取得します。
getXALocalCommitMode※ | XA使用時，データベースのオートコミットを有効にしているかどうかの設定を取得します。
getRowSize | JDBCで取り扱うバッファ長を取得します。
getOSAuthorize | OS認証機能を使用してデータベースに接続するかどうかの設定を取得します。
getSQLWarningIgnore | データベースから返される警告をConnectionクラスで保持するかどうかの情報を取得します。
getHiRDBCursorMode | 接続データベースがHiRDBの場合，検索時にカーソルが複数のCommit，またはRollbackにわたって有効かどうかの設定を取得します。
getNotErrorOccurred | connectionErrorOccurredが呼ばれるかどうかの設定を取得します。
getBlockUpdate | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかの設定を取得します。
getExecuteDirectMode | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新でHiRDBのExecute Direct機能を使用するかどうかの設定を取得します。
getLONGVARBINARY_Access | HiRDBでLONGVARBINARY（列属性BLOB，列属性BINARY）へのアクセス方法を取得します。
getBufferPoolSize | DABrokerからの受信データのバッファプール数を取得します。

注※

JdbcDbpsvXADataSourceクラスでだけ提供するメソッドです。

各メソッドの機能および文法については，マニュアル「アプリケーションサーバ リファレンス API編」を参照してください。

(3)　JNDIへの情報の登録

接続情報を設定したDataSourceオブジェクトを，JNDIに登録します。JNDIは実行環境によって，幾つかのサービスプロバイダを選択できます。

File Systemサービスプロバイダを使用するJNDIへの登録例を次に示します。ほかのサービスプロバイダへの登録については，JNDIのドキュメントを参照してください。なお，JNDIに登録するときの論理名称は，"jdbc"というサブコンテキスト（登録例ではjdbc/TestDataSource）の下に登録するようにしてください。

// JDBC2.0拡張機能が提供するDataSourceオブジェクトを生成する
JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource  ds;
ds = new JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource();

// 接続情報を設定する
  ：
// システムプロパティを取得する
Properties sys_prop = System.getProperties();

// File Systemサービスプロバイダのプロパティを設定する
sys_prop.put(Context.INITIAL_CONTEXT_FACTORY,
            "com.sun.jndi.fscontext.RefFSContextFactory");

// File Systemサービスプロバイダで使用するディレクトリを設定する
// (この場合，c:¥JNDI_DIRの下に登録される)
sys_prop.put(Context.PROVIDER_URL, "file:c:"+File.separator + "JNDI_DIR");

//システムプロパティを更新する
System.setProperties(sys_prop);

// JNDIを初期化する
Context ctx = new InitialContext();

// JDBC2.0拡張機能が提供するDataSourceオブジェクトを，
// jdbc/TestDataSourceという論理名称でJNDIに登録する
ctx.bind("jdbc" + File.separator + "TestDataSource", ds);
  ：

(4)　JNDIからの情報の取得

データベースに接続するときに，JNDIに登録したDataSourceオブジェクトを取得します。

File Systemサービスプロバイダを使用するJNDIから，DataSourceオブジェクトを取得する例を次に示します。ほかのサービスプロバイダから取得する方法については，JNDIのドキュメントを参照してください。

// システムプロパティを取得する
Properties sys_prop = System.getProperties();

// File Systemサービスプロバイダのプロパティを設定する
sys_prop.put(Context.INITIAL_CONTEXT_FACTORY,
            "com.sun.jndi.fscontext.RefFSContextFactory");

// File Systemサービスプロバイダで使用するディレクトリを設定する
// (この場合，c:¥JNDI_DIRの下に登録されている)
sys_prop.put(Context.PROVIDER_URL, "file:c:"+File.separator + "JNDI_DIR");

// システムプロパティを更新する
System.setProperties(sys_prop);

// JNDIを初期化する
Context ctx = new InitialContext();

//jdbc/TestDataSourceという論理名称のオブジェクトをJNDIから取得する
Object obj = ctx.lookup("jdbc" + File.separator + "TestDataSource");

// 取り出したオブジェクトを，DataSourceクラスの型にキャストする
DataSource ds = (DataSource)obj;
  ：

(5)　データベースへの接続

JNDIに登録したDataSourceオブジェクトを取得後，DataSourceオブジェクトに対し，getConnectionメソッドを呼び出して，データベースへ接続します。

getConnectionメソッドの呼び出し例を次に示します。

DataSource ds

// JNDIからDataSourceオブジェクトを取得する
  ：
// getConnectionメソッドを呼び出す
Connection con = ds.getConnection("USERID","PASSWORD")※

注※

getConnectionメソッドの引数（ユーザID，パスワード）は省略できます。引数を指定した場合は，DataSourceオブジェクトに設定した接続情報よりも優先されます。

必要な接続情報がDataSourceオブジェクトに設定されていない場合，接続情報の内容が不正な場合，データベースとの接続に失敗した場合は，getConnectionメソッドはSQLExceptionをthrowします。

JNDIからDataSourceオブジェクトを取得したあと，接続情報を設定し直すことができます。設定し直す場合は，DataSourceオブジェクトをJDBC2.0拡張機能が提供するDataSourceクラスの型にキャストします。キャストする例を次に示します。

DataSource ds
JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource  dbp_ds;

// JNDIからDataSourceオブジェクトを取得する
  ：
// DataSourceオブジェクトを，JDBC拡張機能が提供する
// DataSourceクラスの型にキャストする
dbp_ds = (JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDataSource)ds;

// 接続情報を再設定する
  ：

(6)　JDBC2.0拡張機能で提供する機能のトレースを取得するための情報の指定

JDBC2.0拡張機能では，次のトレースを取得できます。トレースの出力内容については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「7.　性能解析トレースを使用した性能解析」を参照してください。

JDBCインタフェースメソッドトレース

DABrokerとのイベントトレース

(a)　トレースの取得

トレースを取得する場合は，次の項目を設定してください。次の項目が設定されていない場合は，トレースを取得できません。

JdbcDbpsvDataSource，JdbcDbpsvConnectionPoolDataSourceまたはJdbcDbpsvXADataSourceクラスのsetLogWriterメソッドでの有効なログストリームの指定

setJDBC_IF_TRC，setSV_EVENT_TRCおよびsetTRC_NOメソッドで，トレース取得の指定

(b)　トレース取得時の注意事項

setLogWriterメソッドで指定したログストリームは，JNDIには登録されません。トレースの取得は，JNDIからDataSourceオブジェクトを取得するたびに，setLogWriterメソッドで指定してください。

4.7.6　エラー時のJDBCドライバの処理

データベース接続，DABroker，またはJDBCドライバでエラーが発生した場合は，SQLExceptionをthrowします。SQLExceptionオブジェクトのreasonには，次の項目が設定されます。

JDBCドライバのメッセージ

エラーを検知したクラス名称.メソッド名称

DABrokerからのメッセージ※

注※

DABrokerからのメッセージは，存在する場合だけ設定されます。

なお，次のようなエラーの場合は，SQLExceptionをthrowしないで，JDBCインタフェースの仕様で決まっている処理を続行します。

Driver.connectionメソッドでデータベースに接続できない場合

URL指定でnullが返される場合（DABroker Libraryで対象としていないURLが指定された場合など）

4.7.7　データ型の対応

ここでは，JDBCドライバのデータ型について説明します。

JDBCドライバでは，JDBCのデータ型とDABrokerでサポートするデータベースのデータ型をマッピングして処理を実行しています。JDBCのデータ型とDABrokerでサポートするデータ型は完全に一致していません。

なお，DABroker Libraryでサポートする文字型データのコード体系は，ASCII，シフトJIS，EUCJIS，UTF-8，およびChinese Simpleです。

＜この項の構成＞

(1)　JDBCのデータ型とDABrokerでサポートするデータ型の対応

(2)　データ型の注意事項

(1)　JDBCのデータ型とDABrokerでサポートするデータ型の対応

次に，JDBCのデータ型とDABrokerでサポートするデータ型の対応をデータベースごとに示します。

(a)　HiRDBの場合

表4-63　 HiRDBの場合のデータ型の対応

DABrokerでサポートするデータ型 | JDBCのデータ型
INTEGER | INTEGER
SMALLINT | SMALLINT
DECIMAL | DECIMAL
FLOAT, DOUBLE PRECISION | FLOAT
SMALLFLT, REAL | REAL
CHAR | CHAR
VARCHAR | VARCHAR
NCHAR | CHAR
NVARCHAR | VARCHAR
MCHAR | CHAR
MVARCHAR | VARCHAR
DATE | DATE
TIME | TIME
TIMESTAMP | TIMESTAMP
BLOB，BINARY LARGE OBJECT | LONGVARBINARY

(b)　Oracleの場合

表4-64　 Oracleの場合のデータ型の対応

DABrokerでサポートするデータ型 | JDBCのデータ型
VARCHAR2 | VARCHAR
NUMBER | NUMERIC，DECIMAL，BIT，TINYINT，SMALLINT，INTEGER，BIGINT
FLOAT | FLOAT
LONG | LONGVARCHAR
ROWID | CHAR
DATE | DATE，TIME，TIMESTAMP
RAW | VARBINARY
LONG RAW | LONGVARBINARY
CHAR | CHAR
NCHAR※ | CHAR
NVARCHAR2※ | VARCHAR
CLOB※ | CLOB
NCLOB※ | CLOB
BLOB※ | BLOB
BFILE※ | BLOB

注※

接続データベースがOracle9i，またはOracle10gの場合だけ使用できます。

(2)　データ型の注意事項

ここでは，データ型についての注意事項を示します。

データ型のマッピングは，次のメソッドでデータベースに接続する場合は，データ型の変換をJDBCドライバで実行します。次に示すメソッド実行時のデータ型の扱いについては，JDBCの仕様に依存します。

ResultSetクラスのgetXXXメソッド

PreparedStatementクラスのsetXXXメソッド

CallableStatementクラスのsetXXXメソッド

なお，setXXXメソッド実行時は，JDBCドライバでデータを保持し，execute実行時にデータをDABrokerに転送して，通信回数を削減しています。したがって，setXXXで発生するようなエラーがexecuteの実行時に発生する場合もあります。

DABrokerがサポートしていないデータ型に対して接続を要求した場合（Statement.execute発行時など）は，DABrokerからエラーが返ります。その後，DABroker Libraryは，SQLExceptionをthrowします。

DABroker Libraryがサポートしていない列の属性を含む列情報を取得した場合，DATA_TYPEにOTHER，TYPE_NAMEにOTHERがリターンされます。

4.7.8　データベース接続の実装時の注意事項

ここでは，データベース接続の実装時の注意事項について説明します。

SQLにエスケープシーケンスを利用しない場合，setEscapeProcessingメソッドにfalseを設定するとSQL変換をしません。このため，最適な処理速度となります。

PooledConnection.getConnectionメソッドで取得したConnectionオブジェクトに対して，そのConnectionオブジェクトから派生したStatementオブジェクト，PreparedStatementオブジェクト，およびCallableStatementオブジェクトの作成および実行中にConnection.closeメソッドを実行すると，これらのオブジェクトの作成および実行処理が終了するまで，Connection.closeメソッドの処理を待つことになります。そのため，これらのオブジェクトの作成および実行処理に長時間掛かっている場合は，Connection.closeメソッドの処理時間も長くなります。

PooledConnectionオブジェクトによって生成されたconnectionErrorOccurredイベント内で，PooledConnection.getConnectionメソッドで取得したConnectionオブジェクトに対して，Connection.closeメソッドを実行しないでください。connectionErrorOccurredイベント内でConnection.closeメソッドを実行すると，JDBCに対するすべての要求が返ってこなくなることがあります。

Windowsの場合に，Statement.cancelメソッドで実行中のSQLを取り消すとき，タイミングによっては実行中のSQLが取り消されないことがあります。Statement.cancelメソッドを呼び出しても，実行中のSQLが取り消されない場合は，再度，Statement.cancelメソッドを呼び出してください。また，接続するデータベースがHiRDBの場合，cancelメソッド実行後，使用中のコネクションで生成したステートメントオブジェクトをすべてクローズして，再度ステートメントオブジェクトを作成してください。

Windowsの場合，PreparedStatementクラスおよびCallableStatementクラスのsetObjectメソッドに，InputStreamクラスおよびReaderクラス（派生クラスも含む）のオブジェクトは指定できません。指定するとエラーになります。

Windowsで，HiRDBのBLOB列およびBINARY列のデータを取得する場合，データベースアクセス方法は次のどちらかになります。この指定値によっては，JavaVMでのメモリ取得の性能に大きく影響します。

REAL（一括でデータを取得する）

LOCATOR（データをBUF_SIZE（デフォルト値は64キロバイト）分で分割してデータを取得する）

「REAL」を指定すると，最大データ長分のBUF_SIZEを設定する必要があります。この場合，BLOB列およびBINARY列以外のSQL実行時にもBUF_SIZE分のメモリを取得するため，ほかのSQLの実行性能にも影響を与えます。
「LOCATOR」を指定すると，データベースへのアクセスは，ResultSet.next()，またはCallableStatment.execute()実行時と，getBytesなどのデータを取得するメソッド実行時の2回行われます。そのため，「REAL」を指定した場合に比べて性能が低下することがあります。
データベースアクセス方法は，BLOB列およびBINARY列で取得する実データの最大データ長によって設定してください。BLOB列およびBINARY列を取得し，最大データ長が1メガバイト以上のときは「LOCATOR」を設定することをお勧めします。ただし，JavaVMでのメモリ確保時の性能に大きく差が生じるため，1メガバイトでも「REAL」と設定した方が，性能が良いこともあります。

setBinaryStreamメソッドまたはsetAsciiStreamメソッドの引数※1に指定したストリームデータのデータ長L1※2と，x.availableメソッドで取得できる値L2がL1＞L2の場合，setBinaryStreamメソッドはストリームデータの読み込み領域として引数lengthで指定したサイズ（単位：バイト）のメモリを確保します。
引数lengthを大きくし過ぎると，データ長L1に関係なくメモリ不足になるおそれがあります。また，「引数length＞データ長L1」の場合，読み込み処理終了後に読み込み領域をデータ長L1バイトで再確保するため，性能が劣化するおそれがあります。このため，引数lengthの値は，データ長L1以下にしてください。

注※1　

setBinaryStreamメソッドまたはsetAsciiStreamメソッドの引数とは，setBinaryStream(int parameterIndex,InputStream x,int length)，またはsetAsciiStream(int parameterIndex,InputStream x,int length)のことです。

注※2　

データ長L1は，InputStreamクラスのreadメソッドが，-1をリターンするまで読み込めるデータの長さです。

HP-UXの場合，DABroker Libraryは，64ビットアドレッシングモードで作成しています。

HP-UXの場合，XAインタフェース使用時，startメソッドおよびendメソッドを実行する際には次の点に注意してください。

startメソッド実行時，オートコミットモードの状態に関係なく，オートコミットモードをonにします。また，オートコミットモードの状態に関係なく，DABroker Libraryに対してオートコミットモードをoffにするように要求します。

endメソッド実行後は，startメソッドを実行する前のオートコミットモードの状態に戻ります。

HP-UXの場合に接続データベースがORACLEのとき，XADataSource使用して，xa_recover(XAResource.TMSTARTRSCAN | XAResoure.TMENDRSCAN)を実行すると，ORACLEの仕様上，XAResource.TMENDRSCAN実行時に-5のxaエラーが発生します。この場合，DABroker Libraryではこのエラーを返しません。ただし，XAログにはエラーの発生が出力されます

4.8　DB Connectorを使用したデータベースとの接続

ここでは，DB Connectorを使用したデータベースとの接続について説明します。

なお，DABroker Libraryで使用するDB Connectorは，JDBC 2.0仕様をサポートしています。

＜この節の構成＞

4.8.1　DB Connectorで接続できるデータベース

4.8.2　DB Connector（RARファイル）の種類

4.8.3　必要なモジュール

4.8.4　データベースにアクセスする場合の構成

4.8.5　DB Connectorのインポート

4.8.6　DB Connectorのプロパティ定義

4.8.7　データベースと接続するときの注意事項

4.8.1　DB Connectorで接続できるデータベース

DABroker Libraryを使用する場合，DB Connectorを使用して接続できるデータベースには，HiRDB，OracleおよびXDM/RD E2があります。

4.8.2　DB Connector（RARファイル）の種類

DABroker Libraryで使用できるDB ConnectorのRARファイルの種類を次の表に示します。これらのRARファイルは，J2EEサーバおよびバッチサーバで使用できます。

表4-65　DABroker Libraryで使用できるDB ConnectorのRARファイルの種類

RARファイル
接続できるデータベース
説明

DBConnector_DABJ_CP.rar
HiRDB
Oracle
XDM/RD E2
トランザクション管理をしない場合，またはローカルトランザクションを使用する場合（トランザクションのサポートレベルにNoTransactionまたはLocalTransactionを指定する場合）に使用します。
DABroker LibraryのConnectionPoolDataSourceを使用してデータベースに接続します。

DBConnector_DABJ_XA.rar※
HiRDB
Oracle
グローバルトランザクションを使用する場合（トランザクションのサポートレベルにXATransactionを指定する場合）に使用します。DABroker LibraryのXADataSourceを使用してデータベースに接続します。

注　新規に，DB ConnectorのRARファイルを使用する場合，アプリケーションサーバで提供するConnector属性ファイルのテンプレートファイルを使用して，プロパティを定義できます。提供しているテンプレートファイルについては，「4.31.2　Connector属性ファイルのテンプレートファイル」を参照してください。

注※　ライトトランザクション機能は有効にできません。

RARファイルは，サーバ管理コマンドを使用して操作します。サーバ管理コマンドを使用してRARファイルを操作する方法については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」を参照してください。

RARファイルの種類に応じて，指定できるトランザクションサポートレベルが異なります。また，ライトトランザクションを使用できるかどうかも異なります。

RARファイルごとに指定できるトランザクションサポートレベルを次の表に示します。

表4-66　RARファイルごとに使用できるトランザクションサポートレベル（DB Connector）

使用するDB Connector
（RARファイル）
トランザクションサポートレベル
ライトトランザクション

有効
無効

DBConnector_DABJ_CP.rar
NoTransaction
LocalTransaction
○
○

DBConnector_DABJ_XA.rar
XATransaction
－
○

（凡例）　○：使用できる　　－：該当しない

4.8.3　必要なモジュール

DABroker Libraryを使用してデータベースに接続する場合に必要なモジュールのうち，アプリケーションサーバ以外によって提供されるものを次の表に示します。

表4-67　データベースに接続する場合に必要なモジュール

接続するデータベース | 必要なモジュール
HiRDB | HiRDB Run Time
Oracle | Oracle Client
XDM/RD E2 | HiRDB Run Time

4.8.4　データベースにアクセスする場合の構成

DB Connectorを使用して，サーブレット，JSP，Session Bean，Entity BeanまたはMessage-driven Beanからデータベースにアクセスする場合の構成を次に示します。

HiRDBにアクセスする場合の構成
HiRDBに接続する場合，J2EEサーバと同じマシンに，HiRDB Run Timeが必要となります。HiRDBにアクセスする場合の構成を次の図に示します。

図4-6　リソースアダプタを使用してHiRDBにアクセスする場合の構成

Oracleにアクセスする場合の構成
Oracleに接続する場合，J2EEサーバと同じマシンにOracle Clientが必要となります。Oracleにアクセスする場合の構成を次の図に示します。

図4-7　リソースアダプタを使用してOracleにアクセスする場合の構成

XDM/RD E2にアクセスする場合の構成
XDM/RD E2に接続する場合，J2EEサーバと同じマシンにHiRDB Run Timeが必要となります。XDM/RD E2にアクセスする場合の構成を次の図に示します。

図4-8　リソースアダプタを使用してXDM/RD E2にアクセスする場合の構成（DABroker Libraryを使用するとき）

4.8.5　DB Connectorのインポート

DB Connectorのインポートは，cjimportresコマンドで実行します。インポートするRARファイルは，DBConnector_DABJ_CP.rarまたはDBConnector_DABJ_XA.rarです。

インポート手順については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2.1　DB Connectorのインポート」を参照してください。

4.8.6　DB Connectorのプロパティ定義

DB Connectorのプロパティ定義の手順については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2.2　DB Connectorのプロパティ定義」を参照してください。

ここでは，次のDB Connectorについて，コンフィグレーションプロパティの設定例を示します。

DBConnector_DABJ_CP.rarで，Oracle，HiRDB，またはXDM/RD E2を使用する場合

DBConnector_DABJ_XA.rarで，OracleまたはHiRDBを使用する場合

＜この項の構成＞

(1)　DBConnector_DABJ_CP.rarで，Oracle，HiRDB，またはXDM/RD E2を使用する場合の設定例

(2)　DBConnector_DABJ_XA.rarで，OracleまたはHiRDBを使用する場合の設定例

(3)　ステートメントプーリングの設定についての注意事項

(1)　DBConnector_DABJ_CP.rarで，Oracle，HiRDB，またはXDM/RD E2を使用する場合の設定例

DBConnector_DABJ_CP.rarで，Oracle，HiRDB，またはXDM/RD E2を使用する場合の，コンフィグレーションプロパティの設定例を，次の表に示します。

表4-68　データベースとしてOracle，HiRDB，またはXDM/RD E2を使用する場合のコンフィグレーションプロパティの設定例（DBConnector_DABJ_CP.rarの場合）

項目名 | Oracleの場合の設定例 | HiRDBの場合の設定例 | XDM/RD E2の場合の設定例
networkProtocol | lib | lib | lib
databaseName | ORACLE8I※1 | HIRDB | HIRDB
description | ＜ネット・サービス名＞ | ＜HiRDBポート番号＞※2 | ＜データベースコネクションサーバのサーバスケジュール番号＞※2
DBHostName | － | ＜HiRDBホスト名＞ | ＜XDM/RD E2ホスト名＞
loginTimeout | 0 | 0 | 0
serverName | － | － | －
portNumber | 40179 | 40179 | 40179
DBEnv | － | － | －
encodLang | － | － | －
JDBC_IF_TRC | false | false | false
SV_EVENT_TRC | false | false | false
TRC_NO | 500 | 500 | 500
uapName | － | － | －
bufSize | 64※3 | 64※3 | 64※3
rowSize | 16 | 16 | 16
OSAuthorize | false | false | false
HiRDBCursorMode | false | false | false
blockUpdate | false | false | false
executeDirectMode | false | false | false
SQLWarningIgnore | false | false | false
LONGVARBINARY_Access | REAL | REAL | REAL
bufferPoolSize | 0 | 0 | 0
PreparedStatementPoolSize | 10 | 10 | 10※4
CallableStatementPoolSize | 10 | 10 | 10※4
CancelStatement | true | true | false
ConnectionIDUpdate | false | false | false
logLevel | ERROR | ERROR | ERROR

（凡例）　－：設定は不要

注※1　DABroker Libraryの環境設定で，使用するOracleのバージョンにOracle9iが設定されていれば，Oracle9iに接続できます。また，使用するOracleのバージョンにOracle10gが設定されていれば，Oracle10gに接続できます。

注※2　HiRDBクライアントの環境変数グループ名（Windowsの場合）または環境変数グループの設定ファイルのパス（UNIXの場合）を指定することもできます。

注※3　次のどちらかのタイミングで，「bufSizeに指定した値 × 生成したコネクション数分のメモリ」をJavaヒープ領域に確保します。

・コネクションプールのウォーミングアップ機能使用時

・初回getConnection()発行時

bufSizeに必要以上に大きな値を設定すると，メモリを確保したときにJavaヒープを使い切り，OutOfMemoryErrorが発生するおそれがあります。HiRDBのBLOB型データやBINARY型データへアクセスする場合は，bufSizeに大きな値を指定しないで，HiRDBの位置付け子機能を使用することを検討してください。HiRDBの位置付け子機能については，マニュアル「HiRDB 解説」を参照してください。

注※4　XDM/RD E2 11-02より前のバージョンに接続する場合は，0を設定してください。

(2)　DBConnector_DABJ_XA.rarで，OracleまたはHiRDBを使用する場合の設定例

DBConnector_DABJ_XA.rarで，OracleまたはHiRDBを使用する場合の，コンフィグレーションプロパティの設定例を，次の表に示します。

表4-69　データベースとしてOracleまたはHiRDBを使用する場合のコンフィグレーションプロパティの設定例（DBConnector_DABJ_XA.rarの場合）

項目名
Oracleの場合の設定例
HiRDBの場合の設定例

networkProtocol
lib
lib

databaseName
ORACLE8I※1
HIRDB

description
＜ネット・サービス名＞
＜環境変数グループ識別子＞※2

DBHostName
－
＜HiRDBホスト名＞

XAOpenString
Oracle_XA+DB=＜ネット・サービス名＞+SqlNet=＜ネット・サービス名＞+Acc=P/＜DBのユーザ名※3＞/＜DBのパスワード※4＞+SesTm※5=300+Threads=true

Windowsの場合

＜環境変数グループ識別子※6＞+＜環境変数グループ名※7＞

UNIXの場合

＜環境変数グループ識別子※6＞+＜環境変数グループの設定ファイルのパス※7＞

loginTimeout
0
0

serverName
－
－

portNumber
40179
40179

DBEnv
－
－

encodLang
－
－

JDBC_IF_TRC
false
false

SV_EVENT_TRC
false
false

TRC_NO
500
500

uapName
－
－

bufSize
64※8
64※8

rowSize
16
16

OSAuthorize
false
false

HiRDBCursorMode
false
false

blockUpdate
false
false

executeDirectMode
false
false

SQLWarningIgnore
false
false

LONGVARBINARY_Access
REAL
REAL

bufferPoolSize
0
0

XACloseString
－
－

RMID
1
1※9

XAThreadMode
true
true

XALocalCommitMode
true
true

PreparedStatementPoolSize
10
10

CallableStatementPoolSize
10
10

CancelStatement
true
false

ConnectionIDUpdate
false
false

logLevel
ERROR
ERROR

（凡例）　－：設定は不要

注※1　DABroker Libraryの環境設定で，使用するOracleのバージョンにOracle9iが設定されていれば，Oracle9iに接続できます。また，使用するOracleのバージョンにOracle10gが設定されていれば，Oracle10gに接続できます。

注※2　J2EEサーバ内でユニークな4バイトの文字列を指定します。

注※3　［User］フィールドに入力した値を指定します。

注※4　［Password］フィールドに入力した値を指定します。

注※5　XA Open StringのSesTmに指定する値は，トランザクションタイムアウトの値よりも必ず大きく設定してください。

注※6　［Description］フィールドに入力した値を指定します。

注※7　HiRDBの環境変数グループ名（Windowsの場合）または環境変数グループの設定ファイルのパス（UNIXの場合）を指定します。詳細については，「4.3.3　データベースの設定」を参照してください。

注※8　次のどちらかのタイミングで，「bufSizeに指定した値 × 生成したコネクション数分のメモリ」をJavaヒープ領域に確保します。

・コネクションプールのウォーミングアップ機能使用時

・初回getConnection()発行時

bufSizeに必要以上に大きな値を設定すると，メモリを確保したときにJavaヒープを使い切り，OutOfMemoryErrorが発生するおそれがあります。HiRDBのBLOB型データやBINARY型データへアクセスする場合は，bufSizeに大きな値を指定しないで，HiRDBの位置付け子機能を使用することを検討してください。HiRDBの位置付け子機能については，マニュアル「HiRDB 解説」を参照してください。

注※9　リソースマネジャの識別子を指定します。J2EEサーバ内でユニークな1～2147483647の数値で指定します。

(3)　ステートメントプーリングの設定についての注意事項

DABroker Libraryを使用する場合にステートメントプーリングを設定するときの注意事項について説明します。なお，ステートメントプーリングの機能および設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.4　ステートメントプーリング」および「3.14.10　実行環境での設定」を参照してください。

(a)　PreparedStatement，CallableStatementのプールサイズの制限

DABroker Libraryを使用する場合，PreparedStatement，CallableStatementのプールサイズに制限があります。

PreparedStatementPoolSizeとCallableStatementPoolSizeの合計値は，DABrokerの最大ステートメント数以下に設定してください。
合計値が最大ステートメント数を超えた場合には，PreparedStatementPoolSizeとCallableStatementPoolSizeにデフォルト値が使用されます。PreparedStatementPoolSize，CallableStatementPoolSizeは，リソース数が最大値を超えないように設定してください。一つのコネクションで利用できるリソース（Statement，PreparedStatement，CallableStatement，DatabaseMetaDataから取得したResultSet）の総数は，最大値が決められています。リソース数の最大値については，「4.12　Connectionクラス」を参照してください。
最大値を超えた場合には，ユーザアプリケーションプログラムに例外が通知されます。例外が通知された場合，次のように対処してください。

「PreparedStatementPoolSize」，「CallableStatementPoolSize」の値を小さくする。

ユーザアプリケーションプログラムで，リソースが不要になったらすぐに解放するようにする。

指定できるプールサイズについては，「4.31.1　DB Connectorに設定する<config-property>タグに指定できるプロパティ」を参照してください。

(b)　XDM/RD E2に接続する場合のバージョン

XDM/RD E2に接続するする場合は，XDM/RD E2 11-02以降のバージョンとDABroker Library 03-13以降を使用する場合にだけステートメントプーリング機能を使用できます。

(c)　Oracleに接続する場合にステートメントプーリング機能とコネクションの障害検知機能を併用するとき

コネクションの障害検知に使用されるPreparedStatementがコネクションごとに一つプーリングされます。そのため，PreparedStatementPoolSize，CallableStatementPoolSizeを決定する際には，コネクションの障害検知用のPreparedStatementもリソース数の見積もりに加えて，CallableStatementPoolSizeを最大ステートメント数未満に設定してください。例えば，DABroker Libraryを使用している場合，PreparedStatementPoolSize=0，CallableStatementPoolSize=＜最大ステートメント数＞と設定して，プーリングされているCallableStatementの数が最大ステートメント数に達したとき，コネクションの障害検知が実行されると，DABroker Libraryの一つのコネクションで利用できるリソース数の最大値を超えるため，例外が発生します。例外が発生すると障害が発生したと判断されるので，そのコネクションはコネクションプールから削除され，同時にステートメントプールも破棄されます。つまり，ステートメントプーリング機能を使用する意味がなくなってしまいます。したがって，コネクションの障害検知機能を使用する場合には，CallableStatementPoolSizeを最大ステートメント数未満に設定してください。

4.8.7　データベースと接続するときの注意事項

ここでは，DABroker Libraryを使用してHiRDBまたはOracleに接続する場合の注意事項を示します。

＜この項の構成＞

(1)　HiRDBと接続する場合の注意事項

(2)　Oracleと接続する場合の注意事項

(1)　HiRDBと接続する場合の注意事項

HiRDBと接続する場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.6.5　HiRDBと接続する場合の前提条件と注意事項」を参照してください。

(a)　SQLの前処理保持機能

commit()メソッドをわたっても※保持されるPreparedStatementオブジェクトは，DELETE文，INSERT文，PURGE文，TABLE文，UPDATE文，CALL文，およびSELECT文で生成したものだけです。ただし，HiRDBクライアント経由でXDM/RD E2を使用する場合にPURGE TABLE文で生成したPreparedStatementオブジェクトは除きます。

これらのSQL以外で生成されたPreparedStatementオブジェクトは，commit()メソッド実行時に無効となります。無効になったPreparedStatementオブジェクトでSQLを実行するとエラーになります。実行例を次に示します。

実行例

PrepareStatement pstmt1 = con.prepareStatement(""lock table tb1"");
PrepareStatement pstmt2 = con.prepareStatement(""lock table tb2"");
pstmt1.execute();  //エラーにならない
con.commit();
pstmt2.execute();  //エラーになる
pstmt1.close();
pstmt2.close();

注※　commit()メソッドによる明示的なコミットのほかに，次の処理も該当します。

自動コミットによる暗黙的なコミット

定義系SQLの実行

PURGE TABLE文の実行

rollbackメソッドによる明示的なロールバック

SQL実行エラーによる暗黙的なロールバック

(2)　Oracleと接続する場合の注意事項

ここでは，DABroker Libraryを使用してOracleに接続する場合の注意事項について説明します。

(a)　使用できるJ2EEコンポーネント

DABroker Libraryでは，次のコンポーネントを使用できます。

サーブレット／JSP

Stateless Session Bean

Stateful Session Bean

Entity Bean（BMP）

Entity Bean（CMP2.0）

Message-driven Bean

(b)　型マッピング

DABroker Libraryを使用する場合の，Javaの型とOracleのSQL型のマッピングを次の表に示します。

表4-70　Javaの型とOracleのSQL型のマッピング

メソッド | OracleのSQL型
CHAR | VARCHAR2 | NUMBER | DATE | TIMESTAMP | CLOB | LONG | BLOB | RAW | LONGRAW
set/getByte | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getShort | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getInt | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getLong | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getFloat | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getDouble | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getBigDecimal | ○ | ○ | ○ | － | － | － | ○ | － | － | －
set/getBoolean | － | － | － | － | － | － | － | － | － | －
set/getString | ○ | ○ | － | ○ | － | － | ○ | － | － | －
set/getBytes | － | － | － | － | － | － | － | － | ○ | ○
set/getDate | ○ | ○ | － | ○ | － | － | ○ | － | － | －
set/getTime | ○ | ○ | － | ○ | － | － | ○ | － | － | －
set/getTimestamp | ○ | ○ | － | ○ | － | － | ○ | － | － | －
set/getClob | － | － | － | － | － | ○ | － | － | － | －
set/getBlob | － | － | － | － | － | － | － | ○ | － | －
set/getObject | ○ | ○ | ○ | ○ | － | ○ | ○ | ○ | ○ | ○

（凡例）

○：java.sql.PreparedStatement#setXXXおよびjava.sql.ResultSet#getXXXなどでマッピングできる

－：マッピングできない

(c)　日本語文字コード変換のための設定

DABroker Libraryを使用する場合に文字コード変換が実施される場所を次の図に示します。

図4-9　DABroker Libraryを使用する場合に文字コード変換が実施される場所

J2EEサーバ上のJDBCドライバ部分では，JavaVMのコンバータによって，Unicodeからデータベース格納コード，およびデータベース格納コードからUnicodeへの変換が実施されます。

DABroker LibraryのエンコーディングセットとOracleサーバのデータベースキャラクタセットを同じにしておく必要があります。

(d)　データソースの設定

Oracleに対してXA接続でアクセスする場合，データソースの設定では，次の規則でXA Open Stringを指定する必要があります。

指定する文字列は，Oracleのマニュアルに記載されている規則に従って指定してください。キーワードなどの区切り文字が不正な場合は，Oracleライブラリ内でアプリケーションエラーが発生する場合がありますのでご注意ください。

指定する文字列には必ず，「Threads=true」を指定してください。「Threads=true」が指定されていない場合は，Oracleライブラリ内でアプリケーションエラーが発生，またはSQL実行時にエラーが発生することがありますのでご注意ください。

4.9　DB Connector for Reliable Messagingを使用したデータベース上のキューへの接続

Reliable Messagingを使用したメッセージの非同期通信をする場合，DB Connector for Reliable Messagingを使用してデータベース上のキューに接続します。

ここでは，DABroker Libraryを使用する場合のデータベース上のキューとの接続について説明します。

機能の詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.7　データベース上のキューとの接続」を参照してください。また，DB Connector for Reliable Messagingの設定の詳細については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.1　リソースアダプタの設定の概要」，およびマニュアル「Reliable Messaging」の「2.7　DB Connector for Reliable Messagingの機能」を参照してください。

＜この節の構成＞

4.9.1　DB Connector for Reliable Messagingで接続できるデータベース

4.9.2　DB Connector for Reliable Messaging（RARファイル）の種類

4.9.3　キューに接続する場合に必要なモジュール

4.9.4　データベースにアクセスする場合の構成

4.9.5　DB Connector for Reliable Messagingのインポートおよびプロパティ定義

4.9.6　データベース上のキューと接続するときの注意事項

4.9.1　DB Connector for Reliable Messagingで接続できるデータベース

DABroker Libraryを使用する場合，DB Connector for Reliable MessagingとReliable Messagingを使用して接続できるデータベースはHiRDBです。

4.9.2　DB Connector for Reliable Messaging（RARファイル）の種類

RARファイルは，サーバ管理コマンドを使用して操作します。サーバ管理コマンドを使用してRARファイルを操作する方法については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」を参照してください。

DABroker Libraryで使用できるDB Connector for Reliable MessagingのRARファイルの種類を次の表に示します。

表4-71　DABroker Libraryで使用できるDB Connector for Reliable MessagingのRARファイルの種類

RARファイル | 接続できるデータベース | 説明
DBConnector_DABJ_CP_Cosminexus_RM.rar | HiRDB | トランザクション管理をしない場合，またはローカルトランザクションを使用する場合（トランザクションのサポートレベルにNoTransactionまたはLocalTransactionを指定する場合）に使用します。
DBConnector_DABJ_XA_Cosminexus_RM.rar※ | HiRDB | グローバルトランザクションを使用する場合（トランザクションのサポートレベルにXATransactionを指定する場合）に使用します。

注※　ライトトランザクション機能は有効にできません。

RARファイルの種類に応じて，指定できるトランザクションサポートレベルが異なります。また，ライトトランザクションを使用できるかどうかも異なります。

RARファイルごとに指定できるトランザクションサポートレベルを次の表に示します。

表4-72　RARファイルごとに使用できるトランザクションサポートレベル（DB Connector for Reliable Messaging）

使用するDB Connector for Reliable Messaging
（RARファイル）
トランザクションサポートレベル
ライトトランザクション

有効
無効

DBConnector_DABJ_CP_Cosminexus_RM.rar
NoTransaction
LocalTransaction
○
○

DBConnector_DABJ_XA_Cosminexus_RM.rar
XATransaction
－
○

（凡例）　○：使用できる　　－：該当しない

4.9.3　キューに接続する場合に必要なモジュール

DABroker Libraryを使用してデータベースのキューに接続する場合に必要なモジュールは，DB Connectorの場合と同じです。「4.8.3　必要なモジュール」を参照してください。

4.9.4　データベースにアクセスする場合の構成

DB Connector for Reliable Messagingを使用して，サーブレット，JSP，Session Bean，Entity BeanまたはMessage-driven Beanからデータベースにアクセスする場合の構成を次に示します。

Reliable Messagingを使用してデータベースにアクセスする場合の構成を次の図に示します。

図4-10　Reliable Messagingを使用してデータベースにアクセスする場合の構成

4.9.5　DB Connector for Reliable Messagingのインポートおよびプロパティ定義

DB Connector for Reliable Messagingのインポートおよびプロパティ定義の手順については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.4.1　リソースアダプタのインポート」および「4.4.2　リソースアダプタのプロパティ定義（Connector 1.0の場合）」を参照してください。

4.9.6　データベース上のキューと接続するときの注意事項

DB Connector for Reliable MessagingとReliable Messagingを使用してデータベースに接続する場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.7.4　接続できるデータベース」を参照してください。

4.10　DABroker Libraryで使用するAPIの一覧

DABroker Libraryで使用するAPIの一覧を，次の表に示します。

表4-73　DABroker Libraryで使用するAPIの一覧

クラス名
主な機能

Driverクラス

データベースの接続

指定されたURLの妥当性チェック

DriverManager.getConnectionメソッドで指定する接続プロパティの情報取得

ドライバのバージョン情報の返却

Connectionクラス

Statementクラス，PreparedStatementクラス，およびCallableStatementクラスのオブジェクト生成

トランザクションのコミットまたはロールバック

オートコミットモードの設定

Statementクラス

SQLの実行

検索結果として，ResultSet（ResultSetオブジェクト）の生成

更新結果として，更新行数の返却

最大検索行数の設定

検索制限時間の設定

PreparedStatementクラス

?パラメタ付きSQLの実行

?パラメタの設定

検索結果として，ResultSetオブジェクトの生成および返却

更新結果として，更新行数の返却

CallableStatementクラス

ストアドプロシジャの実行

INPUTおよびINOUTパラメタの設定（PreparedStatementクラスのsetXXXメソッドを使用）

INOUTおよびOUTPUTパラメタの登録

INOUTおよびOUTPUTパラメタ値の取得

ResultSetクラス

行単位のResultSet内の移動

結果データの返却

検索結果データがNULL値かどうかの通知

ResultSetMetaDataクラス

ResultSetの各列に対する，データ型およびデータ長のメタ情報の返却

DatabaseMetaDataクラス

接続データベースに関する各種情報の返却

表一覧，列一覧などの一覧系情報を，ResultSetに格納して返却

DataSourceクラス

データベースの接続情報の設定および取得

Blobインタフェース

Blobデータの取得

4.11　Driverクラス

説明

Driverクラスでは，主に次の機能を提供します。

データベースの接続

指定されたURLの妥当性チェック

DriverManager.getConnectionメソッドで指定する接続プロパティの情報取得

ドライバのバージョン情報の返却

Driverクラスの提供する各メソッドの詳細と使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

Driverクラスを使用したデータベース接続の設定については，「4.7.4　データベース接続の設定」を参照してください。

制限事項

DABroker Libraryで使用するDriverクラスの制限事項を，次に示します。

表4-74　Driverクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
acceptURL | URL構文の必須項目が設定されている場合はtrueを返却します。必須項目が不足している場合はfalseを返却します。 | ○ | ○
getPropertyInfo | 引数infoに与えられた以外に設定可能なプロパティ情報の配列を返却します。 | ○ | ○
jdbcCompliant | 無条件にtrueを返却します。 | ○ | ○

（凡例）

○：該当します。

4.12　Connectionクラス

説明

Connectionクラスでは，主に次の機能を提供します。

Statementクラス，PreparedStatementクラス，およびCallableStatementクラスのオブジェクト生成

トランザクションのコミットまたはロールバック

オートコミットモードの設定

Connectionクラスの提供する各メソッドの詳細，および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

注意事項

Connectionのクローズ
Connectionのcloseメソッドを発行しないでアプリケーションを終了すると，DABroker Library側にリソースが残る場合があります。このため，SQL実行などでエラーの発生によって終了する場合は，catchブロックまたはfinallyブロック内でcloseメソッドを発行してください。
Connectionのcloseメソッドの発行でエラーが発生した場合，SQLExceptionをスローしません。また，プーリング使用時（ConnectionPoolDataSourceを使用した接続），およびXA使用時（XADataSourceを使用した接続）はConnectionのcloseメソッド実行でデータベースとの物理的な切断はしません。

カタログ
DABroker Libraryでは，接続データベース種別にかかわらず，カタログをサポートしていません。このため，getCatalogメソッドは無条件にnullを返却し，setCatalogメソッドは何もしません。

アクセスモード
DABroker Libraryでは，アクセスモードの変更をサポートしていないため，isReadOnlyメソッドは無条件にfalseを返却し，setReadOnlyメソッドは何もしません。

トランザクション分離モード
DABroker Libraryでは，トランザクション分離モードの変更をサポートしていません。このため，getTransactionIsolationメソッドでは，常にTRANSACTION_READ_UNCOMMITTEDを返却し（データベースの仕様を表しているものではありません），setTransactionIsolationメソッドはTRANSACTION_READ_UNCOMMITTED以外が指定された場合，SQLExceptionをスローします。

データベースアクセスリソース数の制限
DABroker Libraryを利用するアプリケーションでは，一つのコネクションで利用できるリソース数の最大は1024個です。ここでいうリソースとは，Statementクラス，PreparedStatementクラス，CallableStatementクラスのオブジェクト，およびDatabaseMetaDataクラスの中で一覧系情報をResultSetに格納するメソッドの同時実行数を指します。

オートコミット
次のすべての条件に一致する更新SQL（INSERT，UPDATEおよびDELETE）を実行する場合は，事前に検索中のResultSetオブジェクトまたは検索中のResultSetオブジェクトを生成したStatement（継承したクラスも含みます）オブジェクトに対してcloseメソッドを実行してください。

コネクションプーリングを使用してデータベースに接続している，またはXAを用いてデータベースに接続している場合

接続データベースがHiRDBの場合

ホールダブルカーソルを使用していない場合

StatementクラスのsetExecuteDirectModeメソッドを，引数Modeにfalseを指定して実行している場合

オートコミットを有効にしている場合

参考

closeメソッドを実行しないで更新SQLを実行した場合，更新SQL実行後ResultSetオブジェクトをクローズした時にHiRDBでエラーが発生することがあります。この場合，SQLExceptionによるエラーの通知はされませんが，HiRDBのエラーログ，SQLトレースおよびDABroker Libraryの拡張データベースアクセストレースにHiRDBのエラーメッセージ（KFPA11501-E）を出力します。

制限事項

DABroker Libraryで使用するConnectionクラスの制限事項を，次に示します。

表4-75　Connectionクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
close | 通常接続時はデータベースとの接続を解除します。プーリング使用時（ConnectionPoolDataSourceを使用した接続），およびXA使用時（XADataSourceを使用した接続）は物理的な切断はしません。Connection.closeメソッドの実行でエラーが発生した場合はSQLExceptionをスローしません。 | ○ | ○
createStatement | 更新結果を反映するResultSetをサポートしていないため，ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合，TYPE_SCROLL_INSENSITIVEに切り替え，SQLWarningを設定します。また，並行処理タイプにCONCURE_UPDATABLEを指定した場合，CONCUR_READ_ONLYに切り替え，SQLWarningを設定します。 | － | ○
getCatalog | 無条件にnullを返却します。 | ○ | ○
getTransactionIsolation | 無条件にTRANSACTION_READ_UNCOMMITTEDを返却します。 | ○ | ○
getTypeMap | ユーザ定義型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
isReadOnly | 無条件にfalseを返却します。 | ○ | ○
prepareCall | 更新結果を反映するResultSetをサポートしていないため，ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合，TYPE_SCROLL_INSENSITIVEに切り替え，SQLWarningを設定します。また，並行処理タイプにCONCURE_UPDATABLEを指定した場合，CONCUR_READ_ONLYに切り替え，SQLWarningを設定します。 | － | ○
prepareStatement | 更新結果を反映するResultSetをサポートしていないため，ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合，TYPE_SCROLL_INSENSITIVEに切り替え，SQLWarningを設定します。また，並行処理タイプにCONCURE_UPDATABLEを指定した場合，CONCUR_READ_ONLYに切り替え，SQLWarningを設定します。 | － | ○
setCatalog | 使用できません。 | ○ | ○
setReadOnly | 使用できません。 | ○ | ○
setTransactionIsolation | 使用できません。 | ○ | ○
setTypeMap | ユーザ定義型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○

（凡例）

○：該当します。

－：該当しません。

4.13　Statementクラス

説明

Statementクラスでは，主に次の機能を提供します。

SQLの実行

検索結果として，ResultSet（ResultSetオブジェクト）の生成

更新結果として，更新行数の返却

最大検索行数の設定

検索制限時間の設定

Statementクラスの提供する各メソッドの詳細，および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

注意事項

マルチスレッド
一つのStatementオブジェクトを複数のスレッドで使用する場合，「SQLの実行～ResultSetの取得～ResultSetのクローズ」という一連の処理を，スレッドごとにシリアライズする必要があります。シリアライズしないで並行して処理した場合の動作は保証しません。
各スレッドには，それぞれ別のStatementオブジェクトを割り当ててください。

複数のResultSet
DABroker Libraryでは，複数のResultSetを返却する機能をサポートしていません。このため，getMoreResultsメソッドは無条件にfalseを返却し，現在オープンしているResultSetが存在する場合，そのResultSetをクローズします。

カーソル名称
DABroker Libraryでは，位置決めされた更新および削除をサポートしていないため，setCursorNameメソッドは何もしません。

検索制限時間
DABroker Libraryでは，検索の時間監視はできません。このため，setQueryTimeoutメソッドで指定した値は無効となります。

setFetchSizeメソッドの使用について
setFetchSizeメソッドが有効になるのは，通常の検索の場合だけです。ResultSetMetaDataやDatabaseMetaDataの情報取得では有効になりません。
CLOBやBLOBなどのLONGVARCHAR・LONGVARBINARY型データを含むテーブルの検索では，setFetchSizeメソッドの設定値は有効になりません。
setFetchSizeメソッドを使用する場合，データ取得用のバッファサイズはsetFetchSizeメソッドの指定値，および検索するカラムの定義長などによって変化します。そのため，setFetchSizeメソッドでの指定値が大き過ぎる場合や検索するカラムの定義長の合計が極端に大きくなる場合，メモリ不足が発生する可能性があるので注意が必要です。
setFetchSizeメソッドでの指定値が1以上の場合，必要となるバッファ領域は自動的に確保されます。この場合，どの程度の領域を必要とするかの計算方法を，次の表に示します。
バッファ領域に指定できる最大値は2147483647バイトです。最大値を超えないようにしてください。
ただし，DABroker Libraryの最小バッファサイズが64キロバイトのため，領域サイズが64キロバイトより小さい場合は，64キロバイトに設定されます。また，領域サイズが接続時にプロパティのBUF_SIZE，またはDataSourceのsetBufSizeメソッドで指定した値を超えた場合は，setFetchSizeの指定値に必要な領域サイズが有効となります。

表4-76　setFetchSizeメソッド使用で必要となるバッファ領域

DBMS
データ型
必要となるバッファ領域
（単位：バイト）

共通
[図データ]　

HiRDB
int，integer，smallflt，real
4

date
10

smallint
2

dec，decimal(m.n)
(m + 1) / 2

float，double precision
8

char(n)，mchar(n)，rowid(n)，varchar(n)，mvarchar(n)
n

nchar(n)，nvarchar(n)
n * 2

time
8

timestamp(n)
7 + n / 2

ORACLE
varchar2(n)，char(n)，raw(n)，mlslabel(n)
n

number
22

float，rowid
8

date
20

（例1）

HiRDB接続でFetchSize=3，検索カラムがvarchar(10)，integerの場合

受信ヘッダ(48)+((行ヘッダ(4)+データ長(4)+varcharデータ(10)+データ長(4)+integerデータ(4))*3)

となり，必要となるバッファ領域は126バイトとなります。この場合，合計が64キロバイト以下のため，確保される領域は64キロバイトになります。

（例2）

HiRDB接続でFetchSize=100，検索カラムがvarchar(1000)，integerの場合

受信ヘッダ(48)+((行ヘッダ(4)+データ長(4)+varcharデータ(1000)+integerデータ(4))*100)

となり，101248バイトのバッファ領域が確保されます。確保される領域が，プロパティのBUF_SIZE，またはDataSourceのsetBufSizeの指定値を超えた場合は，setFetchSizeの指定値に必要な領域サイズが有効となります。

Statementのクローズ
プーリング使用時（ConnectionPoolDataSourceを使用した接続），およびXA使用時（XADataSourceを使用した接続）でStatementのcloseメソッドの発行でエラーが発生した場合，SQLExceptionをスローしません。また，プーリング使用時，およびXA使用時でStatementのcloseメソッド実行中にデータベースとの物理的な切断でエラーが発生してコネクションプーリングが使用できなくなった場合，ConnectionEventListener.connectionErrorOccurredは発生しません。

非同期キャンセル
接続データベースがHiRDBまたはORACLEの場合，cancelメソッドを使用して非同期キャンセルを発行できます。ただし，XADataSourceを使用した接続の場合，非同期キャンセルの実行は接続データベースの仕様に従います（HiRDBはXADataSourceを使用した接続時の非同期キャンセルをサポートしていません。そのため非同期キャンセル要求は有効になりません）。
また，HiRDBクライアント経由XDM/RD E2接続時の非同期キャンセルはサポートしていません。

制限事項

DABroker Libraryで使用するStatementクラスの制限事項を，次に示します。

表4-77　Statementクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
cancel | 接続データベース種別がHiRDBまたはORACLEの場合だけ有効です。 | ○ | ○
close | プーリング使用時（ConnectionPoolDataSource使用した接続），およびXA使用時（XADataSourceを使用した接続）でStatement.closeメソッド実行中にエラーが発生した場合，SQLExceptionをスローしません。また，プーリング使用時，およびXA使用時でStatement.closeメソッド実行中にデータベースとの物理的な切断でエラーが発生してコネクションプーリングが使用できなくなった場合，ConnectionEventListener.connectionErrorOccurredは発生しません。 | ○ | ○
getFetchSize | 0，またはsetFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より小さい場合はsetFetchSizeメソッドで指定された値を，setFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より大きい場合はsetMaxRowsメソッドで指定された値を返却します。 | － | ○
getMaxFieldSize | setMaxFieldSizeが指定されていない場合0を返却します。 | ○ | ○
getMaxRows | setMaxRowsが指定されていない場合は0を返却します。 | ○ | ○
getMoreResults | 無条件に結果なし=falseを返却します。 | ○ | ○
setCursorName | 使用できません。 | ○ | ○
setFetchDirection | FETCH_FORWARD以外を指定した場合，SQLExceptionをスローします。 | － | ○
setFetchSize | 接続データベース種別がHiRDB，またはORACLEの場合で，CLOBやBLOBなどのLONG VARCHAR・LONG VARBINARY型データ列の検索を含まないときだけ有効となります。 | － | ○
setMaxFieldSize | 0より小さい値を指定した場合，SQLExceptionをスローします。 | ○ | ○
setMaxRows | 0より小さい値を指定した場合，SQLExceptionをスローします。 | ○ | ○

（凡例）

○：該当します。

－：該当しません。

DABroker Library提供メソッド

Statementクラスで提供している，DABroker Libraryだけの機能を次に示します。

メソッド一覧

メソッド名 | 機能
getExecuteDirectModeメソッド | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかの設定情報を取得します。
setExecuteDirectModeメソッド | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかを設定します。

＜この節の構成＞

getExecuteDirectModeメソッド

setExecuteDirectModeメソッド

getExecuteDirectModeメソッド

説明

接続データベースがHiRDBの場合，INSERT，UPDATE，DELETEなどStatementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかの設定情報を取得します。

形式

public boolean getExecuteDirectMode();

パラメタ

なし

例外

なし

戻り値

boolean：

Execute Direct機能を使用するかどうかを次の値で取得します。

true
Execute Direct機能を使用します。

false
Execute Direct機能を使用しません。

setExecuteDirectModeメソッド

説明

接続データベースがHiRDBの場合，INSERT，UPDATE，DELETEなどStatementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかを設定します。

このメソッドが呼び出されない場合は，falseを設定します。

なお，この指定は接続データベースがHiRDBの場合だけ有効です。HiRDB以外のデータベースの場合は，指定の有無にかかわらずExecute Direct機能を使用しません。

形式

public void setExecuteDirectMode(boolean Mode);

パラメタ

Mode：

HiRDBのExecute Direct機能を使用するかどうかを次の値で設定します。

true
Execute Direct機能を使用します。

false
Execute Direct機能を使用しません。

例外

なし

戻り値

なし

4.14　PreparedStatementクラス

説明

PreparedStatementクラスでは，主に次の機能を提供します。

パラメタ付きSQLの実行

パラメタの設定

検索結果として，ResultSetオブジェクトの生成および返却

更新結果として，更新行数の返却

PreparedStatementクラスの提供する各メソッドの詳細および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

なお，PreparedStatementクラスはStatementクラスのサブクラスです。Statementクラスの機能をすべて継承します。

注意事項

PreparedStatementクラスはStatementクラスのサブクラスであるため，Statementクラスの注意事項はすべて該当します。Statementクラスの注意事項を参照してください。

HiRDBを使用する場合でのTIME型，DATE型，TIMESTAMP型の列に対するデータ変換処理
TIME型，DATE型，またはTIMESTAMP型の列に対して，setTime，setDate，setTimestampおよびsetStringメソッドを使用してデータが設定された場合，HiRDBのデータ型に応じてデータが変換されます。列のデータ型と，メソッドとの組み合わせによる，変換処理について次の表に示します。なお，実際に存在しない日時を指定した場合は，JavaVMの返す値となります。

表4-78　TIME型，DATE型，TIMESTAMP型とsetXXXメソッドとの変換

setXXXメソッド | HiRDB列属性
TIME | DATE | TIMESTAMP
setTime(Time Obj)※1 | 設定値をデータベースに格納します。 | HiRDBのエラーを返します。 | 設定値hh:mm:ss[.000000]の前に1970-01-01を付加したデータをデータベースに格納します。
setDate(Date Obj)※2 | HiRDBのエラーを返します。 | 設定値をデータベースに格納します。 | 設定値yyyy-MM-DDの後ろに00:00:00[.000000]を付加したデータをデータベースに格納します。
setTimestamp(Timestamp Obj)※3 | HiRDBのエラーを返します。 | 設定値からyyyy-MM-DDを抜き出したデータをデータベースに格納します。 | 設定値をデータベースに格納します。
setString(hh:mm:ss形式の文字列) | 設定値をデータベースに格納します。 | HiRDBのエラーを返します。 | HiRDBのエラーを返します。
setString(yyyy-MM-DD形式の文字列) | HiRDBのエラーを返します。 | 設定値をデータベースに格納します。 | HiRDBのエラーを返します。
setString(yyyy-MM-DD hh:mm:ss[.ffffff]形式の文字列)※4 | HiRDBのエラーを返します。 | HiRDBのエラーを返します。 | 設定値をデータベースに格納します。

注※1　Time Obj：java.sql.Timeオブジェクト「時：分：秒」の値を持つオブジェクト。

注※2　Date Obj：java.sql.Dateオブジェクト「年－月－日」の値を持つオブジェクト。

注※3　Timestamp Obj：java.sql.Timestampオブジェクト「年－月－日　時：分：秒．ナノ秒」の値を持つオブジェクト。

注※4　[.ffffff]：HiRDBのTimestamp型の精度によって，小数点以下のけた数が変わります。

HiRDBを使用する場合でのsetXXXメソッド使用時のオーバーフローチェック
XXXは，?パラメタの適切な型です。HiRDBには，値によってはオーバーフローが発生するデータ型が存在します。HiRDBのデータ型と，メソッドとの組み合わせによるオーバーフローの発生の有無について，次の表に示します。オーバーフロー発生時は例外を返します。

表4-79　HiRDBのデータ型とsetXXXメソッドの組み合わせによるオーバーフローの発生の有無

setXXXメソッド | HiRDBのデータ型
SMALLINT | INTEGER | FLOAT | REAL | DECIMAL | CHAR | VARCHAR | DATE | TIME | TIMESTAMP | BINARY | BLOB
setByte | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
setShort | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
setInt | × | ○ | ○ | ○ | × | － | － | － | － | － | － | －
setLong | × | × | ○ | ○ | × | － | － | － | － | － | － | －
setFloat | × | × | ○ | ○ | × | － | － | － | － | － | － | －
setDouble | × | × | ○ | × | × | － | － | － | － | － | － | －
setBigDecimal | × | × | ○ | ○ | × | － | － | － | － | － | － | －
setBoolean | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
setString | × | × | × | × | × | － | － | × | × | × | － | －
setBytes | － | － | － | － | － | － | － | － | － | － | － | －
setDate | － | － | － | － | － | － | － | ○ | － | × | － | －
setTime | － | － | － | － | － | － | － | － | ○ | × | － | －
setTimestamp | － | － | － | － | － | － | － | － | － | ○ | － | －

（凡例）

○：値にかかわらずオーバーフローしません。

×：値によってはオーバーフローする場合があります。

－：この組み合わせでは使用できません。

表4-80　HiRDBのデータ型とsetObjectメソッドの組み合わせによるオーバーフローの発生の有無

setObjectメソッド | HiRDBのデータ型
SMALLINT | INTEGER | FLOAT | REAL | DECIMAL | CHAR | VARCHAR | DATE | TIME | TIMESTAMP | BINARY | BLOB
Byte | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
Short | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
Integer | × | ○ | ○ | ○ | × | － | － | － | － | － | － | －
Long | × | × | ○ | ○ | × | － | － | － | － | － | － | －
Decimal | × | × | ○ | ○ | × | － | － | － | － | － | － | －
Float | × | × | ○ | ○ | × | － | － | － | － | － | － | －
Double | × | × | ○ | × | × | － | － | － | － | － | － | －
Boolean | ○ | ○ | ○ | ○ | × | － | － | － | － | － | － | －
String | × | × | × | × | × | － | － | × | × | × | － | －
Date | － | － | － | － | － | － | － | ○ | － | － | － | －
Time | － | － | － | － | － | － | － | － | ○ | － | － | －
Timestamp | － | － | － | － | － | － | － | － | － | ○ | － | －
byte[] | － | － | － | － | － | － | － | － | － | － | － | －
BLOB | － | － | － | － | － | － | － | － | － | － | － | －
CLOB | － | － | － | － | － | － | － | － | － | － | － | －
Array | － | － | － | － | － | － | － | － | － | － | － | －
Ref | － | － | － | － | － | － | － | － | － | － | － | －
Struct | － | － | － | － | － | － | － | － | － | － | － | －

（凡例）

○：値にかかわらずオーバーフローしません。

×：値によってはオーバーフローする場合があります。

－：この組み合わせでは使用できません。

CommitまたはRollbackにわたってのSQLの前処理の保持機能
DABroker LibraryはDBMSがHiRDBまたはORACLEの場合，SQLの前処理をCommitまたはRollbackにわたって保持します。このため，HiRDBの場合，SELECT，INSERT，DELETE，UPDATE，PURGEおよびCALLのどれかでアクセスする次のスキーマ資源に対して，ほかのユーザが定義系SQL文を発行すると，スキーマ資源にアクセスしていたコネクションをDISCONNECTするまでの間，定義系SQLは排他待ちの状態になります。
・表
・ビュー
・ストアドプロシジャ
・ストアドファンクション
・抽象データ型

参考

XADataSourceを使用して，バージョンが07-01より前のHiRDBに接続した場合，この機能は有効になりません。バージョンが07-01以降のHiRDBに接続する場合に，この機能が有効になります。DABroker Libraryを使用したデータベース接続の実装については，「4.7　DABroker Libraryを使用したデータベース接続の実装」を参照してください。

Component Containerでコネクションをプーリングしている場合，定義系SQLを発行する前に次のコマンドを実行してください。Component Containerのcjclearpoolコマンドを実行することで，コネクションプールからコネクションを破棄できます。

cjclearpool <サーバ名称> -mode normal -resall

この場合，<サーバ名称>で指定したJ2EEサーバまたはバッチサーバに接続しているすべてのデータソースについてコネクションが削除されます。J2EEアプリケーションまたはバッチアプリケーションでコネクションをクローズしたときに，物理コネクションもクローズされます。

cjclearpoolコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjclearpool（コネクションプール内のコネクション削除）」を参照してください。

制限事項

DABroker Libraryで使用するPreparedStatementクラスの制限事項を，次に示します。

表4-81　PreparedStatementクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
setArray | SQL配列型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
setBlob | 接続データベースがOracle9i，またはOracle10g以外の場合，SQL BLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
setClob | 接続データベースがOracle9i，またはOracle10g以外の場合，SQL CLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
setNull | ユーザ定義型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
setRef | SQL構造化型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○

（凡例）

○：該当します。

－：該当しません。

DABroker Library提供メソッド

PreparedStatementクラスで提供している，DABroker Libraryだけの機能を次に示します。

メソッド一覧

メソッド名 | 機能
getBlockUpdateメソッド | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかの設定情報を取得します。
setBlockUpdateメソッド | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。

＜この節の構成＞

getBlockUpdateメソッド

setBlockUpdateメソッド

getBlockUpdateメソッド

説明

接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかの設定情報を取得します。

形式

public boolean getBlockUpdate();

パラメタ

なし

例外

なし

戻り値

boolean：

複数のパラメタセットを一度に処理するかどうかを次の値で取得します。

true
複数のパラメタセットを一度に処理します。

false
複数のパラメタセットを一つずつ分割して処理します。

注意事項

この機能は，HiRDBの配列を使用した更新機能を使用します。このため，HiRDBの配列を使用した更新機能の使用条件に満たない場合はエラーとなります。なお，配列を使用した更新機能の詳細については，マニュアル「HiRDB UAP開発ガイド」の配列を使用した機能，およびマニュアル「HiRDB SQLリファレンス」のEXECUTE文（SQLの実行形式2），INSERT文（行挿入）形式3，DELETE文（行削除）形式2，UPDATE文（行更新）形式3，形式4を参照してください。

この機能は，HiRDBに対するINSERT，UPDATE，DELETE処理以外には使用できません。

複数のパラメタセット各列のデータ型はすべて同じにしてください。複数のパラメタセット各列のデータ型が異なる場合，更新処理実行時にエラーになります。

DECIMAL型データを挿入する場合，配列に指定するDECIMALデータの精度および位置取りはすべて同じにしてください。精度および位置取りが異なる場合はエラーになります。

複数のパラメタセットを一度に処理する場合に，バッチ更新の途中でエラーが発生すると，エラーが発生する直前までの更新処理はすべて無効になります。

setBlockUpdateメソッド

説明

接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。

このメソッドが呼び出されない場合は，falseを設定します。ただし，データベース接続時にDriverManagerクラスのgetConnectionメソッドの引数にBLOCK_UPDATE=trueを指定した場合，このメソッドが呼び出されないときに設定される値は，trueになります。

形式

public void setBlockUpdate(boolean Mode);

パラメタ

Mode：

複数のパラメタセットを一度に処理するかどうかを次の値で設定します。

true
複数のパラメタセットを一度に処理します。

false
複数のパラメタセットを一つずつ分割して処理します。

例外

なし

戻り値

なし

注意事項

この指定は，接続データベースがHiRDBの場合だけ有効です。HiRDB以外のデータベースの場合は，指定の有無にかかわらず，複数のパラメタセットを一つずつ分割して処理します。

実際にパラメタセットが一度に処理されるかどうかは，DABroker LibraryおよびHiRDBの仕様に従います。

この機能は，HiRDBの配列を使用した更新機能を使用します。このため，HiRDBの配列を使用した更新機能の使用条件に満たない場合はエラーとなります。なお，配列を使用した更新機能の詳細については，マニュアル「HiRDB UAP開発ガイド」の配列を使用した機能，およびマニュアル「HiRDB SQLリファレンス」のEXECUTE文（SQLの実行形式2），INSERT文（行挿入）形式3，DELETE文（行削除）形式2，UPDATE文（行更新）形式3，形式4を参照してください。

この機能は，HiRDBに対するINSERT，UPDATE，DELETE処理以外には使用できません。

複数のパラメタセット各列のデータ型はすべて同じにしてください。複数のパラメタセット各列のデータ型が異なる場合，更新処理実行時にエラーになります。

DECIMAL型データを挿入する場合，配列に指定するDECIMALデータの精度および位置取りはすべて同じにしてください。精度および位置取りが異なる場合はエラーになります。

複数のパラメタセットを一度に処理する場合，バッチ更新の途中でエラーが発生すると，エラーが発生する直前までの更新処理はすべて無効になります。

4.15　CallableStatementクラス

説明

CallableStatementクラスでは，主に次の機能を提供します。なお，CallableStatementクラスはPreparedStatementクラスのサブクラスです。PreparedStatementクラスおよびStatementクラスの機能をすべて継承します。

ストアドプロシジャの実行

INPUTおよびINOUTパラメタの設定（PreparedStatementクラスのsetXXXメソッドを使用）

INOUTおよびOUTPUTパラメタの登録

INOUTおよびOUTPUTパラメタ値の取得

CallableStatementクラスの提供する各メソッドの詳細および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

注意事項

CallableStatementクラスはPreparedStatementクラスのサブクラスであるため，PreparedStatementクラス，およびStatementクラスの注意事項はすべて該当します。PreparedStatementクラスおよびStatementクラスの注意事項を参照してください。

ResultSetを伴うストアドプロシジャ
DABroker Libraryでは，ResultSetを伴うストアドプロシジャをサポートしていません。このため，getMoreResultsメソッドは無条件にfalseを返却し，getResultSetメソッドは無条件にnullを返却します。

ストアドプロシジャのOUTパラメタ取得
setXXXメソッド，およびregisterOutParameterメソッドで設定した情報は，executeメソッド，executeUpdateメソッド，またはexecuteQueryメソッド実行後，getXXXメソッドを使用して必要なOUTパラメタをすべて取得し，それ以降その実行結果が不要になるまでは変更しないでください。OUTパラメタを取り出すときにパラメタの設定情報を参照するため，途中でclearParameterメソッドでパラメタの設定情報をクリアしたり，setXXXメソッド，およびregisterOutParameterメソッドでパラメタ情報を再設定したりすると，getXXXメソッドでエラーが発生しOUTパラメタの取得ができなくなります。
（例）OUTパラメタを取得する前にclearParameterメソッドを実行した場合
（実行するTEST_PROC(?)の?パラメタはREAL型のOUTパラメタとする）

cstmt = con.prepareCall("{CALL TEST_PROC(?)}");
cstmt.registerOutParameter(1, Types.REAL);  // OUTパラメタ情報の設定
cstmt.execute();   // プロシジャ実行
cstmt.clearParameter();   // パラメタ情報のクリア
float float_value = cstmt.getFloat(1);   // OUTパラメタの取得，エラーの発生

発生するエラー：KFDJ05006-E
Output attribute is not able to acuire information because it does not exist in a parameter.

DECIMAL型使用時の注意事項
DECIMAL型のOUTパラメタ，またはINOUTパラメタを設定するとき，小数点以下のけた数（以下スケール値）を受け入れない形式のregisterOutParameter(int parameterIndex，int sqlType)メソッドを使用するとスケール値は0とみなされます。
また，INOUTパラメタへの設定は最後に実行したメソッドのスケール値が有効となります。そのためDECIMAL型のINOUTパラメタを設定する場合は，スケール値を受け入れない形式のregisterOutParameter(int parameterIndex，int sqlType)メソッドを先に設定したあとにsetBigDecimal(int parameterIndex，BigDecimal x)メソッドを設定，またはsetBigDecimal(int parameterIndex， BigDecimal x)メソッドを設定したあとにスケール値を受け入れる形式のregisterOutParameter(int parameterIndex，int sqlType，int scale)メソッドを設定してください。このとき，setBigDecimalメソッドに指定するjava.math.BigDecimalオブジェクトのスケール値，およびregisterOutParameterメソッドに指定するスケール値はデータベースに定義しているスケール値と同じにする必要があります。

（例1）registerOutParameterメソッドを先に設定する場合(定義長(15,5)とする)

cstmt.registerOutParameter(1, Types.DECIMAL);

cstmt.setBigDecimal(1, new java.math.BigDecimal("123.45000"));

（例2）scale付きregisterOutParameterメソッドを使用する場合(定義長(15,5)とする)

cstmt.setBigDecimal(1, new java.math.BigDecimal("123.45000"));

cstmt.registerOutParameter(1,Types.DECIMAL,5);

データベースから0バイトデータを取得する場合の注意事項
データベースから0バイトデータを取得すると，nullが返されることがあります。発生条件を次に示します。

HiRDBの場合

次の条件が重なった場合に発生します。

データベースに格納されている0バイトデータを，ストアドプロシジャのOUTパラメタ，またはINOUTパラメタで取得する場合。

列のデータ型が次のどれかの場合。
VARCHAR
NVARCHAR
MVARCHAR
BINARY
BLOB

Oracleの場合

次の条件が重なった場合に発生します。

データベースに格納されている0バイトデータを，ResultSetクラス，ストアドプロシジャのOUTパラメタ，またはINOUTパラメタで取得する場合。

列のデータ型が0バイトデータを格納できるデータ型の場合。

制限事項

DABroker Libraryで使用するCallableStatementクラスの制限事項を，次に示します。

表4-82　CallableStatementクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
getArray | SQL配列型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getBlob | 接続データベースがOracle9i，またはOracle10g以外の場合，SQL BLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getClob | 接続データベースがOracle9i，またはOracle10g以外の場合，SQL CLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getRef | SQL構造化型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○

（凡例）

○：該当します。

－：該当しません。

4.16　ResultSetクラス

説明

ResultSetクラスでは，主に次の機能を提供します。

行単位のResultSet内の移動

結果データの返却

検索結果データがNULL値かどうかの通知

ResultSetクラスの提供する各メソッドの詳細および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

注意事項

マルチスレッド
一つのResultSetオブジェクトを複数のスレッドで並行して使用する場合の動作は保証しません。
一つのResultSetオブジェクトは一つのスレッドで処理してください。

setFetchSizeメソッドの使用について
Statementクラスの注意事項を参照してください。

HiRDBのホールダブルカーソル機能の使用について
DABroker Libraryでは，HiRDBのホールダブルカーソル機能を使用することによって，複数のコミットにわたってカーソルを保持できます。使用するためには，接続時にプロパティまたはURLにHIRDB_CURSOR=trueを設定するか，DataSourceクラスのsetHiRDBCursorMode(true)を設定する必要があります。

ResultSetのクローズ
プーリング使用時（ConnectionPoolDataSourceを使用した接続），およびXA使用時（XADataSourceを使用した接続）でResultSetのcloseメソッド実行中にデータベースとの物理的な切断でエラーが発生しコネクションプーリングが使用できなくなった場合，ConnectionEventListener.connectionErrorOccurredは発生しません。

制限事項

DABroker Libraryで使用するResultSetクラスの制限事項を，次に示します。

表4-83　ResultSetクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
close | ステートメントのクローズ時，または次のSQL実行時に暗黙的にクローズします。プーリング使用時（ConnectionPoolDataSourceを使用した接続），およびXA使用時（XADataSourceを使用した接続）でResultSet.closeメソッド実行中にデータベースとの物理的な切断でエラーが発生しコネクションプーリングが使用できなくなった場合ConnectionEventListener.connectionErrorOccurredは発生しません。 | ○ | ○
cancelRowUpdates | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
deleteRow
findColumn | 指定された列名がResultSetオブジェクトに含まれていないため列インデックスが取得できない場合，SQLExceptionをスローします。 | ○ | ○
absolute | absolute(-2)と指定した場合，カーソルは最終行の前の行へ移動します。 | － | ○
afterLast | 結果セットに行がない場合，何も処理しません。 | － | ○
beforeFirst
cancelRowUpdates | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
deleteRow
getArray | SQL配列型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getBlob | 接続データベースがHiRDB，Oracle9i，またはOracle10g以外の場合，SQL LONGVARBINARY型およびSQL BLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getClob | 接続データベースがOracle9i，またはOracle10g以外の場合，SQL CLOB型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
getFetchSize | 0，またはsetFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より小さい場合はsetFetchSizeメソッドで指定された値を，setFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より大きい場合はsetMaxRowsメソッドで指定された値を返却します。 | － | ○
getRef | SQL構造化型をサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
isFirst | 結果セットに行がない場合falseを返却します。 | － | ○
isLast | 結果セットに行がない場合falseを返却します。 | － | ○
insertRow | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
moveToCurrentRow
moveToInsertRow
previous | カーソルの移動方向がnextメソッドと逆方向になります。 | － | ○
refreshRow | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
relative | 結果セットに行がない場合SQLExceptionをスローします。カーソルが先頭行の前，または最終行の後ろにある場合は有効として処理します。処理結果が結果セットの先頭行，最終行を超える場合はそれぞれ先頭行の前，最終行の後ろへ移動します。 | － | ○
rowDeleted | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
rowInserted
rowUpdated
setFetchDirection | FETCH_FORWARD以外を指定した場合，SQLExceptionをスローします。 | － | ○
setFetchSize | 接続データベース種別がHiRDB，またはORACLEの場合で，CLOBやBLOBなどのLONG VARCHAR・LONG VARBINARY型データ列の検索を含まないときだけ有効となります。 | － | ○
updateAsciiStream | 更新可能型ResultSetをサポートしていないため，無条件にSQLExceptionをスローします。 | － | ○
updateBigDecimal
updateBinaryStream
updateBoolean
updateByte
updateBytes
updateCharacterStream
updateDate
updateDouble
updateFloat
updateInt
updateLong
updateNull
updateObject
updateRow
updateShort
updateString
updateTime
updateTimestamp

（凡例）

○：該当します。

－：該当しません。

4.17　ResultSetMetaDataクラス

説明

ResultSetMetaDataクラスでは，主に次の機能を提供します。

ResultSetの各列に対する，データ型およびデータ長のメタ情報の返却

ResultSetMetaDataクラスの提供する各メソッドの詳細および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

制限事項

DABroker Libraryで使用するResultSetMetaDataクラスの制限事項を，次に示します。

表4-84　ResultSetMetaDataクラスの制限事項

メソッド名 | 制限事項 | JDBC1.0での制限 | JDBC2.0での制限
getCatalogName | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にnullを返却します。 | ○ | ○
getColumnClassName | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にfalseを返却します。 | － | ○
getColumnDisplaySize | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。 | ○ | ○
getColumnLabel | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，カラムのラベル（カラムヘッダ）をサポートしていないため，カラム名を返却します。 | ○ | ○
getColumnName | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。データベースから返される列名称を返却します。 | ○ | ○
getColumnType | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。 | ○ | ○
getPrecision | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。列属性がDECIMAL，NUMERICの場合は精度を返却し，それ以外は列長を返却します。 | ○ | ○
getScale | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。列属性がDECIMAL，NUMERICの場合は小数点以下のけた数を返却し，それ以外は0を返却します。 | ○ | ○
getSchemaName | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にnullを返却します。 | ○ | ○
getTableName
isAutoIncrement | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にfalseを返却します。 | ○ | ○
isCaseSensitive
isCurrency
isDefinitelyWritable
isNullable | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。 | ○ | ○
isReadOnly | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にfalseを返却します。 | ○ | ○
isSearchable | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。 | ○ | ○
isSigned | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。列属性が数値属性の場合trueを返却し，それ以外の場合はfalseを返却します。 | ○ | ○
isWritable | columnが0以下，またはカラム数を超えている場合はSQLExceptionをスローします。それ以外の場合，無条件にfalseを返却します。 | ○ | ○

（凡例）

○：該当します。

－：該当しません。

4.18　DatabaseMetaDataクラス

説明

DatabaseMetaDataクラスでは，主に次の機能を提供します。

接続データベースに関する各種情報の返却

表一覧，列一覧などの一覧系情報を，ResultSetに格納して返却

DatabaseMetaDataクラスの提供する各メソッドの詳細および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

制限事項

DABroker Libraryで使用するDatabaseMetaDataクラスの制限事項を，次に示します。

表4-85　DatabaseMetaDataクラスの制限事項

メソッド名
制限事項
JDBC1.0での制限
JDBC2.0での制限

dataDefinitionIgnoredInTransactions
無条件にfalseを返却します。
○
○

deletesAreDetected
更新結果を反映するResultSetをサポートしていないため，無条件にfalseを返却します。
－
○

getBestRowIdentifier
行を一意に識別するテーブルの最適なカラムに関する記述を返却します（返す結果は常に0件）。
○
○

getCatalogs
カタログ名称に関する記述を返却します（返す結果は常に0件）。
○
○

getCrossReference
主キーテーブルの主キーカラムを参照する外部キーテーブル中の，外部キーカラムに関する記述を返却します（返す結果は常に0件）。
○
○

getDatabaseProductVersion
無条件にnullを返却します。
○
○

getDefaultTransactionIsolation
無条件にTRANSACTION_READ_UNCOMMITTEDを返却します。
○
○

getExportedKeys
主キーのカラムを参照する，外部キーのカラムに関する記述を返却します（返す結果は常に0件）。
○
○

getIdentifierQuoteString
無条件に引用符(")を返却します。
○
○

getImportedKeys
外部キーのカラムを参照する，主キーのカラムに関する記述を返却します（返す結果は常に0件）。
○
○

getMaxConnections
無条件に0を返却します。
○
○

getMaxStatements
接続データベースがHiRDBまたはOracleの場合，無条件に1024を，それ以外の場合は，64を返却します。
○
○

getUDTs
ユーザ定義型に関する記述を返却します（返す結果は常に0件）。
－
○

getVersionColumns
自動的に更新されるカラムに関する記述を返却します（返す結果は常に0件）。
○
○

isReadOnly
アクセスモードを変更できないため，無条件にfalseを返却します。
○
○

insertsAreDetected
更新結果を反映するResultSetをサポートしていないため，無条件にfalseを返却します。
－
○

othersDeletesAreVisible

othersInsertsAreVisible

othersUpdatesAreVisible

ownDeletesAreVisible

ownInsertsAreVisible

ownUpdatesAreVisible

storesLowerCaseQuotedIdentifiers
無条件にfalseを返却します。
○
○

supportsANSI92EntryLevelSQL
無条件にtrueを返却します。
○
○

supportsANSI92FullSQL
無条件にfalseを返却します。
○
○

supportsANSI92IntermediateSQL

supportsCatalogsInIndexDefinitions

supportsCatalogsInPrivilegeDefinitions

supportsMixedCaseIdentifiers

supportsMultipleResultSets

supportsMultipleTransactions
無条件にtrueを返却します。
○
○

supportsPositionedDelete
無条件にfalseを返却します。
○
○

supportsPositionedUpdate

supportsSelectForUpdate

supportsSchemasInDataManipulation
無条件にtrueを返却します。
○
○

supportsTransactionIsolationLevel
与えられたトランザクションアイソレーションレベルがTRANSACTION_READ_UNCOMMITTEDの場合，trueを返却します。
○
○

supportsTransactions
無条件にtrueを返却します。
○
○

usesLocalFilePerTable
無条件にfalseを返却します。
○
○

usesLocalFiles

supportsOpenCursorsAcrossCommit

HiRDB接続時

表4-86を参照してください。

Oracle接続時

常にtrueを返却します。

XDM/RD E2接続時

XDM/RD E2 11-01以前の場合，常にfalseを返却します。

XDM/RD E2 11-02以降の場合，HiRDB接続時と同じです。詳細については，表4-86を参照してください。

－
○

supportsOpenCursorsAcrossRollback

supportsOpenStatementsAcrossCommit

supportsOpenStatementsAcrossRollback

supportsBatchUpdates
無条件にtrueを返却します。
－
○

supportsResultSetConcurrency
ResultSetタイプがTYPE_FORWARD_ONLYまたはTYPE_SCROLL_INSENSITIVEで，並行処理タイプがCONCUR_READ_ONLYの場合，trueを返却します。
－
○

updatesAreDetected
更新結果を反映するResultSetをサポートしていないため，無条件にfalseを返却します。
－
○

（凡例）

○：該当します。

－：該当しません。

表4-86　HiRDB接続時のsupportsOpenXXXXメソッドの戻り値

接続時のHIRDB_CURSORの指定値

FALSE
TRUE

supportsOpenCursorsAcrossCommit=false
supportsOpenCursorsAcrossRollback=false
supportsOpenStatementsAcrossCommit=true
supportsOpenStatementsAcrossRollback=true
supportsOpenCursorsAcrossCommit=true
supportsOpenCursorsAcrossRollback=false
supportsOpenStatementsAcrossCommit=true
supportsOpenStatementsAcrossRollback=true

4.19　DataSourceクラス

説明

DataSourceクラスでは，次の機能を提供します。

データベースの接続情報の設定および取得

このクラスのパッケージ名は，JP.co.Hitachi.soft.DBPSV_Driverです。

JdbcDbpsvDataSourceクラス

JDBC2.0拡張機能で提供する，JNDI連携機能を使用したデータベースへアクセスするためのインタフェースです。

表4-87　JdbcDbpsvDataSourceクラスのメソッド一覧

メソッド名 | 機能
getBlockUpdateメソッド | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかの設定を取得します。
getBufferPoolSizeメソッド | 受信バッファプール数を取得します。
getBufSizeメソッド | DABroker Libraryからの受信データのバッファ長を取得します。
getDatabaseNameメソッド | 接続するデータベースの種別を取得します。
getDBEnvメソッド | DABroker Libraryの接続先データベース定義情報を取得します。
getDBHostNameメソッド | 接続するHiRDBのホスト名を取得します。
getDescriptionメソッド | 接続するデータベースに必要な接続付加情報を取得します。
getEncodLangメソッド | エンコード文字形態を取得します。
getExecuteDirectModeメソッド | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新でHiRDBのExecute Direct機能を使用するかどうかの設定を取得します。
getHiRDBCursorModeメソッド | 接続データベースがHiRDBの場合，検索時にカーソルが複数のCommitまたはRollbackにわたって有効かどうかの設定を取得します。
getJDBC_IF_TRCメソッド | JDBCインタフェースメソッドトレースの取得の有無を取得します。
getLONGVARBINARY_Accessメソッド | HiRDBでLONGVARBINARY（列属性BLOB，列属性BINARY）へのアクセス方法を取得します。
getNetworkProtocolメソッド | DABroker Libraryとの接続種別を取得します。
getNotErrorOccurredメソッド | connectionErrorOccurredが呼ばれるかどうかの設定を取得します。
getOSAuthorizeメソッド | OS認証機能を使用してデータベースに接続するかどうかの設定を取得します。
getPasswordメソッド | データベースアクセスのパスワードを取得します。
getPortNumberメソッド | 接続するDABroker Libraryのポート番号を取得します。
getRowSizeメソッド | JDBCで取り扱うバッファ長を取得します。
getServerNameメソッド | 接続するDABroker Libraryのホスト名を取得します。
getSQLWarningIgnoreメソッド | データベースから返される警告をConnectionクラスで保持するかどうかの情報を取得します。
getSV_EVENT_TRCメソッド | DABroker Libraryとのイベントトレースの取得の有無を取得します。
getTRC_NOメソッド | トレースのエントリ数を取得します。
getUapNameメソッド | アプリケーション名称を取得します。
getUserメソッド | データベースアクセスのユーザIDを取得します。
setBlockUpdateメソッド | 接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。
setBufferPoolSizeメソッド | 受信バッファプール数を設定します。
setBufSizeメソッド | DABroker Libraryからの受信データのバッファ長を設定します。
setDatabaseNameメソッド | 接続するデータベースの種別を設定します。
setDBEnvメソッド | DABroker Libraryの接続先データベース定義情報を設定します。
setDBHostNameメソッド | 接続するHiRDBのホスト名を設定します。
setDescriptionメソッド | 接続するデータベースに必要な接続付加情報を設定します。
setEncodLangメソッド | エンコード文字形態を設定します。
setExecuteDirectModeメソッド | 接続データベースがHiRDBの場合，Statementクラスを使用したデータベースの更新でHiRDBのExecute Direct機能を使用するかどうかを設定します。
setHiRDBCursorModeメソッド | 接続データベースがHiRDBの場合，検索時にカーソルが複数のCommitまたはRollbackにわたって有効かどうかを設定します。
setJDBC_IF_TRCメソッド | JDBCインタフェースメソッドトレースの取得の有無を設定します。
setLONGVARBINARY_Accessメソッド | HiRDBでLONGVARBINARY（列属性BLOB，列属性BINARY）へのアクセス方法を設定します。
setNetworkProtocolメソッド | DABroker Libraryとの接続種別を設定します。
setNotErrorOccurredメソッド | connectionErrorOccurredが呼ばれるかどうかを設定します。
setOSAuthorizeメソッド | OS認証機能を使用してデータベースに接続するかどうかを設定します。
setPasswordメソッド | データベースアクセスのパスワードを設定します。
setPortNumberメソッド | 接続するDABroker Libraryのポート番号を設定します。
setRowSizeメソッド | JDBCで取り扱うバッファ長を指定します。
setServerNameメソッド | 接続するDABroker Libraryのホスト名を設定します。
setSQLWarningIgnoreメソッド | データベースから返される警告をConnectionクラスで保持するかどうかの情報を設定します。
setSV_EVENT_TRCメソッド | DABroker Libraryとのイベントトレースの取得の有無を設定します。
setTRC_NOメソッド | トレースのエントリ数を設定します。
setUapNameメソッド | アプリケーション名称を設定します。
setUserメソッド | データベースアクセスのユーザIDを設定します。

JdbcDbpsvXADataSourceクラス

JDBC2.0拡張機能で提供する，トランザクション連携のためのインタフェースです。

表4-88　JdbcDbpsvXADataSourceクラスのメソッド一覧

メソッド名 | 機能
getRMIDメソッド | リソースマネジャの識別子を取得します。
getXACloseStringメソッド | XA_CLOSE文字列を取得します。
getXALocalCommitModeメソッド | XA使用時，データベースのオートコミットを有効にしているかどうかの設定を取得します。
getXAOpenStringメソッド | XA_OPEN文字列を取得します。
getXAThreadModeメソッド | XA使用時のスレッドモードを取得します。
setRMIDメソッド | リソースマネジャの識別子を設定します。
setXACloseStringメソッド | XA_CLOSE文字列を設定します。
setXALocalCommitModeメソッド | XA使用時，データベースのオートコミットを有効にするかどうかを設定します。
setXAOpenStringメソッド | XA_OPEN文字列を設定します。
setXAThreadModeメソッド | XA使用時のスレッドモードを設定します。

＜この節の構成＞

getBlockUpdateメソッド

getBufferPoolSizeメソッド

getBufSizeメソッド

getDatabaseNameメソッド

getDBEnvメソッド

getDBHostNameメソッド

getDescriptionメソッド

getEncodLangメソッド

getExecuteDirectModeメソッド

getHiRDBCursorModeメソッド

getJDBC_IF_TRCメソッド

getLONGVARBINARY_Accessメソッド

getNetworkProtocolメソッド

getNotErrorOccurredメソッド

getOSAuthorizeメソッド

getPasswordメソッド

getPortNumberメソッド

getRowSizeメソッド

getServerNameメソッド

getSQLWarningIgnoreメソッド

getSV_EVENT_TRCメソッド

getTRC_NOメソッド

getUapNameメソッド

getUserメソッド

setBlockUpdateメソッド

setBufferPoolSizeメソッド

setBufSizeメソッド

setDatabaseNameメソッド

setDBEnvメソッド

setDBHostNameメソッド

setDescriptionメソッド

setEncodLangメソッド

setExecuteDirectModeメソッド

setHiRDBCursorModeメソッド

setJDBC_IF_TRCメソッド

setLONGVARBINARY_Accessメソッド

setNetworkProtocolメソッド

setNotErrorOccurredメソッド

setOSAuthorizeメソッド

setPasswordメソッド

setPortNumberメソッド

setRowSizeメソッド

setServerNameメソッド

setSQLWarningIgnoreメソッド

setSV_EVENT_TRCメソッド

setTRC_NOメソッド

setUapNameメソッド

setUserメソッド

getRMIDメソッド

getXACloseStringメソッド

getXALocalCommitModeメソッド

getXAOpenStringメソッド

getXAThreadModeメソッド

setRMIDメソッド

setXACloseStringメソッド

setXALocalCommitModeメソッド

setXAOpenStringメソッド

setXAThreadModeメソッド

getBlockUpdateメソッド

説明

接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかの設定情報を取得します。

形式

public boolean getBlockUpdate();

パラメタ

なし

例外

なし

戻り値

boolean：

複数のパラメタセットを一度に処理するかどうかを次の値で取得します。

true
複数のパラメタセットを一度に処理します。

false
複数のパラメタセットを一つずつ分割して処理します。

getBufferPoolSizeメソッド

説明

setBufferPoolSizeメソッドで設定した，受信バッファプール数を取得します。setBufferPoolSizeメソッドで受信バッファプール数が設定されていない場合は，0を取得します。

このメソッドは，受信バッファプール数が設定されている場合に使用します。受信バッファプール数の設定については，「4.5　受信バッファのプーリングの設定」を参照してください。

形式

public int getBufferPoolSize();

パラメタ

なし

例外

なし

戻り値

int：

受信バッファプール数を取得します。

getBufSizeメソッド

説明

setBufSizeメソッドで設定した，DABroker Libraryからの受信データを格納するためのバッファ長を取得します。

setBufSizeメソッドで受信バッファ長が設定されていない場合は，64を取得します。

形式

public int getBufSize();

パラメタ

なし

例外

なし

戻り値

int：

バッファ長を取得します。

getDatabaseNameメソッド

説明

setDatabaseNameメソッドで設定された，接続するデータベースの種別を取得します。

接続データベース種別が設定されていない場合は，nullを取得します。

形式

public String getDatabaseName();

パラメタ

なし

例外

なし

戻り値

String：

接続するデータベースの種別を取得します。

getDBEnvメソッド

説明

setDBEnvメソッドで設定された，接続するデータベースに対する接続先データベース定義情報を取得します。

接続先データベース定義情報が設定されていない場合は，nullを取得します。

形式

public String getDBEnv();

パラメタ

なし

例外

なし

戻り値

String：

DABroker Libraryに設定してある，接続先データベース定義情報を取得します。

getDBHostNameメソッド

説明

setDBHostNameメソッドで設定された，接続するHiRDBのホスト名を取得します。

HiRDBのホスト名が設定されていない場合は，nullを取得します。

形式

public String getDBHostName();

パラメタ

なし

例外

なし

戻り値

String：

HiRDBのホスト名を取得します。

getDescriptionメソッド

説明

setDescriptionメソッドで設定された，接続するデータベースに必要な接続付加情報を取得します。

接続付加情報が設定されていない場合は，nullを取得します。

形式

public String getDescription();

パラメタ

なし

例外

なし

戻り値

String：

接続付加情報を取得します。

getEncodLangメソッド

説明

エンコード文字形態を取得します。

形式

public String getEncodLang();

パラメタ

なし

例外

なし

戻り値

String：

setEncodLangメソッドで設定した，文字エンコーディング情報を取得します。

getExecuteDirectModeメソッド

説明

接続データベースがHiRDBの場合，INSERT，UPDATE，DELETEなど，Statementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかの設定情報を取得します。

形式

public boolean getExecuteDirectMode();

パラメタ

なし

例外

なし

戻り値

boolean：

Execute Direct機能を使用するかどうかを次の値で取得します。

true
Execute Direct機能を使用します。

false
Execute Direct機能を使用しません。

getHiRDBCursorModeメソッド

説明

HiRDBで検索時にカーソルが複数のCommitにわたって有効かどうかの設定情報を取得します。

MetaDataを取得する場合，trueを指定してLOCK TABLE UNTIL DISCONNECTをしないで，複数のCommitにわたってFetchをするとエラーが発生します。MetaDataを取得する場合は，trueを設定しないでください。

MetaDataを取得する場合，falseまたはデフォルトの状態でResultSetのFetch実行中にCommitを実行するとエラーが発生します。

この機能を使用する場合，マニュアル「HiRDB SQLリファレンス」のDECLARE CURSOR（カーソル宣言）形式1を参照してください。

形式

public boolean getHiRDBCursorMode();

パラメタ

なし

例外

なし

戻り値

boolean：

HiRDBで検索時にカーソルが複数のCommitにわたって有効かどうかの設定情報を次の値で取得します。

true
カーソルは保持されます。アプリケーションは続けてFetchできます（LOCK TABLE UNTIL DISCONNECTが前提です）。

false
カーソルはクローズされますが，ステートメントは有効です。アプリケーションは，Prepareしないで，再度Executeできます。

getJDBC_IF_TRCメソッド

説明

setJDBC_IF_TRCメソッドで設定した，JDBCインタフェースメソッドトレースの取得の有無を取得します。

形式

public boolean getJDBC_IF_TRC();

パラメタ

なし

例外

なし

戻り値

boolean：

トレースの取得の有無を次の値で取得します。

true
取得します。

false
取得しません。

getLONGVARBINARY_Accessメソッド

説明

setLONGVARBINARY_Accessメソッドで指定された，LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法の設定情報を返却します。

形式

public String getLONGVARBINARY_Access();

パラメタ

なし

例外

なし

戻り値

String：

LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法の設定情報を取得します。何も設定されていない場合，"REAL"を返却します。

"REAL"
実データでアクセスします。

"LOCATOR"
HiRDBの位置付け子（locator）機能を使用してアクセスします。

getNetworkProtocolメソッド

説明

setNetworkProtocolメソッドで設定された，DABroker Libraryとの接続種別を取得します。

接続種別が設定されていない場合は，nullを取得します。

形式

public String getNetworkProtocol();

パラメタ

なし

例外

なし

戻り値

String：

接続種別を取得します。

getNotErrorOccurredメソッド

説明

ConnectionEventListener.connectionErrorOccurredの発生を抑止するかどうかの設定情報を取得します。

形式

public boolean getNotErrorOccurred();

パラメタ

なし

例外

なし

戻り値

boolean：

ConnectionEventListener.connectionErrorOccurredを発生させるかどうかの設定情報を次の値で取得します。

true
connectionErrorOccurredを発生させません。

false
connectionErrorOccurredを発生させます。

getOSAuthorizeメソッド

説明

OS認証機能を使用してデータベースに接続するかどうかの設定情報を取得します。

このメソッドは，setOSAuthorize(boolean Mode)メソッドで設定した内容を取得します。

setOSAuthorize(boolean Mode)メソッドが呼び出されなかった場合は，falseが設定されます。

形式

public boolean getOSAuthorize();

パラメタ

なし

例外

なし

戻り値

boolean：

OS認証機能を使用するかどうかの設定情報を次の値で取得します。

true
OS認証機能を使用します。

false
OS認証機能を使用しません。

getPasswordメソッド

説明

setPasswordメソッドで設定した，データベースアクセスのパスワードを取得します。

setPasswordメソッドでパスワードが設定されていない場合は，nullを取得します。setPasswordメソッドでパスワードを設定し，ユーザIDとパスワードを引数に持つgetConnectionメソッドを呼び出した場合は，getConnectionメソッドで指定したパスワードを取得します。

形式

public String getPassword();

パラメタ

なし

例外

なし

戻り値

String：

パスワードを取得します。

getPortNumberメソッド

説明

setPortNumberメソッドで設定された，DABroker Libraryのポート番号を取得します。

ポート番号が設定されていない場合は，「40179」を取得します。

形式

public int getPortNumber();

パラメタ

なし

例外

なし

戻り値

int：

DABroker Libraryのポート番号を取得します。

getRowSizeメソッド

説明

JDBCで取り扱うバッファ長を取得します。

形式

public int getRowSize();

パラメタ

なし

例外

なし

戻り値

int：

バッファ長を取得します。指定を省略した場合は，16を取得します。

getServerNameメソッド

説明

setServerNameメソッドで設定された，DABroker Libraryのホスト名を取得します。

DABroker Libraryのホスト名が設定されていない場合は，nullを取得します。

形式

public String getServerName();

パラメタ

なし

例外

なし

戻り値

String：

DABroker Libraryのホスト名またはIPアドレスを取得します。

getSQLWarningIgnoreメソッド

説明

データベースから返される警告をConnectionクラスで保持するかどうかの設定情報を取得します。

形式

public boolean getSQLWarningIgnore();

パラメタ

なし

例外

なし

戻り値

boolean：

警告を保持しないかどうかの設定情報を次の値で取得します。

true
警告を保持しません。

false
警告を保持します。

getSV_EVENT_TRCメソッド

説明

setSV_EVENT_TRCメソッドで設定した，DABroker Libraryとのイベントトレースの取得の有無を取得します。

形式

public boolean getSV_EVENT_TRC();

パラメタ

なし

例外

なし

戻り値

boolean：

トレースの取得の有無を次の値で取得します。

true
取得します。

false
取得しません。

getTRC_NOメソッド

説明

setTRC_NOメソッドで設定した，トレースのエントリ数を取得します。

setTRC_NOメソッドでエントリ数が指定されていない場合は，100を取得します。

形式

public int getTRC_NO();

パラメタ

なし

例外

なし

戻り値

int：

トレースのエントリ数を取得します。

getUapNameメソッド

説明

setUapNameメソッドで設定した，アプリケーション名称を取得します。

setUapNameメソッドでアプリケーション名称が設定されていない場合は，JDBCドライバの製品名称を取得します。

形式

public String getUapName();

パラメタ

なし

例外

なし

戻り値

String：

アプリケーション名称を取得します。

getUserメソッド

説明

setUserメソッドで設定した，データベースアクセスのユーザIDを取得します。

setUserメソッドでユーザIDが設定されていない場合は，nullを取得します。

setUserメソッドでユーザIDを設定し，ユーザIDとパスワードを引数に持つgetConnectionメソッドを呼び出した場合は，getConnectionメソッドで指定したユーザIDを取得します。

形式

public String getUser();

パラメタ

なし

例外

なし

戻り値

String：

ユーザIDを取得します。

setBlockUpdateメソッド

説明

接続データベースがHiRDBの場合，?パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。

このメソッドが呼び出されない場合は，falseを設定します。

この指定は，接続データベースがHiRDBの場合だけ有効です。HiRDB以外のデータベースの場合は，指定の有無にかかわらず，複数のパラメタセットを一つずつ分割して処理します。DABroker Libraryを使用してデータベースに接続するための各種情報の設定については，「4.3　DABroker Libraryの初期設定」を参照してください。

形式

public void setBlockUpdate(boolean Mode);

パラメタ

Mode：

複数のパラメタセットを一度に処理するかどうかを次の値で設定します。

true
複数のパラメタセットを一度に処理します。

false
複数のパラメタセットを一つずつ分割して処理します。

例外

なし

戻り値

なし

setBufferPoolSizeメソッド

説明

受信バッファプール数を設定します。

0を設定した場合，受信バッファプール数は設定されません。この場合，すべての受信バッファをプールします。0未満の値を設定した場合，またはこのメソッドで受信バッファプール数を明示的に設定していない場合は，0を仮定して，すべての受信バッファをプールします。

1025以上の値を指定した場合は，1024を仮定します。

値を仮定した場合は，Exceptionトレースログにメッセージ（KFDJ30010-W）を出力します。ただし，SQLWarningは作成されません。メッセージの詳細については，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ30010-W」を参照してください。受信バッファプール数の設定については，「4.5　受信バッファのプーリングの設定」を参照してください。

形式

public void setBufferPoolSize(int size);

パラメタ

size：

受信バッファプール数を設定するかどうかを指定します。また，受信バッファプール数を設定する場合，受信バッファプールの数を指定します。

次の値で指定します。

0
受信バッファプール数を指定しません。この場合，すべての受信バッファがプールされます。これは，明示的に受信バッファプール数を指定しない場合と同じ動作です。

1～1024
受信バッファプール数を指定する場合に，プールする受信バッファの数を1～1024の範囲で指定します。

例外

なし

戻り値

なし

setBufSizeメソッド

説明

DABroker Libraryからの受信データを格納するためのバッファ長を設定します。

このメソッドが呼び出されない場合は，受信バッファ長として64を仮定します。

1より小さい値を設定した場合は64を仮定します。

16000より大きい値を指定した場合は16000を仮定します。

値を仮定した場合は，Exceptionトレースログにメッセージ（KFDJ30009-W）を出力します。メッセージは，DataSource.getConnection()メソッド，PooledConnection.getConnection()メソッド，またはXAConnection.getConnection()メソッドによって，Connectionオブジェクトを取得するときに出力します。メッセージの詳細については，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「KFDJ30009-W」を参照してください。

BLOBデータなどの長大データを使用する場合，想定されるデータ以上の値を指定してください。

このメソッドの指定値の上限が16000キロバイトのため，BLOBデータなど，16000キロバイトを超える長大データにはアクセスできません。データベース種別がHiRDBの場合は，指定したバイト数を取り出すSTRINGのインタフェース（BLOBデータの部分抽出機能）があるため，ここで指定したサイズ以下のサイズに分割してから取り出してください。BLOBデータの部分抽出機能の詳細については，マニュアル「HiRDB UAP開発ガイド」，およびマニュアル「HiRDB SQLリファレンス」を参照してください。

形式

public void setBufSize(int buf_size);

パラメタ

buf_size：

バッファ長を1～16000の範囲（単位：キロバイト）で指定します。

例外

なし

戻り値

なし

setDatabaseNameメソッド

説明

接続するデータベースの種別を設定します。

このメソッドは，データベースとの接続時に必ず呼び出します。

形式

public void setDatabaseName(String database_name);

パラメタ

database_name：

接続するデータベースの種別を指定します。

接続データベース種別 | 設定する内容※1
HiRDB | "HIRDB"
ORACLE | "ORACLE"
Oracle8i※2 | "ORACLE8I"

注※1

設定する内容には，大文字，小文字および大文字・小文字の混在する内容を指定できます。

注※2

接続データベース種別にOracle8iを指定して，DABroker Library環境設定の「使用するORACLEのバージョン」にORACLE9iを指定した場合，Oracle9iに，ORACLE10gを指定した場合，Oracle10gに接続できます。

例外

引数の内容がnullの場合，または接続データベース種別に上記の内容以外が指定された場合は，SQLExceptionをスローします。

戻り値

なし

setDBEnvメソッド

説明

DABroker Libraryの接続先データベース定義情報を設定します。

接続するデータベースに対応する，DABroker Libraryの接続先データベース定義情報を次の形式で指定します。

データベース種別名：データベース名

このメソッドは，接続するデータベースがDABroker Library-Database Connection Server経由の場合，必ず呼び出します。接続するデータベースがDABroker Library-Database Connection Server経由以外の場合は，設定は無視されます。

形式

public void setDBEnv(String db_env);

パラメタ

db_env：

接続先データベース定義情報を指定します。

例外

なし

戻り値

なし

setDBHostNameメソッド

説明

接続するHiRDBのホスト名を設定します。

このメソッドで指定した値は，接続データベース種別がHiRDBのときだけ有効です。ただし，接続付加情報にHiRDBクライアントの環境変数グループ名を指定している場合は，値をこのメソッドで指定しても有効となりません。

形式

public void setDBHostName(String db_host_name);

パラメタ

db_host_name：

HiRDBのホスト名を指定します。

例外

なし

戻り値

なし

setDescriptionメソッド

説明

接続するデータベースに必要な接続付加情報を設定します。

接続データベース種別 | 設定する内容 | 設定の要否
HiRDB | HiRDBシステムのポート番号，またはHiRDBクライアントの環境変数グループ名※1，※3 | 任意
ORACLE | SQL*Netの接続文字列※1，※2 | 任意
Oracle8i

注※1

省略時には，DABroker Libraryの動作環境定義の指定値が有効となります。

注※2

XA使用時には，XA_OPEN文字列で指定したデータベース名を指定します。

注※3

HiRDBクライアントの環境変数グループ名を指定する場合は，グループ名の先頭に@を付加します。

（例）

Windowsの場合
HiRDBクライアントの環境変数グループ名がHiRDB_ENV_GROUPのときは，次のように指定します。

 @DABENVGRP=HiRDB_ENV_GROUP

UNIXの場合
HiRDBクライアントの環境変数グループ名のパスが/HiRDB_P/Client/HiRDB.iniのときは，次のように指定します。

 @DABENVGRP=/HiRDB_P/Client/HiRDB.ini

@DABENVGRP=＜環境変数グループ名＞を指定する場合は，指定内容に半角の空白を含めないでください。指定内容が次に示す例のどれかに該当する場合，DBIDは正しく設定されません。

（例）

@DABENVGRP=＜環境変数グループ名＞の指定内容に半角スペースを含みます。環境変数グループ名はHiRDB_ENV_GROUP（Windowsの場合），または/HiRDB_P/Client/HiRDB.ini（UNIXの場合）とします。

半角の空白を△で示します。

Windowsの場合

 @△DABENVGRP=HiRDB_ENV_GROUP
 @DABENVGRP△=HiRDB_ENV_GROUP
 @DABENVGRP=△HiRDB_ENV_GROUP
 @DABENVGRP=HiRDB_ENV_GROUP△

UNIXの場合

 @△DABENVGRP=/HiRDB_P/Client/HiRDB.ini
 @DABENVGRP△=/HiRDB_P/Client/HiRDB.ini
 @DABENVGRP=△/HiRDB_P/Client/HiRDB.ini
 @DABENVGRP=/HiRDB_P/Client/HiRDB.ini△

形式

public void setDescription(String description);

パラメタ

description：

接続付加情報を指定します。

例外

なし

戻り値

なし

setEncodLangメソッド

説明

エンコード文字形態を設定します。

Stringオブジェクトの取得時にunicodeから変換する場合，JavaVMの標準エンコードを利用しないで，指定したエンコードを利用します。

なお，UNIXの場合，setEncodLangに指定する言語モードは，DABroker Libraryの言語モードと合わせる必要があります。言語モードは，DABroker Library動作環境定義ファイルの共通設定項目のDAB_LANG（LANG環境変数）で指定します。DABroker Library動作環境定義ファイルについては，「4.24　DABroker Library動作環境定義ファイル」を参照してください。

形式

public void setEncodLang(String encode_lang);

パラメタ

encode_lang：

データ変換で使用する文字エンコーディング情報を指定します。

例外

なし

戻り値

なし

setExecuteDirectModeメソッド

説明

接続データベースがHiRDBの場合，INSERT，UPDATE，DELETEなど，Statementクラスを使用したデータベースの更新で，HiRDBのExecute Direct機能を使用するかどうかを設定します。

このメソッドが呼び出されない場合は，falseを設定します。

この指定は接続データベースがHiRDBの場合だけ有効です。HiRDB以外のデータベースの場合は，指定の有無にかかわらず，Execute Direct機能を使用しません。

形式

public void setExecuteDirectMode(boolean Mode);

パラメタ

Mode：

HiRDBのExecute Direct機能を使用するかどうかを次の値で設定します。

true
Execute Direct機能を使用します。

false
Execute Direct機能を使用しません。

例外

なし

戻り値

なし

setHiRDBCursorModeメソッド

説明

HiRDBで検索時にカーソルが複数のCommitにわたって有効かどうかを設定します。このメソッドが呼び出されない場合は，falseが設定されます。

なお，この機能を使用する場合，マニュアル「HiRDB SQLリファレンス」のDECLARE CURSOR（カーソル宣言）形式1を参照してください。

形式

public void setHiRDBCursorMode(boolean Mode);

パラメタ

Mode：

HiRDBで検索時にカーソルが複数のCommitにわたって有効かどうかを次の値で設定します。

true
カーソルは保持されます。アプリケーションは続けてFetchできます（LOCK TABLE UNTIL DISCONNECTが前提です）。

false
カーソルはクローズされますが，ステートメントは有効です。アプリケーションは，Prepareしないで，再度Executeできます。

例外

なし

戻り値

なし

注意事項

接続データベースがHiRDB以外の場合，指定値は無視されます。

ORACLEでは，常にカーソルは複数のCommit，またはRollbackにわたって有効です。

SELECT，INSERT，DELETE，UPDATE，PURGEおよびCALLのどれかでアクセスする次のスキーマ資源に対して，ほかのユーザが定義系SQL文を発行すると，スキーマ資源にアクセスしていたコネクションをDISCONNECTするまでの間，定義系SQLは排他待ちの状態になります。

表

ビュー

ストアドプロシジャ

ストアドファンクション

抽象データ型

XADataSourceを使用して，バージョンが07-01より前のHiRDBに接続した場合，trueにしても有効になりません。

trueを設定する場合の注意事項

MetaDataを取得する場合，trueを指定してLOCK TABLE UNTIL DISCONNECTをしないで，複数のCommitにわたってFetchをするとエラーが発生します。MetaDataを取得する場合は，trueを設定しないでください。

接続データベースがHiRDBの場合でかつ，検索SQL（SELECT文）に「UNTIL DISCONNECT」を記述した場合は，必ず接続時のプロパティまたはURLにHIRDB_CURSOR=trueを設定するか，このメソッドでtrueを設定してください。これらの設定をしなかった場合，Commitをわたった検索中のResultSetクラスオブジェクトに対してcloseメソッドを実行してもカーソルをクローズしません。

次の表にはアクセスできません。アクセスした場合，HiRDBのエラーになります。

分散表

ディクショナリ表

抽象データ型を含む表

外部表，または外部表を基表とするビュー表

関数呼び出しを指定して導出した名前付きの導出表（ビュー表，WITH句の問い合わせ）

カーソルをオープンする前に，そのカーソルを使用する表に対してUNTIL DISCONNECT指定のLOCK TABLE文を実行しておく必要があります。

ROLLBACKを発行すると，使用しているカーソルはすべて閉じられます。

排他オプションにWITHOUT LOCK WAIT，またはWITHOUT LOCK NOWAITを指定できません。また，クライアント環境変数でデータ保証レベル(PDISLLVL)に0，または1を指定した場合でも2（WITH SHARE LOCK相当）を仮定します。

カーソルがオープンしている場合，同じコネクションで定義系SQLは実行できません。また，カーソルがクローズしている場合，同じコネクションで定義系SQLを実行するとSQLの前処理は無効になります。

SELECT文を実行し，そのSELECT文中で使用している表に対してPURGE TABLE文を実行すると，カーソルはクローズされます。

オープンしているカーソルで指定した表を，同じコネクションの別のステートメントでオープンすることはできません。

次のオペランドを指定する場合は，LOCK文にIN EXCLUSIVE MODEを指定してください。

WITH EXCLUSIVE LOCK

FOR UPDATE句

falseを設定する場合の注意事項

通常，Fetch時，DABroker LibraryにFetchデータをバッファリングするため，Commit直後のFetchでエラーが発生するとは限りません。

MetaDataを取得する場合，falseまたはデフォルトの状態でResultSetのFetch実行中に，Commitを実行するとエラーが発生します。

SELECT，INSERT，DELETE，UPDATE，PURGEおよびCALLのどれかでアクセスする次のスキーマ資源に対して，ほかのユーザが定義系SQL文を発行すると，スキーマ資源にアクセスしていたコネクションをDISCONNECTするまでの間，定義系SQLは排他待ちの状態になります。

表

ビュー

ストアドプロシジャ

ストアドファンクション

setJDBC_IF_TRCメソッド

説明

JDBCインタフェースメソッドトレースの取得の有無を設定します。

このメソッドが呼び出されない場合は，falseを設定します。

なお，別途setLogWriterメソッドで有効なログストリームを指定する必要があります。

形式

public void setJDBC_IF_TRC(boolean flag);

パラメタ

flag：

トレースの取得の有無を次の値で指定します。

true
取得します。

false
取得しません。

例外

なし

戻り値

なし

setLONGVARBINARY_Accessメソッド

説明

LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法を設定します。

なお，次の場合，"LOCATOR"を指定しても"REAL"が指定されたものとみなされます。

接続先データベースがHiRDB以外の場合。

接続先データベースであるHiRDBのHiRDBサーバまたはHiRDBクライアントライブラリのバージョンが07-00以前の場合。

形式

public void setLONGVARBINARY_Access(String Mode);

パラメタ

String Mode：

LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法を，次の値で設定します。デフォルトは，"REAL"です。

"REAL"
実データでアクセスします。

"LOCATOR"
HiRDBの位置づけ子（locator）機能を使用してアクセスします。

例外

なし

戻り値

なし

setNetworkProtocolメソッド

説明

DABroker Libraryとの接続種別を設定します。なお，このメソッドは，データベースとの接続時に必ず呼び出します。

形式

public void setNetworkProtocol(String network_protocol);

パラメタ

network_protocol：

接続種別を指定します。

指定できる接続種別を，次に示します。

接続種別 | 設定する内容※
ネイティブライブラリ接続（ローカルアクセス） | "lib"

注※

設定する内容には，大文字，小文字および大文字・小文字の混在する内容を指定できます。設定できる種別はネイティブライブラリ接続だけです。

例外

引数の内容がnullの場合，または接続種別に指定できる内容以外が指定された場合は，SQLExceptionをスローします。

戻り値

なし

setNotErrorOccurredメソッド

説明

ConnectionEventListener.connectionErrorOccurredの発生を抑止するかどうかを設定します。

ConnectionPooledDataSource，XADataSource使用時に致命的な接続エラーが発生した場合，ConnectionEventListener.connectionErrorOccurredが呼ばれますが，このメソッドで，その呼び出しを抑止できます。

このメソッドが呼び出されない場合は，falseが設定されます。

形式

public void setNotErrorOccurred(boolean Mode);

パラメタ

Mode：

connectionErrorOccurredの発生を抑止するかどうかを次の値で設定します。

true
connectionErrorOccurredを発生させません。

false
connectionErrorOccurredを発生させます。

例外

なし

戻り値

なし

注意事項

通常は，このメソッドを呼び出さないか，falseを設定してください。

ORACLEのFailOver機能，またはHiRDBの再接続機能を使用する場合は，trueを設定してください。

setOSAuthorizeメソッド

説明

OS認証機能を使用してデータベースに接続するかどうかを設定します。

このメソッドが呼び出されない場合は，falseが設定されます。

なお，Oracleに対するOS認証機能を使用する場合は，アプリケーションサーバ，またはWebコンテナサーバをOS認証で使用するユーザで起動する必要があります。

このメソッドは，Oracle9i 9.2.0またはOracle10g 10.1.0に接続する場合だけ有効です。それ以外のバージョンのOracleに接続した場合は動作を保証しません。接続するデータベースがORACLE以外の場合は，指定値に関係なく，OS認証機能を使用しません。

形式

public void setOSAuthorize(boolean Mode);

パラメタ

Mode：

OS認証機能を使用するかどうかを次の値で指定します。

true
OS認証機能を使用します。

false
OS認証機能を使用しません。

例外

なし

戻り値

なし

setPasswordメソッド

説明

データベースアクセスのパスワードを設定します。

パスワードは，getConnectionメソッドの引数でも指定できます。

このメソッドでパスワードを設定し，ユーザIDとパスワードを引数に持つgetConnectionメソッドを呼び出した場合は，getConnectionメソッドで指定したパスワードが優先されます。

形式

public void setPassword(String password);

パラメタ

password：

パスワードを指定します。

例外

なし

戻り値

なし

setPortNumberメソッド

説明

接続するDABroker Libraryのポート番号を設定します。

このメソッドが呼び出されない場合は，ポート番号として「40179」を使用します。

形式

public void setPortNumber(int port_no);

パラメタ

port_no：

DABroker Libraryのポート番号を指定します。

例外

引数の内容が0より小さい場合，SQLExceptionをスローします。

戻り値

なし

setRowSizeメソッド

説明

JDBCで取り扱うバッファ長を，メガバイト単位の数字文字列で指定します。

指定を省略した場合，数字以外を指定した場合，または16より小さい値を指定した場合は16を仮定します。

512より大きい値を指定した場合は512を仮定します。

形式

public void setRowSize(int row_size);

パラメタ

row_size：

バッファ長を16～512の範囲のメガバイト単位で指定します。

例外

なし

戻り値

なし

setServerNameメソッド

説明

接続するDABroker Libraryのホスト名，またはIPアドレスを設定します。

形式

public void setServerName(String server_name);

パラメタ

server_name：

DABroker Libraryのホスト名またはIPアドレスを指定します。

例外

引数の内容がnullの場合，SQLExceptionをスローします。

戻り値

なし

setSQLWarningIgnoreメソッド

説明

データベースから返される警告をConnectionクラスで保持するかどうかの情報を設定します。このメソッドが呼び出されない場合は，falseが設定されます。

形式

public void setSQLWarningIgnore(boolean Mode);

パラメタ

Mode：

警告を保持するかどうかを次の値で設定します。

true
警告を保持しません。

false
警告を保持します。

例外

なし

戻り値

なし

setSV_EVENT_TRCメソッド

説明

DABroker Libraryとのイベントトレースの取得の有無を設定します。

このメソッドが呼び出されない場合は，falseを設定します。

なお，別途setLogWriterメソッドで有効なログストリームを指定する必要があります。

形式

public void setSV_EVENT_TRC(boolean flag);

パラメタ

flag：

トレースの取得の有無を次の値で指定します。

true
取得します。

false
取得しません。

例外

なし

戻り値

なし

setTRC_NOメソッド

説明

トレースのエントリ数を設定します。

このメソッドが呼び出されない場合は，トレースのエントリ数は500となります。

10～1000以外の値が設定された場合は，トレースを取得しません。

形式

public void setTRC_NO(int trc_no);

パラメタ

trc_no：

トレースのエントリ数を10～1000の範囲で指定します。

例外

なし

戻り値

なし

setUapNameメソッド

説明

アプリケーション名称を設定します。

このメソッドが呼び出されない場合は，アプリケーション名称として，JDBCドライバの製品名称をDABroker Libraryに通知します。

設定されたアプリケーション名称は，DABroker LibraryのデータベースアクセストレースのPAPNAME，および拡張データベースアクセストレースのClient Nameに出力されます。

形式

public void setUapName(String uap_name);

パラメタ

uap_name：

アプリケーション名称を指定します。

例外

なし

戻り値

なし

setUserメソッド

説明

データベースアクセスのユーザIDを設定します。

ユーザIDは，getConnectionメソッドの引数でも指定できます。

このメソッドでユーザIDを設定し，ユーザIDとパスワードを引数に持つgetConnectionメソッドを呼び出した場合は，getConnectionメソッドで指定したユーザIDが優先されます。

形式

public void setUser(String user);

パラメタ

user：

ユーザIDを指定します。

例外

なし

戻り値

なし

getRMIDメソッド

説明

setRMIDメソッドで設定した，リソースマネジャの識別子を取得します。

setRMIDメソッドで識別子が設定されていない場合は，1を取得します。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public int getRMID();

パラメタ

なし

例外

なし

戻り値

int：

リソースマネジャの識別子を取得します。

getXACloseStringメソッド

説明

setXACloseStringメソッドで設定した，XA_CLOSE文字列を取得します。

setXACloseStringメソッドでXA_CLOSE文字列が設定されていない場合は，nullを取得します。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public String getXACloseString();

パラメタ

なし

例外

なし

戻り値

String：

XA_CLOSE文字列を取得します。

getXALocalCommitModeメソッド

説明

XA使用時，トランザクションが分散トランザクションでないとき，データベースのオートコミットモードを有効にしているかどうかの設定情報を取得します。

形式

public boolean getXALocalCommitMode();

パラメタ

なし

例外

なし

戻り値

boolean：

XA使用時のオートコミットの設定情報を次の値で取得します。

true
データベースのオートコミットが有効です。

false
データベースのオートコミットは無効です。

getXAOpenStringメソッド

説明

setXAOpenStringメソッドで設定した，XA_OPEN文字列を取得します。

setXAOpenStringメソッドでXA_OPEN文字列が設定されていない場合は，nullを取得します。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public String getXAOpenString();

パラメタ

なし

例外

なし

戻り値

String：

XA_OPEN文字列を取得します。

getXAThreadModeメソッド

説明

setXAThreadModeメソッドで設定した，XA使用時のスレッドモードを取得します。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public boolean getXAThreadMode();

パラメタ

なし

例外

なし

戻り値

boolean：

XA使用時のスレッドモードを次の値で取得します。

true
マルチスレッドモード

false
シングルスレッドモード

setRMIDメソッド

説明

リソースマネジャの識別子を設定します。

このメソッドが呼び出されない場合は，識別子は1となります。

複数のリソースマネジャを同時に使用する場合，リソースマネジャごとに一意な識別子を設定してください。

リソースマネジャの識別子については，各DBMSのマニュアルを参照してください。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public void setRMID(int rmid);

パラメタ

rmid：

リソースマネジャの識別子を，1以上の正の数値で指定します。

例外

引数の内容が1より小さい場合，SQLExceptionをスローします。

戻り値

なし

setXACloseStringメソッド

説明

XA_CLOSE文字列を設定します。なお，XA_CLOSE文字列については，各DBMSのマニュアルを参照してください。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public void setXACloseString(String xa_string);

パラメタ

xa_string：

XA_CLOSE文字列を指定します。

例外

なし

戻り値

なし

setXALocalCommitModeメソッド

説明

XA使用時，トランザクションが分散トランザクションでないとき，データベースのオートコミットモードを有効にするかどうかを設定します。

このメソッドが呼び出されない場合は，falseを設定します。

使用するアプリケーションサーバでFullJTA（J2ee1.3）の機能を使用する場合は，必ずtrueを設定してください。

形式

public void setXALocalCommitMode(boolean AutoCommitMode);

パラメタ

AutoCommitMode：

オートコミットを次の値で設定します。

true
データベースのオートコミットを有効にします。

false
データベースのオートコミットを無効にします。

例外

なし

戻り値

なし

setXAOpenStringメソッド

説明

XA_OPEN文字列を設定します。なお，XA_OPEN文字列については，各DBMSのマニュアルを参照してください。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public void setXAOpenString(String xa_string);

パラメタ

xa_string：

XA_OPEN文字列を指定します。

例外

なし

戻り値

なし

setXAThreadModeメソッド

説明

XA使用時のスレッドモードを設定します。

このメソッドが呼び出されない場合は，falseを設定します。

リソースマネジャが提供するXAライブラリがマルチスレッド対応で，アプリケーションがマルチスレッドで動作する場合は，trueを設定してください。

このメソッドは，JdbcDbpsvXADataSourceクラスでだけ提供しています。

形式

public void setXAThreadMode(boolean mode);

パラメタ

mode：

XA使用時のスレッドモードを次の値で指定します。

true
マルチスレッドモード

false
シングルスレッドモード

例外

なし

戻り値

なし

4.20　Blobインタフェース

説明

Blobインタフェースでは，主に次の機能を提供します。

Blobデータの取得

Blobインタフェースの提供する各メソッドの詳細，および使用方法については，JavaSoft提供のJDBC関連ドキュメントを参照してください。

注意事項

ResultSetのgetBlobメソッド，またはCallableStatementのgetBlobメソッドで取得したBlobオブジェクト
ResultSetのgetBlobメソッド，またはCallableStatementのgetBlobメソッドで取得したBlobオブジェクトを使用する場合，ロケータアクセスであるかどうかで動作が異なります。

ロケータアクセスでない場合

ResultSetのgetBlobメソッド，またはCallableStatementのgetBlobメソッドで取得した時点でのデータを?パラメタの値とします。

ロケータアクセスの場合

setBlob()メソッドを呼び出したとき，内部でBlob.getBytes(1, (int)(Blob.length()))を実行します。?パラメタの値はBlob.getBytes(1, (int)(Blob.length()))で得られたデータとなります。

制限事項

次のメソッドは未サポートです。呼び出しをするとSQLExceptionをスローします。

setBinaryStream

setBytes

truncate

4.21　DABroker Libraryで使用するコマンドの一覧

DABroker Libraryで使用するコマンドの一覧を，次の表に示します。

表4-89　DABroker Libraryで使用するコマンドの一覧

コマンド名
主な機能

dabsetupコマンド

DABroker Libraryのセットアップ

4.22　dabsetup（DABroker Libraryのセットアップ）

UNIXの場合，DABroker Libraryをセットアップするには，dabsetupコマンドを使用します。

なお，dabsetupコマンドを実行する前に，次の操作が必要です。

DABroker Libraryの管理ユーザの登録

DABroker Libraryインストールディレクトリ（/opt/DABroker）の属性（ユーザ，グループ）の変更

DABroker Libraryのセットアップについては，「4.3　DABroker Libraryの初期設定」を参照してください。

コマンドの格納先

/opt/DABroker/bin/

＜この節の構成＞

(1)　形式

(2)　機能

(3)　引数

(4)　入力例

(5)　注意事項

(6)　DABroker Library運用ディレクトリの削除について

(1)　形式

dabsetup [-d] [<パス名>]

(2)　機能

DABroker Libraryの運用ディレクトリを設定します。dabsetupコマンドを実行すると，インストールディレクトリのディレクトリおよびファイルが，<パス名>に指定した運用ディレクトリに移動されます。

また，-dオプションを指定することで，運用ディレクトリを削除できます。

(3)　引数

-d

DABroker Library運用ディレクトリ下のDABroker Libraryシステムを，OSから削除します。DABroker Library運用ディレクトリを設定する場合は，このオプションを指定しないでください。

<パス名>

DABroker Libraryを運用したい任意のディレクトリを指定します。

ここで指定したディレクトリ下に"DABroker"ディレクトリが作成されて，インストールディレクトリのディレクトリおよびファイルが移動されます。

指定を省略した場合，DABroker Library運用ディレクトリはDABroker Libraryのインストールディレクトリ（/opt/DABroker）となります。なお，リモートファイルシステム上のディレクトリ，リモートファイルシステム，またはローカルファイルとリンクしたディレクトリは指定できません。

(4)　入力例

DABroker Library運用ディレクトリを設定する場合

dabsetup /home

DABroker Libraryシステムを削除する場合

dabsetup -d /home

(5)　注意事項

dabsetupコマンドは，スーパーユーザで実行してください。

dabsetupコマンドは，DABroker Libraryが停止中に実行してください。

dabsetupコマンドでDABroker Libraryを再度セットアップする場合，運用ディレクトリのDABroker Libraryの動作状態は初期状態になります。ただし，ユーザが作成したDABroker Library動作環境定義ファイル，ログファイル，およびトレースファイルなどはセットアップされません。

運用ディレクトリとして指定したパスが，ファイルとして存在する場合，dabsetupコマンドの実行を中止します。

運用ディレクトリとして指定したパスに，DABroker Libraryが提供するディレクトリと同一名称のファイル，またはDABroker Libraryが提供するファイルと同一名称のディレクトリが存在する場合，dabsetupコマンドの実行を中止します。

運用ディレクトリとして指定したパスが，ディレクトリとして存在する場合，上書きするかどうかを確認します。なお，上書きすることを選択しても，指定したディレクトリに存在するDABroker Libraryがセットアップしないファイル（ユーザが作成したDABroker Library動作環境定義ファイル，ログファイル，およびトレースファイルなど）は保証されます。

dabsetupコマンドの実行が失敗した場合，dabsetupコマンドの実行を終了して，dabsetupコマンドを実行する前の状態に戻します。

(6)　DABroker Library運用ディレクトリの削除について

dabsetupコマンドでの運用ディレクトリの削除に成功した場合

インストールディレクトリに，dabsetupコマンドなどのシステムで必要なファイルが残ります。インストールディレクトリに残ったファイルは，インストーラで削除してください（アンインストールしてください）。

ユーザが作成したDABroker Library動作環境定義ファイルは，dabsetupコマンドでは削除されません。必要に応じて削除してください。

dabsetupコマンドでの運用ディレクトリの削除に失敗した場合

残ったディレクトリおよびファイルをOSのrmコマンドで削除してください。

4.23　DABroker Libraryで使用するファイルの一覧

DABroker Libraryで使用するファイルの一覧を，次の表に示します。

表4-90　DABroker Libraryで使用するファイルの一覧

ファイル名称 | 分類 | 概要 | 参照先
dasysconf※ | DABroker Library動作環境定義ファイル | DABroker Libraryの動作に関する情報を定義します。 | 4.24

注※

Windowsの場合は，環境設定ユーティリティを使用してDABroker Libraryの動作環境を設定したときに，このファイルが作成されます。DABroker Libraryの動作環境の設定については，「4.3　DABroker Libraryの初期設定」を参照してください。

4.24　DABroker Library動作環境定義ファイル

＜この節の構成＞

(1)　形式

(2)　ファイルの格納先

(3)　機能

(4)　注意事項

(1)　形式

DABroker Library動作環境定義ファイルの形式について，OSごとに説明します。

(a)　Windowsの場合

環境設定ユーティリティを使用してDABroker Libraryの動作環境を設定したときに，次のように環境変数が設定されます。

<環境変数>=<値>

DABroker Library動作環境定義ファイルに設定される項目については，「4.25　共通設定項目」，「4.26　拡張データベースアクセストレース設定項目」，「4.27　リモートアクセス設定項目」，および「4.28　for C++設定項目」を参照してください。

(b)　UNIXの場合

次のように環境変数を指定します。

<環境変数>=<値>

指定方法

#で始まる行はコメントとみなされます。

「=」の前後にスペースまたはタブがある場合はエラーとなります。

値に半角スペースを使用する場合は，'（シングルクォーテーション）で値を囲んで指定してください。
（例）DABTMP='/tmp/da b'

値の後ろに半角スペース，タブおよび#以外の文字を記載した場合は，エラーとなります。

値には，「$設定項目」で指定する値を引き継ぐことはできません。

このファイルはDABブロックとOTHERSブロックで構成されます。各ブロックの設定内容を次に示します。

DABブロック

DABroker Libraryの動作環境を設定します。

DABroker Libraryでは，設定項目をチェックし，不正な名称などを指定した場合はエラーになります。なお，ここで指定する項目については，「4.25　共通設定項目」，「4.26　拡張データベースアクセストレース設定項目」，および「4.27　リモートアクセス設定項目」を参照してください。

OTHERSブロック

DBMSなどの動作環境を設定します。

DABroker Libraryでは，設定項目をチェックしません。このセクションに指定されたすべての項目を有効とします。なお，ここで指定する項目については，「4.29　HiRDBの設定項目」および「4.30　ORACLEの設定項目」を参照してください。

(2)　ファイルの格納先

Windowsの場合
<DABroker Library運用ディレクトリ>¥conf

UNIXの場合
<DABroker Library運用ディレクトリ>/conf

<DABroker Library運用ディレクトリ>は，<DABroker Libraryインストールディレクトリ>です。

UNIXの場合，サンプルファイル（/opt/DABroker/sample/dasysconf）をコピーしてファイルを作成してください。

(3)　機能

DABroker Libraryの動作に関する情報を定義します。

UNIXの場合，DABroker Library動作環境定義ファイルで定義する内容は，シェルの環境変数として設定することもできます。その場合，DABroker Library動作環境定義ファイルで設定した値よりもシェルの環境変数として設定した値が優先されます。

(4)　注意事項

値を変更しない設定項目は削除しないでください。

設定項目のexportは不要です。

DABroker Libraryの起動中は，DABroker Library動作環境定義ファイルを変更しないでください。

4.25　共通設定項目

接続するデータベースに関係なく，共通に設定する項目です。

「4.27　リモートアクセス設定項目」で設定する，次の項目についても有効になります。

Windowsの場合

HiRDBのBLOB型データ受取バッファサイズ

ORACLEのLONG型データ受取バッファサイズ

UNIXの場合

DABHIRDBA_BLOBBUFSIZE（HiRDBのBLOB型データ受取バッファサイズ）

DABORADBA_LONGBUFSIZE（ORACLEのLONG型データ受取バッファサイズ）

ここでの設定内容を，次に示します。

＜この節の構成＞

DAB_LANG（LANG環境変数）

DABTMP（作業ディレクトリ）

DABSVLOGSIZE（ログファイルサイズ［dabsv.log］）

DABSELECTCOLCNT（表検索カラム数）

DABSELECTINFCNT（更新・検索条件カラム数）

DABORACLE_TYPE（使用するORACLEのバージョン）

DABSQL_HiRDB_DICTIONARY_DATATYPE（HiRDBのディクショナリ表のデータ属性）

DAB_HIRDB_DBINF_ESC（HiRDB環境変数区切り文字）

DABEXSQL_TRC_LINE（拡張データベースアクセストレースを取得する）

トレースファイルサイズ

DABXA_LOG_ERROR（XAトレースを取得する）

DAB_LANG（LANG環境変数）

この項目は，Windowsでは設定されません。

標準値

AIX，またはLinuxの場合
C

HP-UXの場合
ja_JP.SJIS

指定範囲

表4-91　LANG環境変数に指定できる値

言語モード
AIX
の場合
HP-UX
の場合
Linux
の場合

SJISモード
Ja_JP
Ja_JP.IBM-932
Ja_JP.IBM-943
ja_JP.SJIS
ja_JP.SJIS
japanese.sjis

日本語EUCモード
ja_JP
ja_JP.IBM-eucJP
ja_JP.EUC
ja_JP.UJIS
ja_JP.eucJP
ja_JP
ja_JP.eucjp
ja_JP.ujis
japanese
japanese.euc
Ja_JP

ASCIIモード
C
C
C

UTF-8モード
UTF-8
UTF-8※1
UTF-8

注※1　DABroker Libraryの使用環境のlocale（LANG,LC_ALL）には，必ず使用するUTF-8のロケールを設定してください。

注※2　HiRDB使用時に指定できます。

説明

HiRDB，またはOracle使用時に使用する母国語（日本語，英語など）および文字コード（SJISコードなど）を設定します。

各データベースで使用する言語モードは，必ずDABroker Libraryの言語モードと合わせてください。データベースとDABroker Libraryの言語モードが異なっている場合の動作は保証されません。

DABroker Libraryを日本語EUCモード，ASCIIモード，またはUTF-8モードで動作させた場合，メッセージは英文で出力されます。

注意事項

DABroker LibraryのLANG環境変数にSJISモードが設定されている場合，JDBCではJavaVMの標準エンコードセットを利用して文字変換を実施します。このため，データベースをSJISモードで構築し，JavaVMがEUCモードのエンコードセットを標準としている場合，データベースにはEUCモードで格納されます。データベースにSJISモードで格納するためには，プロファイルまたはURLに「ENCODELANG=SJIS」を設定します。

DABTMP（作業ディレクトリ）

標準値

Windowsの場合
<DABroker Library運用ディレクトリ>¥tmp

UNIXの場合
<DABroker Library運用ディレクトリ>/tmp

指定範囲

パーティションを圧迫しない，任意のディレクトリを指定します。

ただし，Windowsの場合，ネットワークドライブ上のディレクトリは指定できません。また，指定したディレクトリのアクセス権限として，システムにフルコントロールを指定してください。

UNIXの場合，DABroker Libraryの管理ユーザは，ディレクトリにアクセスできる権限（READおよびWRITE）が必要です。

説明

DABroker Libraryの作業ディレクトリを指定します。このディレクトリは，予約処理用のSQLの格納および，処理途中で作成される一時ファイルの格納などに使用されます。

なお，UNIXの場合，ここで/tmpを指定したら，OSの再起動時に，/tmpディレクトリ下に作成されたすべてのファイルは削除されます。

DABSVLOGSIZE（ログファイルサイズ［dabsv.log］）

標準値

64（キロバイト）

指定範囲

0または64～32767（キロバイト）

説明

DABroker Libraryのログを取得するファイルの容量を設定します。ログは，<DABroker Library運用ディレクトリ>¥spool¥dabsv.log（UNIXの場合，<DABroker Library運用ディレクトリ>/spool/dabsv.log）に出力されます。

0を設定した場合
ファイルの容量は無限大になります。

64～32767を設定した場合
設定した値がファイルの容量になります。

注意事項

ログファイルが満杯になったら，ラップアラウンドでログを取得します。ラップアラウンドした場合，１世代前のバックアップファイル（dabsv.logold）を作成し，１世代だけを管理します。

DABSELECTCOLCNT（表検索カラム数）

標準値

0

指定範囲

0または1～2147483647

説明

表検索用の領域として確保する表カラムの個数を指定します。

0を設定した場合
DBMSに対して表カラムの個数を要求するSQLを発行します。DBMSから返された結果を基に，表検索用の領域を確保します。

1～2147483647を設定した場合
表カラムの個数が指定した値より少ない場合，DBMSに対して表カラムの個数を要求するSQLを発行しません。このため，SQLを発行する場合より処理性能が向上します。ただし，検索を実行するたびに次に示す大きさのメモリが必要になるため，動作環境を考慮して値を設定してください。よく検索する表のカラム数を大きく超える値を設定した場合，性能劣化の原因になることがあります。
HiRDB，ORACLEの場合：1カラム当たり128バイト
表カラムの個数が指定した値より多い場合，DBMSに対して表カラムの個数を要求するSQLを発行します。DBMSから返された結果を基に，表検索用の領域を確保します。

DABSELECTINFCNT（更新・検索条件カラム数）

標準値

0

指定範囲

0または1～2147483647

説明

表の更新・検索用の領域として確保する，入力項目（パラメタ）の個数を指定します。

0を設定した場合
DBMSに対して入力項目の個数を要求するSQLを発行します。DBMSから返された結果を基に，表の更新・検索用の領域を確保します。

1～2147483647を設定した場合
入力項目の個数が指定した値より少ない場合，DBMSに対して入力項目の個数を要求するSQLを発行しません。このため，SQLを発行する場合より処理性能が向上します。ただし，更新・検索を実行するたびに次に示す大きさのメモリが必要になるため，動作環境を考慮して値を設定してください。よく更新・検索する表の入力項目の個数を大きく超える値を設定した場合，性能劣化の原因になることがあります。
HiRDB，ORACLEの場合：1カラム当たり128バイト
入力項目の個数が指定した値より多い場合，DBMSに対して入力項目の個数を要求するSQLを発行します。DBMSから返された結果を基に，表の更新・検索用の領域を確保します。

DABORACLE_TYPE（使用するORACLEのバージョン）

標準値

Windowsの場合
ORACLE9i

AIX，またはLinuxの場合
817

HP-UXの場合
805

指定範囲

Windowsの場合
ORACLE7，ORACLE9iまたはORACLE10g

AIX，またはLinuxの場合
920，または101

HP-UXの場合
901，920，または101

説明

使用するORACLEのバージョンを設定します。

901：Oracle9i R9.0.1

920：Oracle9i R9.2.0

101：Oracle10g R10.1.0

DABSQL_HiRDB_DICTIONARY_DATATYPE（HiRDBのディクショナリ表のデータ属性）

標準値

C

指定範囲

MまたはC

説明

HiRDBのディクショナリ表の列属性を指定します。

Mを設定した場合
混在文字データ（MVARCHAR）として処理します。

Cを設定した場合
文字データ（VARCHAR）として処理します。

注意事項

ここでの指定とHiRDBで使用されているディクショナリ表のデータ属性が異なる場合は，結果不正やSQLエラーになる場合があります。

DAB_HIRDB_DBINF_ESC（HiRDB環境変数区切り文字）

標準値

@

指定範囲

@　!　$　%　&　*　+　-　/　:　?　¥　|

説明

HiRDB環境変数区切り文字を指定します。

注意事項

特に問題がない場合，区切り文字には@を使用してください。

区切り文字は必ず半角1文字で指定してください。全角文字は指定できません。

DABroker LibraryからHiRDBクライアント環境変数グループを指定してデータベースと接続する場合は，標準値「@」を指定してください。

DABEXSQL_TRC_LINE（拡張データベースアクセストレースを取得する）

標準値

Windowsの場合
OFF

UNIXの場合
-1

指定範囲

Windowsの場合
OFFまたはON

UNIXの場合
-1，0，または1024～32767（行）

説明

拡張データベースアクセストレースを取得するかどうかを設定します。

Windowsの場合

OFF（チェックなし）を設定した場合
拡張データベースアクセストレースを取得しません。

ON（チェックあり）を設定した場合
拡張データベースアクセストレースを取得します。この場合，トレースファイルサイズを指定します。

なお，拡張データベースアクセストレースのファイルの出力行数は，トレースファイルサイズの設定値に従います。

UNIXの場合

-1を設定した場合
拡張データベースアクセストレースを取得しません。

0を設定した場合
拡張データベースアクセストレースを取得します。出力行数は，無限大となります。

1024～32767を設定した場合
拡張データベースアクセストレースを取得します。出力行数は，設定した数値分となります。

拡張データベースアクセストレースファイルは，1行に134バイトまで出力され，出力行数はここでの設定値に従います。ただし，ヘッダは行数に含まれません。

トレースファイルサイズ

この項目は，UNIXでは設定不要です。

標準値

1024（単位：行）

指定範囲

0，または1024～32767

説明

DABEXSQL_TRC_LINE（拡張データベースアクセストレースを取得する）をONにした場合，トレースファイルサイズを指定します。

拡張データベースアクセストレースのトレースファイルサイズを指定します。

0を設定した場合
出力行数は，無限大となります。

1024～32767を設定した場合
拡張データベースアクセストレースを取得します。出力行数は，設定した数値分となります。

なお，拡張データベースアクセストレースのファイルは，1行に134バイトまで出力されます。拡張データベースアクセストレースのファイルの出力行数は，ここでの設定値に従います。ただし，ヘッダは行数に含まれません。

DABXA_LOG_ERROR（XAトレースを取得する）

標準値

ON

指定範囲

ONまたはOFF

説明

XAインタフェースでエラーを検知した場合，エラートレースを取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
エラートレースを取得しません。

ON（チェックあり）を設定した場合
エラートレースを取得します。

XAトレースは，DABroker Library運用ディレクトリ下のspoolディレクトリにdb_xainfo.logというファイル名で取得されます。XAトレースファイル（db_xainfo.log）はテキスト形式なので，任意のテキストエディタで参照してください。

XAトレースファイルは，運用期間に応じてファイルサイズが増加するため，定期的に削除する必要があります。

4.26　拡張データベースアクセストレース設定項目

拡張データベースアクセストレースで取得する項目の設定内容を次に示します。

ここでの設定は，DABEXSQL_TRC_LINE（拡張データベースアクセストレースを取得する）に0または1024～32767を指定した場合に有効になります。

すべての項目を設定する必要はありません。省略した場合，標準値が仮定されます。また，「ON」が設定された項目に該当する，すべてのデータベースへの要求がなかった場合，拡張データベースアクセストレースにはヘッダ（出力項目名）だけが出力されます。

＜この節の構成＞

DABSQL_TRC_CANCEL（CANCEL）

DABSQL_TRC_CLOSE（CLOSE）

DABSQL_TRC_COMMIT（COMMIT）

DABSQL_TRC_CONNECT（CONNECT）

DABSQL_TRC_DECLARE（DECLARE）

DABSQL_TRC_DESCRIBE（DESCRIBE）

DABSQL_TRC_DISCONNECT（DISCONNECT）

DABSQL_TRC_EXECUTE（EXECUTE）

DABSQL_TRC_FETCH（FETCH）

DABSQL_TRC_LOGGING（LOGGING）

DABSQL_TRC_LOGLESS（LOGLESS）

DABSQL_TRC_PREPARE（PREPARE）

DABSQL_TRC_ROLLBACK（ROLLBACK）

DABSQL_TRC_OPEN（OPEN）

DABSQL_TRC_ATTACH（ATTACH）

DABSQL_TRC_ATTRGET（ATTRGET）

DABSQL_TRC_ATTRSET（ATTRSET）

DABSQL_TRC_BIND（BIND）

DABSQL_TRC_CHARFORM（CHARFORM）

DABSQL_TRC_CHARID（CHARID）

DABSQL_TRC_DEFINE（DEFINE）

DABSQL_TRC_DESALLOC（DESALLOC）

DABSQL_TRC_DESCANY（DESCANY）

DABSQL_TRC_DESFREE（DESFREE）

DABSQL_TRC_DETACH（DETACH）

DABSQL_TRC_ENVCREATE（ENVCREATE）

DABSQL_TRC_ERRGET（ERRGET）

DABSQL_TRC_GETPIECE（GETPIECE）

DABSQL_TRC_HDLALLOC（HDLALLOC）

DABSQL_TRC_HDLFREE（HDLFREE）

DABSQL_TRC_LOBCLOSE（LOBCLOSE）

DABSQL_TRC_LOBLEN（LOBLEN）

DABSQL_TRC_LOBOPEN（LOBOPEN）

DABSQL_TRC_LOBREAD（LOBREAD）

DABSQL_TRC_LOBWRITE（LOBWRITE）

DABSQL_TRC_PARAMGET（PARAMGET）

DABSQL_TRC_SESBEGIN（SESBEGIN）

DABSQL_TRC_SESEND（SESEND）

DABSQL_TRC_SETPIECE（SETPIECE）

DABSQL_TRC_GETDIAG（GETDIAG）

DABSQL_TRC_AUTO_COMMIT_OFF（AUTO COMMIT OFF）

DABSQL_TRC_AUTO_COMMIT_ON（AUTO COMMIT ON）

DABSQL_TRC_GET_INFO（GET INFO）

DABSQL_TRC_SET_INFO（SET INFO）

DABSQL_TRC_EXECUTE_DIRECT（EXECUTE DIRECT）

DABSQL_TRC_CANCEL（CANCEL）

標準値

ON

指定範囲

ONまたはOFF

説明

DBMSに対する処理中断要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_CLOSE（CLOSE）

標準値

ON

指定範囲

ONまたはOFF

説明

カーソルを閉じる要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_COMMIT（COMMIT）

標準値

ON

指定範囲

ONまたはOFF

説明

トランザクションの正常終了，更新を有効にする要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_CONNECT（CONNECT）

標準値

ON

指定範囲

ONまたはOFF

説明

データベースとの接続要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_DECLARE（DECLARE）

標準値

ON

指定範囲

ONまたはOFF

説明

前処理したSELECTに対してカーソルを宣言する要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_DESCRIBE（DESCRIBE）

標準値

ON

指定範囲

ONまたはOFF

説明

前処理したSQLの情報を取得する要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
取得しません。

ON（チェックあり）を設定した場合
取得します。

DABSQL_TRC_DISCONNECT（DISCONNECT）

標準値

ON

指定範囲

ONまたはOFF

説明

トランザクションを正常終了，切り離し要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_EXECUTE（EXECUTE）

標準値

ON

指定範囲

ONまたはOFF

説明

前処理したSQLの実行要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_FETCH（FETCH）

標準値

ON

指定範囲

ONまたはOFF

説明

行を読み込んでカーソルを進める要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_LOGGING（LOGGING）

標準値

ON

指定範囲

ONまたはOFF

説明

LOGGING要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_LOGLESS（LOGLESS）

標準値

ON

指定範囲

ONまたはOFF

説明

LOGLESS要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_PREPARE（PREPARE）

標準値

ON

指定範囲

ONまたはOFF

説明

SQLの前処理要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_ROLLBACK（ROLLBACK）

標準値

ON

指定範囲

ONまたはOFF

説明

トランザクションを取り消し，更新を無効にする要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_OPEN（OPEN）

標準値

ON

指定範囲

ONまたはOFF

説明

カーソルの位置づけ要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_ATTACH（ATTACH）

標準値

ON

指定範囲

ONまたはOFF

説明

サーバとのアクセスパス作成要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_ATTRGET（ATTRGET）

標準値

ON

指定範囲

ONまたはOFF

説明

ハンドルの属性取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_ATTRSET（ATTRSET）

標準値

ON

指定範囲

ONまたはOFF

説明

ハンドルの属性設定要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_BIND（BIND）

標準値

ON

指定範囲

ONまたはOFF

説明

パラメタのバインド要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_CHARFORM（CHARFORM）

標準値

ON

指定範囲

ONまたはOFF

説明

キャラクタセットフォームの取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_CHARID（CHARID）

標準値

ON

指定範囲

ONまたはOFF

説明

キャラクタセットIDの取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_DEFINE（DEFINE）

標準値

ON

指定範囲

ONまたはOFF

説明

パラメタの定義要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_DESALLOC（DESALLOC）

標準値

ON

指定範囲

ONまたはOFF

説明

記述子の領域確保の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_DESCANY（DESCANY）

標準値

ON

指定範囲

ONまたはOFF

説明

オブジェクトの記述要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_DESFREE（DESFREE）

標準値

ON

指定範囲

ONまたはOFF

説明

記述子の領域解放の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_DETACH（DETACH）

標準値

ON

指定範囲

ONまたはOFF

説明

サーバとのアクセスパス削除要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_ENVCREATE（ENVCREATE）

標準値

ON

指定範囲

ONまたはOFF

説明

環境作成要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_ERRGET（ERRGET）

標準値

ON

指定範囲

ONまたはOFF

説明

エラー情報取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_GETPIECE（GETPIECE）

標準値

ON

指定範囲

ONまたはOFF

説明

ピース情報取得要求の情報を取得するかどうかを指定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_HDLALLOC（HDLALLOC）

標準値

ON

指定範囲

ONまたはOFF

説明

ハンドルの領域確保の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_HDLFREE（HDLFREE）

標準値

ON

指定範囲

ONまたはOFF

説明

ハンドルの領域解放の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_LOBCLOSE（LOBCLOSE）

標準値

ON

指定範囲

ONまたはOFF

説明

BFILEデータのクローズ要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_LOBLEN（LOBLEN）

標準値

ON

指定範囲

ONまたはOFF

説明

LOBデータの長さ取得要求の情報を取得するかどうかを指定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_LOBOPEN（LOBOPEN）

標準値

ON

指定範囲

ONまたはOFF

説明

BFILEデータのオープン要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_LOBREAD（LOBREAD）

標準値

ON

指定範囲

ONまたはOFF

説明

LOBデータの読み込み要求の情報を取得するかどうかを指定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_LOBWRITE（LOBWRITE）

標準値

ON

指定範囲

ONまたはOFF

説明

LOBデータの書き込み要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_PARAMGET（PARAMGET）

標準値

ON

指定範囲

ONまたはOFF

説明

パラメタ情報取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_SESBEGIN（SESBEGIN）

標準値

ON

指定範囲

ONまたはOFF

説明

セッション開始要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_SESEND（SESEND）

標準値

ON

指定範囲

ONまたはOFF

説明

セッション終了要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_SETPIECE（SETPIECE）

標準値

ON

指定範囲

ONまたはOFF

説明

ピース情報設定要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

この項目は，DABroker Libraryのデータベース種別にOracle8iを設定している場合だけ有効です。

DABSQL_TRC_GETDIAG（GETDIAG）

標準値

ON

指定範囲

ONまたはOFF

説明

エラー情報取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_AUTO_COMMIT_OFF（AUTO COMMIT OFF）

標準値

ON

指定範囲

ONまたはOFF

説明

オートコミットモード解除要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_AUTO_COMMIT_ON（AUTO COMMIT ON）

標準値

ON

指定範囲

ONまたはOFF

説明

オートコミットモード設定要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_GET_INFO（GET INFO）

標準値

ON

指定範囲

ONまたはOFF

説明

接続後の動作情報取得要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_SET_INFO（SET INFO）

標準値

ON

指定範囲

ONまたはOFF

説明

接続後の動作情報設定要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

DABSQL_TRC_EXECUTE_DIRECT（EXECUTE DIRECT）

標準値

ON

指定範囲

ONまたはOFF

説明

SQLの前処理後に実行する要求の情報を取得するかどうかを設定します。

OFF（チェックなし）を設定した場合
情報を取得しません。

ON（チェックあり）を設定した場合
情報を取得します。

4.27　リモートアクセス設定項目

「4.25　共通設定項目」で設定した項目以外に設定できる項目です。ここでの設定内容を，次に示します。

＜この節の構成＞

DABHIRDBA_BLOBBUFSIZE（HiRDBのBLOB型データ受取バッファサイズ）

DABORADBA_LONGBUFSIZE（ORACLEのLONG型データ受取バッファサイズ）

DABLANGMODE（漢字コードセット）

DABHIRDBA_BLOBBUFSIZE（HiRDBのBLOB型データ受取バッファサイズ）

標準値

4096（バイト）

指定範囲

0，または1～2147483647（バイト）

説明

HiRDBからBLOB型データを抽出する場合の受け取りサイズを指定します。

このデータ型の場合，HiRDBでは最大2147483647バイトのデータの存在が考えられますが，DABroker Libraryではここで指定した値までのデータを受け取り，以降のデータは切り捨てます。

0を指定した場合，DBMSの定義長分の領域長を仮定します。ただし，実際に格納されているデータの大きさにかかわらず，無条件に定義長分の領域が確保されるため，メモリ効率が悪くなることがあります。格納されているデータの最大長がわかっている場合は，その値を指定することを推奨します。

DABORADBA_LONGBUFSIZE（ORACLEのLONG型データ受取バッファサイズ）

標準値

4096（バイト）

指定範囲

0，または1～2147483647（バイト）

説明

ORACLEから，LONG型データを抽出する場合の受け取りサイズを指定します。

このデータ型の場合，ORACLEでは最大2147483647バイトのデータの存在が考えられますが，DABroker Libraryではここで指定した値までのデータを受け取り，以降のデータは切り捨てます。

0を指定した場合，DBMSの定義長分の領域長を仮定します。ただし，実際に格納されているデータの大きさにかかわらず，無条件に定義長分の領域が確保されるため，メモリ効率が悪くなることがあります。格納されているデータの最大長がわかっている場合は，その値を指定することを推奨します。

この項目は，データベース種別にOracle8iを設定している場合は設定しません。

DABLANGMODE（漢字コードセット）

この項目は，UNIXでは設定不要です。

標準値

SJIS（シフトJISモード）

指定範囲

SJIS（シフトJISモード），EUC（日本語EUCモード），ASCII（ASCIIモード），またはUTF-8（UTF-8モード）

説明

DABroker Libraryが稼働する言語モードを設定します。

各言語モードで操作できるデータベースを次に示します。

表4-92　各言語モードで操作できるデータベース

データベース | DABroker Libraryでの設定
シフトJISモード | 日本語EUCモード | ASCIIモード | UTF-8モード
HiRDB | ○ | ○ | ○ | ○
ORACLE | ○ | ○ | ○ | ○

（凡例）

○：操作できます。

各データベースで使用する言語モードは，必ずDABroker Libraryの言語モードと合わせてください。データベースとDABroker Libraryの言語モードが異なっている場合は動作を保証しません。

DABroker Libraryを日本語EUCモード，ASCIIモード，またはUTF-8モードで動作させた場合，メッセージは英文で出力されます。

4.28　for C++設定項目

DABroker for C++のイベントトレースについて設定します。なお，for C++設定項目は，WindowsでDABroker for C++を使用してデータベースに接続する場合の設定項目です。UNIXでは，この項目は設定不要です。

トレースの取得レベル，取得種別など，イベントトレースの詳細については，マニュアル「DABroker for C++」を参照してください。

＜この節の構成＞

DABCPP_EVTTRC_SIZE（トレース取得サイズ）

DABCPP_EVTTRC_LEVEL（トレース取得レベル）

DABCPP_EVTTRC_SIZE（トレース取得サイズ）

標準値

32（キロバイト）

指定範囲

-1，0，または10～32767（キロバイト）

説明

イベントトレースを取得するかどうかを指定します。また，取得する場合は，トレースを取得するファイルの容量を設定します。なお，トレースファイルは，<DABroker Library運用ディレクトリ>¥spool¥dabevttrccpp1に作成されます。

-1を設定した場合
イベントトレースを取得しません。

0を設定した場合
イベントトレースを取得します。
この場合，ファイルの容量を制限しません。

10～32767を設定した場合
イベントトレースを取得します。
この場合，設定した値がファイルの容量になります。

注意事項

指定した容量のトレースファイルを作成したらラップアラウンドでトレースを取得します。ラップアラウンドした場合は，１世代前のバックアップファイル（dabevttrccpp2）を作成し，常に１世代だけを管理します。

DABCPP_EVTTRC_LEVEL（トレース取得レベル）

標準値

0

指定範囲

0または1

説明

イベントトレースの取得レベルを設定します。

値が大きいほど詳細な情報が取得できます。

4.29　HiRDBの設定項目

接続するデータベースにHiRDBを使用する場合の設定項目です。Windowsでは，この項目は設定されません。

ここでの設定内容を，次に示します。

PDCLTPATH

トレースファイル格納ディレクトリ

PDHOST

ホスト名

ここで設定した値と異なるホスト名でアプリケーションが接続を要求した場合は，アプリケーションで指定されたホスト名が有効になります。

PDNAMEPORT

HiRDBのシステムポート番号

ここで設定した値と異なるポート番号でアプリケーションが接続を要求した場合は，アプリケーションで指定されたポート番号が有効になります。

PDSWAITTIME

サーバ最大待ち時間

PDSQLTRACE

SQLトレースファイルのサイズ

PDUAPERLOG

エラーログファイルのサイズ

注意事項

HiRDBのバージョンによっては，必要な設定項目が異なることがありますのでご注意ください。

PDHOSTとPDNAMEPORTの値は，HiRDBの環境で設定されている値を指定してください。そのほかの設定項目では，DABroker Libraryで設定した値が有効になります。なお，設定内容については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

4.30　ORACLEの設定項目

接続するデータベースにORACLEを使用する場合の設定項目です。Windowsでは，この項目は設定されません。

ここでの設定内容を，次に示します。

ORACLE_HOME

ORACLEのホームディレクトリ

ORACLE_SID

ORACLEのデータベース識別子

ここで設定した値と異なるデータベース識別子でアプリケーションが接続を要求した場合は，アプリケーションで指定されたデータベース識別子が有効になります。

NLS_LANG

母国語指定

注意事項

各設定項目には，ORACLEの環境で設定されている値を指定してください。なお，設定内容については，ORACLEのマニュアルを参照してください。

4.31　Connector属性ファイルでの設定

DB Connectorを使用してデータベースに接続する場合に使用するConnector属性ファイルの設定内容について説明します。

＜この節の構成＞

4.31.1　DB Connectorに設定する<config-property>タグに指定できるプロパティ

4.31.2　Connector属性ファイルのテンプレートファイル

4.31.1　DB Connectorに設定する<config-property>タグに指定できるプロパティ

DABroker Libraryを使用して，OracleまたはHiRDBに接続する場合に，DB Connectorに設定する<config-property>タグに指定できる値について説明します。

DBConnector_DABJ_CP.rarまたはDBConnector_DABJ_CP_Cosminexus_RM.rar
トランザクション管理をしない場合，またはローカルトランザクションを使用する場合に使用します。また，Reliable Messagingと連携する場合は，DBConnector_DABJ_CP_Cosminexus_RM.rarを使用します。

DBConnector_DABJ_XA.rarまたはDBConnector_DABJ_XA_Cosminexus_RM.rar
グローバルトランザクションを使用する場合に使用します。また，Reliable Messagingと連携する場合は，DBConnector_DABJ_XA_Cosminexus_RM.rarを使用します。

それぞれのファイルで指定できるプロパティを次の表に示します。

表4-93　DBConnector_DABJ_CP.rarまたはDBConnector_DABJ_CP_Cosminexus_RM.rarを使用する場合に指定できるプロパティ

config-property-name
config-property-type
config-property-value

blockUpdate
java.lang.Boolean
接続データベースがHiRDBの場合，？パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。設定された値は，DABroker LibraryのsetBlockUpdateメソッドに渡されます。

trueを指定した場合
複数のパラメタセットを一度に処理します。

falseを指定した場合
複数のパラメタセットを一つずつ分割して処理します。

デフォルト値はfalseです。

bufferPoolSize
java.lang.Integer
受信データのバッファをプールする最大数を設定します。設定された値は，DABroker LibraryのsetBufferPoolSizeメソッドに渡されます。
デフォルト値は0です。

bufSize
java.lang.Integer
DABroker Libraryからの受信データのバッファ長を，1～16000の範囲（単位：キロバイト）で設定します。設定された値は，DABroker LibraryのsetBufSizeメソッドに渡されます。デフォルト値は64です。

CallableStatementPoolSize
java.lang.Integer
コネクションプールに割り当てられるコネクションごとのCallableStatementのプール数を設定します。0～1024の整数で指定します。デフォルト値は10です。また，PreparedStatementPoolSizeとCallableStatementPoolSizeの合計値は，1024以下に設定してください。有効範囲外の値を指定した場合は，デフォルト値が設定されます。

CancelStatement
java.lang.Boolean
トランザクションタイムアウトやアプリケーション強制停止時に，Statementクラス，CallableStatementクラスおよびPreparedStatementクラスで実行中のSQLをキャンセルするかどうかを指定します。

trueを指定した場合
実行中のSQLをキャンセルします。

falseを指定した場合
実行中のSQLをキャンセルしません。

デフォルト値はtrueです。
Oracleに接続する場合で，データベースのサーバまたはクライアントのどちらかがWindowsプラットフォームで，専用サーバ接続をする場合，falseを設定してください。

ConnectionIDUpdate
java.lang.Boolean
コネクションIDをDataSource#getConnectionメソッドごとに更新するかどうかを指定します。

trueを指定した場合
DataSource#getConnectionメソッドのたびにコネクションIDを生成します。

falseを指定した場合
DataSource#getConnectionメソッドで新規の物理コネクションを確立したときにコネクションIDを生成し，そのあとは更新しません。

デフォルト値はfalseです。
このプロパティは，接続するデータベースがOracleの場合に指定できます。

databaseName
java.lang.String
接続するデータベースの種別を設定します。設定された値は，DABroker LibraryのsetDatabaseNameメソッドに渡されます。

HIRDB
HiRDBおよびXDM/RD E2に接続する場合に指定します。

ORACLE，ORACLE8I
Oracleに接続する場合に指定します。

DBConnector_DABJ_CP_Cosminexus_RM.rarの場合，デフォルト値はHIRDBです。

DBEnv
java.lang.String
DABroker Libraryの接続先データベース定義情報を設定します。設定された値は，DABroker LibraryのsetDBEnvメソッドに渡されます。

DBHostName
java.lang.String
接続するHiRDBのホスト名を設定します。設定された値は，DABroker LibraryのsetDBHostNameメソッドに渡されます。

description
java.lang.String
接続するデータベースに必要な接続付加情報を設定します。設定された値は，DABroker LibraryのsetDescriptionメソッドに渡されます。

HIRDBの場合
HiRDBシステムのポート番号，またはHiRDBクライアントの環境変数グループ名を指定します。

ORACLEの場合
SQL*Netの接続文字列を指定します。

encodLang
java.lang.String
エンコード文字形態を設定します。設定された値は，DABroker LibraryのsetEncodLangメソッドに渡されます。

executeDirectMode
java.lang.Boolean
接続データベースがHiRDBの場合，Statementクラスを使用したINSERT，UPDATE，DELETEなどのデータベースの更新で，HiRDBのEXECUTE DIRECT機能を使用するかどうかを設定します。設定された値は，DABroker LibraryのsetExecuteDirectModeメソッドに渡されます。

trueを指定した場合
Execute Direct機能を使用します。

falseを指定した場合
Execute Direct機能を使用しません。

デフォルト値はfalseです。

HiRDBCursorMode
java.lang.Boolean
HiRDBで検索時にカーソルがCommit，またはRollbackにわたって有効かどうかを設定します。設定された値は，DABroker LibraryのsetHiRDBCursorModeメソッドに渡されます。

trueを指定した場合
カーソルは保持されます。アプリケーションは続けてFetchすることができます。

falseを指定した場合
カーソルはクローズされますが，ステートメントは有効です。アプリケーションは，Prepareしないで，再度Executeできます。

デフォルト値はfalseです。

JDBC_IF_TRC
java.lang.Boolean
JDBCインタフェースメソッドトレースの取得の有無を設定します。設定された値は，DABroker LibraryのsetJDBC_IF_TRCメソッドに渡されます。

trueを指定した場合
トレースを取得します。

falseを指定した場合
トレースを取得しません。

なお，trueを指定した場合，Driverが出力するトレースは，Component ContainerからセットされるPrintWriterと，ユーザがコネクションファクトリ（javax.sql.DataSourceインタフェース）のsetLogWriter()メソッドで指定したPrintWriterに出力します。デフォルト値はfalseです。

linkedResourceAdapterName
java.lang.String
連携するReliable Messagingリソースアダプタの表示名を指定します。
DBConnector_DABJ_CP_Cosminexus_RM.rarを使用する場合に指定できます。

loginTimeout
java.lang.Integer
データベースへの接続試行中に，データソースが待機する最長時間（単位：秒）を設定します。デフォルト値は0です。

logLevel
java.lang.String
DB Connectorが出力するログ・トレースのレベルを指定します。
次の値が指定できます。

0またはERROR

10またはWARNING

20またはINFORMATION

デフォルトは，0またはERRORです。

LONGVARBINARY_Access
java.lang.String
LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法を設定します。設定された値は，DABroker LibraryのsetLONGVARBINARY_Accessメソッドに渡されます。

REAL

LOCATOR

デフォルト値はREALです。

networkProtocol
java.lang.String
DABroker Libraryとの接続種別を設定します。設定された値は，DABroker LibraryのsetNetworkProtocolメソッドに渡されます。

"lib"

OSAuthorize
java.lang.Boolean
OS認証機能を使用してデータベースに接続するかどうかを設定します。設定された値は，DABroker LibraryのsetOSAuthorizeメソッドに渡されます。

trueを指定した場合
OS認証機能を使用します。

falseを指定した場合
OS認証機能を使用しません。

デフォルト値はfalseです。

portNumber
java.lang.Integer
接続するDABroker Libraryのポート番号を設定します。設定された値は，DABroker LibraryのsetPortNumberメソッドに渡されます。デフォルト値は40179です。

PreparedStatementPoolSize
java.lang.Integer
コネクションプールに割り当てられるコネクションごとのPreparedStatementのプール数を設定します。0～1024の整数で指定します。デフォルト値は10です。また，PreparedStatementPoolSizeとCallableStatementPoolSizeの合計値は，1024以下に設定してください。有効範囲外の値を指定した場合は，デフォルト値が設定されます。

rowSize
java.lang.Integer
DABroker LibraryがJDBCで取り扱うバッファ長を，16～512の範囲（単位：メガバイト）で設定します。設定された値は，DABroker LibraryのsetRowSizeメソッドに渡されます。デフォルト値は16です。

serverName
java.lang.String
接続するDABroker Libraryのホスト名またはIPアドレスを設定します。設定された値は，DABroker LibraryのsetServerNameメソッドに渡されます。

SQLWarningIgnore
java.lang.Boolean
データベースから返される警告をConnectionクラスで保持するかどうかを設定します。設定された値は，DABroker LibraryのsetSQLWarningIgnoreメソッドに渡されます。

trueを指定した場合
警告を保持しません。

falseを指定した場合
警告を保持します。

デフォルト値はfalseです。

SV_EVENT_TRC
java.lang.Boolean
DABroker Libraryとのイベントトレースの取得の有無を設定します。設定された値は，DABroker LibraryのsetSV_EVENT_TRCメソッドに渡されます。

trueを指定した場合
トレースを取得します。

falseを指定した場合
トレースを取得しません。

なお，trueを指定した場合，Driverが出力するトレースは，Component ContainerからセットされるPrintWriterと，ユーザがコネクションファクトリ（javax.sql.DataSourceクラス）のsetLogWriter()メソッドで指定したPrintWriterに出力します。デフォルト値はfalseです。

TRC_NO
java.lang.Integer
トレースのエントリ数を，10～1000の範囲で設定します。設定された値は，DABroker LibraryのsetTRC_NOメソッドに渡されます。デフォルト値は500です。

uapName
java.lang.String
アプリケーション名称を設定します。設定された値は，DABroker LibraryのsetUapNameメソッドに渡されます。

表4-94　DBConnector_DABJ_XA.rarまたはDBConnector_DABJ_XA_Cosminexus_RM.rarを使用する場合に指定できるプロパティ

config-property-name
config-property-type
config-property-value

blockUpdate
java.lang.Boolean
接続データベースがHiRDBの場合，？パラメタを使用したデータベースの更新で，複数のパラメタセットを一度に処理するかどうかを設定します。設定された値は，DABroker LibraryのsetBlockUpdateメソッドに渡されます。

trueを指定した場合
複数のパラメタセットを一度に処理します。

falseを指定した場合
複数のパラメタセットを一つずつ分割して処理します。

デフォルト値はfalseです。

bufferPoolSize
java.lang.Integer
受信データのバッファをプールする最大数を設定します。設定された値は，DABroker LibraryのsetBufferPoolSizeメソッドに渡されます。
デフォルト値は0です。

bufSize
java.lang.Integer
DABroker Libraryからの受信データのバッファ長を，1～16000の範囲（単位：キロバイト）で設定します。設定された値は，DABroker LibraryのsetBufSizeメソッドに渡されます。デフォルト値は64です。

CallableStatementPoolSize
java.lang.Integer
コネクションプールに割り当てられるコネクションごとのCallableStatementのプール数を設定します。0～1024の整数で指定します。デフォルト値は10です。また，PreparedStatementPoolSizeとCallableStatementPoolSizeの合計値は，1024以下に設定してください。有効範囲外の値を指定した場合は，デフォルト値が設定されます。

CancelStatement
java.lang.Boolean
トランザクションタイムアウトやアプリケーション強制停止時に，Statementクラス，CallableStatementクラスおよびPreparedStatementクラスで実行中のSQLをキャンセルするかどうかを指定します。

trueを指定した場合
実行中のSQLをキャンセルします。

falseを指定した場合
実行中のSQLをキャンセルしません。

HiRDBに接続する場合は，falseを指定してください。
Oracleに接続する場合で，データベースのサーバまたはクライアントのどちらかがWindowsプラットフォームで，専用サーバ接続をする場合，falseを設定してください。

ConnectionIDUpdate
java.lang.Boolean
コネクションIDをDataSource#getConnectionメソッドごとに更新するかどうかを指定します。

trueを指定した場合
DataSource#getConnectionメソッドのたびにコネクションIDを生成します。

falseを指定した場合
最初のDataSource#getConnectionメソッドでコネクションIDを生成し，そのあとは更新しません。

デフォルト値はfalseです。
このプロパティは，接続するデータベースがOracleの場合に指定できます。

databaseName
java.lang.String
接続するデータベースの種別を設定します。設定された値は，DABroker LibraryのsetDatabaseNameメソッドに渡されます。
次の値が指定できます。

HIRDB
HiRDBに接続する場合に指定します。

ORACLE，ORACLE8I
Oracleに接続する場合に指定します。

DBConnector_DABJ_XA_Cosminexus_RM.rarの場合，デフォルト値はHIRDBです。

DBEnv
java.lang.String
DABroker Libraryの接続先データベース定義情報を設定します。設定された値は，DABroker LibraryのsetDBEnvメソッドに渡されます。

DBHostName
java.lang.String
接続するHiRDBのホスト名を設定します。設定された値は，DABroker LibraryのsetDBHostNameメソッドに渡されます。

description
java.lang.String
接続するデータベースに必要な接続付加情報を設定します。設定された値は，DABroker LibraryのsetDescriptionメソッドに渡されます。

HIRDBの場合
HiRDBクライアントの環境変数グループ名を指定します。

ORACLEの場合
SQL*Netの接続文字列を指定します。

encodLang
java.lang.String
エンコード文字形態を設定します。設定された値は，DABroker LibraryのsetEncodLangメソッドに渡されます。

executeDirectMode
java.lang.Boolean
接続データベースがHiRDBの場合，Statementクラスを使用したINSERT， UPDATE， DELETEなどのデータベースの更新で，HiRDBのEXECUTE DIRECT機能を使用するかどうかを設定します。設定された値は，DABroker LibraryのsetExecuteDirectModeメソッドに渡されます。

trueを指定した場合
Execute Direct機能を使用します。

falseを指定した場合
Execute Direct機能を使用しません。

デフォルト値はfalseです。

HiRDBCursorMode
java.lang.Boolean
HiRDBで検索時にカーソルがCommit，またはRollbackにわたって有効かどうかを設定します。設定された値は，DABroker LibraryのsetHiRDBCursorModeメソッドに渡されます。

trueを指定した場合
カーソルは保持されます。アプリケーションは続けてFetchすることができます。

falseを指定した場合
カーソルはクローズされますが，ステートメントは有効です。アプリケーションは，Prepareしないで，再度Executeできます。

デフォルト値はfalseです。

JDBC_IF_TRC
java.lang.Boolean
JDBCインタフェースメソッドトレースの取得の有無を設定します。設定された値は，DABroker LibraryのsetJDBC_IF_TRCメソッドに渡されます。

trueを指定した場合
トレースを取得します。

falseを指定した場合
トレースを取得しません。

なお，trueを指定した場合，Driverが出力するトレースは，Component ContainerからセットされるPrintWriterと，ユーザがコネクションファクトリ（javax.sql.DataSourceクラス）のsetLogWriter()メソッドで指定したPrintWriterに出力します。デフォルト値はfalseです。

linkedResourceAdapterName
java.lang.String
連携するReliable Messagingリソースアダプタの表示名を指定します。
DBConnector_DABJ_XA_Cosminexus_RM.rarを使用する場合に指定できます。

loginTimeout
java.lang.Integer
データベースへの接続試行中に，データソースが待機する最長時間（単位：秒）を設定します。デフォルト値は0です。

logLevel
java.lang.String
DB Connectorが出力するログ・トレースのレベルを指定します。
次の値が指定できます。

0またはERROR

10またはWARNING

20またはINFORMATION

デフォルト値は，0またはERRORです。

LONGVARBINARY_Access
java.lang.String
LONGVARBINARY（列属性BLOB，列属性BINARY）のデータベースアクセス方法を設定します。設定された値は，DABroker LibraryのsetLONGVARBINARY_Accessメソッドに渡されます。

REAL

LOCATOR

デフォルト値はREALです。

networkProtocol
java.lang.String
DABroker Libraryとの接続種別を設定します。設定された値は，DABroker LibraryのsetNetworkProtocolメソッドに渡されます。

"lib"

OSAuthorize
java.lang.Boolean
OS認証機能を使用してデータベースに接続するかどうかを設定します。設定された値は，DABroker LibraryのsetOSAuthorizeメソッドに渡されます。

trueを指定した場合
OS認証機能を使用します。

falseを指定した場合
OS認証機能を使用しません。

デフォルト値はfalseです。

portNumber
java.lang.Integer
接続するDABroker Libraryのポート番号を設定します。設定された値は，DABroker LibraryのsetPortNumberメソッドに渡されます。デフォルト値は40179です。

PreparedStatementPoolSize
java.lang.Integer
コネクションプールに割り当てられるコネクションごとのPreparedStatementのプール数を設定します。0～1024の整数で指定します。デフォルト値は10です。また，PreparedStatementPoolSizeとCallableStatementPoolSizeの合計値は，1024以下に設定してください。有効範囲外の値を指定した場合は，デフォルト値が設定されます。

RMID
java.lang.Integer
リソースマネジャの識別子を，1以上の正の整数で設定します。設定された値は，DABroker LibraryのsetRMIDメソッドに渡されます。デフォルト値は1です。

rowSize
java.lang.Integer
DABroker LibraryがJDBCで取り扱うバッファ長を，16～512の範囲（単位：メガバイト）で設定します。設定された値は，DABroker LibraryのsetRowSizeメソッドに渡されます。デフォルト値は16です。

serverName
java.lang.String
接続するDABroker Libraryのホスト名を設定します。設定された値は，DABroker LibraryのsetServerNameメソッドに渡されます。

SQLWarningIgnore
java.lang.Boolean
データベースから返される警告をConnectionクラスで保持するかどうかを設定します。設定された値は，DABroker LibraryのsetSQLWarningIgnoreメソッドに渡されます。

trueを指定した場合
警告を保持しません。

falseを指定した場合
警告を保持します。

デフォルト値はfalseです。

SV_EVENT_TRC
java.lang.Boolean
DABroker Libraryとのイベントトレースの取得の有無を設定します。設定された値は，DABroker LibraryのsetSV_EVENT_TRCメソッドに渡されます。

trueを指定した場合
トレースを取得します。

falseを指定した場合
トレースを取得しません。

なお，trueを指定した場合，Driverが出力するトレースは，Component ContainerからセットされるPrintWriterと，ユーザがコネクションファクトリ（javax.sql.DataSourceクラス）のsetLogWriter()メソッドで指定したPrintWriterに出力します。デフォルト値はfalseです。

TRC_NO
java.lang.Integer
トレースのエントリ数を設定します。設定された値は，DABroker LibraryのsetTRC_NOメソッドに渡されます。デフォルト値は500です。

uapName
java.lang.String
アプリケーション名称を設定します。設定された値は，DABroker LibraryのsetUapNameメソッドに渡されます。

XACloseString
java.lang.String
XA_CLOSE文字列を設定します。設定された値は，DABroker LibraryのsetXACloseStringメソッドに渡されます。

XALocalCommitMode
java.lang.Boolean
XA使用時，トランザクションが分散トランザクションでないとき，データベースのオートコミットモードを有効にするかどうかを設定します。設定された値はDABroker LibraryのsetXALocalCommitModeメソッドに渡されます。

trueを指定した場合
データベースのオートコミットを有効にします。

falseを指定した場合
データベースのオートコミットを無効にします。

デフォルト値はtrueです。
なお，falseを指定した場合，リソースの接続テスト(cjtestresコマンド)，コネクション障害検知機能が正常に動作しません。リソースの接続テスト(cjtestresコマンド)，コネクション障害検知機能を使用する場合，falseは指定しないでください。
また，DBConnector_DABJ_XA_Cosminexus_RM.rarの場合，falseは指定しないでください。

XAOpenString
java.lang.String
XA_OPEN文字列を設定します。設定された値は，DABroker LibraryのsetXAOpenStringメソッドに渡されます。

XAThreadMode
java.lang.Boolean
XA使用時のスレッドモードを設定します。設定された値は，DABroker LibraryのsetXAThreadModeメソッドに渡されます。

trueを指定した場合
マルチスレッドモード

falseを指定した場合
シングルスレッドモード

デフォルト値はtrueです。

4.31.2　Connector属性ファイルのテンプレートファイル

DB Connectorのテンプレートファイルについて説明します。

ファイルの格納先

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥admin¥templates¥

UNIXの場合
/opt/Cosminexus/CC/admin/templates/

テンプレートファイル

Component Containerが提供しているDB Connectorのテンプレートファイルを次に示します。

表4-95　DB Connectorのテンプレートファイル一覧

テンプレートファイル名 | 説明
DBConnector_DABJ_CP_cfg.xml | DABroker Library用DB ConnectorのConnector属性ファイルのテンプレートファイル（ローカルトランザクション用）。
DBConnector_DABJ_XA_cfg.xml | DABroker Library用DB ConnectorのConnector属性ファイルのテンプレートファイル（グローバルトランザクション用）。
DBConnector_DABJ_CP_Cosminexus_RM_cfg.xml | DABroker Library用DB Connector for Reliable MessagingのConnector属性ファイルのテンプレートファイル（ローカルトランザクション用）。
DBConnector_DABJ_XA_Cosminexus_RM_cfg.xml | DABroker Library用DB Connector for Reliable MessagingのConnector属性のテンプレートファイル（グローバルトランザクション用）。

4.32　DABroker Libraryを使用する場合の注意事項

ここでは，DABroker Libraryを使用する場合の注意事項を示します。

＜この節の構成＞

4.32.1　DABroker Libraryを使用する場合に使用できるJ2EEコンポーネントおよび機能についての注意事項

4.32.2　トランザクションリカバリを使用する場合の注意事項

4.32.3　CMPフィールドとデータベースのマッピングの注意事項

4.32.4　複数の構築済み実行環境を切り替える場合の注意事項

4.32.5　UTF-8を使用する場合の注意事項（Windowsの場合）

4.32.6　SQL実行時の注意事項（Windowsの場合）

4.32.7　HiRDBクライアント経由でXDM/RD E2を使用する場合の注意事項

4.32.8　Windows Server 2008またはWindows Vista使用時の注意事項

4.32.1　DABroker Libraryを使用する場合に使用できるJ2EEコンポーネントおよび機能についての注意事項

ここでは，データベース接続で使用できる機能について説明します。

データベース接続で使用できるJ2EEコンポーネントおよび機能を，データベースごとに次の表に示します。

表4-96　使用できるJ2EEコンポーネントおよび機能

項目 | HiRDB | Oracle | XDM/RD E2
Oracle9i | Oracle10g
J2EEコンポーネント | Servlet/JSP | ○ | ○ | ○ | ○
Stateless Session Bean | ○ | ○ | ○ | ○
Stateful Session Bean | ○ | ○ | ○ | ○
Entity Bean（BMP） | ○ | ○ | ○ | ×
Entity Bean（CMP1.1） | ○ | ○ | × | ×
Entity Bean（CMP2.0） | ○※1 | ○ | × | ×
Message-driven Bean（onMessageメソッドからのデータベースアクセス） | ○ | ○ | ○ | ○
使用できる機能 | コネクションプーリング | ○ | ○ | ○ | ○
コネクションプールのウォーミングアップ | ○ | ○ | ○ | ○
コネクションプールの情報表示（cjlistpoolコマンド） | ○ | ○ | ○ | ○
コネクションプールのクリア（cjclearpoolコマンド） | ○ | ○ | ○ | ○
リソースへの接続テスト | ○ | ○ | ○ | ○
コネクションの障害検知 | ○※2 | ○ | ○ | ○
ステートメントプーリング | ○※3 | ○ | ○ | ○※3，※4
ステートメントキャンセル | ○※5 | △※6 | △※6 | ○※7
ステートメントsetQueryTimeoutメソッド | × | × | × | ×
コネクションIDのPRFトレース出力 | ○ | ○ | ○ | ○※7
障害調査用SQLの出力 | ○ | ○ | ○ | ○
クラスタコネクションプール | × | × | × | ×

（凡例）○：使用できる　　×：使用できない　　△：一部制限あり

注※1　CMP2.0の機能である，CMR機能は利用できません。

注※2　DABroker Libraryを使用して接続する場合，HiRDBのバージョンが07-01以前でグローバルトランザクション（XATransaction）のときは使用できません。

注※3　HiRDBのバージョンが07-01以前の場合，アプリケーションサーバが管理するトランザクションで使用するときだけ，ステートメントプーリング機能が使用できます。これ以外の場合はエラーが発生します。また，HiRDB自動再接続機能とステートメントプーリング機能の併用はできません。

注※4　XDM/RD E2 11-02以降のバージョンとDABroker Library 03-13以降を使用する場合にだけステートメントプーリングを使用できます。

注※5　グローバルトランザクション（XATransaction）のときは使用できません。

注※6　データベースのサーバまたはクライアントがWindowsで，接続形式が専用接続であるときは，使用できません。

注※7　ステートメントキャンセル，およびコネクションIDのPRFトレース出力は，DABroker経由の場合，XDM/RD E2 11-02以降で使用できます。

注意

HiRDBのバージョンが07-01以前で，トランザクションサポートレベルにXATransactionを使用する場合，トランザクション外でコネクションを使用してデータベースにアクセスするとコネクションが二つ使用され，HiRDBへの接続が同時に利用しているユーザ数の2倍になります。HiRDBのシステム共通定義のpd_max_usersオペランドに，同時に利用しているユーザ数の2倍の値を指定してください。

4.32.2　トランザクションリカバリを使用する場合の注意事項

Oracleでリカバリをする場合で，JDBCドライバにDABroker Libraryを使用するときは，ユーザに次の権限が必要です。

SYS.DBA_PENDING_TRANSACTIONSへのSELECT権限

FORCE ANY TRANSACTION権限

4.32.3　CMPフィールドとデータベースのマッピングの注意事項

CMPフィールドとデータベースのマッピングは，データベースの種類ごとに異なります。詳細は，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.4.2　CMPフィールドとデータベースのマッピング」を参照してください。ここでは，DABroker Libraryの場合の注意事項について説明します。

＜この項の構成＞

(1)　HiRDBの場合のマッピング

(2)　Oracleの場合のマッピング一覧

(1)　HiRDBの場合のマッピング

次の表に示すデータ型で扱えるデータサイズの上限はJDBCドライバの上限に依存します。

表4-97　CMPでのフィールドとデータベースのマッピング（HiRDB使用時）

Javaデータ型 | JDBCデータ型 | SQLデータ型
byte[] | LONGVARBINARY | BLOB
Serializableな型 | LONGVARBINARY | BLOB

[HiRDB BLOB最大値]は2147483647バイトです。ただし，DABroker Libraryを使用する場合，DABHIRDBA_BLOBBUFSIZE（HiRDBのBLOB型データ受取バッファサイズ）指定値を超過したデータは切り捨てられます。

(2)　Oracleの場合のマッピング一覧

次の表に示すデータ型で扱えるデータサイズの上限はJDBCドライバの上限に依存します。

表4-98　CMPでのフィールドとデータベースのマッピング（Oracle使用時）

Javaデータ型 | JDBCデータ型 | SQLデータ型
byte[] | LONGVARBINARY | LONG RAW
Serializableな型 | LONGVARBINARY | LONG RAW

[Oracle LONG RAW最大値]は，2ギガバイトです。ただし，扱えるデータサイズの上限はJDBCドライバの上限に依存します。DABroker Libraryを使用する場合：DABORADBA_LONGBUFSIZE（ORACLEのLONG型データ受取バッファサイズ）指定値を超過したデータは切り捨てられます。

4.32.4　複数の構築済み実行環境を切り替える場合の注意事項

複数の構築済み実行環境を切り替える場合のDABroker Libraryのファイルの扱いについての注意事項を説明します。

＜この項の構成＞

(1)　退避環境作成時に退避対象となるファイル

(2)　退避作業が不要なファイル

(1)　退避環境作成時に退避対象となるファイル

退避環境作成時に退避対象となるDABroker Libraryの製品ファイルを次に示します。

/opt/Cosminexus/DABJ以下すべて

/opt/DABroker/.HTC_2340.inf

/opt/DABroker/.dabrokerenv

<DABroker運用ディレクトリ>※/bin以下すべて

<DABroker運用ディレクトリ>※/lib以下すべて

<DABroker運用ディレクトリ>※/msg以下すべて

<DABroker運用ディレクトリ>※/obj以下すべて

<DABroker運用ディレクトリ>※/sample以下すべて

<DABroker運用ディレクトリ>※/conf以下すべて

<DABroker運用ディレクトリ>※/cpp以下すべて

注※

<DABroker運用ディレクトリ>のデフォルトは，<DABroker Libraryのインストールディレクトリ>です。<DABroker運用ディレクトリ>にデフォルト以外を指定している場合も退避対象となります。

DABroker Library以外のファイルについては，「7.2.4(2) 退避環境作成時に退避対象となるファイル」を参照してください。

(2)　退避作業が不要なファイル

次の表に示すファイルは，退避対象外ですが，退避作業は必須ではありません。これらのファイルは，アプリケーションサーバの動作に影響はありません。必要に応じて退避してください。なお，退避作業が不要なファイルの場合，実行環境の回復時に退避したファイルを戻す作業は不要です。

表4-99　退避作業が不要なファイル

項番 | ファイルまたはディレクトリ名 | 説明 | 構成ソフトウェア
1 | <DABroker運用ディレクトリ>※/AGT | エージェント処理用ディレクトリ | DABroker Library
2 | <DABroker運用ディレクトリ>※/AGTGRP | グループ管理用ディレクトリ | DABroker Library
3 | <DABroker運用ディレクトリ>※/spool以下すべて | トレースファイル，ログファイルの格納用ディレクトリ | DABroker Library

注※

<DABroker運用ディレクトリ>のデフォルトは，<DABroker Libraryのインストールディレクトリ>です。<DABroker運用ディレクトリ>にデフォルト以外を指定している場合も退避対象外です。

DABroker Library以外のファイルについては，「7.2.3(1) 退避対象外のファイルの退避」を参照してください。

4.32.5　UTF-8を使用する場合の注意事項（Windowsの場合）

Windowsで言語モードとしてUTF-8を使用する場合は，環境設定ユティリティの［リモートアクセス設定］タブの［漢字コードセット］に「UTF-8」を設定してください。なお，UTF-8で操作できるのは，Javaを使用してデータベースアクセスする場合だけです。

4.32.6　SQL実行時の注意事項（Windowsの場合）

DABroker LibraryはJDBC2.1の規格に準拠します。Windowsの場合，次に示すSQLの実行ではSQLExceptionを発行します。

executeQueryメソッドでの更新系SQLの実行

executeUpdateメソッドでの参照系SQLの実行

4.32.7　HiRDBクライアント経由でXDM/RD E2を使用する場合の注意事項

HiRDBクライアント経由でXDM/RD E2を使用する場合の注意事項について説明します。

HiRDBクライアント経由でXDM/RD E2に接続する場合に，UTF-8環境下のHiRDBクライアントでアクセスするときは，NCHARおよびNVARCHAR属性のデータを使用できません。

HiRDBクライアント経由でXDM/RD E2に接続して一覧情報取得処理※を実行する場合は，XDM/RD E2でHiRDB形式ディクショナリビュー表を作成しておく必要があります。HiRDB形式ディクショナリビュー表については，マニュアル「VOS3　データマネジメントシステム　XDM E2系　XDM/RD E2　使用の手引－運用編－」を参照してください。
注※　DatabaseMetaDataクラスに含まれる次のメソッドを実行すると，一覧情報取得処理が実行されます。

getTables

getColumns

getProcedures

getTablePrivileges

getColumnPrivileges

getProcedureColumns

getIndexInfo

getPrimaryKeys

getTableTypes

4.32.8　Windows Server 2008またはWindows Vista使用時の注意事項

Windows Server 2008またはWindows Vistaの環境でDABroker Libraryを使用する場合，次の操作は管理者権限のあるユーザで実行してください。

DABroker Libraryのインストールまたはアンインストール

環境設定ユティリティ

接続先データベース定義ユティリティ

データベースへのアクセス

5.　基本・開発機能の互換機能（そのほかの機能）

この章では，基本・開発機能の互換機能のうち，簡易Webサーバ機能，EJBクライアントアプリケーションのログのサブディレクトリ専有モード，およびEJB 2.1とServlet 2.4でのアノテーションの利用について説明します。

＜この章の構成＞

5.1　この章の構成

5.2　簡易Webサーバ機能

5.3　EJBクライアントアプリケーションのログのサブディレクトリ専有モード

5.4　EJB 2.1とServlet 2.4でのアノテーションの利用

5.1　この章の構成

この章では，基本・開発機能の互換機能のうち，次の機能について説明します。

簡易Webサーバ機能

EJBクライアントアプリケーションのログのサブディレクトリ専有モード

EJB 2.1とServlet 2.4でのアノテーションの利用

この章の構成を次の表に示します。

表5-1　基本・開発機能の互換機能（そのほかの機能）と参照先

機能 | 参照先
簡易Webサーバ機能 | 5.2
EJBクライアントアプリケーションのログのサブディレクトリ専有モード | 5.3
EJB 2.1とServlet 2.4でのアノテーションの利用 | 5.4

5.2　簡易Webサーバ機能

WebコンテナをHTTPサーバとして，スタブなどのダウンロードに利用します。この機能は，常に利用するように設定されています。

この節では，簡易Webサーバ機能について説明します。

この節の構成を次の表に示します。

表5-2　この節の構成（簡易Webサーバ機能）

分類 | タイトル | 参照先
解説 | 簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能） | 5.2.1
簡易Webサーバへのアクセスの制御 | 5.2.2
設定 | 実行環境での設定 | 5.2.3
注意事項 | サーブレットおよびJSP実装時の注意事項 | 5.2.4

注　「実装」および「運用」について，この節での説明はありません。

注意

簡易Webサーバは，本番運用時のWebサーバとして利用できません。

簡易Webサーバでは負荷分散機のヘルスチェックは実施できません。

簡易Webサーバでは，Webコンテナでエラーが発生します。エラーが発生した際のエラーステータスコードについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「付録A　エラーステータスコード」を参照してください。

簡易Webサーバを使用する場合，HTTPセッションに関するオブジェクトおよびWebコンテナとリダイレクタ間の通信に使用するオブジェクトに対して明示管理ヒープ機能を使用できません。

Webアプリケーション単位の同時実行数制御を実行している場合，Webコンテナ上で動作するWebアプリケーションごとに，同時にリクエストを処理するスレッド数を設定できます。Webアプリケーション単位の同時実行スレッド数制御は簡易Webサーバに対しても有効になります。

＜この節の構成＞

5.2.1　簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能）

5.2.2　簡易Webサーバへのアクセスの制御

5.2.3　実行環境での設定

5.2.4　サーブレットおよびJSP実装時の注意事項

5.2.1　簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能）

Webコンテナでは，簡易Webサーバで利用するIPアドレスを明示的に指定できます。これを，バインド先アドレス設定機能といいます。この機能を使用することで，複数の物理ネットワークインタフェースを持つホスト，または一つの物理ネットワークインタフェースに対して，ホストで実行する場合に，特定の一つのIPアドレスだけを使用するよう設定できます。

注意

ホスト名またはIPアドレスを設定した場合は，指定されたIPアドレスへの接続要求しか受け付けません。IPアドレスを設定する代わりに，ワイルドカードアドレスを指定することで，そのホスト上の任意のIPアドレスへの接続を受け付けることができます。

指定されたホスト名が，hostsファイルまたはDNSなどで解決できない場合は，ワイルドカードアドレスを使用してサーバを起動します。

指定されたホスト名，またはIPアドレスがリモートホストの場合，ワイルドカードアドレスを使用してサーバを起動します。

簡易Webサーバで利用するIPアドレスには，ループバックアドレスを指定することはできません。簡易Webサーバで利用するIPアドレスにループバックアドレスを指定した場合は，ワイルドカードアドレスを使用してサーバが起動されます。

5.2.2　簡易Webサーバへのアクセスの制御

簡易Webサーバにアクセスできるホストを制限できます。簡易Webサーバへのアクセスを許可されていないホストからのアクセスがあった場合，J2EEサーバはそのアクセスを拒否※します。デフォルトでは，ローカルホストからのアクセスだけを許可します。ホストを制限するには，アクセスを許可するホストの，ホスト名，またはIPアドレスを設定します。このとき，ホスト名やIPアドレスの代わりにアスタリスク（*）を指定すると，全ホストからのアクセスを許可する設定になります。

注※

J2EEサーバがアクセスを拒否すると，Webブラウザが自動で再接続をリトライすることがあります。再接続のリトライ回数は，Webブラウザによって異なるため，1度のアクセスで，アクセスが拒否されたことを示すメッセージが複数出力されることがあります。

5.2.3　実行環境での設定

実行環境での設定について説明します。

＜この項の構成＞

(1)　J2EEサーバの設定

(2)　バッチサーバの設定

(3)　運用管理ポータルについての設定

(1)　J2EEサーバの設定

簡易WebサーバでのIPアドレス指定（バインド先アドレス設定機能）または簡易Webサーバへのアクセスの制御を使用する場合，J2EEサーバの設定が必要です。

J2EEサーバの設定は，簡易構築定義ファイルで実施します。簡易Webサーバでの簡易Webサーバの機能の定義は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内に指定します。

簡易構築定義ファイルでの簡易Webサーバの機能の定義について次の表に示します。

表5-3　簡易構築定義ファイルでの簡易Webサーバの機能の定義

項目 | 指定するパラメタ | 設定内容
Webサーバで使用するホストの固定 | webserver.connector.http.bind_host | 簡易WebサーバのIPアドレスまたはホスト名を指定します。
管理用サーバ | webserver.connector.http.permitted.hosts | 管理用サーバへのアクセスを許可するホストのIPアドレスまたはホスト名を指定します※。
ejbserver.http.port | 管理用サーバのポート番号を指定します。

注※　アクセスを許可するホストをホスト名で指定した場合，J2EEサーバ起動時にホスト名の名前が解決されるため，次のことに注意する必要があります。

hostsファイル，またはDNSなどでホスト名を解決できるようにする必要があります。解決できない場合はデフォルトの設定でサーバが起動されます。

ホスト名の解決をJ2EEサーバの起動時にするため，サーバの起動に時間が掛かることがあります。また，起動後に変更されたIPアドレスは反映されないことがあります。

簡易構築定義ファイル，および指定するパラメタの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

(2)　バッチサーバの設定

usrconf.properties（バッチサーバ用ユーザプロパティファイル）での指定内容を次に示します。ファイルの詳細は，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「3.3　usrconf.properties（バッチサーバ用ユーザプロパティファイル）」を参照してください。

キー名称 | 概要 | デフォルト値
webserver.connector.http.bind_host | 簡易Webサーバで使用するローカルIPアドレス，または解決できるローカルホスト名称を指定します。 | なし
webserver.connector.http.permitted.hosts | 簡易Webサーバへのアクセスを許可するホストのIPアドレス（10進表記）またはホスト名を指定します。 | なし

(3)　運用管理ポータルについての設定

mserver.properties（Management Server環境設定ファイル）に設定します。ファイルの詳細は，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「10.7　mserver.properties（Management Server環境設定ファイル）」を参照してください。

キー名称
内容
指定可能値
デフォルト
VR

com.cosminexus.mngsvr.compat.monitor_view
運用管理ポータルの［論理サーバの運用監視］画面に次の項目を表示させるかどうかを指定します。

管理用サーバ（簡易Webサーバ）の情報

なお，この項目は互換用の項目です。

trueを指定した場合：

表示項目を表示します。

falseを指定した場合：

表示項目を表示しません。

次のどちらかを指定します。

true

false

false
06-70

5.2.4　サーブレットおよびJSP実装時の注意事項

＜この項の構成＞

(1)　javax.servlet.ServletRequestインタフェースのgetServerNameメソッドおよびgetServerPortメソッドの戻り値について

(2)　サーブレットを実装するときの入出力ストリーム利用時の注意

(1)　javax.servlet.ServletRequestインタフェースのgetServerNameメソッドおよびgetServerPortメソッドの戻り値について

アプリケーションサーバでは，getServerNameメソッド，およびgetServerPortメソッドの戻り値は，HTTPリクエストと，使用する機能の組み合わせによって得られます。簡易Webサーバとの組み合わせの場合の戻り値を次の表に示します。

表5-4　getServerNameメソッド，およびgetServerPortメソッドの戻り値（簡易Webサーバとの組み合わせの場合）

HTTPリクエスト | getServerNameメソッドの戻り値 | getServerPortメソッドの戻り値
Hostヘッダの有無 | リクエストラインのURIの種類
あり | 絶対URI | Hostヘッダのホスト名 | Hostヘッダのポート番号
相対URI | Hostヘッダのホスト名 | Hostヘッダのポート番号
あり | 絶対URI | J2EEサーバのホスト名またはIPアドレス※ | 簡易Webサーバのポート番号
相対URI | J2EEサーバのホスト名またはIPアドレス※ | 簡易Webサーバのポート番号

注※　java.net.InetAddress.getLocalHostメソッド，またはgetHostNameメソッドの戻り値となります。

これ以外の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「6.2.1　サーブレットおよびJSP実装時共通の注意事項」を参照してください。

(2)　サーブレットを実装するときの入出力ストリーム利用時の注意

ServletInputStreamのavailableメソッドは，簡易Webサーバ機能を使用している場合，常に0を返します。それ以外の場合，バッファの状態に依存した値を返します。

5.3　EJBクライアントアプリケーションのログのサブディレクトリ専有モード

この節では，EJBクライアントアプリケーションのログのサブディレクトリ専有モードについて説明します。

この節の構成を次の表に示します。

表5-5　この節の構成（EJBクライアントアプリケーションのログのサブディレクトリ専有モード）

分類 | タイトル | 参照先
解説 | サブディレクトリ専有モードとは | 5.3.1
ログ出力先のサブディレクトリ数の管理 | 5.3.2
サブディレクトリ専有モードの場合のシステムログの出力先 | 5.3.3
設定 | 動作モードの指定 | 5.3.4
運用 | サブディレクトリ数の管理で使用するコマンド（cjcldellog（システムログ出力先サブディレクトリの削除）） | 5.3.5
注意事項 | サブディレクトリ専有モード使用時の注意事項 | 5.3.6

注　「実装」について，この節での説明はありません。

＜この節の構成＞

5.3.1　サブディレクトリ専有モードとは

5.3.2　ログ出力先のサブディレクトリ数の管理

5.3.3　サブディレクトリ専有モードの場合のシステムログの出力先

5.3.4　動作モードの指定

5.3.5　サブディレクトリ数の管理で使用するコマンド（cjcldellog（システムログ出力先サブディレクトリの削除））

5.3.6　サブディレクトリ専有モード使用時の注意事項

5.3.1　サブディレクトリ専有モードとは

EJBクライアントアプリケーションのシステムログは，EJBクライアントアプリケーションのプロセス単位で出力されます。システムログでは，プロセスごとにログ出力先のサブディレクトリを作成するか，複数のプロセスでログ出力先のサブディレクトリを共有することができます。プロセスごとにログ出力先のサブディレクトリを作成する動作モードのことをサブディレクトリ専有モードといいます。

サブディレクトリ専有モードは06-50よりも前のバージョンとの互換用に使用するモードであるため，EJBクライアントアプリケーションを新規作成する場合は，サブディレクトリ共有モードを使用することをお勧めします。

注意

cjclstartapコマンドでEJBクライアントアプリケーションを実行する場合は，サブディレクトリ共有モードを使用してください。

EJBクライアントアプリケーションのユーザログ機能を使用する場合は，サブディレクトリ共有モードを使用してください。

サブディレクトリ専有モードの動作を次の表に示します。

表5-6　サブディレクトリ専有モードの動作

項目 | サブディレクトリ専有モード
複数のプロセスでのサブディレクトリ共有の可否 | 共有できません。
ログ管理ファイル作成 | 作成されません。
ejbserver.client.ejb.logキー※のデフォルト値 | ejb
ejbserver.client.log.appidキー※のデフォルト値 | EJBクライアントアプリケーション識別ID
ejbserver.client.log.directorynumキー※の指定 | ejbserver.client.log.appidキーを指定した場合は，無効です。
ejbserver.logger.channels.define.<チャネル名>.filenumキー※に指定できる面数 | 1～16
ejbserver.logger.channels.define.<チャネル名>.filesizeキー※に指定できる容量（バイト） | 4,096～2,147,483,647

注※　EJBクライアントアプリケーションの開始時に指定するシステムプロパティです。

5.3.2　ログ出力先のサブディレクトリ数の管理

サブディレクトリ専有モードを使用している場合は，ログ出力先のサブディレクトリ数を管理できます。

EJBクライアントアプリケーションのシステムログは，EJBクライアントアプリケーション単位に作成されるログ出力先ディレクトリ（ejbserver.client.log.directoryキー，およびejbserver.client.ejb.logキーに指定したディレクトリ）下の，サブディレクトリに格納されます。EJBクライアントアプリケーションを複数起動すると，起動したプロセス分のサブディレクトリが生成されます。このサブディレクトリが単調増加しないように管理できます。

サブディレクトリ数は，EJBクライアントアプリケーションのプロセス単位に作成されるサブディレクトリの数となります。ただし，EJBクライアントアプリケーション単位に作成されるログ出力先ディレクトリ下にユーザ作成のサブディレクトリがある場合，ユーザ作成のサブディレクトリの数もサブディレクトリとして数えられます。

デフォルトでは，ログ出力先のサブディレクトリ数を8個までとし，古いサブディレクトリから削除されるようになっています。サブディレクトリ数を変更する場合には，ejbserver.client.log.directorynumキーで変更してください。EJBクライアントアプリケーションのシステムログの取得については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「4.5　EJBクライアントアプリケーションのシステムログ」を参照してください。

5.3.3　サブディレクトリ専有モードの場合のシステムログの出力先

EJBクライアントアプリケーションのシステムログは，ejbserver.client.log.directoryキーに指定したディレクトリ下の，EJBクライアントアプリケーションのプロセス単位に作成されるサブディレクトリ下に格納されます。EJBクライアントアプリケーションのプロセス単位のサブディレクトリは，ejbserver.client.log.directoryキーに指定したディレクトリ下の，ejbserver.client.ejb.logキーに指定したディレクトリ下に作成されます。デフォルトでは，「<製品のインストールディレクトリ>¥CC¥client¥logs¥ejb」（Windowsの場合），または「/opt/Cosminexus/CC/client/logs/ejb」（UNIXの場合）の下にサブディレクトリが作成されます。

EJBクライアントアプリケーションのシステムログ出力先のサブディレクトリ名を次に示します。

表5-7　EJBクライアントアプリケーションのシステムログ出力先のサブディレクトリ名

コマンド名 | サブディレクトリ名
vbjコマンド | cjcl<日時>_<プロセスID>

注

<日時>には，EJBクライアントアプリケーションを開始した日時が「mddhhmmssmmm」の形式で表示されます。日時に表示される項目は次のとおりです。なお，月以外は10進数で表示されます。

m：月（16進数）　dd：日付　hh：時間　mm：分　ss：秒　mmm：ミリ秒

EJBクライアントアプリケーションのシステムログ出力先のディレクトリ構成例を次に示します。

図5-1　サブディレクトリ専有モードのEJBクライアントアプリケーションのシステムログの出力先

サブディレクトリは，次のように作成および運用されます。

EJBクライアントアプリケーション単位に作成するサブディレクトリは，上限値を設定できます。EJBクライアントアプリケーションが終了すると，サブディレクトリにclient_process_endという空のファイルが作成されます。上限値を超えた場合は，このファイルの作成時刻が古い順にサブディレクトリが削除されます。なお，サブディレクトリにログを出力しているEJBクライアントアプリケーションがどれも終了していない（client_process_endファイルが作成されていない）場合は，上限値を超えてサブディレクトリが作成されます。作成されたサブディレクトリがあとで上限値まで削除されることはありません。

ejbserver.client.log.directoryキーに指定したディレクトリ下の，ejbserver.client.ejb.logキーに指定したディレクトリ下にユーザ作成のサブディレクトリがある場合，EJBクライアントアプリケーション単位に作成するサブディレクトリと同様に，サブディレクトリとして数えられます。

EJBクライアントアプリケーションが異常終了すると，client_process_endファイルが作成されないことがあるため，異常終了したEJBクライアントアプリケーションのサブディレクトリは上限値を超えても削除されないことがあります。

一つのEJBクライアントアプリケーションを一つだけ起動する場合（同時実行しない場合）には，そのEJBクライアントアプリケーション固有のシステムログ出力先ディレクトリを作成して，常にそのディレクトリに出力する運用ができます。このサブディレクトリは，上限値の指定に関係なく，削除されません。

サブディレクトリを削除する場合，cjcldellogコマンドを使用すると，指定した更新日または更新時間より前に作成されたサブディレクトリを一括して削除できます。なお，cjcldellogコマンドは，Windowsの場合はWindowsのタスク，UNIXの場合はatコマンドまたはcrontabコマンドを利用して定期的に実行してください。

EJBクライアントアプリケーションのログ出力の設定については，マニュアル「アプリケーションサーバ 機能解説 拡張編」の「9.10　EJBクライアントアプリケーションのユーザログ出力の設定（cjclstartapコマンドを使用する場合）」，およびマニュアル「アプリケーションサーバ 機能解説 拡張編」の「9.11　EJBクライアントアプリケーションのユーザログ出力の実装と設定（vbjコマンドを使用する場合）」を参照してください。

5.3.4　動作モードの指定

EJBクライアントアプリケーションでサブディレクトリ専有モードを使用するためには，vbjコマンド実行時のクラスパスにJARファイルを指定します。

指定するJARファイルの種類と配置場所を次に示します。なお，JARファイルには製品提供クラスが含まれます。

JARファイルの種類

hntrlib2j64.jar
HP-UX（IPF）の場合およびLinux（IPF）の場合に指定します。

hntrlib2j.jar
上記以外のOSを使用している場合に指定します。

JARファイルの配置場所

Windowsの場合
<Program Files>¥Hitachi¥HNTRLib2¥classes

UNIXの場合
/opt/hitachi/HNTRLib2/classes

なお，EJBクライアントアプリケーションから呼び出すアプリケーションの数，内容に関係なく，指定するJARファイルのファイル名と配置場所は固定です。

また，サブディレクトリ専有モードを使用する場合，次のキーを使用して，EJBクライアントアプリケーションのプロセス単位で作成されるログ出力先サブディレクトリ数を指定できます。

このキーは，Javaアプリケーション用ユーザプロパティファイル（usrconf.properties）に指定できます。また，vbjコマンドでも指定できます（システムの実行環境に従って値を指定するか，または指定を省略できます）。

なお，このキーは，Javaアプリケーション用usrconf.propertiesファイル固有のキーです。

キー名称
内容
デフォルト値

ejbserver.client.log.directorynum
Javaアプリケーションのログ出力先のサブディレクトリ数を，1～16の整数値で指定します。
指定したサブディレクトリ数を超えた場合は，いちばん古いclient_process_endファイルがあるサブディレクトリが削除されます。なお，0を指定した場合，サブディレクトリ数は無制限になり，サブディレクトリは削除されません。ejbserver.client.log.directoryに通常値のディレクトリを使用する場合は，このキーを指定しないでください。指定がない場合や0～16以外の値を指定した場合は，KDJE51002-Wのメッセージがcjlogger.logファイルに出力され，通常値が使用されます。
Javaアプリケーションを同時に17個以上起動する場合は，このキーには0を指定してください。この場合，サブディレクトリの管理にはcjcldellogコマンドを使用してください。
また，複数のJavaアプリケーションを同時に起動する場合，KDJE51005-Wのメッセージが頻繁に出力されるときには，サブディレクトリ数がこのキー値を超えていることがあります。この場合，このキーに0を指定して，cjcldellogコマンドを使用してサブディレクトリを管理してください。なお，このメッセージが出力される場合も，Javaアプリケーションは問題なく動作します。
cjcldellogコマンドについては，「5.3.5　サブディレクトリ数の管理で使用するコマンド（cjcldellog（システムログ出力先サブディレクトリの削除））」を参照してください。
なお，次の場合，このキーの指定は無効になります。

ejbserver.client.log.appidキーを指定した場合

サブディレクトリ共有モードの場合

なし

usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「14.3　usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）」を参照してください。

5.3.5　サブディレクトリ数の管理で使用するコマンド（cjcldellog（システムログ出力先サブディレクトリの削除））

サブディレクトリ数の管理には，次のコマンドを使用します。

表5-8　サブディレクトリ数の管理で使用するコマンド

コマンド名称 | 分類 | 概要
cjcldellog | Javaアプリケーションのシステムログ出力先サブディレクトリの削除 | vbjコマンドで起動したJavaアプリケーションのシステムログ出力先サブディレクトリを削除します。

コマンドの格納先

次のディレクトリに格納されています。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥client¥bin¥※

UNIXの場合
/opt/Cosminexus/CC/client/bin/

注※

Clientを使用している場合は，格納ディレクトリの「<Application Serverのインストールディレクトリ>¥CC¥」を，「<Application Serverのインストールディレクトリ>¥CCL¥」と読み替えてください。

以降にコマンドの文法を示します。

●形式

cjcldellog -t <時間>h|<日数>d [-f] <ログ出力先ディレクトリ名称>
          [<ログ出力先ディレクトリ名称> ...]

●機能

引数に指定したログ出力先ディレクトリに，指定した日数または時間より前の更新日時のサブディレクトリがあった場合に，削除します。なお，-fを指定しない場合は，起動中のJavaアプリケーションのサブディレクトリは削除しません。

なお，このコマンドは，vbjコマンドで起動したJava環境で実行するコマンドです。

このコマンドは，タスク（Windowsの場合），またはatコマンドやcrontabコマンド（UNIXの場合）を使用して定期的に実行してください。

●引数

-t <時間>h

更新時間が何時間よりも前のサブディレクトリを削除するかを1～8760の範囲（単位：時間）で指定します。例えば，2を指定した場合，更新時間が2時間前よりも古いサブディレクトリが削除されます。

-t <日数>d

更新日が何日よりも前のサブディレクトリを削除するかを1～365の範囲（単位：日）で指定します。例えば，2を指定した場合，更新日が2日よりも古いサブディレクトリが削除されます。

-f

指定された日時より古いサブディレクトリすべてを削除対象とします。省略した場合は，client_process_endファイルが存在するサブディレクトリだけが削除対象になります。

この引数を使用すると，Javaアプリケーション起動中のサブディレクトリも削除対象としてしまうおそれがあるため，すべてのJavaアプリケーションが終了していることを確認してからコマンドを実行してください。

<ログ出力先ディレクトリ名称>

削除対象にするサブディレクトリの上位ディレクトリである，ログ出力先ディレクトリを，フルパス名で指定します。ログ出力先ディレクトリを複数指定するときは，空白で区切ってください。また，複数のログ出力先ディレクトリを指定した場合，最後のディレクトリだけにワイルドカード（*）を指定できます。

なお，Windowsの場合，空白を含むパスを指定するときは，パス全体を""で囲む必要があります。

指定できるパスの例を次に示します。

Windowsの場合

 "C:¥Program Files¥Hitachi¥Cosminexus¥CC¥client¥logs¥ejb"
 C:¥work¥logs¥ejb*
 C:¥work¥logs¥ejb*log
 C:¥work¥logs¥*log

UNIXの場合

 /work/logs/ejb*
 /work/logs/ejb*log
 /work/logs/*log

●戻り値

0：

正常終了しました。

1：

異常終了しました。

●入力例

7日より前の更新日時のサブディレクトリをすべて削除する場合

Windowsの場合

 cjcldellog -t 7d -f c:¥work¥logs

UNIXの場合

 cjcldellog -t 7d -f /work/logs

12時間より前の更新日時のサブディレクトリでclient_process_endファイルが存在するサブディレクトリを削除する場合

Windowsの場合

 cjcldellog -t 12h c:¥work¥logs

UNIXの場合

 cjcldellog -t 12h /work/logs

複数のディレクトリ下にある12時間より前の更新日時のサブディレクトリで，client_process_endファイルが存在するサブディレクトリを削除する場合

Windowsの場合

 cjcldellog -t 12h c:¥work¥logs¥ejb1 c:¥work¥logs¥ejb2 c:¥work¥logs¥ejb3

UNIXの場合

 cjcldellog -t 12h /work/logs/ejb1 /work/logs/ejb2 /work/logs/ejb3

“ejb”で始まるディレクトリにある12時間より前の更新日時のサブディレクトリで，client_process_endファイルが存在するサブディレクトリを削除する場合

Windowsの場合

 cjcldellog -t 12h c:¥work¥logs¥ejb*

UNIXの場合

 cjcldellog -t 12h /work/logs/ejb*

●注意事項

ログ出力サブディレクトリ配下にユーザがディレクトリを作成した場合，このコマンドではサブディレクトリ下のログファイルは削除しますが，ユーザ作成ディレクトリは削除しません。この場合，サブディレクトリとユーザ作成ディレクトリが削除されないで残ります。

このコマンドでは作成後1時間以上経過していないログは削除できません。

サブディレクトリ共有モードで動作しているアプリケーションが使用しているサブディレクトリを削除しないでください。削除した場合，以降のログ出力が正しく行われなくなることがあります。

5.3.6　サブディレクトリ専有モード使用時の注意事項

EJBクライアントアプリケーションの同時起動の多重度が17多重以上の場合は，ejbserver.client.log.directorynumキーに0を指定してください。cjcldellogコマンドを使用してサブディレクトリ数を管理してください。

EJBクライアントアプリケーションを複数同時に起動すると，KDJE51005-Wのメッセージが出力されることがあります。EJBクライアントアプリケーションの動作には問題ありませんが，サブディレクトリ数がejbserver.client.log.directorynumキーに指定した値を超えている場合があります。このメッセージが頻繁に出力される場合は，ejbserver.client.log.directorynumキーの値を0にし，cjcldellogコマンドを使用してサブディレクトリ数を管理してください。ログ出力先のサブディレクトリ数を管理できるのは，サブディレクトリ専有モードを使用している場合だけです。サブディレクトリ共有モードを使用している場合は，サブディレクトリ数の管理はできません。

サブディレクトリ共有モードで動作しているEJBクライアントアプリケーションがある環境では，サブディレクトリ専有モードで開始するEJBクライアントアプリケーションで，システムプロパティのejbserver.client.ejb.logキーに"system"を指定しないでください。サブディレクトリ共有モードではejbserver.client.ejb.logキーのデフォルト値として"system"を使用するため，サブディレクトリ数が正しく管理できなくなります。

すでにアプリケーションサーバ 06-50よりも前のバージョンで構築した環境で，サブディレクトリ専有モードで動作させているEJBクライアントアプリケーションを，システムプロパティejbserver.client.ejb.logキーに"system"を指定した状態で06-50以降に移行した場合，サブディレクトリ専有モードのEJBクライアントアプリケーションとサブディレクトリ共有モードのEJBクライアントアプリケーションが混在することになります。この場合，次の図のような状態になります。

図5-2　サブディレクトリ専有モードで動作させているEJBクライアントアプリケーションがある環境にサブディレクトリ共有モードで動作するEJBクライアントアプリケーションを混在させた場合のディレクトリ構成

このように，混在した環境では，サブディレクトリ専有モードのEJBクライアントアプリケーションが作成できるサブディレクトリの数が，サブディレクトリ共有モードのEJBクライアントアプリケーションが使用するディレクトリの数（1個）分，少なくなります。なお，すでにdirectorynumで指定した数分のサブディレクトリが作成された状態で移行した場合は，サブディレクトリ専有モードで使用するサブディレクトリの数が減ることはありません。

cjclstartapコマンドはサブディレクトリ共有モードだけで使用してください。サブディレクトリ専有モードでcjclstartapコマンドを実行してEJBクライアントを起動した場合，EJBクライアント起動コマンドの稼働時の情報（cjclstartap[n].log）が正しく表示されません。

javalog[n].logはサブディレクトリ共有モードだけで使用できます。サブディレクトリ専有モードに設定した場合，ログは正しく出力されません。

サブディレクトリ専有モードを使用している場合，Javaアプリケーションに指定するシステムプロパティの次のキーについては，usrconf.properties（Javaアプリケーション用ユーザプロパティファイル）のデフォルト値がサブディレクトリ共有モードの場合と一部異なります。異なるキーとデフォルト値を次に示します。

キー名称 | デフォルト値
ejbserver.client.ejb.log | ejb
ejbserver.client.log.appid | <EJBクライアントアプリケーション識別ID>※

注※　サブディレクトリ専有モードの通常値として使用されるEJBクライアントアプリケーション識別IDには，vbjコマンドの場合，Javaアプリケーションの開始時刻とプロセスIDが使用されます。

サブディレクトリ専有モードを使用している場合，Javaアプリケーションに指定するシステムプロパティの次のキーについては，指定できる範囲がサブディレクトリ共有モードの場合と一部異なります。異なるキーと指定できる範囲を次に示します。

キー名称 | 指定できる範囲
ejbserver.logger.channels.define.<チャネル名>※.filenum | 1～16の整数値で指定します。
ejbserver.logger.channels.define.<チャネル名>※.filesize | 4096～2147483647​の整数値で指定します。

注※

チャネル名称として次に示す名称を設定できます。

ClientMessageLogFile，ClientExceptionLogFile，ClientMaintenanceLogFile，EJBContainerLogFile，UserOutLogFile，UserErrLogFile

資料の取得については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「2.3　資料の取得」を参照してください。

サブディレクトリ専有モードの場合，Javaアプリケーションに指定するシステムプロパティとして次のプロパティを指定しても無視されます。

ejbserver.client.log.lockInterval

ejbserver.client.log.lockRetryCount

5.4　EJB 2.1とServlet 2.4でのアノテーションの利用

アプリケーションサーバでは，EJB 2.1とServlet 2.4でアプリケーションサーバ独自のアノテーションを利用できます。この節では，EJB 2.1とServlet 2.4でのアノテーションの利用について説明します。

この節の構成を次の表に示します。

表5-9　この節の構成（EJB 2.1とServlet 2.4でのアノテーションの利用）

分類 | タイトル | 参照先
解説 | ロード対象のクラスとロード時に必要なクラスパス | 5.4.1
EJB 2.1とServlet 2.4でのアノテーション参照抑止機能 | 5.4.2
実装 | javax.annotationパッケージに含まれるアノテーションのサポート範囲 | 5.4.3
javax.ejbパッケージに含まれるアノテーションのサポート範囲 | 5.4.4
設定 | 実行環境での設定（J2EEサーバ単位の設定） | 5.4.5
アノテーション参照抑止機能の設定変更 | 5.4.6
注意事項 | アノテーションの利用時の注意事項 | 5.4.7

注　「運用」について，この節での説明はありません。

＜この節の構成＞

5.4.1　ロード対象のクラスとロード時に必要なクラスパス

5.4.2　EJB 2.1とServlet 2.4でのアノテーション参照抑止機能

5.4.3　javax.annotationパッケージに含まれるアノテーションのサポート範囲

5.4.4　javax.ejbパッケージに含まれるアノテーションのサポート範囲

5.4.5　実行環境での設定（J2EEサーバ単位の設定）

5.4.6　アノテーション参照抑止機能の設定変更

5.4.7　アノテーションの利用時の注意事項

5.4.1　ロード対象のクラスとロード時に必要なクラスパス

アノテーション情報は，次のような操作を実行したときに読み込まれます。

リソースの追加（cjaddapp）※

インポート時（cjimportapp）

インポート時（cjimportres）

インポート時（cjimportlibjar）※

開始時（cjstartapp）

リプレース時（cjreplaceapp）

リロード時（cjreloadapp）

注※

対象となるのはライブラリJARのクラスです。

アノテーション情報を読み込むためには，まずクラスをロードする必要があります。

J2EE1.4以前に準拠したJ2EEアプリケーションでアノテーション情報を読み込むためにロードするクラスを次の図に示します。

図5-3　アノテーション情報を読み込むためにロードするクラス

EJB-JAR（ejb-jar.xmlのバージョンが2.1）に含まれるクラスファイルまたはWAR（web.xmlのバージョンが2.4）に含まれるクラスファイルからアノテーション情報を読み込む場合のアノテーションは，アプリケーションサーバ独自の仕様です。また，アプリケーションサーバでは，アプリケーションサーバ独自の仕様によって，J2EE 1.4の場合でもejb-jar.xmlの省略とアノテーションの使用ができます。

なお，J2EE 1.4以前に準拠したJ2EEアプリケーションの場合，EJB-JAR（ejb-jar.xmlのバージョンが2.1，またはejb-jar.xmlが省略されたもの）やWAR（web.xmlのバージョンが2.4）からライブラリJARを使用することはできません。指定しても無視されます。

アノテーション情報を取得するためにクラスをロードするかどうかは，各モジュールのバージョン，およびJ2EEサーバで設定されているプロパティに依存します。

モジュールのバージョンがEJB-JAR（2.1）またはWAR（2.4）の場合のアノテーション情報を取得するかどうかの条件を次の表に示します。

表5-10　モジュールのバージョンがEJB-JAR（2.1）またはWAR（2.4）の場合

モジュール
J2EEサーバのプロパティ
ejbserver.deploy.applications.metadata_complete

falseまたはプロパティを省略時
true

EJB-JAR（2.1）
○
－

WAR（2.4）
WEB-INF/classes以下
○
－

WEB-INF/lib/JARファイル
－
－

（凡例）

○：アノテーション情報を取得する

－：アノテーション情報を取得しない

5.4.2　EJB 2.1とServlet 2.4でのアノテーション参照抑止機能

アノテーション参照抑止機能は，J2EEアプリケーション中のアノテーションの参照（解析処理）を実施するかどうかを設定する機能です。アノテーション参照抑止機能を使用すると，アノテーションを使用しない場合に，アノテーションの解析処理を抑止することができます。

EJB 2.1またはServlet 2.4でのアノテーションの利用は，アプリケーションサーバで拡張された機能です。このため，アノテーションを利用している場合に，アノテーションの参照を抑止したいときは，アプリケーションサーバ独自のアノテーション参照抑止機能を使用します。

なお，EJB 2.1またはServlet 2.4でのアノテーションの参照抑止機能は，J2EEサーバ単位だけで設定できます。モジュール単位の参照抑止は設定できません。また，J2EEサーバ単位のアノテーションの参照抑止機能を有効にした場合，アノテーションを記述したEJB 2.1またはServlet 2.4のモジュールを含むJ2EEアプリケーションは使用できなくなります。

5.4.3　javax.annotationパッケージに含まれるアノテーションのサポート範囲

javax.annotationパッケージのアノテーションの適用範囲を説明します。ここでは，WARファイル（Servlet 2.4対応）およびEJB-JARファイル（EJB2.1対応）のコンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　EJB-JARファイル（EJB2.1対応）

(2)　WARファイル（Servlet 2.4対応）

(1)　EJB-JARファイル（EJB2.1対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表5-11　EJB-JARファイル（EJB2.1対応）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean
@Resource※ | － | ○ | － | × | － | －
@Resources※ | － | ○ | － | × | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※

アプリケーションサーバでは，EJB2.1仕様，またはServlet2.4仕様のアプリケーションでもサポートしています。

(2)　WARファイル（Servlet 2.4対応）

WARファイルに記述できるアノテーションの一覧を示します。

表5-12　WARファイル（Servlet 2.4対応）に記述できるアノテーション（javax.annotationパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@Resource※1 | ○ | ○ | ○ | － | ○ | ○※2 | × | －
@Resources※1 | ○ | ○ | ○ | － | ○ | ○ | × | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※1

アプリケーションサーバでは，EJB2.1仕様，またはServlet2.4仕様のアプリケーションでもサポートしています。

注※2

Servlet2.4仕様のWebアプリケーションではメソッドおよびフィールドに対するDIができません。

5.4.4　javax.ejbパッケージに含まれるアノテーションのサポート範囲

javax.ejbパッケージのアノテーションの適用範囲を説明します。ここでは，WARファイル（Servlet 2.4対応）およびEJB-JARファイル（EJB2.1対応）のコンポーネントごとに記述できるアノテーションを説明します。

＜この項の構成＞

(1)　WARファイル（Servlet 2.4対応）

(2)　EJB-JARファイル（EJB2.1対応）

(1)　WARファイル（Servlet 2.4対応）

WARファイルに記述できるアノテーションの一覧を示します。

表5-13　WARファイル（Servlet 2.4対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Servlet仕様 | JSP仕様 | その他のクラス
サーブレット | サーブレットフィルタ | イベントリスナ | JSPファイル | タグハンドラ | タグライブラリイベントリスナ
クラシックタグハンドラ | シンプルタグハンドラ
@EJB※1 | ○ | ○ | ○ | － | ○ | ○※2 | × | －
@EJBs※1 | ○ | ○ | ○ | － | ○ | ○ | × | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※1

アプリケーションサーバでは，EJB2.1仕様，またはServlet2.4仕様のアプリケーションでもサポートしています。

注※2

Servlet2.4仕様のWebアプリケーションではメソッドおよびフィールドに対するDIができません。

(2)　EJB-JARファイル（EJB2.1対応）

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表5-14　EJB-JARファイル（EJB2.1対応）に記述できるアノテーション（javax.ejbパッケージ）

アノテーション名 | Enterprise Bean | 例外クラス | その他のクラス
インタフェース | Session Bean | Entity Bean | Message-driven Bean
@EJB※ | － | ○ | － | × | － | －
@EJBs※ | － | ○ | － | × | － | －

（凡例）

○：対応する。

×：アプリケーションサーバでは対応しない。

－：標準仕様で対応していない。

注※

アプリケーションサーバでは，EJB2.1仕様，またはServlet2.4仕様のアプリケーションでもサポートしています。

5.4.5　実行環境での設定（J2EEサーバ単位の設定）

EJB 2.1またはServlet 2.4のモジュールに対するアノテーション参照抑止機能の定義は，J2EEサーバ単位に設定します。設定した内容は，そのJ2EEサーバにデプロイされているすべてのJ2EEアプリケーションに適用されます。

J2EEサーバ単位でアノテーションの参照を抑止する設定は，簡易構築定義ファイルを編集して行います。論理J2EEサーバ（j2ee-server）の<configuration>タグ内に，次のパラメタで設定します。

キー名称
内容
省略値
導入されたバージョン

ejbserver.deploy.applications.metadata_complete
アノテーションを記述できるアプリケーションのうち，次のアプリケーションでアノテーション参照抑止機能を有効にするかどうかを指定します。

EJB 2.1

Servlet 2.4

trueを指定した場合：

アノテーションを参照しません。

falseを指定した場合：

アノテーションを参照します。

false
07-50

このパラメタは，usrconf.properties（J2EEサーバ用ユーザプロパティファイル）にも指定できます。

アノテーションの参照を抑止する設定をした場合，設定したJ2EEサーバの起動時に，アノテーションの参照を抑止することを示すメッセージが出力されます。J2EEサーバ起動前または起動後にアノテーションの参照を抑止しているかどうかの設定を確認する場合は，簡易構築定義ファイルの<configuration>タグ内のパラメタ「ejbserver.deploy.applications.metadata_complete」に設定された値を参照してください。

注意

J2EEサーバでejbserver.deploy.applications.metadata_completeにtrueを指定した場合，アノテーションを記述したEJB 2.1またはServlet 2.4のモジュールを含むJ2EEアプリケーションは使用できなくなります。

簡易構築定義ファイルおよびパラメタについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

usrconf.properties（J2EEサーバ用ユーザプロパティファイル）については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。

5.4.6　アノテーション参照抑止機能の設定変更

アノテーション参照抑止機能の設定を変更する場合について説明します。

＜この項の構成＞

(1)　モジュール単位の設定（DDのmetadata-complete属性の値）を変更する場合

(2)　J2EEサーバ単位の設定（簡易構築定義ファイルのejbserver.deploy.applications.metadata_completeの値）を変更する場合

(1)　モジュール単位の設定（DDのmetadata-complete属性の値）を変更する場合

DDのmetadata-complete属性を変更する場合は，metadata-complete属性を変更したアプリケーションを作成して，J2EEサーバに再度インポートする必要があります。

metadata-complete属性を変更した場合，リデプロイ機能（-replaceDDオプションを指定したcjreplaceappコマンド）によってアプリケーションを入れ替えようとすると，エラーになり，入れ替え処理は中断されます。

(2)　J2EEサーバ単位の設定（簡易構築定義ファイルのejbserver.deploy.applications.metadata_completeの値）を変更する場合

アプリケーションインポート後にejbserver.deploy.applications.metadata_completeの値を変更する場合について説明します。

trueからfalseに変更した場合は，アプリケーションのアノテーションが参照されるようになります。特に対処は不要です。

falseからtrueに変更した場合は，アノテーションが参照されなくなります。これに伴い，アプリケーションが正常に動作しなくなることがあります。アプリケーションが正常に動作しなくなった場合は，次の対処を実施してください。

アーカイブ形式のアプリケーションの場合

アノテーション参照抑止機能の設定を見直してください。または，J2EEアプリケーションの実装およびDDの設定を見直して，アノテーションを参照しなくても正しく動作するように設定を変更してください。変更後，アプリケーションを再度インポートしてください。

展開ディレクトリ形式のアプリケーションの場合

アノテーション参照抑止機能の設定を見直してください。または，J2EEアプリケーションの実装およびDDの設定を見直して，アノテーションを参照しなくても正しく動作するように設定を変更してください。変更後，アプリケーションを再開始してください。

5.4.7　アノテーションの利用時の注意事項

EJB 2.1，Servlet 2.4のモジュールに定義されたアノテーションの情報は，DDに定義しても上書きはされません。

これらのモジュールに定義できるのは，アプリケーションサーバ独自のアノテーションです。DDによって上書きすることはできません。

6.　拡張機能の互換機能（メモリセッションフェイルオーバ機能）

この章では，拡張機能の互換機能のうち，メモリセッションフェイルオーバ機能について説明します。

＜この章の構成＞

6.1　この章の構成

6.2　メモリセッションフェイルオーバ機能の概要

6.3　前提条件

6.4　グローバルセッションを利用したセッション管理（メモリセッションフェイルオーバ機能）

6.5　グローバルセッション情報のサイズの見積もり

6.6　HTTP Cookieによるグローバルセッションの制御

6.7　URL書き換えによるグローバルセッションの制御

6.8　グローバルセッションの制御方法が混在する場合のシステム構成

6.9　メモリセッションフェイルオーバ機能で実施される処理

6.10　メモリセッションフェイルオーバ機能使用時の障害検知

6.11　アプリケーションの実装

6.12　DDでの定義

6.13　cosminexus.xmlでの定義

6.14　J2EEサーバの設定

6.15　SFOサーバの設定

6.16　Webアプリケーションの設定

6.17　Webアプリケーションの設定情報の削除

6.1　この章の構成

ここでは，メモリセッションフェイルオーバ機能について説明します。この機能を使用すると，アプリケーションで実行中のセッション情報がJ2EEサーバとは別のプロセス（SFOサーバ）で管理され，J2EEサーバで障害が発生したときにそのセッション情報がほかのJ2EEサーバに引き渡されます。これによって，リクエストがほかのJ2EEサーバに転送された場合でも，障害発生前の状態で業務を続行できるようになります。

この章の構成を次の表に示します。

表6-1　この章の構成（メモリセッションフェイルオーバ機能）

分類 | タイトル | 参照先
解説 | メモリセッションフェイルオーバ機能の概要 | 6.2
前提条件 | 6.3
グローバルセッションを利用したセッション管理（メモリセッションフェイルオーバ機能） | 6.4
グローバルセッション情報のサイズの見積もり | 6.5
HTTP Cookieによるグローバルセッションの制御 | 6.6
URL書き換えによるグローバルセッションの制御 | 6.7
グローバルセッションの制御方法が混在する場合のシステム構成 | 6.8
メモリセッションフェイルオーバ機能で実施される処理 | 6.9
メモリセッションフェイルオーバ機能使用時の障害検知 | 6.10
実装 | アプリケーションの実装 | 6.11
DDでの定義 | 6.12
cosminexus.xmlでの定義 | 6.13
設定 | J2EEサーバの設定 | 6.14
SFOサーバの設定 | 6.15
Webアプリケーションの設定 | 6.16
Webアプリケーションの設定情報の削除 | 6.17

注　「運用」および「注意事項」について，この章での説明はありません。

6.2　メモリセッションフェイルオーバ機能の概要

メモリセッションフェイルオーバ機能は，セッション情報をSFOサーバに冗長化し，システムの可用性を高めるための機能です。

ここでは，メモリセッションフェイルオーバ機能の処理の概要，および適用手順の概要を説明します。

＜この節の構成＞

6.2.1　処理の概要

6.2.2　適用手順

6.2.1　処理の概要

メモリセッションフェイルオーバ機能を使用すると，リクエストによるセッションの生成処理が発生したときに，引き継ぎ対象に指定したセッション情報をSFOサーバに冗長化できます。そのため，J2EEサーバまたはWebサーバで障害が発生した場合も，ほかのJ2EEサーバでSFOサーバに格納されているセッション情報を基にセッションを再生成し，正常に業務を続行できます。

なお，SFOサーバで障害が発生した場合は，すべてのセッション情報は削除されます。また，SFOサーバでの障害発生後にリクエストを受け付けた場合は，SFOサーバへのセッション情報の冗長化は実施されません。

セッション情報の格納の流れ，および障害が発生した場合の処理について説明します。

＜この項の構成＞

(1)　セッション情報の格納の流れ

(2)　WebサーバまたはJ2EEサーバで障害が発生した場合の処理

(3)　データベースセッションフェイルオーバ機能とメモリセッションフェイルオーバ機能の機能差異

(1)　セッション情報の格納の流れ

メモリセッションフェイルオーバ機能を使用すると，リクエストによるセッションの作成処理が発生したときに，処理の延長上でセッション情報がSFOサーバに格納されます。

セッション情報の格納の流れを次の図に示します。

図6-1　セッション情報の格納の流れ

Webサーバがクライアントからセッションの作成が必要なリクエストを受け取ると，J2EEサーバでセッションが作成されます（1.）。セッションの作成処理の延長上で，セッション情報が作成され（2.），セッション情報がSFOサーバに格納されます（3.）。

(2)　WebサーバまたはJ2EEサーバで障害が発生した場合の処理

WebサーバまたはJ2EEサーバで障害が発生した場合，SFOサーバに格納されているセッション情報を基に，ほかのJ2EEサーバでセッションを再作成し，正常に業務を続行できます。

WebサーバまたはJ2EEサーバで障害が発生した場合の処理について，次の図に示します。

図6-2　WebサーバまたはJ2EEサーバで障害が発生した場合の処理

Webサーバ1／J2EEサーバ1で障害が発生すると，負荷分散機によってWebサーバ2へリクエストが転送されます（1.）。転送先のJ2EEサーバ2でリクエストを処理するとき，リクエストに関連づけられたセッションが存在しないため，SFOサーバからセッション情報を取得して（2.），セッションを再作成します（3.）。

セッションが正常に引き継がれ，障害発生前の状態で業務を続行できます。

(3)　データベースセッションフェイルオーバ機能とメモリセッションフェイルオーバ機能の機能差異

データベースセッションフェイルオーバ機能とメモリセッションフェイルオーバ機能ではHTTPセッションの情報の格納先が異なります。そのため，二つの機能には次の表に示す機能差異があります。

表6-2　データベースセッションフェイルオーバ機能とメモリセッションフェイルオーバ機能の機能差異

比較項目 | 機能差異
データベースセッションフェイルオーバ機能 | メモリセッションフェイルオーバ機能
HTTPセッションの情報の格納先 | データベース | SFOサーバ（メモリ）
J2EEサーバに障害が発生した際の動作 | 障害発生直前の状態から業務が再開できます。 | 障害発生直前の状態から業務が再開できます。
HTTPセッションの情報の格納先に障害が発生した際の動作 | J2EEサーバ上のセッション情報を操作して業務を続行できます。 | システム内のすべてのHTTPセッションが削除され，業務は再開できません。
システムの可用性 | データベースセッションフェイルオーバ機能が優れています。
リクエスト処理性能 | メモリセッションフェイルオーバ機能が優れています。

メモリセッションフェイルオーバ機能とデータベースセッションフェイルオーバ機能は同時に使用できません。機能差異を踏まえて，システムに適した機能を選択してください。なお，メモリセッションフェイルオーバ機能とデータベースセッションフェイルオーバ機能を同時に有効にする設定をした場合，アプリケーションの開始に失敗します。

6.2.2　適用手順

メモリセッションフェイルオーバ機能を使用する場合に必要な，環境構築の準備と各種設定について説明します。

＜この項の構成＞

(1)　環境構築の準備

(2)　必要な設定

(1)　環境構築の準備

メモリセッションフェイルオーバ機能を使用する場合に環境構築の準備として実施する項目について，実施内容および参照先を次の表に示します。

表6-3　メモリセッションフェイルオーバ機能を使用する環境構築の準備として実施する項目の実施内容および参照先

実施順序 | 実施項目 | 実施内容 | 参照先
1 | 前提条件の確認 | 前提となる構成および設定を確認します。 | 6.3
2 | グローバルセッション情報のサイズの見積もり | グローバルセッション情報のサイズを見積もります。見積もった値はWebアプリケーションの設定（グローバルセッション情報の最大サイズの設定）で必要になります。 | 6.5

(2)　必要な設定

メモリセッションフェイルオーバ機能を使用したシステムを構築する場合，J2EEサーバ，SFOサーバ，およびWebアプリケーションの設定が必要です。また，Webサーバ連携を使用し，かつURL書き換えを使用する場合，Webサーバの設定が必要です。

メモリセッションフェイルオーバ機能を使用する場合に必要な設定について，設定内容および参照先を次の表に示します。

表6-4　メモリセッションフェイルオーバ機能使用時に必要な設定項目の設定内容および参照先

設定順序
設定項目
設定内容
参照先

1
Webアプリケーションの設定※
Webアプリケーションの設定は，DD（web.xml）およびcosminexus.xmlに定義します。

DDに定義する項目

フィルタマッピング定義

グローバルセッション情報に関する設定

cosminexus.xmlに定義する項目

フィルタ定義

6.12，6.13

2
J2EEサーバの設定（必須）
次の設定をします。

グローバルセッション情報を格納するSFOサーバの設定

SFOサーバとの通信タイムアウトの設定

リクエストラインの最大サイズの設定（URL書き換えを使用し，かつインプロセスHTTPサーバを使用する場合）

6.7.5，6.14

3
SFOサーバの設定（必須）
次の設定をします。

SFOサーバの基本設定

SFOサーバの起動オプションの設定

6.15

4
Webサーバの設定
リクエストラインの最大サイズの設定をします（Webサーバ連携を使用し，かつURL書き換えを使用する場合）。
6.7.5

注※　Webアプリケーションの設定は開発環境で実施します。実行環境で属性ファイルを使用したWebアプリケーションの設定をしたい場合は「6.16　Webアプリケーションの設定」を参照してください。

SFOサーバに登録したWebアプリケーションの設定情報を削除する方法については，「6.17　Webアプリケーションの設定情報の削除」を参照してください。

6.3　前提条件

メモリセッションフェイルオーバ機能を利用するための前提条件について説明します。

＜この節の構成＞

6.3.1　前提となる構成

6.3.2　前提となる設定

6.3.1　前提となる構成

メモリセッションフェイルオーバ機能を使用するには，負荷分散機の使用が前提となります。メモリセッションフェイルオーバ機能は，負荷分散機を使用した，複数のJ2EEサーバにリクエストを振り分けるシステム構成の場合に使用できます。

メモリセッションフェイルオーバ機能を使用するためのシステム構成については，次の個所を参照してください。

マニュアル「アプリケーションサーバ システム設計ガイド」の「3.10.4　SFOサーバがシステムに複数存在する構成（メモリセッションフェイルオーバ機能）」

マニュアル「アプリケーションサーバ システム設計ガイド」の「3.10.5　SFOサーバがシステムに一つだけ存在する構成（メモリセッションフェイルオーバ機能）」

6.3.2　前提となる設定

メモリセッションフェイルオーバ機能を使用するためには，次の設定が必要です。

前提機能の設定

HttpSessionオブジェクト数の上限値の指定機能
有効となるHttpSessionオブジェクトの数に上限値を設定する機能です。なお，メモリセッションフェイルオーバ機能を使用する場合は，上限値に，1以上の有効な値を設定する必要があります。HttpSessionオブジェクト数の上限値の設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.5　HttpSessionオブジェクト数の上限値の設定」を参照してください。
なお，開発環境でグローバルセッション情報のサイズ見積もり機能を有効にする場合，HttpSessionオブジェクト数の上限値の指定は不要です。グローバルセッション情報のサイズ見積もり機能については，「6.5　グローバルセッション情報のサイズの見積もり」を参照してください。

セッションIDへのサーバIDの付加機能
HttpSessionのセッションIDに，Webコンテナごとに異なるサーバIDを付加する機能です。セッションIDへのサーバIDの付加については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.6　セッションIDおよびCookieへのサーバIDの付加」を参照してください。

HTTPセッションのスティッキー（Sticky）の設定
メモリセッションフェイルオーバ機能を使用するには，負荷分散機にHTTPセッションのスティッキーを設定する必要があります。
HTTPセッションのスティッキーを設定しない場合，HTTPセッションを保持したリクエストの振り分け先が固定されません。そのため，HTTPセッションを保持したリクエストを受け付けるたびにHTTPセッションの引き継ぎ処理が実施され，性能が劣化するおそれがあります。

6.4　グローバルセッションを利用したセッション管理（メモリセッションフェイルオーバ機能）

メモリセッションフェイルオーバ機能を使用する場合，グローバルセッション情報は，SFOサーバで管理されます。SFOサーバとは，システム内のグローバルセッション情報を管理するためのJ2EEサーバです。

セッション情報の引き継ぎの流れについて次の図で説明します。

図6-3　セッション情報引き継ぎの流れ（メモリセッションフェイルオーバ機能）

J2EEサーバ1でHTTPセッションの生成後，グローバルセッション情報はSFOサーバに格納されます。

J2EEサーバ1に障害が発生すると，処理を引き継いだJ2EEサーバ2では，SFOサーバに対して，グローバルセッションIDを基にグローバルセッション情報の取得を要求します。
グローバルセッションIDとは，グローバルセッション情報を一意に識別するためのIDです。

J2EEサーバ2では，セッションに対するリクエスト処理を開始する際に，グローバルセッション情報の同期をとるため，グローバルセッション情報に対してロックを掛けます。

SFOサーバは，J2EEサーバ2にグローバルセッション情報を渡します。

J2EEサーバ2でのリクエスト処理が完了すると，リクエスト処理で更新されたグローバルセッション情報は，SFOサーバに送信されます。

SFOサーバ側で，グローバルセッション情報が更新されます。

ロックが解除されます。

流れの中で出てきた項目について，以降の項で説明します。

＜この節の構成＞

6.4.1　グローバルセッションID

6.4.2　グローバルセッション情報

6.4.3　グローバルセッションを利用するためのシステム構成要素

6.4.4　グローバルセッション情報が引き継がれるセッションの条件

6.4.5　サーバの状態とグローバルセッション情報の引き継ぎ

6.4.6　グローバルセッションの制御方法

6.4.7　グローバルセッション情報の排他制御

6.4.8　グローバルセッション情報の最大数

6.4.1　グローバルセッションID

グローバルセッションIDとは，グローバルセッションを管理するためのIDです。グローバルセッションIDによって，システム内でグローバルセッション情報を一意に識別できます。グローバルセッションIDは，HttpSessionオブジェクトが作成されるごとに，HTTPセッションIDに関連づけて発行されます。J2EEサーバに障害が発生し，セッション情報が引き継がれるときにも，グローバルセッションIDが変わることはありません。

グローバルセッションIDは，グローバルセッションIDの発行時刻，およびHTTPセッションIDで構成されています。

グローバルセッションIDの形式を次の図に示します。

図6-4　グローバルセッションIDの形式

グローバルセッションIDの発行時刻は，GMT（グリニッジ標準時）の1970年1月1日0時からの通算ミリ秒数（8バイトのデータを16進数で表現したもの）です。J2EEサーバで障害が発生したときに，障害発生前と障害発生後に作成されたグローバルセッションIDを必ず一意にするために付加されています。

HTTPセッションIDは，J2EEサーバ内で一意な文字列と，サーバIDで構成されています。サーバIDとは，セッションIDへのサーバID付加機能で設定されるIDです。セッションIDへのサーバID付加機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.6　セッションIDおよびCookieへのサーバIDの付加」を参照してください。

6.4.2　グローバルセッション情報

メモリセッションフェイルオーバ機能を使用する場合，グローバルセッション情報はSFOサーバで管理されます。

SFOサーバでグローバルセッション情報として保持するセッション情報には，次の設定ができます。

グローバルセッション情報として引き継ぐセッション情報の範囲

グローバルセッション情報として指定できるセッション情報のデータ型

グローバルセッション情報の種別（書き換え可能にするかまたは読み込み専用にするか）

これらの設定は，セッションフェイルオーバ用フィルタに設定します。設定については，「6.12　DDでの定義」を参照してください。

次に，各設定内容について説明します。

＜この項の構成＞

(1)　グローバルセッション情報として引き継ぐセッション情報の範囲

(2)　グローバルセッション情報として指定できるセッション情報のデータ型

(3)　引き継ぎ対象外のオブジェクトの扱い

(4)　グローバルセッション情報の種別

(5)　SFOサーバでのグローバルセッション情報の管理方法

(1)　グローバルセッション情報として引き継ぐセッション情報の範囲

SFOサーバでは，引き継ぎ対象として選択したセッション情報だけがグローバルセッション情報として保持されます。グローバルセッション情報として選択できるセッション情報は，HTTPセッションに登録された一部，またはすべてです。引き継ぎ対象として選択するセッション情報は，グローバルセッション情報の種別ごとに指定できます。グローバルセッション情報の種別については，「(4)　グローバルセッション情報の種別」を参照してください。

グローバルセッション情報選択時の注意事項

パフォーマンス向上のために，グローバルセッション情報には，必要最低限のHTTPセッション情報を指定してください。

(a)　HTTPセッションに登録された一部のセッション情報を引き継ぐ場合

HTTPセッションに登録されたセッション情報のうち，一部のセッション情報をグローバルセッション情報として引き継ぐ場合には，あらかじめ，DD（web.xml）で引き継ぎ対象とするセッション情報のキー名称を指定する必要があります。この場合，Webアプリケーション内で動的にキー名称を作成するセッション情報をグローバルセッションとして指定することはできません。

HTTPセッションに登録された一部のセッション情報を引き継ぐ例を次の図に示します。

図6-5　HTTPセッションに登録された一部のセッション情報を引き継ぐ例

(b)　HTTPセッションに登録されたすべてのセッション情報を引き継ぐ場合

HTTPセッションに登録されたセッション情報を，グローバルセッション情報としてすべて引き継ぐ場合には，あらかじめ，DD（web.xml）で引き継ぎ対象とするセッション情報のキー名称を設定する必要はありません。ただし，すべてのセッション情報を引き継ぐ設定をする必要があります。

注意

HTTPセッションに登録されたすべてのセッション情報をグローバルセッション情報として引き継ぐと，引き継ぐ必要がない情報がHTTPセッションに登録されている場合に，リクエスト処理のパフォーマンスが低下することがあります。このため，グローバルセッション情報には，必要なHTTPセッション情報だけ指定して引き継ぐことをお勧めします。

(2)　グローバルセッション情報として指定できるセッション情報のデータ型

(a)　データ型の種類

グローバルセッション情報として指定できるセッション情報には，次のデータ型のオブジェクトが指定できます。

java.lang.Stringクラスのオブジェクト

byte型配列

直列化可能クラスのオブジェクト

java.lang.Stringクラス以外のデータ型のオブジェクトを引き継ぎ対象とする場合は，あらかじめ，DD（web.xml）でデータ型の引き継ぎを許可する設定が必要です。DD（web.xml）でデータ型の設定を省略した場合は，java.lang.Stringクラスのオブジェクトだけが引き継ぎ可能なセッション情報となります。

参考

既存のJ2EEアプリケーションにメモリセッションフェイルオーバ機能を適用するときは，引き継ぎをしたいセッション情報のデータ型を確認してください。指定したデータ型以外のオブジェクトの扱いについては，「(3)　引き継ぎ対象外のオブジェクトの扱い」を参照してください。

(b)　直列化可能クラスのオブジェクトを引き継ぎ対象にする場合の注意事項

直列化可能クラスは，java.io.Serializableインタフェースを実装したクラスです。java.io.ObjectOutputStreamクラスのwriteObject()メソッドによってシリアライズできます。直列化可能クラスのオブジェクトを引き継ぎ対象にすると，グローバルセッション情報は，セッション情報をjava.io.ObjectOutputStreamクラスでシリアライズして作成されます。この場合，引き継ぐセッション情報のデータ型が，java.lang.Stringクラスのオブジェクト，またはbyte型配列であっても，データ型に関係なく，直列化可能クラスのオブジェクトとしてシリアライズされます。
セッション情報のシリアライズ処理では，属性ごとにシリアライズしたあとに，作成したグローバルセッション情報のサイズをチェックします。シリアライズ後の一時的なデータは，GSInfosLengthMaxに指定したグローバルセッション情報の最大サイズに関係なく作成されます。このため，見積もった値を超える巨大なオブジェクトがHTTPセッションに登録されることがあります。この場合，グローバルセッション情報の作成中にメモリ不足（OutOfMemoryErrorエラー）が発生するおそれがあるので，注意してください。

メモリセッションフェイルオーバ機能では，次に示す直列化可能クラスのオブジェクトを引き継ぎ対象としてサポートしています。

J2EEアプリケーションで提供されるクラスのオブジェクト

J2SEで提供されるクラスのオブジェクト

ただし，引き継ぎ処理では，HTTPセッションに登録された直列化可能クラスのオブジェクトが，メモリセッションフェイルオーバ機能でサポートされているかオブジェクトかどうかはチェックされません。このため，メモリセッションフェイルオーバ機能でサポートしていないオブジェクトをHTTPセッションに登録している場合には，次のどちらかを実施して，このオブジェクトが引き継がれないようにしてください。

DD（web.xml）で引き継ぎ対象とするオブジェクトのキー名称を設定する。

オブジェクトが引き継がれないようにJ2EEアプリケーションを変更する。

(c)　データ型選択時の注意事項

セッション情報が直列化可能クラスのオブジェクトである場合，グローバルセッション情報の更新，および引き継ぎ処理で，オブジェクトのシリアライズまたはデシリアライズ処理が必要になります。シリアライズ処理は，引き継ぎ対象のオブジェクトだけでなく，このオブジェクトから参照されるオブジェクトすべてを対象とします。このため，引き継ぐ必要がない情報を含むクラスの場合，性能が低下することがあります。

シリアライズ処理の対象範囲の例を次の図に示します。

図6-6　シリアライズ処理の対象範囲の例

この図では，HTTPセッションに登録されたオブジェクト（1～3）にフィールドとして含まれているオブジェクト（a～e）も，シリアライズ処理の対象に含まれます。

パフォーマンス向上のためには，グローバルセッション情報をjava.lang.Stringクラスまたはbyte型配列のオブジェクトに限定することをお勧めします。

(3)　引き継ぎ対象外のオブジェクトの扱い

グローバルセッション情報として引き継ぎ対象外となるオブジェクトがHTTPセッションに登録された場合の扱いについて説明します。引き継ぎ対象とするセッション情報のデータ型および範囲の設定によって，オブジェクトの扱いが異なります。

また，直列化可能クラスのオブジェクトの場合，セッション情報の引き継ぎ時にシリアライズ処理またはデシリアライズ処理を実施します。これらの処理に成功するかどうかによってもオブジェクトの扱いが異なります。

(a)　java.lang.Stringクラスまたはbyte型配列のオブジェクトが引き継ぎ対象である場合

リクエスト処理完了時点で，HTTPセッションにjava.lang.Stringクラスまたはbyte型配列以外のオブジェクトが登録されている場合，引き継ぎ対象とするセッション情報の範囲の設定によって，セッション情報を引き継ぐかどうかが異なります。HTTPセッションに引き継ぎ対象外のオブジェクトが登録されている場合のセッション情報の引き継ぎ可否を次の表に示します。

表6-5　HTTPセッションに引き継ぎ対象以外のオブジェクトが登録されている場合のセッション情報の引き継ぎ可否

引き継ぎ対象とするセッション情報の範囲
リクエスト処理完了時点の動作
セッション情報の引き継ぎ可否

引き継ぎ対象外のオブジェクト
引き継ぎ対象のオブジェクト

一部のセッション情報※を引き継ぐ場合
KDJE34226-Eのメッセージが出力され，エラーが通知されます。
HTTPセッションに登録されたすべての書き換え可能グローバルセッション情報は削除され，リクエストが処理されます。この場合，KDJE34219-WのメッセージがWarningレベルで出力されます。
セッション情報は引き継がれません。
エラーが通知される原因となったHTTPセッションに登録された，すべてのセッション情報が引き継がれません。

すべてのセッション情報を引き継ぐ場合
KDJE34255-WのメッセージがWarningレベルで出力されます。
セッション情報は引き継がれません。
セッション情報はSFOサーバに冗長化されて，引き継がれます。

注※　DD（web.xml）で指定したキーで登録されたセッション情報です。

(b)　直列化可能クラスのオブジェクトが引き継ぎ対象である場合

リクエスト処理完了時点で，HTTPセッションに引き継ぎ対象外のオブジェクト登録されている場合，引き継ぎ対象とするセッション情報の設定範囲によって，セッション情報を引き継ぐかどうかが異なります。

また，直列化可能クラスのオブジェクトの場合，セッション情報の引き継ぎ時にシリアライズ処理またはデシリアライズ処理を実施します。これらの処理に成功するかどうかによってもオブジェクトの扱いが異なります。

HTTPセッションに登録された一部のセッション情報を引き継ぐ場合
DD（web.xml）で指定したキーで登録されたセッション情報は，java.io.Serializableインタフェースを実装した直列化可能クラスでなければなりません。リクエスト処理完了時点で，java.io.Serializableインタフェースを実装していないクラスのオブジェクトや，直列化可能クラス以外のオブジェクトが登録されていた場合にはエラーとなります。この場合，HTTPセッションに登録されたすべてのセッション情報が引き継がれません。
HTTPセッションに登録されたオブジェクトによるセッション情報の引き継ぎ可否を次の表に示します。

表6-6　HTTPセッションに登録されたオブジェクトの内容によるセッション情報の引き継ぎ可否（一部のセッション情報を引き継ぐ場合）

項番
HTTPセッションに登録されたオブジェクトの内容
リクエスト処理完了時点の動作
セッション情報の引き継ぎ可否

java.io.Serializableインタフェースの実装の有無
シリアライズの成功/失敗
引き継ぎ対象外のオブジェクト
引き継ぎ対象のオブジェクト

1
java.io.Serializableインタフェースの実装あり
シリアライズの成功
リクエストは処理されます。
－（該当しません）
セッション情報はSFOサーバに冗長化されて，引き継がれます。

2
シリアライズの失敗
KDJE34256-Eのメッセージが出力され，エラーが通知されます。
HttpSessionオブジェクトに登録されたすべての書き換え可能グローバルセッション情報は削除され，リクエストが処理されます。この場合，KDJE34219-WのメッセージがWarningレベルで出力されます。
セッション情報は引き継がれません。
エラーが通知される原因となったHTTPセッションに登録された，すべてのセッション情報は引き継がれません。

3
java.io.Serializableインタフェースの実装なし
－（シリアライズできません）
KDJE34226-Eのメッセージが出力され，エラーが通知されます。
HTTPセッションに登録されたすべての書き換え可能グローバルセッション情報は削除され，リクエストが処理されます。この場合，KDJE34219-WのメッセージがWarningレベルで出力されます。
セッション情報は引き継がれません。
エラーが通知される原因となったHTTPセッションに登録された，すべてのセッション情報は引き継がれません。

HTTPセッションに登録されたすべてのセッション情報を引き継ぐ場合
リクエスト処理完了時点で，HTTPセッションにjava.io.Serializableインタフェースを実装していないクラスのオブジェクトや，直列化可能クラス以外のオブジェクトが登録されていた場合，これらのオブジェクトは無視されて引き継がれません。
HTTPセッションに登録されたオブジェクトによるセッション情報の引き継ぎ可否を次の表に示します。

表6-7　HTTPセッションに登録されたオブジェクトの内容によるセッション情報の引き継ぎ可否（すべてのセッション情報を引き継ぐ場合）

項番
HTTPセッションに登録されたオブジェクトの内容
リクエスト処理完了時点の動作
セッション情報の引き継ぎ可否

java.io.Serializableインタフェースの実装の有無
シリアライズの成功/失敗
引き継ぎ対象外のオブジェクト
引き継ぎ対象のオブジェクト

1
java.io.Serializableインタフェースの実装あり
シリアライズの成功
リクエストは処理されます。
－（該当しません）
セッション情報はSFOサーバに冗長化されて，引き継がれます。

2
シリアライズの失敗
KDJE34256-Eのメッセージが出力され，エラーが通知されます。
HttpSessionオブジェクトに登録されたすべての書き換え可能グローバルセッション情報は削除され，リクエストが処理されます。この場合，KDJE34219-WのメッセージがWarningレベルで出力されます。
セッション情報は引き継がれません。
エラーが通知される原因となったHTTPセッションに登録された，すべてのセッション情報は引き継がれません。

3
java.io.Serializableインタフェースの実装なし
－（シリアライズできません）
KDJE34255-Wのメッセージが出力されます。
セッション情報は無視され，引き継がれません。
セッション情報はSFOサーバに冗長化されて，引き継がれます。

SFOサーバからJ2EEサーバへグローバルセッション情報を引き継ぐ場合
J2EEサーバ間でセッション情報を引き継ぐ場合，J2EEサーバは，SFOサーバからグローバルセッション情報を取得します。この時，グローバルセッション情報のデシリアライズ処理を実施します。デシリアライズ処理によるグローバルセッション情報の引き継ぎ可否を次の表に示します。

表6-8　デシリアライズ処理によるグローバルセッション情報の引き継ぎ可否

項番
デシリアライズの成功/失敗
引き継ぎ先のJ2EEサーバの処理
セッション情報の引き継ぎ可否

1
デシリアライズの成功
SFOサーバから引き継いだグローバルセッション情報を使用してリクエストは処理されます。
SFOサーバからJ2EEサーバへグローバルセッション情報が引き継がれます。

2
デシリアライズの失敗
グローバルセッション情報およびセッション情報を削除され，KDJE34258-EおよびKDJE34214-Eのメッセージが出力されます。
J2EEサーバ間のセッション情報の引き継ぎに失敗するため，リクエストはHTTPセッションがない状態で処理されます。
SFOサーバからJ2EEサーバへグローバルセッション情報は引き継がれません。

シリアライズおよびデシリアライズに失敗する原因

シリアライズおよびデシリアライズに失敗する原因について，次に示します。

シリアライズに失敗する原因

java.io.Serializableインタフェースを実装したクラスのオブジェクトがシリアライズに失敗する原因として，次の2点が考えられます。

HTTPセッションに登録された直列化可能クラスのオブジェクトから参照されたオブジェクトが，直列化可能クラス以外のクラスであった。

writeObject（java.io.ObjectOutputStream out）メソッドが実装されていて，かつwriteObject（java.io.ObjectOutputStream out）メソッドでシリアライズ時に例外が発生した。

デシリアライズに失敗する原因

java.io.Serializableインタフェースを実装したクラスのオブジェクトがデシリアライズに失敗する原因として，次の2点が考えられます。

アプリケーションが，シリアライズ処理時とデシリアライズ処理時で異なっていて，デシリアライズ処理が失敗する原因となる変更がアプリケーションに加えられている。

readObject（java.io.ObjectOutputStream in）メソッドが実装されていて，かつreadObject（java.io.ObjectOutputStream in）メソッドでデシリアライズ時に例外が発生した。

(4)　グローバルセッション情報の種別

保持するセッション情報には，グローバルセッション情報の種別を設定します。グローバルセッション情報の種別には，次の2種類があります。

書き換え可能グローバルセッション情報
書き換え可能グローバルセッション情報とは，HttpSessionオブジェクトに登録されたあと，変更が必要となるセッション情報です。書き換え可能グローバルセッション情報は，SFOサーバに障害が発生した場合，破棄されます。
HttpSessionオブジェクトへの登録後，更新や削除をする必要があり，リクエスト処理の推移とともに，更新される可能性のあるセッション情報は，書き換え可能グローバルセッション情報に設定してください。

読み込み専用グローバルセッション情報
読み込み専用グローバルセッション情報とは，HttpSessionオブジェクトに登録されたあと，変更されないセッション情報です。読み込み専用グローバルセッション情報は，SFOサーバに障害が発生しても，そのまま使用できます。
HttpSessionオブジェクトに登録した情報に対して，更新や削除をする必要のないセッション情報は，読み込み専用グローバルセッション情報に設定してください。例えば，ログイン情報など，一度登録すると更新する必要のない情報を読み込み専用グローバルセッション情報に設定すると，SFOサーバに障害が発生した場合でも，ユーザに対して再ログインを要求する必要がなくなるので，ユーザへの影響を軽減できます。

(5)　SFOサーバでのグローバルセッション情報の管理方法

SFOサーバでは，HttpSessionオブジェクトに含まれるグローバルセッション情報は連結されて管理されます。直列化可能クラスのオブジェクトが引き継ぎ対象でない場合，セッション情報の連結には，区切り文字として半角セミコロン（;）が使用されます。直列化可能クラスのオブジェクトが引き継ぎ対象である場合は，連結するセッション情報がシリアライズ後の情報であるため，セッション情報の連結に区切り文字は使用されません。

なお，連結されたグローバルセッション情報のサイズには上限があります。上限を超えると，エラーになります。また，上限を超えたサイズのグローバルセッション情報は，SFOサーバでは管理されないので注意してください。グローバルセッション情報の最大サイズは，WebアプリケーションのDD（web.xml）で指定します。メモリセッションフェイルオーバ機能を使用する場合に必要な定義については，「6.12.1　DDの作成」を参照してください。また，開発環境でグローバルセッション情報のサイズを見積もる場合には，グローバルセッション情報のサイズ見積もり機能が使用できます。グローバルセッション情報のサイズ見積もり機能については，「6.5　グローバルセッション情報のサイズの見積もり」を参照してください。

また，デプロイ後のWebアプリケーションの場合，Webアプリケーションを含むJ2EEアプリケーションの属性（プロパティ）として設定できます。デプロイ後のWebアプリケーションのセッションフェイルオーバ用フィルタの設定については，「6.12　DDでの定義」を参照してください。

6.4.3　グローバルセッションを利用するためのシステム構成要素

ここでは，グローバルセッションを利用するためのシステム構成要素である，次のサーバプロセス，アプリケーションおよびフィルタについて説明します。

SFOサーバ

SFOサーバアプリケーション

セッションフェイルオーバ用フィルタ

SFOサーバアプリケーションは，SFOサーバ上で動作するアプリケーションです。セッションフェイルオーバ用フィルタは，J2EEサーバで動作するJ2EEアプリケーションに設定するサーブレットフィルタです。

＜この項の構成＞

(1)　SFOサーバ

(2)　SFOサーバアプリケーション

(3)　セッションフェイルオーバ用フィルタ

(1)　SFOサーバ

SFOサーバとは，グローバルセッション情報を管理するサーバプロセスです。メモリセッションフェイルオーバ機能を使用するためには，システム内にSFOサーバを配置する必要があります。

●SFOサーバの役割

SFOサーバは，J2EEサーバのJ2EEアプリケーション内で生成されたグローバルセッション情報を管理する機能を持つサーバプロセスです。実体はJ2EEサーバです。

J2EEアプリケーションが稼働しているJ2EEサーバに障害が発生して，J2EEサーバ間でグローバルセッション情報の引き継ぎが必要になると，引き継がれる側のJ2EEサーバは，SFOサーバに対してグローバルセッション情報の取得要求をします。

SFOサーバは，SFOサーバアプリケーションだけを実行するためのJ2EEサーバです。SFOサーバアプリケーション以外のアプリケーションを実行しないでください。

また，SFOサーバでは，SFOサーバアプリケーションを登録するために，CORBAネーミングサービスを使用します。CORBAネーミングサービスはSFOサーバのインプロセスで動作させてください。

●SFOサーバの複数配置

SFOサーバに障害が発生すると，SFOサーバ上で管理されているグローバルセッション情報はすべて削除されます※。SFOサーバの障害発生に備えて，システム内にSFOサーバを複数配置することもできます。

注※

削除されるのは，書き換え可能グローバルセッション情報です。読み込み専用のグローバルセッション情報は削除されません。書き換え可能，および読み込み専用のグローバルセッション情報については，「6.4.2　グローバルセッション情報」を参照してください。

SFOサーバを複数配置するときの推奨構成

SFOサーバを複数配置する構成では，J2EEサーバごとにSFOサーバを配置するのではなく，J2EEサーバ内のWebアプリケーションごとにSFOサーバを割り当てることをお勧めします。これによって，SFOサーバに障害が発生した場合の影響範囲を，障害が発生したSFOサーバを使用していたWebアプリケーションだけにとどめることができます。配置例を次の図に示します。

図6-7　複数のSFOサーバの配置例

図のように，アプリケーション1のグローバルセッション情報をSFOサーバ1で，アプリケーション2のグローバルセッション情報をSFOサーバ2で管理している場合，SFOサーバ1に障害が発生しても，影響範囲はアプリケーション1だけで済みます。また，ほかのWebアプリケーションに影響を与えることなく，SFOサーバの再起動を伴うWebアプリケーションの設定変更をすることもできます。

●SFOサーバでのJ2EEサーバの切断検知

SFOサーバでは，SFOサーバと一度接続したJ2EEサーバについて，切断検知ができます。J2EEサーバの切断は，Stateful Session Beanのタイムアウトで検知できます。J2EEサーバとの接続が切断された場合，デフォルトで最大6分後にJ2EEサーバの切断を検知できます。なお，SFOサーバがJ2EEサーバの切断を検知する前に，一度切断されたJ2EEサーバが，切断前にSFOサーバに格納したセッション情報を取得するためにSFOサーバに再接続することがあります。この場合，SFOサーバでは，J2EEサーバがいったん切断されたことを検知し，再接続をします。

(2)　SFOサーバアプリケーション

SFOサーバ上では，SFOサーバで使用するJ2EEアプリケーションが稼働しています。このJ2EEアプリケーションを，SFOサーバアプリケーションといいます。

SFOサーバアプリケーションは，グローバルセッション情報を管理する機能が実装されたアプリケーションです。EJBで実装されています。

SFOサーバアプリケーションはアプリケーションサーバで提供しています。SFOサーバをセットアップするときに，SFOサーバアプリケーションをJ2EEサーバにインポートしてください。

ポイント

Smart Composer機能を使用してシステムを構築する場合は，sfo-tierを使用してシステムを構築すると，SFOサーバアプリケーションがSFOサーバに自動的にインポートされます。

(3)　セッションフェイルオーバ用フィルタ

セッションフェイルオーバ用フィルタは，J2EE仕様で規定されたjavax.servlet.Filterインタフェースを持つクラスです。J2EEアプリケーションで実行中のセッション情報を管理するサーブレットフィルタで，J2EEサーバで障害が発生したときに，管理しているセッション情報をほかのJ2EEサーバに引き継ぎます。セッションフェイルオーバ用フィルタでは，セッション情報を管理し，J2EEサーバ間のセッションの情報を引き継ぐために，次の内容を設定します。

グローバルセッション情報

グローバルセッション情報の最大サイズ

グローバルセッション情報を格納するSFOサーバの名称

グローバルセッションの制御方法

グローバルセッションIDの送信に使用するCookieの名称

グローバルセッションIDの送信に使用するURLのパスパラメタ名

グローバルセッション情報のロック待ちタイムアウト

byte型配列であるセッション情報の引き継ぎ許可

直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可

セッションフェイルオーバ用フィルタは，メモリセッションフェイルオーバ機能の対象にするJ2EEアプリケーションに追加して使用します。

6.4.4　グローバルセッション情報が引き継がれるセッションの条件

ここでは，メモリセッションフェイルオーバ機能を使用できるセッションの条件と，サーバ障害が発生したときのグローバルセッション情報の引き継ぎについて説明します。

メモリセッションフェイルオーバ機能では，次の二つの条件を満たしているセッションの場合に，グローバルセッション情報が引き継がれます。

SFOサーバが正常に稼働している状態で作成されたセッションであること。

障害が発生した場所がクライアントから送信されるリクエストの間で，どのJ2EEサーバからも使用されていないセッションであること。

これらの条件を満たしていない場合は，グローバルセッション情報は引き継がれず，破棄されます。

また，障害発生時にJ2EEサーバで使用しているセッションについても，グローバルセッション情報は引き継がれません。障害が発生したJ2EEサーバで処理されていたリクエストは，エラーとしてクライアントに返され，セッションが切断されます。

次に，Webサーバ，J2EEサーバ，SFOサーバで障害が発生したときの，リクエストの処理位置による，グローバルセッション情報の引き継ぎの有無について説明します。

＜この項の構成＞

(1)　Webサーバで障害が発生した場合

(2)　J2EEサーバで障害が発生した場合

(3)　SFOサーバで障害が発生した場合

(1)　Webサーバで障害が発生した場合

Webサーバで障害が発生した場合，障害発生時のリクエストの処理の位置にかかわらず，リクエスト自体は正常に処理され，グローバルセッション情報が引き継がれます。障害発生時のリクエストの処理位置と，グローバルセッション情報の引き継ぎについて次の図に示します。

図6-8　障害発生時のリクエストの処理位置とグローバルセッション情報の引き継ぎ（Webサーバでの障害発生の場合）

クライアントへのレスポンスについて

図中の項番1.，2.，4.，5.，6.，7.のリクエスト処理中に障害が発生した場合
クライアントへのレスポンスはエラーとなります。

図中の項番3.のリクエスト処理中に障害が発生した場合
クライアントへのレスポンスは正常に返ります。

(2)　J2EEサーバで障害が発生した場合

J2EEサーバで障害が発生した場合，障害発生時のリクエストの処理の位置がJ2EEサーバ上にあるときは，グローバルセッション情報が破棄され，引き継ぎできません。障害発生時のリクエストの処理位置と，グローバルセッション情報の引き継ぎについて次の図に示します。

図6-9　障害発生時のリクエストの処理位置とグローバルセッション情報の引き継ぎ（J2EEサーバでの障害発生の場合）

クライアントへのレスポンスについて

図中の項番1.，4.，5.，6.のリクエスト処理中に障害が発生した場合
クライアントへのレスポンスはエラーとなります。

図中の項番2.，3.，7.のリクエスト処理中に障害が発生した場合
クライアントへのレスポンスは正常に返ります。

(3)　SFOサーバで障害が発生した場合

SFOサーバで障害が発生した場合，グローバルセッションはすべて切断されます。また，SFOサーバでの障害発生後のリクエストは，書き換え可能グローバルセッション情報は破棄されて，処理されます。

6.4.5　サーバの状態とグローバルセッション情報の引き継ぎ

サーバの停止時，およびサーバの障害発生時のセッション情報の引き継ぎについて説明します。

ここでは，次の状態の場合のセッション情報の引き継ぎについて説明します。

J2EEサーバまたはSFOサーバ停止時のセッション情報の引き継ぎ

Webサーバ，J2EEサーバまたはSFOサーバでの障害発生時のセッション情報の引き継ぎ

＜この項の構成＞

(1)　J2EEサーバ停止時のセッション情報の引き継ぎ

(2)　SFOサーバ停止時のセッション情報の引き継ぎ

(3)　WebサーバまたはJ2EEサーバの障害発生時のセッション情報の引き継ぎ

(4)　SFOサーバの障害発生時のセッション情報の引き継ぎ

(1)　J2EEサーバ停止時のセッション情報の引き継ぎ

J2EEサーバを停止すると，J2EEサーバ内のHTTPセッションは破棄されますが，SFOサーバ上にあるグローバルセッション情報は破棄されません。このため，別のJ2EEサーバにグローバルセッション情報を引き継いだり，停止したJ2EEサーバの再起動後にグローバルセッション情報を引き継いだりできます。

なお，SFOサーバ上のグローバルセッション情報は，SFOサーバを再起動したときに破棄されます。

(2)　SFOサーバ停止時のセッション情報の引き継ぎ

SFOサーバを停止すると，SFOサーバ上のグローバルセッション情報はすべて破棄されます。SFOサーバの停止も，SFOサーバで障害が発生したときと同様に，J2EEサーバ上のHttpSessionオブジェクトに含まれる書き換え可能グローバルセッション情報も削除されるので注意してください。

(3)　WebサーバまたはJ2EEサーバの障害発生時のセッション情報の引き継ぎ

WebサーバまたはJ2EEサーバで障害が発生したとき，リクエストは，別のJ2EEサーバに転送されます。このとき，グローバルセッション情報の引き継ぎ処理が発生します。WebサーバまたはJ2EEサーバで障害が発生したときの，セッション情報の引き継ぎについて次の図に示します。なお，この図は，HTTPリクエストヘッダのCookieヘッダにグローバルセッションIDがあるが，Cookieヘッダに含まれるJSESSIONIDに対応するHttpSessionオブジェクトがJ2EEサーバにない場合の例です。

図6-10　WebサーバまたはJ2EEサーバの障害発生時のセッション情報の引き継ぎ

SFOサーバにグローバルセッションIDに対応するグローバルセッション情報の引き継ぎ要求をします。

グローバルセッション情報を検索し，ロックします。

グローバルセッション情報をJ2EEサーバに転送します。

新規HttpSessionオブジェクトを作成します。

3.で取得したグローバルセッション情報を，4.で作成した新規HttpSessionオブジェクトに格納します。

J2EEアプリケーション内の処理で，引き継がれたグローバルセッション情報を使用します。

J2EEアプリケーション処理の終了後，セッションフェイルオーバ用フィルタでグローバルセッション情報をSFOサーバに送信します。

SFOサーバ上のグローバルセッション情報を更新します。

SFOサーバ上のグローバルセッション情報のロックを解除します。

(4)　SFOサーバの障害発生時のセッション情報の引き継ぎ

SFOサーバに障害が発生している間は，メモリセッションフェイルオーバ機能が無効になり，HTTPセッションによるセッション管理で業務を続けます。このため，SFOサーバに障害が発生している間は，グローバルセッションは生成されません。

SFOサーバの障害発生中に作成されたHttpSessionオブジェクトは，SFOサーバが復旧すると，最初にリクエストが送信された時点で，対応するグローバルセッションが生成され，SFOサーバに格納されます。

SFOサーバに障害が発生すると，J2EEサーバ上にあるHttpSessionオブジェクト内の書き換え可能グローバルセッション情報を削除します。SFOサーバ障害発生時のグローバルセッション情報の削除処理の動作を次の図で説明します。

図6-11　SFOサーバ障害発生時のグローバルセッション情報の削除処理

グローバルセッションIDのHTTP Cookie情報を削除するよう，HTTPレスポンスヘッダのSet-Cookieヘッダに，有効期限切れを示す情報をセットします。

HttpSessionオブジェクトに含まれる書き換え可能グローバルセッション情報を削除します。

J2EEアプリケーション内の処理では，書き換え可能グローバルセッション情報だけが削除されたHttpSessionオブジェクトが使用されます。

参考

書き換え可能グローバルセッション情報の削除は，SFOサーバの障害時以外にも，ロック待ちタイムアウトが発生した場合，および無効となったグローバルセッションIDを使用するリクエストが送信された場合も実施されます。

SFOサーバに障害が発生したときの，グローバルセッションIDの発行，HttpSessionオブジェクトの最大数，およびグローバルセッション情報は次のようになります。

●SFOサーバの障害発生時のグローバルセッションIDの発行について

SFOサーバに障害が発生した場合，メモリセッションフェイルオーバ機能は無効になります。このため，HttpSessionオブジェクトが生成されても，グローバルセッションIDは発行されません。なお，SFOサーバが回復すると，最初に実施されるロック処理でグローバルセッションIDが発行されます。ロックが解除されたときにSFOサーバにグローバルセッション情報が格納されます。

●SFOサーバに障害が発生した場合のHttpSessionオブジェクトの最大数について

SFOサーバに障害が発生した場合，メモリセッションフェイルオーバ機能は無効になります。SFOサーバが停止していると，J2EEサーバでは，SFOサーバで管理できるグローバルセッション情報の最大数を超えて，HTTPセッション数の上限までHttpSessionオブジェクトが生成されます。

SFOサーバが回復すると，リクエスト処理で使用されたセッション情報から順にSFOサーバに格納されます。このとき，SFOサーバに格納できない分のHttpSessionオブジェクトについては，リクエストを受信した時点で破棄され，新規リクエストとして再度生成されて，J2EEアプリケーションに送られます。

●SFOサーバに障害が発生した場合のグローバルセッション情報について

SFOサーバに障害が発生したあとのグローバルセッション情報について，種類ごとに説明します。なお，グローバルセッションの種類の概要については，「6.4.2　グローバルセッション情報」を参照してください。

書き換え可能グローバルセッション情報の場合

SFOサーバに障害が発生した場合，SFOサーバによる管理ができなくなるため，書き換え可能グローバルセッション情報は使用できなくなります。

読み込み専用グローバルセッション情報の場合

継続して使用できます。

SFOサーバで障害が発生したあとのリクエストは，書き換え可能グローバルセッション情報を削除したHttpSessionオブジェクトで処理を続行します。クライアントへのレスポンスも正常に返ります。

また，セッションフェイルオーバ用フィルタがSFOサーバに対してロック要求をした延長でSFOサーバに障害が発生した場合は，次のように処理されます。

書き換え可能グローバルセッション情報の削除をしたあとのHttpSessionオブジェクトに対して新しいグローバルセッションIDが作成されます。

SFOサーバに対するロック処理が実行されます。

J2EEアプリケーションが処理されます。

この処理が発生した場合，HttpSessionオブジェクトの属性に次に示すキー名称と値が登録されます。

キー名称：com.hitachi.software.was.sfo.gsession.status

値：unavailable

なお，この属性は，SFOサーバの復旧後，グローバルセッション情報がSFOサーバに格納されると削除されます。また，この属性は，SFOサーバに冗長化されないため，引き継ぎの対象になりません。

●SFOサーバに障害が発生した場合のHTTPセッション

SFOサーバに障害が発生したあとでも，Webアプリケーションで作成された新しいHTTPセッションは使用できます。ただし，メモリセッションフェイルオーバ機能は無効になっているため，SFOサーバには格納されません。

なお，SFOサーバ復旧後，SFOサーバに障害が発生しているときに作成されたHTTPセッションは，リクエスト処理で使用されたHTTPセッションから順に，SFOサーバに格納され，メモリセッションフェイルオーバ機能が有効になります。このとき，SFOサーバの障害発生中に登録された書き換え可能グローバルセッション情報や読み込み専用グローバルセッション情報は，そのままSFOサーバに格納されます。

6.4.6　グローバルセッションの制御方法

ここでは，グローバルセッションの制御方法について説明します。

＜この項の構成＞

(1)　グローバルセッションの制御方法の種類

(2)　グローバルセッション情報の制御方法の選択指針

(3)　注意事項

(1)　グローバルセッションの制御方法の種類

グローバルセッションは，次のどちらかの方法で制御できます。

HTTP Cookieによる制御
グローバルセッションIDをHTTP Cookieによって管理する制御方法です。J2EEサーバからWebクライアントにレスポンスを返すときに，グローバルセッションIDを含むHTTP Cookieを設定します。次にWebクライアントがJ2EEサーバにリクエストを送るときには，そのHTTP Cookieを送信します。これによって，グローバルセッションの制御を実現します。

URL書き換えによる制御
グローバルセッションIDをURLのパスパラメタに含めて管理する制御方法です。
J2EEサーバがWebクライアントに返すページ遷移用のURLを書き換えるときに，グローバルセッションIDを含めてエンコードします。次にWebクライアントがJ2EEサーバにリクエストを送るときには，このエンコードされたURLを使用します。これによって，グローバルセッションの制御を実現します。

使用するクライアントの種類などに応じて，適切な制御方法を選択してください。それぞれの制御方法の詳細については，「6.6　HTTP Cookieによるグローバルセッションの制御」および「6.7　URL書き換えによるグローバルセッションの制御」を参照してください。

制御方法は，セッションフェイルオーバ用フィルタに設定します。設定方法については，「6.12　DDでの定義」を参照してください。

参考

両方の制御方法を使用する設定をしている場合に，HTTP CookieおよびURLのパスパラメタの両方にグローバルセッションIDが含まれているときの動作

セッションフェイルオーバ用フィルタでの制御方法の設定では，次の設定ができます。

HTTP Cookieを使用することを示す設定（cookie）

URL書き換えを使用することを示す設定（url-rewriting）

両方の制御方法を使用することを示す設定（both）

「both」を設定している場合に，HTTP CookieおよびURLのパスパラメタの両方にグローバルセッションIDが含まれているときには，HTTP Cookieに含まれるグローバルセッションIDが有効になります。このとき，URLのパスパラメタに含まれているグローバルセッションIDは無効になります。

なお，URL書き換えによるグローバルセッション制御は，J2EEサーバおよびSFOサーバのバージョンが07-50以降の場合に使用できます。

(2)　グローバルセッション情報の制御方法の選択指針

HTTP Cookieによって制御できる場合は，HTTP Cookieによる制御を選択してください。

URL書き換えによる制御をする場合，リクエストおよびレスポンスの両方に，HTTPセッションのセッションIDとグローバルセッションIDが含まれることになります。この方法は，一般的にセッションハイジャックなどの危険性が高まるといわれています。

HTTP Cookieを使用できないクライアントを使用するシステムなど，特定のシステム以外では，URL書き換えによる制御は使用しないことをお勧めします。

(3)　注意事項

Webクライアントから受信したリクエストが，次の条件をすべて満たす場合，グローバルセッションが作成されません。

HTTPセッションが存在する。

WebアプリケーションのDDに，グローバルセッションの制御方法として，HTTP Cookie，またはURL書き換えのどちらかを使用すると設定している（「both」を設定していない）。

すでに存在するHTTPセッションの制御方法が，Webアプリケーションに設定したグローバルセッションの制御方法と異なる。

これらの条件に当てはまるリクエストに関連づけられたHTTPセッションは，メモリセッションフェイルオーバ機能の対象にはなりません。この場合，リクエストの受信時にKDJE34524-Wのメッセージが出力されます。

ただし，グローバルセッションが作成されない場合も，HTTPセッションは継続されます。

6.4.7　グローバルセッション情報の排他制御

ここでは，SFOサーバで管理しているグローバルセッション情報の排他制御について説明します。

メモリセッションフェイルオーバ機能では，複数のJ2EEサーバから同じグローバルセッション情報を同時に更新されることを抑止するために，ロックを使用して排他制御を実現します。

J2EEサーバは，セッションに対するリクエスト処理を開始するときに，SFOサーバ上のグローバルセッション情報にロックを設定します。また，リクエスト処理が完了した時点でロックを解除します。

別のJ2EEサーバによってすでにロックが設定されているグローバルセッション情報をロックしようとした場合は，設定されているロックが解除されるまで，処理が待たされます。これを，ロック待ちといいます。

なお，ロック待ちには，タイムアウト時間を設定できます。タイムアウトが発生した場合，J2EEサーバは，該当するグローバルセッション情報が使用できないものと判断します。この場合，J2EEサーバは，SFOサーバ上の書き換え可能グローバルセッション情報を破棄して，J2EEアプリケーションを呼び出し，リクエスト処理を実行します。

ロック待ちのタイムアウト時間は，Webアプリケーション単位で設定できます。設定方法については，「6.12.1　DDの作成」を参照してください。

参考

異なるJ2EEサーバに振り分けられた場合，グローバルセッション情報のロック機能を使用して，更新業務を実行するJ2EEアプリケーションの排他制御も実現できます。

更新業務を実行するJ2EEアプリケーションでは，ダブルクリックなどによってリクエストが二重に送信されると，正常に処理が実行できなくなる場合があります。このため，J2EEアプリケーションでは，セッションなどを利用して，このような場合に二重に処理するのを抑止する必要があります。

メモリセッションフェイルオーバ機能を使用している場合，ダブルクリックなどによって二重送信されたリクエストが異なるJ2EEサーバに送信されたときには，グローバルセッション情報のロック設定時にロック待ちが発生します。これによって，処理が二重に実施されるのを防げます。

6.4.8　グローバルセッション情報の最大数

SFOサーバで管理できるグローバルセッション情報の最大数は，SFOサーバと接続しているWebアプリケーションのHttpSessionオブジェクト数の上限値となります。

WebアプリケーションのHttpSessionオブジェクト数の上限値と，SFOサーバで管理できるグローバルセッション情報の最大数の関係を次の図に示します。

図6-12　SFOサーバで管理できるグローバルセッション情報の最大数

図のように，各Webアプリケーションの，HttpSessionオブジェクト数の上限値に1,000が設定されている場合，SFOサーバで管理できるグローバルセッション情報の最大数も1,000となります。

しかし，実際にはSFOサーバは，複数のJ2EEサーバで生成されたHTTPセッションを一括して管理するため，WebアプリケーションのHttpSessionオブジェクト数の上限値に達する前に，SFOサーバ内のグローバルセッション情報の数が最大数に達することがあります。次の図で説明します。

図6-13　HttpSessionオブジェクト数の上限とSFOサーバのグローバルセッション情報の最大数との関係

SFOサーバで管理するグローバルセッション情報の数は，各WebアプリケーションのHttpSessionオブジェクト数の合計となるため，図のように，WebアプリケーションのHttpSessionオブジェクト数が上限値に達していなくても，SFOサーバのグローバルセッション情報の数が最大数に達する場合があります。このとき，J2EEサーバ上のJ2EEアプリケーション内で，javax.servlet.http.HttpServletRequestインタフェースのgetSessionメソッドを呼び出すと，IllegalStateExceptionが送出されます。

なお，HttpSessionオブジェクト数の上限値設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.5　HttpSessionオブジェクト数の上限値の設定」を参照してください。

6.5　グローバルセッション情報のサイズの見積もり

ここでは，グローバルセッション情報を見積もるための機能について説明します。

グローバルセッション情報のサイズは，あらかじめ最大サイズを見積もって，DD（web.xml）に定義する必要があります。しかし，次の場合，セッション情報のサイズを見積もることは困難です。

直列化可能クラスのオブジェクトの場合，HTTPセッションに登録されたオブジェクトをシリアライズして作成される。

java.lang.Stringクラスのオブジェクトの場合，データの内容が非ASCII文字を含むときは，文字種によって文字列長が変わる。

グローバルセッション情報のサイズ見積もり機能は，開発環境でグローバルセッション情報のサイズを見積もるための機能です。グローバルセッション情報を作成してそのサイズをWebサーブレットログに出力します。この機能は開発環境で使用してください。このとき，SFOサーバのセットアップや設定，およびJ2EEサーバでの設定は不要です。

注意

グローバルセッション情報のサイズ見積もり機能は，運用環境では使用しないでください。この機能を使用すると，セッション情報の引き継ぎは無効となり，メモリセッションフェイルオーバ機能が有効になりません。グローバルセッション情報のサイズ見積もり機能使用時に無効となる処理については，「6.5.3　グローバルセッション情報のサイズ見積もり機能使用時に無効となる処理」を参照してください。

＜この節の構成＞

6.5.1　グローバルセッション情報のサイズ見積もり機能を有効にするための設定（見積もり時に使用する設定）

6.5.2　グローバルセッション情報のサイズの見積もり方法

6.5.3　グローバルセッション情報のサイズ見積もり機能使用時に無効となる処理

6.5.4　グローバルセッション情報のサイズ見積もり機能使用時の注意事項

6.5.1　グローバルセッション情報のサイズ見積もり機能を有効にするための設定（見積もり時に使用する設定）

グローバルセッション情報のサイズ見積もり機能を有効にする場合は，簡易構築定義ファイルと，DD（web.xml）で設定が必要になります。

簡易構築定義ファイルでのグローバルセッション情報のサイズ見積もり機能を有効にする設定
論理J2EEサーバ（j2ee-server）の<configuration>タグ内で，webserver.sfo.check_size.modeパラメタに「on」を設定します。グローバルセッション情報のサイズ見積もり機能を無効にする場合は，このパラメタに「off」を設定してください。簡易構築ファイルおよび指定するパラメタの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。
グローバルセッション情報のサイズ見積もり機能を使用する場合の簡易構築定義ファイルのパラメタの設定要否を次の表に示します。

表6-9　グローバルセッション情報のサイズ見積もり機能を使用する場合の簡易構築定義ファイルのパラメタの設定要否

簡易構築定義ファイルのパラメタ | パラメタの設定要否
webserver.sfo.sfo_servers | 無効※
webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.naming | 無効※
webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.connectionTimeout | 無効※
webserver.sfo.check_size.mode | 必須
webserver.session.server_id.enabled | 任意
webserver.session.server_id.value | 任意
webserver.container.server_id.enabled | 任意
webserver.container.server_id.name | 任意
webserver.container.server_id.value | 任意
webserver.connector.inprocess_http.limit.max_request_line | 任意

（凡例）

必須：必ず指定することを示す。省略した場合はエラーとなり，SFOサーバ用アプリケーションを開始できない。

無効：指定しても無効になることを示す。設定した値は使用されない。

任意：省略できることを示す。省略した場合はデフォルトの値が設定される。

注※

パラメタに設定した値は読み込みまれません。このため，不正な値を設定した場合も検出されません。

参考

Smart Composer機能を使用しない場合に，グローバルセッション情報のサイズ見積もり機能を有効にするときは，J2EEサーバ用ユーザプロパティファイル（usrconf.properties）でwebserver.sfo.check_size.modeキーに「on」を設定します。webserver.sfo.check_size.modeキーについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.4　usrconf.properties（J2EEサーバ用ユーザプロパティファイル）」を参照してください。

DD（web.xml）でのセッションフェイルオーバ用フィルタの定義
メモリセッションフェイルオーバ機能の設定をします。DD（web.xml）でのセッションフェイルオーバ用フィルタの定義については，「6.12.1　DDの作成」を参照してください。グローバルセッション情報のサイズ見積もり機能では，DD（web.xml）に定義したメモリセッションフェイルオーバ機能の設定を基にグローバルセッション情報が作成されます。

6.5.2　グローバルセッション情報のサイズの見積もり方法

この機能を使用すると，メモリセッションフェイルオーバ機能が有効なWebアプリケーションに対してリクエストを送信するたびに，グローバルセッション情報のサイズを示すメッセージがWebサーブレットログに出力されます。グローバルセッション情報のサイズを出力するメッセージを次の表に示します。

表6-10　グローバルセッション情報のサイズを出力するメッセージ

メッセージID | 出力レベル | 出力するタイミング | 出力する内容
KDJE34260-I | Error | リクエストごと | リクエスト一つ分に対応するグローバルセッション情報のサイズ
KDJE34261-I | Error | HTTPセッションに登録されるセッション情報ごと | キー名称，区切り文字などを含むセッション情報一つ分に対応するデータのサイズ

各メッセージの出力例を次に示します。この例では，キー名称がAttribute1とAttribute2の二つのセッション情報からグローバルセッション情報を作成します。

KDJE34261-I　 The session information was serialized. （J2EE application = App01， context root = /test， request URL = http://host01/test/TestServlet， attribute name = Attribute1， class name = app.MyObject1※， size（byte） = 36， HTTP session ID = 01234567​aaaabbbbccccddddeeeeffffserver1， global session ID = 0123456789​abcdef01234567​aaaabbbbccccddddeeeeffffserver1）
KDJE34261-I　 The session information was serialized. （J2EE application = App01， context root = /test， request URL = http://host01/test/TestServlet， attribute name = Attribute2， class name = app.MyObject2※， size（byte） = 25， HTTP session ID = 01234567​aaaabbbbccccddddeeeeffffserver1， global session ID = 0123456789​abcdef01234567​aaaabbbbccccddddeeeeffffserver1）
KDJE34260-I　 The global session information was created. （J2EE application = App01， context root = /test， request URL = http://host01/test/TestServlet， size（byte） = 65， HTTP session ID = 01234567​aaaabbbbccccddddeeeeffffserver1， global session ID = 0123456789​abcdef01234567​aaaabbbbccccddddeeeeffffserver1）

注　太字の部分に，グローバルセッション情報のサイズを見積もるための値が出力されます。各メッセージのsize（byte）に出力される内容の詳細については，表6-11を参照してください。また，各メッセージの詳細については，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」を参照してください。

注※　クラス名に出力される内容は，属性値に対してjava.lang.ClassクラスのgetName()メソッドで得られた文字列です。なお，KDJE34261-Iのメッセージは，引き継ぎの対象であるセッション情報がHTTPセッションにない場合は出力されません。また，KDJE34260-Iのメッセージは，引き継ぎの対象であるセッション情報がHTTPセッションにあるかどうかに関係なく，HTTPセッションがあれば出力されます。

これらのメッセージに出力されるサイズ（size（byte））の値を基に，グローバルセッション情報のサイズを見積もります。見積もった値が，SFOサーバで冗長化できるグローバルセッション情報のサイズのデフォルト値（1,024バイト）を超えている場合は，DD（web.xml）でグローバルセッション情報の最大サイズの設定を変更する必要があります。グローバルセッション情報の最大サイズの設定方法については，「6.12.2(2)　グローバルセッション情報の最大サイズ（GSInfosLengthMax）」を参照してください。

なお，KDJE34260-IおよびKDJE34261-Iのメッセージに出力されるサイズの値は，直列化可能クラスのオブジェクトを引き継ぎ対象としているかどうかによって異なります。KDJE34260-IおよびKDJE34261-Iのメッセージに出力されるサイズ（size（byte））の詳細を次の表に示します。

表6-11　KDJE34260-IおよびKDJE34261-Iのメッセージに出力されるサイズ（size（byte））の詳細

メッセージIDの種類
直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可（GSInfoTypeSerializableEnable）の設定

true
（直列化可能クラスのオブジェクトが引き継ぎ対象の場合）
false
（直列化可能クラスのオブジェクトが引き継ぎ対象外の場合）

KDJE34260-I
次の値を合計したサイズが出力されます。

HTTPセッションの有効期間情報の長さ

各属性のサイズ（KDJE34261-Iのメッセージで出力したサイズ）の合計

次の値を合計したサイズが出力されます。

HTTPセッションの有効期間情報の長さ

各属性を連結する区切り文字分のサイズ（各1バイト）

各属性のサイズ（KDJE34261-Iのメッセージで出力したサイズ）の合計

KDJE34261-I
次の値を合計したサイズが出力されます。

属性名をシリアライズしたデータのサイズ

属性値をシリアライズしたデータのサイズ

java.io.ObjectOutputStreamクラスが書き込むマジックナンバー，およびバージョン情報のデータ分のサイズ※1

次の値を合計したサイズが出力されます。

属性名のデータのサイズ

属性値のデータのサイズ

属性名と属性値の区切り文字のサイズ（1バイト）

byte型配列の管理情報の長さ※2

注※1　HTTPセッションに登録された属性のうち，最初にシリアライズされる属性のサイズにだけ含まれます。

注※2　byte型配列であるセッション情報が引き継ぎ対象の場合にだけ含まれます。

6.5.3　グローバルセッション情報のサイズ見積もり機能使用時に無効となる処理

グローバルセッション情報のサイズ見積もり機能を使用すると，グローバルセッション情報は作成しますが，セッション情報の引き継ぎ処理は無効となります。この場合，SFOサーバにセッション情報が冗長化されません。このほかにも，メモリセッションフェイルオーバ機能で実行する処理で無効となるものがあります。グローバルセッション情報のサイズ見積もり機能使用時に，無効となる処理を次に示します。

J2EEサーバとSFOサーバとのネゴシエーション処理

SFOサーバへのグローバルセッション情報の冗長化

グローバルセッション情報の引き継ぎ処理

6.5.4　グローバルセッション情報のサイズ見積もり機能使用時の注意事項

グローバルセッション情報のサイズ見積もり機能使用時の注意事項を次に示します。

メモリセッションフェイルオーバ機能で引き継ぎ可能なサイズの上限は，HTTPセッションの有効期間情報などのサイズを含めて，1,048,576（1M）バイトです。グローバルセッション情報のサイズ見積もり機能使用時に，この上限値を超えた場合は，KDJE34262-Eのメッセージが出力されます。それ以降のグローバルセッション情報の作成処理は中断されます。この場合，KDJE34260-Iのメッセージは出力されません。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」を参照してください。

グローバルセッション情報のサイズ見積もり機能を有効にしている場合は，DD（web.xml）のGSInfosLengthMaxパラメタで，グローバルセッション情報の最大サイズを指定しても無視されます。このため，この機能を無効にして運用を開始する前に，KDJE34260-Iのメッセージに出力されたグローバルセッション情報のサイズが，GSInfosLengthMaxパラメタで指定したサイズを超えていないことを確認する必要があります。GSInfosLengthMaxパラメタについては，「6.12.2(2)　グローバルセッション情報の最大サイズ（GSInfosLengthMax）」を参照してください。メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」を参照してください。

グローバルセッション情報のサイズ見積もり機能を使用すると，Webアプリケーション開始時にJ2EEサーバとSFOサーバとのネゴシエーション処理は実行されません。このため，KDJE34216-Iのメッセージ（SFOサーバとの接続開始），およびKDJE34205-Iのメッセージ（SFOサーバとの接続完了）は出力されません。これらのメッセージの代わりに，KDJE34263-Iのメッセージ（グローバルセッション情報の冗長化無効）がエラーレベルで出力されます。各メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」の「7.2　KDJE30000からKDJE39999までのメッセージ」を参照してください。

同じHTTPセッションを使用する複数のリクエストを同時に送信した場合，処理中のリクエスト処理スレッドがあるときはグローバルセッション情報が作成されません。このため，グローバルセッション情報のサイズは見積もりません。この場合，最後のリクエスト処理スレッドが処理を終えた時にグローバルセッション情報のサイズを見積もって，メッセージを出力します。

グローバルセッション情報のサイズ見積もり機能を有効にする場合，HttpSessionオブジェクト数の上限値の指定は不要です。HttpSessionオブジェクト数の上限値の設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.5　HttpSessionオブジェクト数の上限値の設定」を参照してください。

グローバルセッション情報のサイズ見積もり機能を有効にする場合，J2EEサーバが使用するメモリ量が増加します。J2EEサーバが使用するメモリ増加量を求める式を次に示します。

J2EEサーバが使用するメモリ増加量（メガバイト）
　＝10×1.5＋1.5※

注※　Webコンテナ単位の最大同時実行スレッド数が10以上の場合は，「Webコンテナ単位の最大同時実行スレッド数×1.5＋1.5」となります。Webコンテナ単位の最大同時実行スレッド数については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.16　Webコンテナ単位での同時実行スレッド数の制御」を参照してください。

6.6　HTTP Cookieによるグローバルセッションの制御

この節では，HTTP Cookieによるグローバルセッションの制御について説明します。

＜この節の構成＞

6.6.1　HTTP Cookieによる制御の概要

6.6.2　HTTP Cookieによる制御の前提条件

6.6.3　グローバルセッションIDを送信するHTTP Cookieの名称

6.6.4　サーブレットコンテキストへの属性追加

6.6.5　HTTP Cookieの有効期限

6.6.6　グローバルセッション破棄に伴うHTTP Cookie情報の破棄

6.6.1　HTTP Cookieによる制御の概要

HTTP Cookieによる制御では，WebクライアントからJ2EEサーバにリクエストを送信するときに，グローバルセッションIDを示すHTTP Cookieを送信します。

グローバルセッションIDは，HTTPレスポンスヘッダのSet-Cookieヘッダに設定され，Webクライアントに送信されます。この情報は，Webクライアントで，Cookie情報として管理されます。

J2EEサーバでは，グローバルセッションIDを含むHTTP Cookieを送信してきたWebクライアントに対して，グローバルセッションを継続します。

HTTP Cookieによるグローバルセッションの制御の概要を次の図に示します。

図6-14　HTTP Cookieによるグローバルセッションの制御の概要

Webクライアントからのリクエストを受信すると，J2EEサーバのJ2EEアプリケーション（Servlet／JSP）内で，HTTPセッションオブジェクトの作成とともに，グローバルセッションIDが発行されます。発行されたグローバルセッションIDは，Webクライアントに送信されるHTTPレスポンスヘッダに設定されます。同時に，SFOサーバに，グローバルセッション情報とともに格納されます。

6.6.2　HTTP Cookieによる制御の前提条件

HTTP Cookieによってグローバルセッションを制御する場合，Webクライアントとして，HTTP Cookieを使用できるクライアントが必要です。また，Webクライアントのブラウザでは，HTTP Cookieセッションを有効にする必要があります。

6.6.3　グローバルセッションIDを送信するHTTP Cookieの名称

グローバルセッションIDは，HTTPレスポンスヘッダのSet-Cookieヘッダに設定されます。使用されるHTTP Cookieの名称は，Webアプリケーション単位に設定できます。デフォルトの設定の場合，「GSESSIONID」になります。設定方法については，「6.14　J2EEサーバの設定」を参照してください。

注意

グローバルセッションIDを送信するHTTP Cookieの名称には，次の名称は指定できません。なお，大文字と小文字は区別されません。

HTTPセッションのセッションIDで使用するHTTP Cookieの名称
Webコンテナが自動で設定するHTTP Cookieの名称は「JSESSIONID」です。この名称はアプリケーションサーバのバージョンが09-00以降の場合，変更できます。HTTP Cookieの名称を変更した場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.9　セッション管理の注意事項」を参照してください。

J2EEサーバのサーバID付加機能によってサーバIDを付加したHTTP Cookieの名称と同じ名称

「csfcfc」

サーバID付加機能については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.6　セッションIDおよびCookieへのサーバIDの付加」を参照してください。

上記の1または2と同じ名称を使用すると，セッションフェイルオーバ用フィルタの初期化処理でエラーとなり，アプリケーションが開始できなくなります。なお，セッションフェイルオーバ用フィルタの初期化処理については，「6.9.3　J2EEアプリケーション開始時の処理」を参照してください。

6.6.4　サーブレットコンテキストへの属性追加

グローバルセッションIDが使用するHTTP Cookieの名称は，Webアプリケーション開始時に，サーブレットコンテキストの属性として，「com.cosminexus.software.was.sfo.GIDCookieName」の名称で登録されます。このとき，Webアプリケーションに，javax.servlet.ServletContextAttributeListenerインタフェースを実装したクラスが登録されていた場合，attributeAddedメソッドが呼び出されます。

6.6.5　HTTP Cookieの有効期限

グローバルセッションIDの送信に使用するHTTP Cookieの有効期限には，デフォルト値である-1が設定されています。このため，HTTP Cookieの情報は，ブラウザのプロセスの終了と同時に消失します。

6.6.6　グローバルセッション破棄に伴うHTTP Cookie情報の破棄

ブラウザ内のHTTP Cookie情報は，デフォルトの設定ではブラウザのプロセス終了とともに消失します。また，J2EEアプリケーション内で明示的にセッションを破棄することでグローバルセッション情報が破棄されると，ブラウザ内にあるHTTP Cookie情報も破棄されます。ブラウザ内のHTTP Cookie情報は，HTTPレスポンスヘッダに対して有効期限の切れたHTTP Cookieを設定することで破棄されます。

なお，タイムアウトによるグローバルセッション情報の破棄の場合は，ブラウザ内のHTTP Cookie情報は明示的に破棄されません。クライアントから無効になったグローバルセッションIDがHTTP Cookieとして送られてきたときに，クライアント内のHTTP Cookie情報が削除されます。

6.7　URL書き換えによるグローバルセッションの制御

この節では，URL書き換えによるグローバルセッションの制御について説明します。

＜この節の構成＞

6.7.1　URL書き換えによる制御の概要

6.7.2　URL書き換えによる制御の前提条件

6.7.3　グローバルセッションIDの送信に使用するURLのパスパラメタ

6.7.4　URL書き換えによって制御する場合の負荷分散

6.7.5　リクエストラインの最大サイズの設定

6.7.6　URL書き換えによって制御する場合の注意事項

6.7.1　URL書き換えによる制御の概要

URL書き換えによるグローバルセッションの制御方法は，HTTPセッションをURL書き換えによって制御する場合の方法と同じです。J2EEサーバがWebアプリケーション内のサーブレットやJSPでリンクURLをエンコードするときに，グローバルセッションIDを含めてエンコードします。

Webクライアントからの2回目以降のリクエスト送信時には，グローバルセッションIDを含めてエンコードされたURLが使用されます。J2EEサーバはリクエストヘッダに含まれるURLの情報を基に，グローバルセッションの制御を実行します。

URL書き換えによるグローバルセッションの制御の概要を次の図に示します。

図6-15　URL書き換えによるグローバルセッションの制御の概要

Webクライアントからのリクエストを受信すると，J2EEサーバのJ2EEアプリケーション（Servlet／JSP）内で，HTTPセッションオブジェクトの作成とともに，グローバルセッションIDが発行されます。発行されたグローバルセッションIDは，Webクライアントに送信されるHTTPレスポンスボディに設定されます。同時に，SFOサーバに，グローバルセッション情報とともに格納されます。

6.7.2　URL書き換えによる制御の前提条件

URL書き換えによる制御の前提条件について説明します。

URL書き換えによってグローバルセッションを制御するためには，WebアプリケーションがURL書き換えに対応している必要があります。WebアプリケーションがURL書き換えに対応していない場合，この制御方法ではグローバルセッションを制御できません。

URL書き換えに対応したWebアプリケーションの実装方法については，「6.11.2　URL書き換えによる制御をする場合のアプリケーションの実装」を参照してください。

注意

URL書き換えによるグローバルセッション情報の制御に対応したシステムは，Smart Composer機能では構築できません。Smart Composer機能で構築するシステムは，HTTP Cookieによるグローバルセッション情報の制御だけに対応しています。グローバルセッション情報の制御にURL書き換えを使用するシステムは，運用管理ポータル，またはファイル編集とコマンド実行で構築してください。運用管理ポータルで構築する場合は，マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」の「3.　J2EEアプリケーションを実行するシステムの構築と削除」を参照してください。ファイル編集とコマンド実行の場合は，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」，およびマニュアル「アプリケーションサーバ リファレンス コマンド編」の「付録B　J2EEアプリケーションを実行するシステムの構築と削除」を参照してください。

6.7.3　グローバルセッションIDの送信に使用するURLのパスパラメタ

ここでは，グローバルセッションIDの送信に使用するURLのパスパラメタについて説明します。

グローバルセッションIDは，URLのパスパラメタ名として設定されます。使用されるパスパラメタ名は，Webアプリケーション単位に設定できます。デフォルトの設定の場合，「gsessionid」になります。パスパラメタ名は，大文字と小文字を区別されます。設定方法については，「6.14　J2EEサーバの設定」を参照してください。

注意

HTTPセッションのセッションIDで使用するURLのパスパラメタ名は，大文字，小文字に関係なく，URLのパスパラメタ名に指定できません。これと同じ名称を使用すると，セッションフェイルオーバ用フィルタの初期化処理でエラーとなり，アプリケーションが開始できなくなります。

セッションフェイルオーバ用フィルタの初期化処理については，「6.9.3　J2EEアプリケーション開始時の処理」を参照してください。

なお，Webコンテナが自動で設定するURLのパスパラメタ名は「jsessionid」です。この名称はアプリケーションサーバのバージョンが09-00以降の場合，変更できます。URLのパスパラメタ名を変更した場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.9　セッション管理の注意事項」を参照してください。

Webコンテナは，リクエストのURLにグローバルセッションIDを示すパスパラメタが含まれる場合，そのIDをグローバルセッションIDとして扱い，グローバルセッションを引き継ぎます。

ただし，次の条件のどれかに該当する場合は，URLのパスパラメタに含まれるグローバルセッションIDが無効になります。

URLのパスパラメタに含まれるグローバルセッションIDが無効になる場合

リクエストのHTTP CookieにグローバルセッションIDが含まれている場合

リクエストのHTTP CookieにHTTPセッションのセッションIDが含まれている場合

リクエストのURLがHTTPセッションのセッションIDを表すパスパラメタを含んでいない場合

なお，Webアプリケーション内でURLを取得するServletAPIを使用した場合，取得できるURLにはグローバルセッションIDを示すパスパラメタは含まれません。URLに含まれるパスパラメタがグローバルセッションIDとして無効な場合も同様です。

リクエストURLを取得するServletAPIについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.3　セッションの管理方法」を参照してください。

6.7.4　URL書き換えによって制御する場合の負荷分散

ここでは，URL書き換えによってグローバルセッションを制御する場合に，負荷分散機で負荷分散を実現する方法について説明します。

HTTP Cookieを使用できないWebクライアントを使用する場合，負荷分散をするときにセッションを継続するための方法として，次のような方法があります。

サーバが埋め込む識別情報によってセッションを継続する方法

HTTPリクエストに含まれるクライアント個別の識別情報によってセッションを継続する方法

それぞれの方法について説明します。

＜この項の構成＞

(1)　サーバが埋め込む識別情報によるセッションの継続

(2)　HTTPリクエストに含まれるクライアント個別の識別情報によるセッションの継続

(1)　サーバが埋め込む識別情報によるセッションの継続

Webサーバまたはアプリケーションサーバがコンテンツに埋め込む識別情報を使用して，振り分け先を決め，セッションを継続する方法です。負荷分散機には，この識別情報を基にリクエストの振り分け先のサーバを決めるように設定します。

サーバが埋め込む識別情報は，一般的に次のフィールドに設定されます。

URLのパスの一部

URLのパスパラメタ

URLのクエリストリング

サーバから送信するHTMLのフォームのhiddenフィールド

メモリセッションフェイルオーバ機能を使用している場合，識別情報として，サーバIDを使用できます。サーバIDを識別情報として使用する場合，アプリケーションの実装を変更しなくても，負荷分散時のセッションの継続が実現できます。サーバIDは，セッションIDの構成要素です。URLのパスパラメタに含まれています。サーバIDについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.6　セッションIDおよびCookieへのサーバIDの付加」を参照してください。

なお，サーバID以外を識別情報として使用する場合は，識別情報をコンテンツに埋め込む処理をアプリケーションで作りこむ必要があります。

サーバが埋め込む識別情報を使用して負荷分散を実行する処理の概要を次の図に示します。

図6-16　サーバが埋め込む識別情報を使用した負荷分散の概要

クライアント1は，リクエストを送信するときに，サーバ1から送信された識別情報をリクエストヘッダに含めて送信します。負荷分散機は，この識別情報を基に，振り分け先のサーバを選択します。これによって，セッションを継続できます。

(2)　HTTPリクエストに含まれるクライアント個別の識別情報によるセッションの継続

Webクライアントが送信するクライアント個別の識別情報に基づいて，振り分け先を決め，セッションを継続する方法です。負荷分散機には，この識別情報を基にリクエストの振り分け先のサーバを決めるように設定します。

クライアント個別の識別情報は，一般的に次のフィールドに設定されます。

HTTPリクエストのUser-Agentヘッダ

クライアントが独自に定義したHTTPリクエストヘッダ

なお，この方法を使用する場合，クライアント側の設定で，クライアント個別の識別情報をリクエストと同時に送信するように設定しておく必要があります。

クライアントの個別識別情報を使用して負荷分散を実行する処理の概要を次の図に示します。

図6-17　クライアントの個別識別情報を使用した負荷分散の概要

クライアント1は，リクエストを送信するときに，クライアント固有の識別情報をUser-Agentヘッダに含めて送信します。負荷分散機は，この識別情報を基に，振り分け先のサーバを選択します。これによって，セッションを継続できます。

6.7.5　リクエストラインの最大サイズの設定

URL書き換えによってグローバルセッションを制御する場合の，リクエストラインの最大サイズの設定について説明します。

URL書き換えによってグローバルセッションを制御する場合，URLのパスパラメタには，HTTPセッションのセッションIDとグローバルセッションIDが含まれます。HTTPリクエストのリクエストラインのサイズは，サーバ側およびクライアント側でそれぞれ上限があります。このため，あらかじめリクエストラインの最大サイズを算出して，それを基に，必要に応じてリクエストラインの最大サイズを設定してください。

ここでは，URL書き換えによってグローバルセッションを制御する場合のリクエストラインのサイズの算出方法と，リクエストラインのサイズの上限値を設定する方法について説明します。

＜この項の構成＞

(1)　リクエストラインの文字列長の算出と最大サイズの設定

(2)　URL書き換え使用時のリクエストラインのサイズの算出

(3)　リクエストラインの最大サイズの算出と設定

(1)　リクエストラインの文字列長の算出と最大サイズの設定

URL書き換えによってグローバルセッションを制御する場合の，リクエストラインの最大サイズの設定について説明します。

URL書き換えによってグローバルセッションを制御する場合，URLのパスパラメタには，HTTPセッションのセッションIDとグローバルセッションIDが含まれます。HTTPリクエストのリクエストラインのサイズは，サーバ側およびクライアント側でそれぞれ上限があります。

URL書き換えによってグローバルセッションを制御する場合には，あらかじめリクエストラインの最大サイズを算出して，それを基にサーバおよびクライアントでのリクエストラインの最大サイズを設定しておく必要があります。

URL書き換えを使用する場合のリクエストラインの文字列長の算出方法，およびリクエストラインの最大サイズの設定方法については，「6.7.5　リクエストラインの最大サイズの設定」を参照してください。

(2)　URL書き換え使用時のリクエストラインのサイズの算出

リクエストライン全体のサイズは，リクエストラインを構成する各項目のサイズを基に算出してください。

URL書き換えをする場合のリクエストラインの構成を次の図に示します。URL書き換えで使用するパスパラメタは，(d)と(e)に挿入されます。

図6-18　URL書き換えをする場合のリクエストラインの構成

リクエストラインを構成する各項目について説明します。(a)～(h)は図中の文字と対応しています。

表6-12　URL書き換えをする場合のリクエストラインを構成する項目

図中の文字
項目
説明
例

(a)
メソッド
リクエストのメソッドです。
GET
POST

(b)
スペース
区切りを示す空白文字です。
1バイト固定です。
△

(c)
リクエストパス
宛先を示すパスです。
http://www.host1:1234/example/test.jsp/example/test.jsp

(d)
HTTPセッションのセッションIDを示すパスパラメタ
URL書き換えによってURLに付加された，HTTPセッションのセッションIDを示すパスパラメタです。
;jsessionid=01234567​aaaabbbbccccddddeeeeffffserver1

(e)
グローバルセッションIDを示すパスパラメタ
URL書き換えによってURLに付加された。グローバルセッションIDを示すパスパラメタです。
;gsessionid=0123456789​abcdef01234567​aaaabbbbccccddddeeeeffffserver1

(f)
クエリ
リクエストに付加されたクエリ文字列です。
?a=b&x=y

(g)
スペース
区切りを示す空白文字です。
1バイト固定です。
△

(h)
HTTPバージョン
HTTPのバージョンを示す文字列です。
HTTP/1.1

（凡例）

△：空白文字

なお，リクエストラインおよびURLの構成についての詳細は，RFC 2616およびRFC 2396のドキュメントを参照してください。

表6-12の内容のうち，URL書き換えによって付加される(d)と(e)のパスパラメタのサイズの算出方法について説明します。

(d)のHTTPセッションのセッションIDを示すパスパラメタのサイズの算出方法

HTTPセッションのセッションIDを示すパスパラメタのサイズ(バイト)
= ";jsessionid=" ＋ <HTTPセッションのセッションID>
=12バイト ＋ <HTTPセッションのセッションIDのサイズ(バイト)>※

注※

HTTPセッションのセッションIDの文字列長については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7　セッション管理機能」を参照してください。また，URLのパスパラメタの名称を「jsessionid」から変更している場合は，次の値の合計がパスパラメタのサイズとなります。

パスパラメタの文字数

セミコロン（;），およびイコール（=）の文字数

HTTPセッションのセッションIDの文字列長

(e)のグローバルセッションIDを示すパスパラメタのサイズの算出方法

グローバルセッションIDの送信に使用するパスパラメタの文字列長(バイト)
= ";" ＋ <グローバルセッションIDの送信に使用するパスパラメタ名のサイズ>
  ＋ "=" ＋ <グローバルセッションID>
= 1バイト ＋ <GIDURLParamNameパラメタに設定した文字列のサイズ(バイト)>
  ＋ 1バイト ＋ <グローバルセッションIDのサイズ(バイト)>※

注※

グローバルセッションIDのサイズ（バイト）は，次の式で算出してください。

グローバルセッションIDのサイズ(バイト)
= <HTTPセッションのセッションIDのサイズ(バイト)> ＋ 16バイト

(3)　リクエストラインの最大サイズの算出と設定

リクエストラインの最大サイズの設定方法について説明します。「(2)　URL書き換え使用時のリクエストラインのサイズの算出」で算出した値を基に，最大サイズを設定してください。

設定方法は，使用するWebサーバによって異なります。

●Webサーバ連携でHTTP Serverを使用する場合

HTTP Serverを使用する場合は，HTTP Serverの定義ファイル（httpsd.conf）のLimitRequestLineディレクティブで設定します。デフォルトの設定では，8,190バイトです。

LimitRequestLineディレクティブの設定方法の詳細については，マニュアル「HTTP Server」を参照してください。

●Webサーバ連携でMicrosoft IISを使用する場合

Microsoft IISを使用する場合のリクエストラインの最大サイズの設定方法については，Microsoft IISのドキュメントを参照してください。

●インプロセスHTTPサーバを使用する場合

インプロセスHTTPサーバを使用する場合，リクエストラインの最大サイズは，簡易構築定義ファイルで設定します。

パラメタ名は，webserver.connector.inprocess_http.limit.max_request_lineです。webserver.connector.inprocess_http.limit.max_request_lineの値には，リクエストラインの終端を示す改行文字である，(CR(0x0d)＋LF(0x0A))の2バイトを含めた値を指定してください。デフォルトの設定では，8,190バイトです。

簡易構築定義ファイルについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

6.7.6　URL書き換えによって制御する場合の注意事項

ここでは，URL書き換えによってグローバルセッションを制御する場合の注意事項について説明します。

URL書き換えを実行するServlet APIを呼び出すと，URLのパスパラメタにはその時点で存在するグローバルセッションのグローバルセッションIDが付加されます。このため，次の場合には，セッションを正しく継続できません。

セッションを作成する前にURL書き換えを実行するServlet APIを呼び出した場合

URL書き換えを実行するServlet APIを呼び出したあとでセッションを再作成した場合

6.8　グローバルセッションの制御方法が混在する場合のシステム構成

この節では，グローバルセッションの制御方法が混在する場合のシステム構成について説明します。なお，グローバルセッションの制御方法が混在しない場合のシステム構成については，マニュアル「アプリケーションサーバ システム設計ガイド」の「3.10　セッション情報の引き継ぎを検討する」を参照してください。

グローバルセッションの制御方法が混在するシステムでは，Webアプリケーションを制御方法ごとに分けるかどうかによって，システム構成および設定内容が異なります。

注意

URL書き換えによってセッションを制御する方法には，セッションハイジャックなどの脆弱性があるといわれています。URL書き換えを使用する場合，脆弱性への対策は，それぞれのシステムで確実に実施するようにしてください。

対策としては，次のようなものが考えられます。

HTTP Cookieを使用するWebアプリケーションでは，URL書き換えを抑止して，セッションIDをURLに付加しないようにする。

URL書き換えを実行するWebアプリケーションでは，HTTP CookieをサポートしているWebクライアントからのリクエストは処理しない。

なお，この節の説明は，URL書き換えでセッションを制御する場合の脆弱性について理解し，適切な対応をしていることを前提にした上で，次のシステム構成について説明しています。

HTTP Cookieを使用するWebアプリケーションと，URL書き換えを使用するWebアプリケーションを，それぞれ専用のWebアプリケーションとして使用する場合のシステム構成

HTTP Cookieを使用するWebアプリケーションと，URL書き換えを使用するWebアプリケーションを，専用のWebアプリケーションにはしないで，両方の制御方法で使用する場合のシステム構成

＜この節の構成＞

6.8.1　制御方法ごとにWebアプリケーションを分ける場合

6.8.2　制御方法ごとにWebアプリケーションを分けない場合

6.8.1　制御方法ごとにWebアプリケーションを分ける場合

ここでは，グローバルセッションの制御方法ごとにWebアプリケーションを分ける場合のシステム構成について説明します。

次の2種類のシステム構成について説明します。

リクエストの受信ポートを，WebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

リクエストの受信ポートを，WebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合

＜この項の構成＞

(1)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

(2)　リクエストの受信ポートをHTTP Cookieの使用できるかどうかによって分けない場合

(1)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合のシステム構成の例を次に示します。

図6-19　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合（制御方法をWebアプリケーションごとに分けるとき）

この例の場合は，HTTP Cookieを使用できないWebクライアントからのリクエストを受信するJ2EEサーバと，HTTP Cookieを使用できるWebクライアントからのリクエストを受信するJ2EEサーバを分けて配置しています。

J2EEサーバ1およびJ2EEサーバ2は，HTTP Cookieを使用できないWebクライアントからのリクエストを受信するJ2EEサーバです。これらのJ2EEサーバには，URL書き換えによってセッションを制御するWebアプリケーションを配置します。

また，J2EEサーバ3およびJ2EEサーバ4は，HTTP Cookieを使用できるWebクライアントからのリクエストを受信するJ2EEサーバです。これらのJ2EEサーバには，HTTP Cookieを使用してセッションを制御するWebアプリケーションを配置します。

なお，グローバルセッションの制御方法に関係なく，J2EEサーバ1からJ2EEサーバ4までで作成したすべてのグローバルセッション情報は，SFOサーバ1（SFOServer01）で冗長化して管理します。

(2)　リクエストの受信ポートをHTTP Cookieの使用できるかどうかによって分けない場合

リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合のシステム構成の例を次に示します。

図6-20　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合（制御方法をWebアプリケーションごとに分けるとき）

この例の場合は，HTTP Cookieを使用できないWebクライアントからのリクエストを受信するJ2EEサーバと，HTTP Cookieを使用できるWebクライアントからのリクエストを受信するJ2EEサーバを分けないで配置しています。

この場合は，URL書き換えによってセッションを制御するWebアプリケーションとHTTP Cookieによってセッションを制御するWebアプリケーションの両方を，それぞれのJ2EEサーバに配置する必要があります。これは，HTTP CookieをサポートしていないWebクライアントと，HTTP CookieをサポートしているWebクライアントの両方からのリクエストが，それぞれのJ2EEサーバに対して送信されるためです。

なお，この場合，グローバルセッションの制御方法が異なるWebアプリケーションを一つのJ2EEアプリケーションにまとめて配置しても，異なるJ2EEアプリケーションとして配置してもかまいません。この例の場合は，同一のJ2EEアプリケーション内に異なる制御方法のWebアプリケーションを配置しています。

グローバルセッションの制御方法は，Webアプリケーションそれぞれに対して，設定してください。

なお，グローバルセッションの制御方法に関係なく，J2EEサーバ1およびJ2EEサーバ2で作成したすべてのグローバルセッション情報は，SFOサーバ1（SFOServer01）で冗長化して管理します。

6.8.2　制御方法ごとにWebアプリケーションを分けない場合

ここでは，グローバルセッションの制御方法ごとにWebアプリケーションを分けない場合のシステム構成として，次の2種類の構成について説明します。

リクエストの受信ポートを，WebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

リクエストの受信ポートを，WebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合

＜この項の構成＞

(1)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

(2)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合

(1)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合

グローバルセッションの制御方法に関係なく同一のWebアプリケーションを使用する場合に，リクエストがWebクライアントのHTTP Cookieサポート有無によって分かれているときの，システムの構成例を次に示します。

図6-21　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分ける場合（制御方法をWebアプリケーションごとに分けないとき）

それぞれのJ2EEサーバに配置されたWebアプリケーションは，HTTP Cookieによるセッション制御，およびURL書き換えによるセッション制御の両方に対応しています。ただし，グローバルセッションの制御方法ごとにリクエストの受信ポートを分けているため，実際にはWebアプリケーションごとにWebクライアントの種類が決まります。このため，それぞれのWebアプリケーションには，リクエストを送信するWebクライアントがHTTP Cookieを使用できるかどうかに応じて，グローバルセッションの制御方法を設定します。

図6-21の場合は，J2EEサーバ1およびJ2EEサーバ2がHTTP Cookieを使用できないWebクライアントからのリクエストを受け付けます。また，J2EEサーバ3とJ2EEサーバ4がHTTP Cookieを使用できるWebクライアントからのリクエストを受け付けます。

ポイント

冗長化した同じWebアプリケーションに対して，異なるグローバルセッションの制御方法を設定した場合，同一のSFOサーバ上でのネゴシエーションは失敗します。このため，この例では，SFOサーバを，グローバルセッションの制御方法ごとに二つのプロセスとしています。

どのSFOサーバを使用するかは，それぞれのJ2EEサーバで設定します。接続先のSFOサーバの設定方法については，「6.14　J2EEサーバの設定」を参照してください。

また，同じWebアプリケーションに対して異なるグローバルセッションの制御方法を混在させて管理する場合に，SFOサーバを1プロセスだけで運用したいときには，制御方法ごとに，J2EEアプリケーションの名称を変更する方法があります。メモリセッションフェイルオーバ機能では，J2EEアプリケーションのアプリケーションが一致するかどうかによって，Webアプリケーションを同じアプリケーションであると判断します。このため，J2EEアプリケーションの名称を変更することで，異なるWebアプリケーションだと判断され，ネゴシエーションが失敗しなくなります。

異なるグローバルセッションの制御方法を混在させて管理する場合に，SFOサーバを1プロセスだけで運用する場合のシステム構成例を次の図に示します。

図6-22　異なるグローバルセッションの制御方法を混在させて管理する場合に，SFOサーバを1プロセスだけで運用する場合のシステム構成例

この例では，グローバルセッションの制御方法ごとに，J2EEアプリケーションの名称を変更しています。

(2)　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合

グローバルセッションの制御方法に関係なく同一のWebアプリケーションを使用する場合に，リクエストがWebクライアントのHTTP Cookieサポート有無によって分かれていないときの，システムの構成例を次に示します。

図6-23　リクエストの受信ポートをWebクライアントがHTTP Cookieを使用できるかどうかによって分けない場合（制御方法をWebアプリケーションごとに分けないとき）

この例の場合は，リクエストの受信ポートがグローバルセッションの制御方法によって分かれていないため，それぞれのWebアプリケーションには，HTTP Cookieを使用したリクエストとURL書き換えを利用したリクエストの両方が送信されます。これに対応するため，それぞれのWebアプリケーションでは，セッションの制御方法として「both」を設定します。

なお，グローバルセッションの制御方法に関係なく，J2EEサーバ1およびJ2EEサーバ2で作成したすべてのグローバルセッション情報は，SFOサーバ1（SFOServer01）で冗長化して管理します。

6.9　メモリセッションフェイルオーバ機能で実施される処理

この節では，メモリセッションフェイルオーバ機能で実施される処理について説明します。

参考

この節の6.9.1から6.9.6までの説明は，グローバルセッションの制御方法として，HTTP Cookieを使用した場合の処理について説明しています。

それぞれの処理でのグローバルセッションの制御処理については，URL書き換えを使用した場合も同様です。ただし，グローバルセッションの制御にURL書き換えを使用する場合，HTTP Cookieを使用する場合と比べて，次の処理が異なります。

グローバルセッションの制御に使用するグローバルセッションIDは，URLのパスパラメタから取得されます。

グローバルセッションの制御にHTTP Cookieを使用しないため，グローバルセッションを削除した場合，およびグローバルセッションが無効な場合に，グローバルセッションのHTTP Cookie情報の削除処理が実行されません。

HTTPセッションのURL書き換え処理が実行されるときに，HTTPセッションのセッションIDに加えて，グローバルセッションIDが付加されます。なお，HTTPセッションのURL書き換え処理は，WebアプリケーションでのURLエンコード用のServlet APIの呼び出しを実行した場合に実行されます。

これらの相違点を含めた処理の流れについては，「6.9.7　URL書き換えを使用する場合の処理の違い」を参照してください。

＜この節の構成＞

6.9.1　メモリセッションフェイルオーバ機能で処理が実施されるタイミング

6.9.2　J2EEサーバ起動時の処理

6.9.3　J2EEアプリケーション開始時の処理

6.9.4　リクエスト実行時の処理

6.9.5　HttpSessionオブジェクトの有効期限が切れた場合の処理

6.9.6　無効なグローバルセッションIDが送られた場合の処理

6.9.7　URL書き換えを使用する場合の処理の違い

6.9.1　メモリセッションフェイルオーバ機能で処理が実施されるタイミング

メモリセッションフェイルオーバ機能では，次に示す時点でそれぞれ処理が実施されます。

J2EEサーバ起動時の処理
J2EEサーバ起動時には，SFOサーバの状態を監視するためのスレッドが作成されます。

J2EEアプリケーション開始時の処理
J2EEアプリケーション開始時には，セッションフェイルオーバ用フィルタの初期化処理が実施されます。

リクエスト実行時の処理
リクエスト処理実施時には，グローバルセッション情報の格納，更新，削除がされます。

メモリセッションフェイルオーバ機能で実施される処理について，以降の項で説明します。

また，HttpSessionオブジェクトの有効期限が切れた場合の処理，無効なグローバルセッションIDが送られた場合の処理についても説明します。

6.9.2　J2EEサーバ起動時の処理

J2EEサーバでは，SFOサーバの状態を監視するためのスレッドを作成します。これを，SFOサーバ監視スレッドといいます。SFOサーバ監視スレッドは，Webアプリケーションごとに一つ作成され，各Webアプリケーションで使用するSFOサーバのヘルスチェックを実施します。ヘルスチェックは，SFOサーバアプリケーションで用意している，コネクションの状態監視用のビジネスメソッドを呼び出して実施します。コネクションの状態監視のインターバルは3秒です。また，コネクションの状態監視用のビジネスメソッドの呼び出しのタイムアウトには，SFOサーバとの通信タイムアウト時間に設定した時間が適用されます。タイムアウトが発生した場合，SFOサーバはダウンしていると判断され，リトライはされません。

なお，SFOサーバアプリケーションは，Application Serverで提供しています。SFOサーバアプリケーションの概要については，「6.4.3(1)　SFOサーバ」を参照してください。また，SFOサーバ監視スレッドの設定については，「6.14　J2EEサーバの設定」を参照してください。

6.9.3　J2EEアプリケーション開始時の処理

ここでは，J2EEアプリケーション開始時の処理の流れについて説明します。また，J2EEアプリケーション開始時に実行されるJ2EEサーバとSFOサーバのネゴシエーション処理についても説明します。

＜この項の構成＞

(1)　J2EEアプリケーション開始時の処理の流れ

(2)　J2EEサーバとSFOサーバのネゴシエーションで使用される情報

(3)　ネゴシエーションが失敗した場合の対処

(1)　J2EEアプリケーション開始時の処理の流れ

J2EEアプリケーション実行前に，セッションフェイルオーバ用フィルタの初期化処理が実施されます。初期化処理では，次の内容が実施されます。

web.xmlのメモリセッションフェイルオーバ機能に関する設定の妥当性がチェックされます。
設定内容に問題がある場合は，フィルタの初期化処理でエラーとなり，Webアプリケーションは開始されません。

web.xmlの設定に問題がない場合，J2EEサーバからSFOサーバへの接続が実施されます。
接続先のSFOサーバは，J2EEサーバごとに設定されています。設定方法については，「6.14　J2EEサーバの設定」を参照してください。
なお，接続に失敗した場合は，次の点を確認してください。

SFOサーバが起動しているか

SFOサーバとの通信路に障害が発生していないか

J2EEサーバに設定されている，SFOサーバが登録されているCORBAネーミングサービスのIPアドレスまたはポート番号に誤りがないか

SFOサーバとして使用するJ2EEサーバの起動コマンドである"cjstartsv"コマンドの実行時に"-nosecurity"オプションが指定されているか

SFOサーバとの接続に成功すると，SFOサーバとのネゴシエーションが実施されます。
web.xmlで設定した内容に問題がない場合，SFOサーバとのネゴシエーションが実施されます。ネゴシエーション処理に使用される情報については，「(2)　J2EEサーバとSFOサーバのネゴシエーションで使用される情報」を参照してください。
ネゴシエーションに失敗した場合の対処については，「(3)　ネゴシエーションが失敗した場合の対処」を参照してください。

セッションフェイルオーバ用フィルタの初期化処理完了後，Webアプリケーションの開始時にメモリセッションフェイルオーバ機能の設定内容を示すKDJE34265-Iのメッセージが出力されます。

ポイント

グローバルセッションの制御にHTTP Cookieを使用するWebアプリケーションの場合，ネゴシエーションが成功すると，web.xmlで設定したグローバルセッションIDが使用するHTTP Cookie名称が，サーブレットコンテキストに属性として登録されます。属性の名称は，「com.hitachi.software.was.sfo.GIDCookieName」です。

このとき，Servlet仕様で提供されるリスナ，およびjavax.servlet.ServletContextAttributeListenerインタフェースを実装したリスナをWebアプリケーションに定義していた場合，attributeAddedメソッドの呼び出しがされます。

グローバルセッションの制御方法の設定，およびHTTP Cookieの名称の設定方法については，「6.12　DDでの定義」を参照してください。

●注意事項

SFOサーバの稼働状態に異常があったり，SFOサーバが稼働するマシンのメモリ使用量に異常があったりして，60秒以内にネゴシエーション処理が完了しなかった場合，J2EEサーバはSFOサーバとのネゴシエーションに失敗したと判断して，SFOサーバとの接続を切断します。
なお，SFOサーバ側でネゴシエーションが成功していても，J2EEサーバとの接続が切断されていることを検知した時点で，グローバルセッション情報の保持を終了します。
なお，J2EEサーバの接続検知については，「6.4.3(1)　SFOサーバ」を参照してください。

SFOサーバとJ2EEサーバとのネゴシエーションが成功すると，SFOサーバには，Webアプリケーションの設定情報が登録されます。Webアプリケーションの情報を変更して，SFOサーバに接続すると，SFOサーバには変更前のWebアプリケーションの情報があるため，ネゴシエーションに失敗します。そのため，SFOサーバに登録されたWebアプリケーションの設定情報を削除してからWebアプリケーションを開始する必要があります。なお，設定情報の削除については，「6.17　Webアプリケーションの設定情報の削除」を参照してください。

SFOサーバが起動していない状態でJ2EEアプリケーションを開始していた場合，またはJ2EEサーバとの接続中にSFOサーバを再起動した場合，J2EEサーバは，起動または再起動後のSFOサーバに接続します。SFOサーバとの接続完了後，アプリケーション開始と同様のネゴシエーションが実行されます。
なお，このときにネゴシエーションに失敗したWebアプリケーションは，以降，SFOサーバへの接続はしません。この場合，メモリセッションフェイルオーバ機能が無効なまま処理が続行されます。
メモリセッションフェイルオーバ機能を有効にするためには，J2EEアプリケーションを一度停止してください。該当するWebアプリケーションのメモリセッションフェイルオーバ機能に関する設定を正しくした上で，J2EEアプリケーションを再度開始してください。

(2)　J2EEサーバとSFOサーバのネゴシエーションで使用される情報

J2EEアプリケーションの開始処理の中で実施される，ネゴシエーションで使用される情報について説明します。

セッションフェイルオーバ用フィルタは，ネゴシエーション処理を実行するときに，Webアプリケーションの情報をSFOサーバに送信します。SFOサーバでは，送信された情報のうちネゴシエーションで使用する情報について，冗長化されているほかのJ2EEサーバのWebアプリケーションの情報と比較します。これらの情報が，ほかのJ2EEサーバのWebアプリケーションの情報と異なる場合，フィルタの初期化処理でエラーとなり，Webアプリケーションは開始されません。

ネゴシエーション処理で使用される情報として，セッションフェイルオーバ用フィルタによってSFOサーバに送信される情報を次の表に示します。また，その中でほかのJ2EEサーバと同じ設定である必要がある情報も示します。

表6-13　ネゴシエーション処理で使用される情報

セッションフェイルオーバ用フィルタによってSFOサーバに送信される情報 | 同じ設定にする情報
J2EEアプリケーション名 | ○
Webアプリケーションのコンテキストルート名 | －
HttpSession数の上限値 | ○
セッション情報の最大サイズ | ○
DDに定義されたHTTPセッションの有効期間 | ○
グローバルセッションの制御方法 | ○
グローバルセッションIDの送信に使用するHTTP Cookieの名称 | 　 ○※1
グローバルセッションIDの送信に使用するURLのパスパラメタ名 | 　 ○※2
SFOサーバ内のロック待ちでのタイムアウト時間 | ○
書き換え可能グローバルセッション情報のキー名称 | ○
読み込み専用グローバルセッション情報のキー名称 | ○
J2EEサーバに設定されたHttpセッションのセッションIDへ付加するサーバID | －
byte型配列であるセッション情報の引き継ぎ許可 | 　○※3
直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可 | ○

（凡例）

○：ほかのJ2EEサーバと同じ設定にする必要がある。

－：ほかのJ2EEサーバと同じ設定でなくてもかまわない。

注※1

グローバルセッションの制御方法がHTTP Cookieを使用する方法の場合に同じ設定である必要があります。URL書き換えを使用する場合，同じ設定でなくてもかまいません。

注※2

グローバルセッションの制御方法がURL書き換えを使用する方法の場合に同じ設定である必要があります。HTTP Cookieを使用する場合，同じ設定でなくてもかまいません。

注※3

直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とする場合は，同じ設定でなくてもかまいません。

また，セッションフェイルオーバ用フィルタによってSFOサーバに送信される情報のうち，HttpSessionのセッションIDに付けられるサーバIDは，J2EEサーバに対してそれぞれ一意となる値が設定されている必要があります。このため，すでに接続されているJ2EEサーバに設定されたサーバIDと同じ値である場合は，ネゴシエーションが失敗し，Webアプリケーションは開始されません。

(3)　ネゴシエーションが失敗した場合の対処

ネゴシエーションで使用する情報の不一致によってネゴシエーションに失敗した場合，J2EEサーバのメッセージログ，およびSFOサーバのメッセージログにエラーメッセージが出力されます。エラーの原因となった個所の設定を見直し，再度Webアプリケーションをデプロイしてください。

なお，ネゴシエーション中に，次に示す要因でエラーが発生した場合，ネゴシエーションは失敗しますが，メモリセッションフェイルオーバ機能が無効な状態でWebアプリケーションの処理は続行されます。

SFOサーバのメモリが不足している

ネゴシエーション処理のタイムアウトが発生した

ネゴシエーション中にSFOサーバまたは通信路に障害が発生した

必要な機能をSFOサーバがサポートしていない（SFOサーバのバージョンがJ2EEサーバのバージョンと合っていない）

エラーが発生した場合は，J2EEサーバおよびSFOサーバで出力されたメッセージログとSFOサーバの状態を確認して，エラーの原因を取り除いてください。

なお，エラー発生後，J2EEサーバはWebアプリケーションの処理を続行しながら，定期的にSFOサーバへの接続を試みます。J2EEサーバがSFOサーバに接続ができた場合，再度ネゴシエーション処理が実行されます。

ネゴシエーションが成功すると，メモリセッションフェイルオーバ機能が有効になります。

6.9.4　リクエスト実行時の処理

ここでは，リクエスト実行時のグローバルセッションフェイルオーバ用フィルタの処理と，グローバルセッション情報の格納，更新，削除処理について説明します。

＜この項の構成＞

(1)　リクエスト実行時のセッションフェイルオーバ用フィルタの処理

(2)　グローバルセッション情報の格納処理

(3)　グローバルセッション情報の更新処理

(4)　グローバルセッション情報の削除処理

(1)　リクエスト実行時のセッションフェイルオーバ用フィルタの処理

セッションフェイルオーバ用フィルタでは，リクエスト実行前には，グローバルセッション情報をロックし，必要に応じて引き継ぎ処理をします。また，リクエスト処理後には，グローバルセッション情報を格納または更新して，ロックを解除します。

(a)　グローバルセッション情報のロックについて

異なるJ2EEサーバから同じグローバルセッション情報を同時に更新されることを抑止するため，セッションフェイルオーバ用フィルタでは，SFOサーバ上のグローバルセッション情報のロックをします。

J2EEアプリケーションでのリクエスト処理で，SFOサーバのグローバルセッション情報を使用すると，SFOサーバ上のグローバルセッション情報はロックされます。
このとき，別のJ2EEサーバがグローバルセッション情報を使用しようとすると，ロックの解除待ちとなります。

グローバルセッション情報を使用しているJ2EEアプリケーションでリクエスト処理が完了すると，SFOサーバでのロックが解除されます。
ロック解除時に，ロックの解除待ちとなっているJ2EEアプリケーションがある場合は，ロックが解除されたグローバルセッション情報を使用してリクエスト処理をします。

グローバルセッション情報にロックを設定することによって，J2EEアプリケーションでのダブルクリックなどによって二重送信されたリクエストが別のJ2EEサーバに送信された場合の誤動作も防止できます。

なお，ロックの解除待ちには，タイムアウトを設定できます。解除待ちでタイムアウトした場合，該当するグローバルセッション情報は使用できなくなります。このとき，セッションは破棄され，新規リクエストとしてJ2EEアプリケーションを呼び出します。

(b)　セッション情報の引き継ぎ処理について

セッション情報の引き継ぎ処理では，新規にHttpSessionオブジェクトを生成し，セッション情報を登録します。Servlet仕様で提供されているセッションに関する次の三つのリスナをJ2EEアプリケーションで定義している場合，リスナへの通知が実施されます。

呼び出されるリスナの種類について，システム内で発生するイベントごとに次の表に示します。

表6-14　呼び出されるリスナの種類

システム内で発生するイベント
呼び出されるリスナ
HttpSessionオブジェクト，およびグローバルセッションへの操作

ログイン
HttpSessionListener

HttpSessionオブジェクトの作成

グローバルセッションの作成

J2EEアプリケーション内でのセッションの使用
HttpSessionAttributeListener
HttpSessionBindingListener

HttpSessionオブジェクトへのセッション情報の格納

HttpSessionオブジェクトからのセッション情報の削除

ログアウト
HttpSessionListener
HttpSessionAttributeListener
HttpSessionBindingListener

HttpSessionオブジェクトの破棄

グローバルセッションの破棄

障害発生によるグローバルセッション情報の引き継ぎ

HttpSessionオブジェクトの作成

HttpSessionオブジェクトへのグローバルセッション情報の格納

ほかのサーバに引き継がれたHttpSessionオブジェクトの有効期限切れ

HttpSessionオブジェクトの削除

(2)　グローバルセッション情報の格納処理

グローバルセッションは，HTTPセッションと同時に生成されます。グローバルセッションが生成されると，グローバルセッション情報も生成されます。このとき，HttpSessionオブジェクトに対してセッション情報が未登録である場合も，グローバルセッション情報は生成されます。ただし，セッション情報が未登録であるという情報が生成されます。

J2EEアプリケーションでHttpSessionオブジェクトの作成後，グローバルセッション情報がSFOサーバに格納されるまでの処理について，次の図に示します。

参考

次の図とその説明は，グローバルセッションの制御方法として，HTTP Cookieを使用している場合の例です。URL書き換えを使用している場合の処理の違いについては，「6.9.7　URL書き換えを使用する場合の処理の違い」を参照してください。

図6-24　グローバルセッション情報の格納処理

J2EEアプリケーション内の処理で，HttpSessionオブジェクトが作成されます。
javax.servlet.http.HttpServletRequestインタフェースのgetSessionメソッドが呼び出され，HttpSessionオブジェクトが作成されます。

作成されたHttpSessionオブジェクトに対応する，グローバルセッションIDが発行されます。

SFOサーバに新しいグローバルセッション情報を追加します。追加されたグローバルセッション情報はロックされます。

HTTPレスポンスのヘッダのSet-Cookieヘッダに，グローバルセッションIDが追加されます。

SFOサーバにグローバルセッション情報を送信し，格納します。

なお，HTTPセッションで使用するSet-Cookieヘッダのpath属性はコンテキストルートが固定となります。

(3)　グローバルセッション情報の更新処理

J2EEアプリケーションでセッションを使用し，グローバルセッション情報が更新されると，SFOサーバ内のグローバルセッション情報も更新する必要があります。

なお，グローバルセッション情報の更新中は，グローバルセッション情報にロックが掛かります。ロックが掛かると，ほかのJ2EEサーバからのグローバルセッション情報の操作ができなくなります。

グローバルセッション情報の更新処理について，次の図に示します。

参考

次の図とその説明は，グローバルセッションの制御方法として，HTTP Cookieを使用している場合の例です。URL書き換えを使用している場合の処理の違いについては，「6.9.7　URL書き換えを使用する場合の処理の違い」を参照してください。

図6-25　グローバルセッション情報の更新処理

SFOサーバ上のグローバルセッション情報にロックが掛かります。
J2EEアプリケーションの処理の前に，グローバルセッション情報にロックが掛かります。

J2EEアプリケーション内の処理でHttpSessionオブジェクトを使用すると，HttpSessionオブジェクトに登録されたグローバルセッション情報が更新されます。

J2EEアプリケーション処理の終了後，SFOサーバにセッション情報を送信します。

SFOサーバ上のグローバルセッション情報を最新に更新します。

SFOサーバ上のグローバルセッション情報のロックを解除します。

(4)　グローバルセッション情報の削除処理

J2EEアプリケーション内で，javax.servlet.http.HttpSessionインタフェースのinvalidateメソッドが呼び出される場合の，明示的なグローバルセッション情報の削除の処理について，次の図に示します。

参考

次の図とその説明は，グローバルセッションの制御方法として，HTTP Cookieを使用している場合の例です。URL書き換えを使用している場合の処理の違いについては，「6.9.7　URL書き換えを使用する場合の処理の違い」を参照してください。

図6-26　グローバルセッション情報の明示的な削除

SFOサーバ上のグローバルセッション情報にロックが掛かります。
J2EEアプリケーションの処理の前に，グローバルセッション情報にロックが掛かります。

J2EEアプリケーション内の処理で，明示的にHttpSessionオブジェクトを破棄します。
javax.servlet.http.HttpSessionインタフェースのinvalidateメソッドを呼び出して，オブジェクトを破棄します。

J2EEアプリケーション処理の終了後，SFOサーバにグローバルセッション情報の削除要求を送信します。

SFOサーバ上のグローバルセッション情報が削除されます。

クライアント上にあるグローバルセッションIDのHTTP Cookie情報を削除するように設定されます。
HTTPレスポンスヘッダに，HTTP Cookieを期限切れでセットします。ただし，J2EEアプリケーションでHTTPレスポンスがすでにコミットされていた場合は，期限切れでのセットは実施されません。

クライアント上のグローバルセッションIDのHTTP Cookie情報が削除されるのは，レスポンスがコミットされていなかった場合だけです。J2EEアプリケーションからセッションフェイルオーバ用フィルタに処理が戻った時点で，すでにレスポンスがコミットしている場合は，クライアント上のグローバルセッションIDのHTTP Cookie情報は削除されません。この場合，次に送信するリクエストにグローバルセッション情報がCookieとして付けられた時点で，HTTP Cookie情報の削除処理が実施されます。

6.9.5　HttpSessionオブジェクトの有効期限が切れた場合の処理

HttpSessionオブジェクトに設定されている有効期限が切れるまでの間に，HttpSessionオブジェクトを使用するリクエストが発生しなかった場合は，HttpSessionオブジェクトはJ2EEサーバによって削除されます。また，このとき，HttpSessionオブジェクトに対応づけられたSFOサーバ上のグローバルセッション情報も削除されます。

有効期限が切れているときには，グローバルセッション情報がロックされているかどうかにかかわらず，HttpSessionオブジェクトは削除されます。このため，J2EEサーバでグローバルセッション情報を使用中の場合や，J2EEサーバのダウンによってロックされたままのグローバルセッション情報も，有効期限が切れると削除されます。

HttpSessionオブジェクトの有効期限が切れた場合の処理の流れについて，次の図に示します。

図6-27　HttpSessionオブジェクトの有効期限が切れた場合の処理

有効期限が切れると，HttpSessionオブジェクトは削除されます。
J2EEサーバ内では，HttpSessionオブジェクトの有効期限が監視されています。有効期限が切れると，HttpSessionオブジェクトが削除されます。

有効期限の切れたSFOサーバ上のグローバルセッション情報も削除されます。
SFOサーバ内では，グローバルセッション情報の有効期限が監視されています。有効期限が切れると，SFOサーバ上のグローバルセッション情報が削除されます。

6.9.6　無効なグローバルセッションIDが送られた場合の処理

SFOサーバにない，グローバルセッションIDがリクエストとして送られてきた場合の処理の流れについて，次の図に示します。

参考

次の図とその説明は，グローバルセッションの制御方法として，HTTP Cookieを使用している場合の例です。URL書き換えを使用している場合の処理の違いについては，「6.9.7　URL書き換えを使用する場合の処理の違い」を参照してください。

図6-28　無効なグローバルセッションIDが送られた場合の処理

グローバルセッション情報のロックが失敗します。
SFOサーバに対して，グローバルセッション情報のロック要求がありますが，SFOサーバ内にない，無効なグローバルセッションIDが送信されてきたため，ロックが失敗します。

HTTPレスポンスヘッダに，Set-Cookieヘッダを期限切れでセットします。
クライアントにあるグローバルセッションIDのHTTP Cookie情報を削除するよう，Set-Cookieヘッダを期限切れでセットします。

HttpSessionオブジェクトがある場合は，書き換え可能グローバルセッション情報が削除されます。

なお，3.の処理以降，J2EEアプリケーション内の処理で，javax.servlet.http.HttpServletRequestインタフェースのgetSessionメソッドが呼び出されると，グローバルセッションが新規に作成されます。

6.9.7　URL書き換えを使用する場合の処理の違い

ここでは，URL書き換えを使用する場合の処理と，HTTP Cookieを使用する場合の処理との違いについて説明します。

グローバルセッションの制御方法としてURL書き換えを使用している場合，HTTP Cookieを使用して制御している場合の処理に加えて，URL書き換えのための処理として，次の処理が追加されます。

URLのパスパラメタの解析

WebアプリケーションでのServlet APIの呼び出しによる，グローバルセッションIDを含むURLのエンコード

また，グローバルセッションを削除した場合，およびグローバルセッションが無効な場合に，グローバルセッションのHTTP Cookie情報の削除処理は実行されません。

URL書き換えする場合に追加される処理について，次の図に示します。

図6-29　URL書き換えする場合に追加される処理

各ポイントでの処理内容について説明します。説明の番号は図中の番号と対応しています。なお，1.，3.，4.の処理が，URL書き換えの場合だけに実行される処理です。

J2EEサーバによって，Webクライアントから送信されたリクエストURLのパスパラメタが解析されます。

セッションフェイルオーバ用フィルタによって，SFOサーバ上のグローバルセッション情報がロックされます。
なお，この処理は，グローバルセッションの制御方法に関係なく実行されます。

J2EEアプリケーション内のWebアプリケーションで，URL書き換えのためのエンコードを実行するServlet APIが呼び出されます。
この処理は，URL書き換えの場合だけ実行されます。

J2EEサーバによって，グローバルセッションIDがURLにエンコードされます。なお，エンコードはHTTPセッションのセッションIDとともに実行されます。

セッションフェイルオーバ用フィルタによって，SFOサーバ上のグローバルセッション情報が更新され，グローバルセッション情報のロックが解除されます。
なお，この処理は，グローバルセッションの制御方法に関係なく実行されます。

6.10　メモリセッションフェイルオーバ機能使用時の障害検知

メモリセッションフェイルオーバ機能を使用している場合に，Webサーバ，J2EEサーバ，およびSFOサーバで発生した障害は，次に示す二つの方法で検知できます。

Management Serverの稼働状況監視による障害検知
Management Serverの稼働状況監視を使用して，Webサーバ，J2EEサーバ，およびSFOサーバの稼働状況を監視できます。稼働状況の監視については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「3.　稼働情報の監視（稼働情報収集機能）」を参照してください。

負荷分散機のヘルスチェック機能による障害検知
負荷分散機の機能を使用して，システム内のJ2EEサーバに対してヘルスチェックを実施できます。ヘルスチェックで，J2EEサーバに問題を検知した場合，該当するJ2EEサーバにリクエストを転送しているWebサーバへの負荷分散を中止します。
また，J2EEサーバへのチェックの際にWebサーバを経由するため，Webサーバでの障害検知もできます。
SFOサーバで発生した障害については，SFOサーバおよびJ2EEサーバが出力したメッセージログを基に，障害検知を実施します。

6.11　アプリケーションの実装

この節では，メモリセッションフェイルオーバ機能を使用するアプリケーションを開発するときに留意することについて説明します。また，URL書き換えによる制御をする場合のアプリケーションの実装方法，およびアプリケーションを実行するときに追加される属性についても説明します。

＜この節の構成＞

6.11.1　実装時の留意事項

6.11.2　URL書き換えによる制御をする場合のアプリケーションの実装

6.11.3　アプリケーションを実行するときに追加される属性

6.11.1　実装時の留意事項

メモリセッションフェイルオーバ機能を使用するアプリケーションを開発する場合に，留意する点について説明します。

＜この項の構成＞

(1)　セッションフェイルオーバ用フィルタの呼び出し順序

(2)　JSPで暗黙的に作成されるHTTPセッションの扱い

(3)　セッション管理に使用する情報の選択

(4)　障害発生時の動作を考慮した処理の実装

(5)　HTTPセッションの破棄に伴う動作

(6)　セッション情報の引き継ぎが発生した場合の認証情報の扱い

(7)　メモリセッションフェイルオーバ機能使用によるサーブレットAPIの動作

(8)　JSPでの<jsp:useBean>タグの使用

(1)　セッションフェイルオーバ用フィルタの呼び出し順序

セッションフェイルオーバ用フィルタは，サーブレットフィルタとして提供されます。セッションフェイルオーバ用フィルタは，ほかのサーブレットフィルタよりも前に呼び出される必要があります。HTTPレスポンス圧縮フィルタ，およびユーザ作成のフィルタよりも前に配置してください。フィルタの組み込みについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.2　フィルタ連鎖の推奨例」を参照してください。

(2)　JSPで暗黙的に作成されるHTTPセッションの扱い

メモリセッションフェイルオーバ機能を有効にしたアプリケーションでは，セッションを作成すると必ずグローバルセッションIDが発行され，グローバルセッション情報を使用しないサーブレットまたはJSPであっても，「グローバルセッション情報が存在しない」という情報がSFOサーバに冗長化されます。

JSPでは，デフォルトでHttpSessionオブジェクトが作成されます。メモリの使用量や，SFOサーバとの通信による負荷を考慮し，セッションを必要としないJSPでは明示的にHttpSessionオブジェクトを作成しない設定にしてください。HttpSessionオブジェクトを作成しない設定には，pageディレクティブのsession属性を使用してください。

(3)　セッション管理に使用する情報の選択

HTTPセッションのセッション管理には，グローバルセッション情報を使用するようにしてください。

メモリセッションフェイルオーバ機能では，障害発生時にグローバルセッション情報は引き継げますが，HTTPセッションは新しく作成されます。このため，HTTPセッションのセッションIDはグローバルセッション情報の引き継ぎの前後で異なります。したがって，HTTPセッションのセッションIDを基に制御を実行するアプリケーションは，グローバルセッション情報を基に制御を実行するように変更する必要があります。

(4)　障害発生時の動作を考慮した処理の実装

メモリセッションフェイルオーバ機能を使用するアプリケーションでは，障害発生時にグローバルセッション情報の引き継ぎ処理や，書き換え可能グローバルセッション情報の削除処理が発生します。

アプリケーションでは，これらを想定した処理を実装する必要があります。

(a)　セッション情報の引き継ぎを考慮した処理

J2EEサーバやWebサーバに障害が発生すると，リクエストが別のJ2EEサーバに転送されて，セッション情報が引き継がれます。アプリケーションが引き継ぎ先のJ2EEサーバで問題なく業務を続けるためには，必要な情報をすべてグローバルセッション情報として設定しておく必要があります。

グローバルセッション情報として設定できる情報については，「6.4.2　グローバルセッション情報」を参照してください。また，グローバルセッション情報の引き継ぎについては，「6.4.5　サーバの状態とグローバルセッション情報の引き継ぎ」を参照してください。

(b)　HTTPセッションに同一のオブジェクトが複数回登録されている場合を考慮した処理

HttpSessionオブジェクトに同じオブジェクトが複数登録されていた場合に，引き継ぎ後のHttpSessionオブジェクトに登録されるオブジェクトが異なるので，注意が必要です。

一つのHttpSessionオブジェクトに同じオブジェクトが複数登録されている場合
一つのHttpSessionオブジェクトに，同じjava.lang.Stringクラスのオブジェクトが複数登録されている場合に，グローバルセッション情報の引き継ぎが発生すると，複数登録していたオブジェクトは別々のオブジェクトとして生成されます。
一つのHttpSessionオブジェクトに同じオブジェクトが複数登録されている場合の引き継ぎの例を次の図に示します。

図6-30　一つのHttpSessionオブジェクトに同じオブジェクトが複数登録されている場合の引き継ぎの例

この図では，J2EEサーバ1上のHttpSessionオブジェクトに，java.lang.Stringクラスのオブジェクトであるセッション情報Bが複数登録されています。J2EEサーバ1で障害が発生して，J2EEサーバ2へセッション情報が引き継がれた場合，J2EEサーバ2上のHttpSessionオブジェクトには，複数登録されていたセッション情報Bが，それぞれ別のセッション情報B-1とセッション情報B-2として生成されます。セッション情報B-1およびセッション情報B-2は，インスタンスは異なりますが，内容は同じです。

異なるHTTPセッションに同一のオブジェクトが登録されている場合
グローバルセッション情報はHTTPセッション単位に作成されます。直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象に設定している場合も，HTTPセッションごとに引き継ぎます。
異なるHttpSessionオブジェクトで同一のオブジェクトをセッション情報として共有している場合に，グローバルセッション情報の引き継ぎが発生したときは，オブジェクトが共有されません。別々のオブジェクトとして生成されます。
異なるHttpSessionオブジェクトに同一のオブジェクトが登録されている場合の引き継ぎの例を次の図に示します。

図6-31　異なるHttpSessionオブジェクトに同一のオブジェクトが登録されている場合の引き継ぎの例

この図では，J2EEサーバ1上のHttpSessionオブジェクト1およびHttpSessionオブジェクト2で，同一のオブジェクトのセッション情報Cを共有しています。J2EEサーバ1で障害が発生して，J2EEサーバ2へセッション情報が引き継がれた場合，J2EEサーバ2上のHttpSessionオブジェクト1およびHttpSessionオブジェクト2には，共有されていたセッション情報Cが，それぞれ別のセッション情報C-1とセッション情報C-2として生成されます。セッション情報C-1およびセッション情報C-2は，インスタンスは異なりますが，内容は同じです。

(c)　書き換え可能グローバルセッション情報の削除を考慮した処理

SFOサーバに障害が発生した場合など，書き換え可能グローバルセッション情報の削除が発生したとき，HttpSessionオブジェクトには読み込み専用グローバルセッション情報とグローバルセッション情報でないセッション情報が残ります。

リクエスト処理を実行する前に，書き換えグローバルセッション情報が削除されていないかどうかを確認する処理を実行して，削除されている場合には適切な処理を実行してください。

例えば，グローバルセッション情報が次のように設定されている場合があります。

読み込み専用グローバルセッション情報にログイン情報が設定されている。

書き換え可能グローバルセッション情報に作業中の情報が設定されている。

この場合，書き換え可能グローバルセッション情報が削除されると，HttpSessionオブジェクトに登録されたセッション情報の内容はログイン直後の状態に戻ります。この状態から業務を再開するためには，オブジェクトを再作成する処理や，javax.servlet.http.HttpServletResponseインタフェースのsendRedirectメソッドを使用してログイン直後のページに戻す処理などが必要になります。

J2EEアプリケーション内での書き換え可能グローバルセッション情報が削除されているかどうかは，HttpSessionオブジェクトに登録した書き換え可能グローバルセッション情報があるかどうかで確認できます。確認した結果，あるはずの書き換え可能グローバルセッション情報がなくなっていた場合，書き換え可能グローバルセッション情報が削除されたと判断できます。

(5)　HTTPセッションの破棄に伴う動作

HTTPセッションを破棄するアプリケーション内でレスポンスのコミットを実行しても，クライアント上のグローバルセッションIDのHTTP Cookie情報は削除されません。この場合，コミット後にリクエストを送信するとき，グローバルセッションIDがリクエストヘッダのCookieとして付加されて，J2EEサーバ，SFOサーバのメッセージログに次のログメッセージが出力されます。

J2EEサーバで出力されるメッセージ
KDJE34234-W（出力レベル：Warning）

SFOサーバで出力されるメッセージ
KDJE34017-W（出力レベル：Warning）

ただし，これらのメッセージが出力された場合も，J2EEサーバ，SFOサーバでの実際のリクエスト処理，およびメモリセッションフェイルオーバ機能への影響はありません。なお，クライアント上のグローバルセッションIDのHTTP Cookie情報を削除する処理は，この時点で実行されます。以降のリクエスト処理ではこのHTTP Cookieは付加されません。

また，javax.servlet.http.HttpServletResponseインタフェースのsendRedirectメソッドを使用した場合も，レスポンスがコミットされて，リダイレクト先アドレスへのアクセス時にKDJE34234-Wのメッセージが出力されます。このとき，リダイレクト先アドレスがFORM認証を使用しているページへのアドレスであった場合，J2EEサーバのメッセージログにはKDJE34234-Wのメッセージではなく，KDJE34229-Wのメッセージ（出力レベル：Warning）が出力されます。ただし，この場合も，認証機能およびメモリセッションフェイルオーバ機能への影響はありません。

(6)　セッション情報の引き継ぎが発生した場合の認証情報の扱い

障害発生時に認証情報を引き継ぐ場合は，Basic認証によって認証処理をする必要があります。Basic認証を使用すると，認証されたJ2EEサーバと異なるJ2EEサーバにリクエストが振り分けられた場合でも，再度認証する必要はありません。グローバルセッション情報は正常に引き継がれ，業務を続けられます。

サーブレットAPIで定義されているフォーム認証によって認証処理をしている場合，認証されたJ2EEサーバと異なるJ2EEサーバにリクエストが振り分けられた場合は，認証情報が引き継がれていても，再度認証が必要です。

Basic認証およびForm認証については，マニュアル「アプリケーションサーバ 機能解説 セキュリティ管理機能編」の「6.2　DDの設定によるWebコンテナのユーザ認証」を参照してください。

(7)　メモリセッションフェイルオーバ機能使用によるサーブレットAPIの動作

メモリセッションフェイルオーバ機能を使用する場合と，使用しない場合とで動作が変わるサーブレットAPIがあります。次に，メモリセッションフェイルオーバ機能によって動作に変更があるAPIおよび注意点を示します。

表6-15　メモリセッションフェイルオーバ機能と関係するサーブレットAPI

項番 | クラス名またはインタフェース名※1 | API名 | 注意点
1 | ServletContext | getAttributeNames | HTTP Cookieによるグローバルセッション制御が有効な場合に動作が変わります。グローバルセッションIDに使用するHTTP Cookie名称をサーブレットコンテキストに属性として登録します。グローバルセッションIDは，セッションフェイルオーバ用フィルタ開始時に初期化パラメタに設定されたIDです。getAttributeNamesで取得できる属性名にこの属性の名称が含まれます。セッションフェイルオーバ用フィルタが登録する属性については，「6.11.3　アプリケーションを実行するときに追加される属性」を参照してください。
2 | ServletContextAttributeListener | attributeAdded | HTTP Cookieによるグローバルセッション制御が有効な場合に動作が変わります。グローバルセッションIDに使用するHTTP Cookie名称をサーブレットコンテキストに属性として登録するために，javax.servlet.ServletContextAttributeListenerクラスのattributeAddedメソッドが呼び出されます。グローバルセッションIDは，セッションフェイルオーバ用フィルタ開始時に初期化パラメタに設定されたIDです。サーブレットコンテキストに登録する属性については，「6.11.3　アプリケーションを実行するときに追加される属性」を参照してください。
3 | HttpServletRequest | getCookies | HTTP Cookieによるグローバルセッション制御が有効な場合に動作が変わります。グローバルセッションが発行されると，グローバルセッションIDがCookieヘッダにセットされます。HTTP Cookieの名称は，GIDCookieNameパラメタに指定した値です。
4 | getHeader
5 | getHeaderNames
6 | getHeaders
7 | getSession | HTTPセッション作成時に，J2EEサーバのHTTPセッション数に余裕がある場合でも，SFOサーバでグローバルセッション数が上限に達すると，IllegalStateException例外が発生します。
8 | HttpServletResponse | encodeRedirectURL | URL書き換えによるグローバルセッション制御が有効な場合に動作が変わります。グローバルセッションIDをURLに含めてエンコードします。グローバルセッションIDは，HTTPセッションIDとともにエンコードされます。この処理は必要に応じて実行されます。
9 | encodeURL
10 | encodeRedirectUrl※2
11 | encodeUrl※2
12 | HttpSession | getAttribute | 書き換え可能グローバルセッション情報の削除処理が発生すると，Webコンテナによって属性が追加されます。Webコンテナが追加する属性については，「6.11.3　アプリケーションを実行するときに追加される属性」を参照してください。
13 | getAttributeNames
14 | getCreationTime | 引き継ぎが発生すると，引き継ぎ処理によってHttpSessionオブジェクトが作成されるため，引き継ぎ発生前と異なる値が返されます。
15 | getId※3
16 | getLastAccessedTime | 引き継ぎ発生後，初回のリクエスト時には前回アクセスの時刻を返すことができません。
17 | isNew※4 | 引き継ぎによって，HttpSessionオブジェクトが作成されると，戻り値が「true」となります。
18 | HttpSessionAttributeListener | リスナについては，「6.9.4　リクエスト実行時の処理」を参照してください。
19 | HttpSessionBindingListener
20 | HttpSessionListener
21 | HttpServletRequestWrapper | 動作については，javax.servlet.http.HttpServletRequestインタフェースの動作を参考にしてください。

注※1

クラス名およびインタフェース名は，「javax.servlet.http.」を省略しています。

注※2

Servlet 2.1仕様で非推奨とされているAPIです。

注※3

HTTPセッションのセッションIDを基に制御が行われるWebアプリケーションは，グローバルセッション情報を基に制御が行われるように変更する必要があります。

注※4

isNewメソッドの戻り値によって制御が行われるWebアプリケーションでは，HttpSessionオブジェクトを新規に作成した場合，必ず登録するセッション情報を設けてください。そのセッション情報を読み込み専用グローバルセッション情報とし，isNewメソッドを使用する代わりにそのセッションがHttpSessionオブジェクトに登録されているかどうかで新規セッションかどうかを判断するようにしてください。

(8)　JSPでの<jsp:useBean>タグの使用

JSPで<jsp:useBean>タグを使用する時，scope属性を"session"とすることで，JavaBeansがHttpSessionオブジェクトの属性として登録されます。

<jsp:useBean>タグのscope属性を"session"とする場合には，次の設定が必要になります。

引き継ぎ対象とするセッション情報のデータ型に，直列化可能クラスのオブジェクトを設定する。

<jsp:useBean>タグのidタグに設定した名称が引き継ぎ対象となるように，idタグに設定した名称をグローバルセッション情報として使用する情報（キー）に設定する。

6.11.2　URL書き換えによる制御をする場合のアプリケーションの実装

URL書き換えによってグローバルセッションを制御する場合の，Webアプリケーションの実装方法について説明します。

＜この項の構成＞

(1)　使用するServlet API

(2)　JSPの記述例

(1)　使用するServlet API

Webアプリケーションを実装する際には，次に示すServlet APIを使用して実装してください。

なお，グローバルセッションIDのエンコードは，グローバルセッションが存在している場合に，Webアプリケーション内でこれらのServlet APIが呼び出され，HTTPセッションのセッションIDのエンコードが必要と判断されたときにだけ実行されます。

サーブレットやJSP内で同一アプリケーションへのリンク先URLをレスポンスに出力する場合，次のAPIを使用してリンク先URLを出力してください。

javax.servlet.http.HttpServletResponseインタフェースのencodeURL(java.lang.String url)メソッド

javax.servlet.http.HttpServletResponseインタフェースのencodeUrl(java.lang.String url)メソッド

ただし，encodeUrl(java.lang.String url)メソッドは非推奨のAPIです。

サーブレットやJSP内でjavax.servlet.http.HttpServletResponseインタフェースのsendRedirect()メソッドによって同一アプリケーションへのリダイレクトを行う場合は，リダイレクト先のURLを次のAPIを使用して取得してください。

javax.servlet.http.HttpServletResponseインタフェースのencodeRedirectURL(java.lang.String url)メソッド

javax.servlet.http.HttpServletResponseインタフェースのencodeRedirectUrl(java.lang.String url)メソッド

ただし，encodeRedirectUrl(java.lang.String url)メソッドは非推奨のAPIです。

これらのServletAPIを使用しないでWebアプリケーションを実装している場合，グローバルセッションIDのURL書き換えは実行されません。この場合，HTTPセッションおよびグローバルセッションは継続されません。

(2)　JSPの記述例

URL書き換えによってグローバルセッションを制御する場合のJSPの記述例，および出力されるレスポンスの内容を示します。

JSPの記述内容

<a href="<%= response.encodeURL("nextPage.jsp") %>">link</a>

なお，この例は，次の前提に従っています。

HTTPセッションのセッションIDは"xxxxx"である。

グローバルセッションIDは"yyyyy"である。

グローバルセッションIDの送信に使用するURLのパスパラメタ名は"gsessionid"である。

出力されるレスポンスの内容

<a href="nextPage.jsp;jsessionid=xxxxx;gsessionid=yyyyy">link</a>

注意

次に示すように，URL書き換えを使用しないでパスパラメタを設定するアプリケーションの場合，グローバルセッションのURL書き換えが実行されません。この場合，メモリセッションフェイルオーバ機能が有効になりません。

URL書き換えによるグローバルセッションの制御が有効にならない例（JSPの場合）

<a href="nextPage.jsp;jsessionid=<%=session.getId()%>">link</a>

6.11.3　アプリケーションを実行するときに追加される属性

メモリセッションフェイルオーバ機能を使用するアプリケーションでは，動作するために必要な情報をWebコンテナから取得するために，javax.servlet.ServletContextオブジェクトの属性を使用します。

アプリケーションの起動時には，次の表に示す属性が，Webコンテナによってjavax.servlet.ServletContextオブジェクトの属性に追加されます。

表6-16　WebコンテナによってServletContextの属性に追加される属性

キー名称 | 値の説明
com.hitachi.software.web.application-dd.J2eeApplicationName | J2EEアプリケーション名
com.hitachi.software.web.application-dd.contextRoot | コンテキストルート名
com.hitachi.software.web.dd.session-max-inactive-interval | DD（web.xml）に設定されたHTTPセッションの有効期間※1
com.hitachi.software.web.hitachi-runtime-dd.http-session-max-number | HTTPセッション数の上限値設定機能で設定されたHTTPセッション数の上限値
com.hitachi.software.web.dd.filter-class | DD（web.xml）の最上部に定義されたフィルタマッピングのクラス名
com.hitachi.software.web.dd.url-pattern | DD（web.xml）の最上部に定義されたフィルタマッピングのURLパターン※2※3

注※1

DD（web.xml）にHTTPセッションの有効期間を設定しなかった場合は，デフォルトの値が登録されます。

注※2

<url-pattern>タグでなく，<servlet-name>タグが設定された場合は追加されません。

注※3

DD（web.xml）内にセッションフェイルオーバ用フィルタを使用するフィルタマッピングの定義が複数あった場合，URLパターンの代わりに「<multi mapped>」の文字列が登録されます。

これらの属性の追加はメモリセッションフェイルオーバ機能の有効，無効に関係なく，J2EEサーバモードでWebアプリケーションを開始する時には必ず実行されます。

なお，javax.servlet.ServletContextAttributeListenerインタフェースを実装したクラスを使用した場合は，上記属性の追加，削除するためのattributeAddedメソッド，attributeRemovedメソッド，およびattributeReplacedメソッドの呼び出しは実行されません。

6.12　DDでの定義

ここでは，テンプレートを利用したDDの作成と，DDに定義する項目について説明します。

＜この節の構成＞

6.12.1　DDの作成

6.12.2　DDに定義する項目

6.12.3　DDでの定義例

6.12.1　DDの作成

セッション情報の引き継ぎを行うWebアプリケーションの設定では，Webアプリケーションにセッションフェイルオーバ用フィルタを追加して，セッション情報の引き継ぎに関する項目やフィルタマッピングを定義します。フィルタの設定の詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.1　アプリケーションサーバが提供するサーブレットフィルタ（built-inフィルタ）」も参照してください。なお，Servlet 3.0以降では，APIでフィルタを定義できますが，セッションフェイルオーバ用フィルタはAPIで定義できません。

次に示すディレクトリに，メモリセッションフェイルオーバ機能で使用するフィルタ定義およびフィルタマッピングの定義が記述されたテンプレートのDD（web.xml）が用意してあります。

テンプレート格納ディレクトリ

<Application Serverのインストールディレクトリ>¥CC¥sfo¥sfo_war

このファイルをコピーしてWebアプリケーションのDDを作成します。すでに存在するWebアプリケーションにメモリセッションフェイルオーバ機能を適用する場合，テンプレートからDDにセッションフェイルオーバ用フィルタのフィルタ定義およびフィルタマッピングの定義をコピーし，必要な定義を記述します。

注意

タグの指定を省略する場合，タグの記述も含めて省略する必要があります（<init-param>タグ～</init-param>タグの記述を省略します）。次のようにタグを記述して値だけ省略した場合，空白文字列を指定したと判断されてエラーとなります。

間違った省略方法の例

　　 （省略）
　　　　：
<init-param>
<param-name>LockTimeout</param-name>
<param-value></param-value>
</init-param>
　　　　：
　　 （省略）

テンプレートの内容を次に示します。

図6-32　テンプレートの内容（メモリセッションフェイルオーバ機能のDD）（1/2）

図6-33　テンプレートの内容（メモリセッションフェイルオーバ機能のDD）（2/2）

次の定義の値は固定となります。テンプレートの値をそのまま使用してください。

フィルタ定義の<filter-name>タグと<filter-class>タグ

フィルタマッピング定義の<filter-name>タグと<url-pattern>タグ

注意

フィルタマッピング（<filter-mapping>タグ）を定義する場合，次の点に注意してください。

フィルタマッピング定義を複数定義する場合，セッションフェイルオーバ用フィルタのマッピング定義を最初に記述してください。最初に記述しない場合はアプリケーションを開始できません。

セッションフェイルオーバ用フィルタのマッピング定義は複数定義しないでください。複数定義した場合はアプリケーションを開始できません。

WebアプリケーションのバージョンがServlet 2.4以降の場合，<filter-mapping>タグの要素の<dispatcher>タグを指定しないでください。<dispatcher>タグで「FORWARD」，「INCLUDE」，および「ERROR」を指定した場合，Webアプリケーションの開始時にセッションフェイルオーバ用フィルタの初期化段階でエラーが発生し，アプリケーションは開始できません。

6.12.2　DDに定義する項目

グローバルセッション情報として登録する情報や，使用するSFOサーバの情報などは，<filter>タグ内の初期化パラメタである，<init-param>タグ内を編集して定義します。

参考

<init-param>タグ内の情報は，アプリケーションをJ2EEサーバにインポートしたあとで，サーバ管理コマンドを使用して設定することもできます。

DDの<init-param>タグ内に定義する内容を次の表に示します。なお，<param-value>に指定する値の詳細については，(1)以降で説明します。

表6-17　DDの<init-param>タグ内に定義する内容

定義する項目
<param-name>タグに指定する要素
<param-value>に指定する内容

グローバルセッション情報として使用する情報
書き換え可能な情報
GSInfoKey-RW
HTTPセッションに登録する情報の中から，グローバルセッション情報として登録する情報を選択して定義します。
文字列を指定します。※1
「;」（半角セミコロン）を含んだキーは指定できません。
複数指定する場合は，「;」（半角セミコロン）で区切って指定します。
なお，同じ名称のキーは複数回指定できません。GSInfoKey-RWとGSInfoKey-Rに同じ名称を指定することもできません。※2
また，「*」（半角アスタリスク）だけを指定すると，HTTPセッションに登録されたすべての情報がグローバルセッション情報として登録されます。ただし，複数指定の中に「*」を指定している場合，「*」はキーとして扱われます。「*」は，GSInfoKey-RWとGSInfoKey-Rの両方に指定できません。
GSInfoKey-RWとGSInfoKey-Rに指定する値と引き継ぎ対象となるセッション情報の関係については，「(1)　グローバルセッション情報として使用する情報（GSInfoKey-RW，GSInfoKey-R）」を参照してください。

読み込み専用の情報
GSInfoKey-R

グローバルセッション情報の最大サイズ
GSInfosLengthMax
グローバルセッション情報の最大サイズ（文字）を指定します。
DDには，3～1048576​の整数値で指定します。

グローバルセッション情報を格納するSFOサーバ
SFOServerName
使用するSFOサーバ名を指定します。
DDには，J2EEサーバ用のusrconf.propertiesのwebserver.sfo.sfo_serversキーで指定されているSFOサーバの中から選択して指定します。

グローバルセッションの制御方法
GSessionControl
グローバルセッション情報の制御方法を指定します。
指定できる値は，「cookie」，「url-rewriting」または「both」です。
このパラメタに指定した値については，大文字と小文字が区別して扱われます。

グローバルセッションIDの送信に使用するHTTP Cookieの名称
GIDCookieName
グローバルセッションIDを送信するHTTP Cookieの名称を指定します。
DDには，16文字までの文字列で指定します。
使用できる文字は，A～Z，a～zおよび0～9の英数字です。ただし，HTTP Cookieの名称の識別では，大文字と小文字は区別されません。
また，HTTPセッションのセッションIDが使用するHTTP Cookieの名称※3やJ2EEサーバが使用するサーバID，または「csfcfc」と同じ値は指定できません。

グローバルセッションIDの送信に使用するURLのパスパラメタ名
GIDURLParamName
グローバルセッションIDの送信に使用するURLのパスパラメタ名を指定します。
DDには，16文字までの文字列で指定します。
使用できる文字は，A～Z，a～zおよび0～9の英数字です。URLのパスパラメタの識別では，大文字と小文字は区別されます。
また，URLのパスパラメタ名には，HTTPセッションのセッションIDが使用するURLのパスパラメタ名※4を指定できません。なお，URLのパスパラメタ名の識別では，大文字と小文字は区別されません。
また，Webアプリケーションで独自のURLのパスパラメタを使用している場合は，Webアプリケーションで使用しているURLのパスパラメタと異なる名称をこのパラメタに，指定してください。

グローバルセッション情報のロック待ちタイムアウト時間
LockTimeout
SFOサーバでのロック待ちタイムアウト時間を秒単位で指定します。
DDには，1～3600の整数値を指定します。

引き継ぎ可能なセッション情報のデータ型
byte型配列であるセッション情報の引き継ぎ許可
GSInfoTypeByteArrayEnable
byte型配列のセッション情報を引き継ぎ対象とするかどうかを指定します。

true

byte型配列のセッション情報を引き継ぎ対象とします。

false

byte型配列のセッション情報を引き継ぎ対象としません。byte型配列を使用した場合は，グローバルセッション情報の更新時にエラーとなります。

trueおよびfalse以外の文字列を指定した場合は，デフォルト値のfalseが適用されます。
このパラメタに指定した値について，大文字，小文字は区別されません。また，このパラメタに指定した値は，GSInfoTypeSerializableEnableパラメタに「true」を指定している場合は無視されます。

直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可
GSInfoTypeSerializableEnable
直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とするかどうかを指定します。

true

直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とします。

false

直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象としません。

このパラメタに指定した値について，大文字，小文字は区別されません。

注※1　キー名称の先頭と最後の空白は省略されます。省略された結果，""（文字列）になったキー名称は無視されます。

注※2　同じキー名称を指定した場合，Webアプリケーションを開始できません。

注※3　Webコンテナが自動で設定するHTTP Cookieの名称は「JSESSIONID」です。この名称はアプリケーションサーバのバージョンが09-00以降の場合，変更できます。HTTP Cookieの名称を変更した場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.9　セッション管理の注意事項」を参照してください。

注※4　Webコンテナが自動で設定するURLのパスパラメタ名は「jsessionid」です。この名称はアプリケーションサーバのバージョンが09-00以降の場合，変更できます。URLのパスパラメタ名を変更した場合の注意事項については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.9　セッション管理の注意事項」を参照してください。

これらの定義項目は，使用する機能によって設定するかどうかが異なります。使用する機能ごとのDDの<init-param>タグ内に定義する要素のデフォルト値と設定要否を次の表に示します。

表6-18　使用する機能ごとのDDの<init-param>タグ内に定義する要素のデフォルト値と設定要否

<param-name>タグに指定する要素 | デフォルト値 | 使用する機能
メモリセッションフェイルオーバ機能の設定要否 | グローバルセッション情報のサイズ見積もり機能の設定要否
GSInfoKey-RW | なし | 任意※1 | 任意※1
GSInfoKey-R | なし | 任意※1 | 任意※1
GSInfosLengthMax | 1024 | 任意 | 無効※2
SFOServerName | webserver.sfo.sfo_serversキーに指定されているSFOサーバ数によって異なります。※3 | 任意 | 無効※4
GSessionControl | cookie | 任意 | 任意
GIDCookieName | GSESSIONID | 任意 | 任意
GIDURLParamName | gsessionid | 任意 | 任意
LockTimeout | 60 | 任意 | 無効※2
GSInfoTypeByteArrayEnable | false | 任意 | 任意
GSInfoTypeSerializableEnable | false | 任意 | 任意

（凡例）

任意：省略できることを示します。省略した場合はデフォルトの値が設定されます。

無効：指定しても無効になることを示します。設定した値は使用されません。

注※1　GSInfoKey-RWとGSInfoKey-Rの両方を省略することはできません。

注※2　パラメタに不正な値を指定した場合はエラーとなり，Webアプリケーションは開始できません。

注※3　セッションフェイルオーバ用フィルタのサーバ定義名に指定されているSFOサーバ名が一つの場合は，そのSFOサーバ名がデフォルトになります。複数指定されている場合は，先頭に指定されているSFOサーバ名がデフォルトになります。セッションフェイルオーバ用フィルタのサーバ定義名は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内に，webserver.sfo.sfo_serversパラメタで指定します。

注※4　指定したSFOサーバ名が，簡易構築定義ファイルで指定されているセッションフェイルオーバ用フィルタのサーバ定義名にない場合もエラーになりません。セッションフェイルオーバ用フィルタのサーバ定義名は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内に，webserver.sfo.sfo_serversパラメタで指定します。

なお，グローバルセッションの制御方法によって，指定する必要があるパラメタが異なります。

グローバルセッションの制御方法と指定が必要なパラメタの対応を次の表に示します。

表6-19　グローバルセッションの制御方法と指定が必要なパラメタの対応

<param-name>タグに指定する要（パラメタ） | HTTP Cookieによって制御する場合 | URL書き換えによって制御する場合
GSInfoKey-RW | ○ | ○
GSInfoKey-R | ○ | ○
GSInfosLengthMax | ○ | ○
SFOServerName | ○ | ○
GSessionControl | ○※ | ◎
GIDCookieName | ○ | －
GIDURLParamName | － | ○
LockTimeout | ○ | ○
GSInfoTypeByteArrayEnable | ○ | ○
GSInfoTypeSerializableEnable | ○ | ○

（凡例）

◎：指定が必要です。省略できません。

○：指定が必要です。省略した場合は，デフォルト値が有効になります。

－：指定は不要です。

注※

デフォルト値は「cookie」です。このため，省略した場合もHTTP Cookieによってグローバルセッションが制御されます。

注意

グローバルセッション情報として使用する情報は，一つ以上指定する必要があります。それ以外の値の定義は任意です。デフォルト値がある項目については，省略するとデフォルト値が使用されます。

パラメタ値を省略する場合，<init-param>タグごと省略してください。次のようにタグを残して値だけを省略した場合，空文字列を指定したと判断されて，エラーになります。
間違った省略方法の例
　　　　：
<init-param>
<param-name>GSInfosLengthMax</param-name>
<param-value></param-value>
</init-param>
　　　　：

メモリセッションフェイルオーバ機能を使用するためのDDの定義内容は，すべての冗長化したアプリケーションで同一である必要があります。定義内容が不正な場合，アプリケーション開始処理がエラーになります。メッセージは，KDJE34202-Eのメッセージが出力されます。

＜この項の構成＞

(1)　グローバルセッション情報として使用する情報（GSInfoKey-RW，GSInfoKey-R）

(2)　グローバルセッション情報の最大サイズ（GSInfosLengthMax）

(3)　グローバルセッション情報を格納するSFOサーバ（SFOServerName）

(4)　グローバルセッションの制御方法（GSessionControl）

(5)　グローバルセッションIDの送信に使用するHTTP Cookieの名称（GIDCookieName）

(6)　グローバルセッションIDの送信に使用するURLのパスパラメタ名（GIDURLParamName）

(7)　グローバルセッション情報のロック待ちタイムアウト時間（LockTimeout）

(8)　引き継ぎ可能なセッション情報のデータ型（GSInfoTypeByteArrayEnable，GSInfoTypeSerializableEnable）

(9)　統合ユーザ管理機能を使用する場合の設定

(1)　グローバルセッション情報として使用する情報（GSInfoKey-RW，GSInfoKey-R）

HTTPセッションに登録する情報の中から，グローバルセッション情報として登録する情報を選択して定義します。HTTPセッションに登録する情報すべてをグローバルセッション情報として引き継ぐ場合は，「*」を指定します。

ただし，グローバルセッション情報として，HTTPセッションに登録されたすべてのセッション情報を指定すると，引き継ぐ必要のない情報がHTTPセッションに登録されている場合にリクエスト処理のパフォーマンスが低下することがあります。このため，必要最小限のセッション情報をグローバルセッション情報としてSFOサーバに引き継ぐように設定することをお勧めします。必要最小限のグローバルセッション情報を引き継ぐことで，SFOサーバのパフォーマンスの向上を図れます。

グローバルセッション情報は，書き換え可能グローバルセッション情報または読み込み専用グローバルセッション情報として指定します。HTTPセッションに登録後，変更が必要なセッション情報は，書き換え可能グローバルセッション情報に指定します。HTTPセッションに登録後，変更が不要なセッション情報は，読み込み専用グローバルセッションに指定します。グローバルセッション情報については，「6.4.2　グローバルセッション情報」を参照してください。

書き換え可能グローバルセッション情報の場合は，パラメタのGSInfoKey-RWで指定します。読み込み専用グローバルセッション情報の場合は，GSInfoKey-Rで指定します。

GSInfoKey-RWおよびGSInfoKey-Rパラメタに指定した文字列は，「;」（半角セミコロン）で分割したあと，それぞれの値の先頭と最後の連続した空白文字※を削除した結果がキー名称として使用されます。空白文字※を削除した結果が「""」（空文字列）になったキー名称は無視されます。GSInfoKey-RWおよびGSInfoKey-Rパラメタに指定した文字列に有効となるキー名称がない場合は，KDJE34202-Eのメッセージが出力され，エラーとなります。

注※

空白文字とは，半角スペース，タブ，LF（ラインフィード（0x0a）），CR（キャリッジリターン（0x0d））またはFF（フォームフィード（0x0c））のことを指します。

GSInfoKey-RWおよびGSInfoKey-Rパラメタに指定する値と引き継ぎ対象となるセッション情報の関係を次の表に示します。

表6-20　GSInfoKey-RWおよびGSInfoKey-Rパラメタに指定する値と引き継ぎ対象となるセッション情報の関係

項番 | パラメタに指定する値 | 指定例 | 指定例で引き継ぎ対象となるセッション情報
1 | 「;」（半角セミコロン）で区切った複数の文字列 | "user;roll" | "user"および"roll"のキーで登録されたセッション情報
2 | キーの前，またはあとに空白を含んだ文字列 | "user△;△roll△△; password" | "user"，"roll"，および"password"のキーで登録されたセッション情報（空白文字を削除した結果，キー名称となります）
3 | キーの途中に空白を含んだ文字列 | "user;user△id" | "user"および"user△id"のキーで登録されたセッション情報
4 | 「*」（半角アスタリスク）だけ | "*" | HTTPセッションに登録されたすべてのセッション情報※
5 | 前，またはあとに空白を含んだ「*」（半角アスタリスク） | "△△*△△" | HTTPセッションに登録されたすべてのセッション情報※（空白文字を削除した結果，「*」となります）
6 | 「*」（半角アスタリスク）を含んだ複数の文字列 | "user;*" | "user"および"*"のキーで登録されたセッション情報
7 | 「*」（半角アスタリスク）以外のキーが空文字列 | "*;" | "*"のキーで登録されたセッション情報
8 | 空文字列 | "" | エラーとなり，KDJE34202-Eのメッセージが出力されます。
9 | 「△」だけ | "△△" | エラーとなり，KDJE34202-Eのメッセージが出力されます（空白文字を削除した結果，空文字列となります）。
10 | 「;」（半角セミコロン）だけ | ";;" | エラーとなり，KDJE34202-Eのメッセージが出力されます（有効となるキー名称がありません）。
11 | 「△」を「;」（半角セミコロン）で区切った文字列 | ";△;" | エラーとなり，KDJE34202-Eのメッセージが出力されます（空白文字を削除した結果，有効となるキー名称がありません）。

（凡例）△：空白文字を示します。

注※

GSInfoKey-RWパラメタで「*」を指定している場合に，GSInfoKey-Rパラメタでキーを指定しているときは，GSInfoKey-Rパラメタに指定したキーで登録されたセッション情報は含まれません。また，GSInfoKey-Rパラメタで「*」を指定している場合に，GSInfoKey-RWパラメタでキーを指定しているときは，GSInfoKey-RWパラメタに指定したキーで登録されたセッション情報は含まれません。

(2)　グローバルセッション情報の最大サイズ（GSInfosLengthMax）

SFOサーバに格納するグローバルセッション情報の一つ当たりの最大サイズを指定します。SFOサーバで冗長化できるグローバルセッション情報のサイズは，デフォルトでは1,024バイトまでです。冗長化するグローバルセッション情報の文字数がこの値を超える場合は，定義した内容を変更する必要があります。

また，グローバルセッション情報の最大サイズを小さくすると，SFOサーバで使用するメモリサイズを少なくできます。実際に格納するグローバルセッション情報の最大サイズを考慮して，適切なサイズを指定してください。

注意

グローバルセッション情報のサイズ見積もり機能を有効にしている場合，GSInfosLengthMaxパラメタの指定は無視されます。このため，グローバルセッション情報のサイズ見積もり機能を無効にして運用を開始する前に，KDJE34260-Iのメッセージで出力されたグローバルセッション情報のサイズが，GSInfosLengthMaxパラメタで指定したサイズを超えていないことを確認してください。

グローバルセッション情報のサイズは，次の式で算出できます。直列化可能クラスのオブジェクトであるセッション情報の引き継ぎを許可しているかどうか（GSInfoTypeSerializableEnableパラメタの指定）によって，見積もり式が異なります。

(a)　直列化可能クラスのオブジェクトであるセッション情報の引き継ぎを許可していない場合

グローバルセッション情報のサイズ＝
　（各グローバルセッション情報のキーの文字列長合計）
　＋（各HTTPセッションに登録されたオブジェクトのサイズの最大長合計）
　＋（区切り文字数）※1
　＋（HTTPセッションの有効期間情報の長さ）※2

注※1

区切り文字数は，2×（設定したグローバルセッション情報の数）－1で算出できます。これは，区切り文字には，グローバルセッション情報間の区切り文字と，各グローバルセッション情報のキーと値の区切り文字が含まれるためです。

注※2

HTTPセッションの有効期間情報の長さは4バイトです。

ただし，グローバルセッション情報がjava.lang.Stringクラスの場合，文字列をUTF-8の文字エンコーディングでURLエンコードして冗長化します（URLエンコードにはjava.net.URLEncoderクラスを使用します）。そのため，グローバルセッション情報の文字列長は，セッション情報の文字列長と異なることがあります。文字種ごとのURLエンコード後の文字列長を次の表に示します。

表6-21　文字種ごとのURLエンコード後の文字列長

項番
文字種
文字列長（バイト）

1
ASCII文字
英数字（0～9およびa～Z）および次に示す特殊文字

ピリオド（.）

ハイフン（-）

アスタリスク（*）

アンダースコア（_）

1

上記以外のASCII文字
3

2
JIS X 0201のすべての非ASCII文字
6または9

3
JIS X 0208のすべての非ASCII文字
6または9

4
JIS X 0212のすべての非ASCII文字
6または9

5
Windows-31Jの拡張文字
9

6
Unicodeの補助文字（基本多言語面以外の文字）
12

7
JIS X 0213の第3，第4水準漢字
9または12

このため，グローバルセッション情報のサイズは，セッション情報の文字列を文字種ごとにURLエンコード後の文字列長に変換してから，それらを合計して見積もる必要があります。

例えば，n種類のグローバルセッション情報を指定した場合は，グローバルセッション情報の最大サイズは次の式で算出できます。

グローバルセッション情報のサイズ＝
　（グローバルセッション情報1のキーの文字列長）
　＋（HTTPセッションに登録されたオブジェクト1の最大サイズ）
　＋（グローバルセッション情報2のキーの文字列長）
　＋（HTTPセッションに登録されたオブジェクト2の最大サイズ）
　　：
　＋（グローバルセッション情報nのキーの文字列長）
　＋（HTTPセッションに登録されたオブジェクトnの最大サイズ）
　＋（2×n-1）
　＋4

参考

グローバルセッション情報のサイズ見積もり機能を使用すると，HTTPセッションに含まれるセッション情報ごとのバイト数が出力できます。出力されたサイズ情報を参考にして，グローバルセッション情報の最大サイズに適切な値を設定してください。グローバルセッション情報のサイズ見積もり機能については，「6.5　グローバルセッション情報のサイズの見積もり」を参照してください。

(b)　直列化可能クラスのオブジェクトであるセッション情報の引き継ぎを許可している場合

グローバルセッション情報のサイズ＝
　（各グローバルセッション情報のキーのシリアライズ後のバイト数合計）
　＋（各HTTPセッションに登録されたオブジェクトのシリアライズ後のバイト数合計）
　＋（HTTPセッションの有効期間情報の長さ）※

注

シリアライズは，一つのHTTPセッションに対して，一つのjava.io.ObjectOutputStreamのオブジェクトを使用して実施します。

注※

HTTPセッションの有効期間情報の長さは4バイトです。

例えば，n種類のグローバルセッション情報を設定した場合は，グローバルセッション情報の最大サイズは次の式で算出できます。

グローバルセッション情報のサイズ＝
　（グローバルセッション情報1のキーのシリアライズ後のバイト数）
　＋（HTTPセッションに登録されたオブジェクト1のシリアライズ後のバイト数）
　＋（グローバルセッション情報2のキーのシリアライズ後のバイト数）
　＋（HTTPセッションに登録されたオブジェクト2のシリアライズ後のバイト数）
　：
　＋（グローバルセッション情報nのキーのシリアライズ後のバイト数）
　＋（HTTPセッションに登録されたオブジェクトnのシリアライズ後のバイト数）
　＋4

注

シリアライズは，一つのHTTPセッションに対して，一つのjava.io.ObjectOutputStreamのオブジェクトを使用して実施します。

参考

グローバルセッション情報のサイズ見積もり機能を使用すると，各情報のシリアライズ後のバイト数が出力できます。出力されたサイズ情報を参考にして，グローバルセッション情報の最大サイズに適切な値を設定してください。グローバルセッション情報のサイズ見積もり機能については，「6.5　グローバルセッション情報のサイズの見積もり」を参照してください。

(3)　グローバルセッション情報を格納するSFOサーバ（SFOServerName）

グローバルセッション情報を格納するSFOサーバのサーバ名を指定します。サーバ名は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内のパラメタwebserver.sfo.sfo_serversに指定したSFOサーバ名から選択します。

簡易構築定義ファイルおよび指定するパラメタの詳細については，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

ポイント

システム内に複数のSFOサーバを配置する場合，メモリセッションフェイルオーバ機能を使用するWebアプリケーション単位に，SFOサーバを割り当てることをお勧めします。Webアプリケーション単位にSFOサーバを割り当てることによって，SFOサーバで障害が発生したときの影響範囲を特定のJ2EEアプリケーションに限定させることができます。システム内に複数のSFOサーバを配置する場合の設定例を次の図に示します。

図6-34　システム内に複数のSFOサーバを配置する場合の設定例

(4)　グローバルセッションの制御方法（GSessionControl）

グローバルセッションの制御方法を指定します。指定した値に応じて，Webクライアントに対するグローバルセッションIDの送信方法，およびWebクライアントからのグローバルセッションIDの受信方法が決まります。

指定できる値と意味を次の表に示します。

表6-22　GSessionControlの指定値の意味

指定値
意味

cookie
グローバルセッションの制御にHTTP Cookieを使用します。

url-rewriting
グローバルセッションの制御にURL書き換えを使用します。

both
グローバルセッションの制御にHTTP CookieおよびURL書き換えの両方を使用します。
WebクライアントがHTTP Cookieをサポートしているかどうかを判別して，必要に応じてHTTP Cookieによる制御とURL書き換えによる制御を切り替えます。

また，GSessionControlに指定した値によって，次の制御が変わります。

WebクライアントからJ2EEサーバに送信されるグローバルセッションIDの扱われ方

J2EEサーバからWebクライアントへのレスポンスの設定内容

GSessionControlに指定する値とグローバルセッションの制御方法の関係を，次の表に示します。

表6-23　GSessionControlに指定する値とグローバルセッションの制御方法の関係

GSessionControlに指定する値 | WebクライアントからJ2EEサーバに送信されるリクエストに含まれるグローバルセッションID | J2EEサーバからWebクライアントに送信されるレスポンスの内容
HTTP Cookieに含まれるグローバルセッションID | URLのパスパラメタに含まれるグローバルセッションID | グローバルセッション生成時にHTTP Cookieを付加するかどうか | ServletAPIによるURL書き換えが有効になるかどうか
cookie | 有効 | 無効 | 付加する | 無効
url-rewriting | 無効 | 有効 | 付加しない | 有効
both | 有効※¹ | 有効※¹ | 付加する | 有効※²

注※1

クライアントから送信されたリクエストが，HTTP CookieおよびURLのパスパラメタの両方にグローバルセッションIDを含んでいる場合は，HTTP Cookieで送信されたグローバルセッションIDが有効になります。

注※2

WebクライアントがHTTP Cookieをサポートしている場合は，URL書き換えは実行しません。

HTTP CookieまたはURL書き換えを使用したグローバルセッションの制御については，「6.6　HTTP Cookieによるグローバルセッションの制御」および「6.7　URL書き換えによるグローバルセッションの制御」を参照してください。

(5)　グローバルセッションIDの送信に使用するHTTP Cookieの名称（GIDCookieName）

グローバルセッションIDをWebブラウザなどのクライアントに通知するときに使用するHTTP Cookieの名称を指定します。なお，グローバルセッションIDとは，グローバルセッション情報の識別に使用される情報です。

Cookieの名称は，Webアプリケーション単位に指定できます。ただし，次に示すCookieの名称と同じ値を指定することはできません。

JSESSIONID
HTTPセッションのセッションIDの送信に使用するCookieの名称です。

HTTPセッションを生成したリクエストのレスポンスに付加されるサーバIDのCookieの名称
HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する機能を有効にしている場合に確認が必要です。
この機能を有効にしているかどうか，および付加されるサーバIDのCookieの名称については，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内で，次のパラメタの値を参照してください。

webserver.container.server_id.enabled

webserver.container.server_id.name

なお，グローバルセッションIDの送信に使用するCookieの名称が，これらのCookieの名称と重複した場合，Webアプリケーションに定義したセッションフェイルオーバ用フィルタ（J2EE仕様で規定されたjavax.servlet.Filterインタフェースを実装したクラス）の開始処理でエラーとなり，Webアプリケーションを実行できません。

(6)　グローバルセッションIDの送信に使用するURLのパスパラメタ名（GIDURLParamName）

グローバルセッションIDをWebブラウザなどのクライアントに通知するときに使用するURLのパスパラメタ名を指定します。

GSessionControlパラメタに「cookie」を指定した場合，このパラメタに設定した値は無効になります。なお，GSessionControlパラメタに「cookie」を指定した場合，GIDURLParamNameパラメタに設定した値はチェックされません。このため，このパラメタに不正な値を設定した場合も，検出はされません。

注意

Webアプリケーション内で使用するURLのパスパラメタと同じ名称を，このパラメタで指定しないでください。指定した場合，メモリセッションフェイルオーバ機能が正しく動作しません。

URL書き換えを使用したグローバルセッションの制御については，「6.7　URL書き換えによるグローバルセッションの制御」を参照してください。

(7)　グローバルセッション情報のロック待ちタイムアウト時間（LockTimeout）

すでにロックされた状態のセッションに対して，別のJ2EEサーバからロック要求があった場合に，ロック待ちがタイムアウトになるまでの時間を指定します。

J2EEサーバからSFOサーバに対してグローバルセッション情報のロック取得要求をしたあとに，J2EEサーバに障害が発生して停止した場合，SFOサーバ上のグローバルセッション情報がロックされたままの状態になってしまうおそれがあります。グローバルセッション情報のロック待ちタイムアウト時間は，このような場合に，J2EEサーバに障害が発生したと判断するために使用されます。

また，次のような場合にロックされたままの状態になったときにも，このタイムアウト時間が有効になります。これらの状態は，負荷分散機を使用している環境で発生することがあります。

ページにフレームを使用している場合など，同じセッションを使用するリクエストが同時に送信され，それぞれのリクエストが負荷分散機のスケジュール機能によって異なるJ2EEサーバに分散されて転送されたとき

ユーザの操作によってリクエストが二重に送信された場合など，リクエストを送信して応答が返されるよりも前に次のリクエストを送信したときに，それぞれのリクエストが負荷分散機のスケジュール機能によって異なるJ2EEサーバに分散されて転送されたとき

フレームを使用するアプリケーションの場合は，リクエスト処理が終わるまでのロック待ち時間も考慮して，タイムアウト時間を定義してください。

(8)　引き継ぎ可能なセッション情報のデータ型（GSInfoTypeByteArrayEnable，GSInfoTypeSerializableEnable）

引き継ぎ可能なセッション情報のデータ型には，java.lang.Stringクラスのオブジェクト，byte型配列，および直列化可能クラスのオブジェクトがあります。

データ型がbyte型配列，または直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とする場合には，次の設定を有効にします。

byte型配列であるセッション情報の引き継ぎ許可

直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可

これらの設定を無効にした場合は，java.lang.Stringクラスのオブジェクトだけが引き継ぎ可能なセッション情報となります。

(a)　byte型配列であるセッション情報の引き継ぎ許可

byte型配列のセッション情報を引き継ぎ対象とするかどうかをGSInfoTypeByteArrayEnableパラメタに指定します。「true」を指定した場合は，java.lang.Stringクラスのオブジェクトに加え，byte型配列のセッション情報も引き継ぎ対象となります。

「false」を指定した場合は，byte型配列のセッション情報は引き継ぎ対象外となります。引き継ぎ対象外のオブジェクトが登録された場合の扱いについては，「6.4.2(3)　引き継ぎ対象外のオブジェクトの扱い」を参照してください。

(b)　直列化可能クラスのオブジェクトであるセッション情報の引き継ぎ許可

直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とするかどうかをGSInfoTypeSerializableEnableパラメタに指定します。「true」を指定した場合は，直列化可能クラスのオブジェクトであるセッション情報が引き継ぎ対象となります。この場合，java.lang.Stringクラスのオブジェクト，およびbyte型配列のセッション情報も区別なく，直列化可能クラスのオブジェクトであるセッション情報としてシリアライズして，グローバルセッション情報を作成します。

「false」を指定した場合は，直列化可能クラスのオブジェクトであるセッション情報は引き継ぎ対象外となります。引き継ぎ対象外のオブジェクトが登録された場合の扱いについては，「6.4.2(3)　引き継ぎ対象外のオブジェクトの扱い」を参照してください。

(c)　引き継ぎ可能なセッション情報のデータ型を指定する場合の注意事項

GSInfoTypeByteArrayEnableパラメタとGSInfoTypeSerializableEnableパラメタの指定値によって，引き継ぎ対象となるデータ型が異なります。各パラメタに指定する値と引き継ぎ対象となるデータ型の関係を次の表に示します。

表6-24　GSInfoTypeByteArrayEnableおよびGSInfoTypeSerializableEnableパラメタに指定する値と引き継ぎ対象となるデータ型の関係

GSInfoTypeByteArrayEnableパラメタ※1に指定する値 | GSInfoTypeSerializableEnableパラメタ※2に「true」を指定 | GSInfoTypeSerializableEnableパラメタ※2に「false」を指定
true | 直列化可能クラスのオブジェクト | java.lang.Stringクラスのオブジェクトまたはbyte型配列
false | 直列化可能クラスのオブジェクト | java.lang.Stringクラスのオブジェクト

注※1　byte型配列のセッション情報を引き継ぎ対象とするかどうかを指定するパラメタです。

注※2　直列化可能クラスのオブジェクトであるセッション情報を引き継ぎ対象とするかどうかを指定するパラメタです。

なお，引き継ぎ対象外のオブジェクトが登録された場合の扱いについては，「6.4.2(3)　引き継ぎ対象外のオブジェクトの扱い」を参照してください。

(9)　統合ユーザ管理機能を使用する場合の設定

統合ユーザ管理機能を使用する場合に必要な設定について説明します。

(a)　統合ユーザ管理機能を使用する場合のグローバルセッション情報

統合ユーザ管理機能を使用する場合のセッション情報は，HTTPセッションに登録したあとで変更が必要になります。書き換え可能なグローバルセッション情報（GSInfoKey-RWパラメタ）を選択してください。また，GSInfoKey-RWパラメタには，「com.cosminexus.admin.auth.user_data」を設定してください。

(b)　統合ユーザ管理機能を使用する場合のグローバルセッション情報の最大サイズ

統合ユーザ管理機能を使用する場合のグローバルセッション情報の最大サイズの見積もり式を次に示します。

グローバルセッション情報の最大サイズ
　　＝統合ユーザ管理で使用する値
　　＋ユーザアプリケーションで使用する値

統合ユーザ管理で使用する値は，統合ユーザ管理フレームワークのAPIを使用する場合とタグライブラリを使用する場合で異なります。また，パスワード保存機能を使用するかどうかによっても異なります。それぞれの場合の統合ユーザ管理で使用する値の計算式を次に示します。

APIを使用し，パスワード保存機能を使用する場合

統合ユーザ管理で使用する値
　　＝｛1,500＋（レルム名の長さ＋ユーザ名の最大長＋パスワードの最大長
　　＋1,200）×レルム数｝×2

APIを使用し，パスワード保存機能を使用しない場合

統合ユーザ管理で使用する値
　　＝｛1,500＋（レルム名の長さ＋ユーザ名の最大長＋1,200）×レルム数｝×2

タグライブラリを使用し，パスワード保存機能を使用する場合

統合ユーザ管理で使用する値
　　＝｛1,500＋（レルム名の長さ＋ユーザ名の最大長
　　＋loginタグのid属性値の長さ＋loginタグのentry属性値の長さ
　　＋パスワードの最大長＋1,200）×レルム数｝×2

タグライブラリを使用し，パスワード保存機能を使用しない場合

統合ユーザ管理で使用する値
　　＝｛1,500＋（レルム名の長さ＋ユーザ名の最大長
　　＋loginタグのid属性値の長さ＋loginタグのentry属性値の長さ
　　＋1,200）×レルム数｝×2

ポイント

計算式中の1,500と1,200は固定値です。統合ユーザ管理の管理情報を保存するために必要な値です。この値はオブジェクトをシリアライズしたときのバイト数の最大値を基に算出しています。

注意

セッションフェイルオーバ用フィルタの設定に誤りがある場合，セッションフェイルオーバが正しく行われませんので注意してください。

統合ユーザ管理では，GIDCookieNameパラメタが示す値を取得できたときに，統合ユーザ管理でのメモリセッションフェイルオーバ機能を有効にします。ただし，統合ユーザ管理からはセッションフェイルオーバ用フィルタの内容が正しいかをチェックできません。このため，フィルタの設定に誤りがあった場合，実際にフェイルオーバが発生するまで誤りに気づかないおそれがあります。

6.12.3　DDでの定義例

ここでは，DDの定義例として，HTTP Cookieによる制御の場合，URL書き換えによる制御の場合，および制御方法にbothを指定する場合を紹介します。

＜この項の構成＞

(1)　HTTP Cookieによる制御の場合

(2)　URL書き換えによる制御の場合

(3)　制御方法にbothを指定する場合

(4)　統合ユーザ管理機能を使用しない場合

(5)　統合ユーザ管理機能を使用する場合

(1)　HTTP Cookieによる制御の場合

メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は，HTTP Cookieによってグローバルセッションを制御し，byte型配列のセッション情報を引き継ぐ場合の例です。

    ：
<!--The filter for Session Fail Over -->
<filter>
  <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
  <filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
  <init-param>
    <param-name>GSInfoKey-RW</param-name>
    <param-value>page</param-value>
  </init-param>

  <init-param>
    <param-name>GSInfoKey-R</param-name>
    <param-value>userId;roll</param-value>
  </init-param>

  <init-param>
    <param-name>GSInfosLengthMax</param-name>
    <param-value>44</param-value>
  </init-param>

  <init-param>
    <param-name>SFOServerName</param-name>
    <param-value>sfo_server1</param-value>
  </init-param>

  <init-param>
    <param-name>GSessionControl</param-name>
    <param-value>cookie</param-value>
  </init-param>

  <init-param>
    <param-name>GIDCookieName</param-name>
    <param-value>SFOSESSIONID</param-value>
  </init-param>

  <init-param>
    <param-name>LockTimeout</param-name>
    <param-value>180</param-value>
  </init-param>

  <init-param>
    <param-name>GSInfoTypeByteArrayEnable</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>

<!-- Specify the filter tags here. -->
<filter>
  <filter-name>UserFilter</filter-name>
  <filter-class>filter.UserFilter</filter-class>
</filter>

<!-- The filter mappings for the Session Fail Over-->
<filter-mapping>
  <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Specify the filter-mapping tags here. -->
<filter-mapping>
  <filter-name>UserFilter</filter-name>
  <url-pattern>/servlet/*</url-pattern>
</filter-mapping>
    ：
</web-app>

この例で定義される内容は，次のとおりです。

書き換え可能グローバルセッション情報として，「page」の値を格納します。

読み込み専用グローバルセッション情報として，「userId」および「roll」の2種類の値を格納します。

グローバルセッション情報の最大サイズとして，49を設定します。
最大サイズは，次の式で算出します。ここでは，page（4文字）の値は1～2文字のASCII文字列，userId（6文字）の値は1～12バイトのbyte型配列，roll（4文字）の値は1～7文字のASCII文字列とします。
（4＋6＋4）＋（2＋7＋（12＋5））＋（2×3-1）＋4＝49

使用するSFOサーバの名称は，sfo_server1とします。

グローバルセッションIDのキー名称は，SFOSESSIONIDとします。

SFOサーバでのロック待ちタイムアウト時間は，180秒とします。

byte型配列のセッション情報を引き継ぎます。

(2)　URL書き換えによる制御の場合

メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は，URL書き換えによってグローバルセッションを制御する場合の例です。

なお，ここでは，URL書き換えによる制御の場合にHTTP Cookieによる制御と異なる設定だけについて示します。

    ：
<!--The filter for Session Fail Over -->
<filter>
  <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
  <filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
    ：
  <init-param>
    <param-name>GSessionControl</param-name>
    <param-value>url-rewriting</param-value>
  </init-param>

  <init-param>
    <param-name>GIDURLParamName</param-name>
    <param-value>sfogid</param-value>
  </init-param>
    ：
</filter>

この例では，グローバルセッションIDの送信に使用するURLのパスパラメタ名は，「sfogid」としています。

(3)　制御方法にbothを指定する場合

メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は，制御方法としてGSessionControlに「both」を指定する場合の例です。bothは，WebクライアントがHTTP Cookieをサポートしているかどうかを判別して，必要に応じてHTTP Cookieによる制御とURL書き換えによる制御を切り替える方法です。

なお，ここでは，bothを指定する場合にHTTP Cookieによる制御と異なる設定だけについて示します。

    ：
<filter>
  <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
  <filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
    ：
  <init-param>
    <param-name>GSessionControl</param-name>
    <param-value>both</param-value>
  </init-param>

  <init-param>
    <param-name>GIDCookieName</param-name>
    <param-value>SFOSESSIONID</param-value>
  </init-param>

  <init-param>
    <param-name>GIDURLParamName</param-name>
    <param-value>sfogid</param-value>
  </init-param>
    ：
</filter>

この例では，グローバルセッションIDの送信に使用するHTTP Cookieの名称は「SFOSESSIONID」としています。また，グローバルセッションIDの送信に使用するURLのパスパラメタ名は，「sfogid」としています。

(4)　統合ユーザ管理機能を使用しない場合

統合ユーザ管理機能を使用しない場合のDDでのフィルタ属性の記述例を次に示します。この例は，HTTP Cookieを使用してグローバルセッションを制御し，byte型配列のセッション情報を引き継ぐ場合の例です。

DDでのフィルタ属性の記述例

　　 （省略）
　　　　：
<filter>
   <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
   <filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
   <init-param>
       <param-name>GSInfoKey-RW</param-name>
       <param-value>page</param-value>
   </init-param>

   <init-param>
       <param-name>GSInfoKey-R</param-name>
       <param-value>userId;roll</param-value>
   </init-param>

   <init-param>
       <param-name>GSInfosLengthMax</param-name>
       <param-value>44</param-value>
   </init-param>

   <init-param>
       <param-name>SFOServerName</param-name>
       <param-value>sfo_server1</param-value>
   </init-param>

   <init-param>
       <param-name>GSessionControl</param-name>
       <param-value>cookie</param-value>
   </init-param>

   <init-param>
       <param-name>GIDCookieName</param-name>
       <param-value>SFOSESSIONID</param-value>
   </init-param>

   <init-param>
       <param-name>LockTimeout</param-name>
       <param-value>180</param-value>
   </init-param>

   <init-param>
       <param-name>GSInfoTypeByteArrayEnable</param-name>
       <param-value>true</param-value>
   </init-param>
　　　　：
　　 （省略）

DDでのWAR属性の記述例

　　 （省略）
　　　　：
<filter-mapping>
   <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
　　　　：
　　 （省略）

この記述例で設定される内容は，次のとおりです。

書き換え可能なグローバルセッション情報として，「page」の値を格納します。

読み取り専用のグローバルセッション情報として，「UserID」および「Roll」の2種類の値を格納します。

グローバルセッション情報の最大サイズとして，49を設定します。
最大サイズは，次の式で算出します。なお，ここでは，page（4文字）の値は1～2文字のASCII文字列，UserID（6文字）の値は1～12バイトのbyte型配列，roll（4文字）の値は1～7文字のASCII文字列とします。
（4＋4＋6）＋（2＋7＋（12＋5））＋（2×3-1）＋4＝49

グローバルセッション情報を格納するSFOサーバの名称は，「sfo_server1」とします。

グローバルセッションの制御には，HTTP Cookieを使用します。

グローバルセッションIDの送信に使用するCookieの名称は，「SFOSESSIONID」とします。

グローバルセッション情報のロック待ちタイムアウトは，「180秒」とします。

byte型配列のセッション情報を引き継ぐため，GSInfoTypeByteArrayEnableパラメタにtrueを指定します。

(5)　統合ユーザ管理機能を使用する場合

統合ユーザ管理機能を使用する場合のDDの記述例を次に示します。この例は，HTTP Cookieを使用してグローバルセッションを制御している場合の例です。

DDでのフィルタ属性の記述例

　　 （省略）
　　　　：
<filter>
   <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
   <filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
   <init-param>
       <param-name>GSInfoKey-RW</param-name>
       <param-value>com.cosminexus.admin.auth.user_data</param-value>
   </init-param>

   <init-param>
       <param-name>GSInfoKey-R</param-name>
       <param-value></param-value>
   </init-param>

   <init-param>
       <param-name>GSInfosLengthMax</param-name>
       <param-value>10380</param-value>
   </init-param>

   <init-param>
       <param-name>SFOServerName</param-name>
       <param-value>sfo_server1</param-value>
   </init-param>

   <init-param>
       <param-name>GSessionControl</param-name>
       <param-value>cookie</param-value>
   </init-param>

   <init-param>
       <param-name>GIDCookieName</param-name>
       <param-value>GSESSIONID</param-value>
   </init-param>

   <init-param>
       <param-name>LockTimeout</param-name>
       <param-value>30</param-value>
   </init-param>

   <init-param>
       <param-name>GSInfoTypeByteArrayEnable</param-name>
       <param-value>false</param-value>
   </init-param>

</filter>
　　　　：
　　 （省略）

DDでのWAR属性の記述例

　　 （省略）
　　　　：
<filter-mapping>
   <filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
　　　　：
　　 （省略）

この記述例で設定される内容は，次のとおりです。

書き換え可能なグローバルセッション情報として，「com.cosminexus.admin.auth.user_data」の値を格納します。

グローバルセッション情報の最大サイズとして，10,380文字を設定します。
最大サイズは，次の式で算出します。
｛1,500＋(10＋20＋1,200)×3｝×2＝10,380
なお，ここでは，次の条件で最大サイズを算出しています。

APIを使用する。

パスワード保存機能は使用しない。

レルム名の長さ：10

ユーザ名の最大長：20

レルム数（シングルサインオンを使用するシステムの数）：3

グローバルセッション情報を格納するSFOサーバの名称は，「sfo_server1」とします。

グローバルセッションの制御には，HTTP Cookieを使用します。

グローバルセッションIDの送信に使用するCookieの名称は，「GSESSIONID」とします。

グローバルセッション情報のロック待ちタイムアウトは，「30」秒とします。

グローバルセッション情報として，byte型配列を使用しないため，GSInfoTypeByteArrayEnableパラメタにfalseを指定します。

6.13　cosminexus.xmlでの定義

メモリセッションフェイルオーバ機能を使用するための定義は，cosminexus.xmlの<war>タグ内に指定します。

Webアプリケーションにセッションフェイルオーバ用フィルタを組み込むために，追加するフィルタ名称を指定します。<filter>-<filter-name>タグに次に示す固定値を指定してください。

設定値（固定値）

com.hitachi.software.was.sfo.web.SFOFilter

指定するタグの詳細は，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「2.2.7　Filter属性の詳細」を参照してください。

ポイント

セッション情報の引き継ぎを行うWebアプリケーションを含むJ2EEアプリケーションの開始後にWebアプリケーションの設定を変更する場合，J2EEアプリケーションを再開始する前に，SFOサーバに登録されたWebアプリケーションの設定情報を削除する必要があります。SFOサーバに登録されたWebアプリケーションの設定情報の削除方法については，「6.17　Webアプリケーションの設定情報の削除」を参照してください。

6.14　J2EEサーバの設定

メモリセッションフェイルオーバ機能を使用する場合，J2EEサーバの設定が必要です。

＜この節の構成＞

6.14.1　J2EEサーバの設定内容

6.14.2　簡易構築定義ファイルでの定義

6.14.3　簡易構築定義ファイルのパラメタの設定要否

6.14.4　定義内容の詳細（webserver.sfoから始まるパラメタ）

6.14.5　簡易構築定義ファイルの指定例

6.14.1　J2EEサーバの設定内容

セッション情報の引き継ぎを行うJ2EEサーバの設定内容について説明します。

セッション情報の引き継ぎを行うJ2EEサーバの設定では，簡易構築定義ファイルを編集して次に示す設定をします。

グローバルセッション情報を格納するSFOサーバの設定
セッション情報の引き継ぎを行うJ2EEサーバのグローバルセッション情報を格納するSFOサーバの名称，およびSFOサーバ用のCORBAネーミングサービスのIPアドレスを設定します。

SFOサーバとの通信タイムアウトの設定
J2EEサーバとSFOサーバとの通信タイムアウトを設定します。
通信タイムアウト時間の設定では，FullGCなどによる応答の遅延を考慮し，SFOサーバで発生した障害以外の原因でタイムアウトが発生しないように値を設定してください。
SFOサーバとの通信タイムアウトは，J2EEサーバがSFOサーバに障害が発生したと判断するために使用される時間です。設定したタイムアウト時間を超えると，J2EEサーバでは，SFOサーバは障害のため停止していると判断し，リトライを実行しません。
次の場合に，J2EEサーバがSFOサーバとの通信タイムアウトを検知して，SFOサーバに障害が発生したと判断します。

SFOサーバに障害が発生してSFOサーバとの通信が完了しなかった場合

FullGCなどでJ2EEサーバが高負荷状態となり，通信タイムアウトに設定した時間内にSFOサーバとの通信が完了しなかった場合

通信タイムアウトが発生してSFOサーバとの接続が一時的に切断された場合，再接続が発生します。

注意

通信タイムアウトが発生してSFOサーバとの接続が切断された場合の注意事項

SFOサーバに障害が発生して停止した場合，ビジネスメソッドの呼び出しができなくなります。
SFOサーバアプリケーションで用意しているコネクションの状態監視用のビジネスメソッドは，SFOサーバのヘルスチェックを実施するためにSFOサーバ監視スレッドによって呼び出されます。また，リクエスト実行時には，SFOサーバ上のグローバルセッション情報を操作するためのビジネスメソッドが呼び出されます。SFOサーバ監視スレッドは，J2EEサーバで作成されます。

SFOサーバとの接続が切断された場合は，SFOサーバがダウンした場合と同じ状態となります。切断中にJ2EEサーバがリクエストを受信した場合，そのリクエストのHTTPセッションに登録された書き換え可能グローバルセッション情報は削除されます。

HTTPセッションのセッションIDへのサーバIDの付加
HTTPセッションのセッションIDにサーバIDを付加する機能を有効にして，HTTPセッションのセッションIDに付加するサーバIDを設定します。

サーバIDのCookieの付加
HTTP Cookieによってグローバルセッションを制御する場合に，HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する機能を有効にして，付加するサーバIDのCookieの名称を設定します。

リクエストラインの最大サイズの設定
URL書き換えによってグローバルセッションを制御する場合に，リクエストラインの最大サイズを設定します。URL書き換えによってグローバルセッションを制御する場合，URLのパスパラメタには，HTTPセッションのセッションIDとグローバルセッションIDが含まれます。HTTPリクエストのリクエストラインのサイズには，上限があります。このため，あらかじめリクエストラインの最大サイズを算出して，それを基にリクエストラインの最大サイズを設定する必要があります。
なお，リクエストラインの最大サイズをJ2EEサーバに設定するのは，インプロセスHTTPサーバを使用している場合です。HTTP ServerまたはMicrosoft IISを使用している場合は，それぞれのWebサーバに設定します。
設定値の考え方および各Webサーバへの設定方法については，「6.7.5　リクエストラインの最大サイズの設定」を参照してください。

注意

J2EEサーバ間でのセッション情報の引き継ぎを行うために編集した，簡易構築定義ファイルのパラメタに不正な値が指定されていたり，必要なパラメタの指定が不足していたりした場合，J2EEサーバの起動時ではなく，セッション情報の引き継ぎ時にエラーが発生し，セッション情報の引き継ぎを行うWebアプリケーションを開始できません。

6.14.2　簡易構築定義ファイルでの定義

J2EEサーバの設定は，簡易構築定義ファイルで実施します。メモリセッションフェイルオーバ機能の定義は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）の<configuration>タグ内に指定します。

簡易構築定義ファイルおよびパラメタについては，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

簡易構築定義ファイルでのメモリセッションフェイルオーバ機能の定義について次の表に示します。

表6-25　簡易構築定義ファイルでのメモリセッションフェイルオーバ機能の定義

項目
指定するパラメタ
設定内容

グローバルセッション情報を格納するSFOサーバの設定
webserver.sfo.sfo_servers
HTTPセッションの情報の引き継ぎを行うJ2EEサーバのグローバルセッション情報を格納するSFOサーバの名称※1（セッションフェイルオーバ用フィルタのサーバ定義名）を指定します。

複数のSFOサーバにグローバルセッション情報を格納する場合
すべてのSFOサーバの名称（セッションフェイルオーバ用フィルタのサーバ定義名）を指定します。

SFOサーバに対して複数のセッションフェイルオーバ用フィルタのサーバ定義名を指定する場合
それぞれのSFOサーバに異なるセッションフェイルオーバ用フィルタのサーバ定義名を指定してください。複数のSFOサーバに同一のセッションフェイルオーバ用フィルタのサーバ定義名を指定することはできません。

複数のSFOサーバを指定する場合
一つ目に指定されたSFOサーバが，Webアプリケーションでの指定が省略された場合にデフォルトで使用するSFOサーバとなります。

webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.naming
webserver.sfo.sfo_serversパラメタに指定したSFOサーバで起動するCORBAネーミングサービスのIPアドレス（またはホスト名）およびポート番号を指定します。
複数のSFOサーバにグローバルセッション情報を格納する場合，それぞれのSFOサーバで起動するCORBAネーミングサービスのIPアドレス（またはホスト名）およびポート番号を指定します。

SFOサーバとの通信タイムアウトの設定
webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.connectionTimeout
J2EEサーバとSFOサーバとの通信タイムアウトを指定します。
複数のSFOサーバにグローバルセッション情報を格納する場合，それぞれのSFOサーバとの通信タイムアウトを指定します。

セッションIDへのサーバIDの付加
webserver.session.server_id.enabled
HTTPセッションのセッションIDにサーバIDを付加するかどうかを指定します。J2EEサーバ間でHTTPセッションの情報の引き継ぎを行う場合，「true」を指定します。

webserver.session.server_id.value※2
HTTPセッションのセッションIDに付加するサーバIDを指定します。
指定するサーバIDは，各J2EEサーバに対して一意な値としてください。HTTPセッションのセッションIDに設定されるサーバIDが，ほかのJ2EEサーバのサーバIDと重複した場合，SFOサーバとのネゴシエーションに失敗し，セッション情報の引き継ぎを行うWebアプリケーションは開始できません。

サーバIDのCookieの付加
（HTTP Cookieを使用する場合）※3
webserver.container.server_id.enabled
HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加するかどうかを指定します。同一セッションのリクエストを，同一のWebコンテナに転送する場合，「true」を指定します。

webserver.container.server_id.name
HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する場合に，Cookieの名称を指定します。
Cookieに設定するサーバIDは，サーブレットやJSPで設定するCookieの名称，およびWebコンテナが自動設定するCookieの名称「JSESSIONID」と重複しないように注意してください。

webserver.container.server_id.value※2
HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する場合に，Cookieの値を指定します。

リクエストラインの最大サイズの設定
（URL書き換えを使用する場合）※1
webserver.connector.inprocess_http.limit.max_request_line
リクエストラインの最大サイズを設定します。
なお，このパラメタはインプロセスHTTPサーバを使用している場合に設定するパラメタです。設定値の算出方法と，HTTP ServerまたはMicrosoft IISを使用している場合の設定個所については，「6.7.5　リクエストラインの最大サイズの設定」を参照してください。

注※1

SFOサーバの名称（セッションフェイルオーバ用フィルタのサーバ定義名）は，セッション情報の引き継ぎを行うJ2EEサーバとWebアプリケーション間でのSFOサーバの識別に使用する名称です。指定したセッションフェイルオーバ用フィルタのサーバ定義名にSFOサーバ（論理サーバ）を関連づけて利用します。ここで指定したセッションフェイルオーバ用フィルタのサーバ定義名は，セッション情報の引き継ぎを行うWebアプリケーションの設定で使用します。セッション情報の引き継ぎを行うWebアプリケーションの設定については，「6.12　DDでの定義」を参照してください。

注※2

webserver.session.server_id.valueおよびwebserver.container.server_id.valueのデフォルト値には，サーバ環境の情報が含まれます。この値はクライアントに送信されるため，サーバ環境の情報を含まない値を明示的に指定することをお勧めします。

注※3

新たに負荷分散機を導入して，Webコンテナの機能でCookieによるリクエストの振り分けをする場合，HTTPセッションを生成したリクエストのレスポンスにサーバIDのCookieを付加する機能を有効にして，付加するサーバIDのCookieの名称およびCookieの値を設定します。

既存のアプリケーションで負荷分散機用にCookieの情報を設定している場合などは設定不要です。

6.14.3　簡易構築定義ファイルのパラメタの設定要否

メモリセッションフェイルオーバ機能を使用する場合の簡易構築定義ファイルのパラメタの設定要否を次の表に示します。

表6-26　メモリセッションフェイルオーバ機能を使用する場合の簡易構築定義ファイルのパラメタの設定要否

簡易構築定義ファイルのパラメタ | パラメタの設定要否
webserver.sfo.sfo_servers | 必須
webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.naming | 必須
webserver.sfo.sfo_server.<セッションフェイルオーバ用フィルタのサーバ定義名>.connectionTimeout | 任意
webserver.session.server_id.enabled | 任意
webserver.session.server_id.value | 任意
webserver.container.server_id.enabled | 任意
webserver.container.server_id.name | 任意
webserver.container.server_id.value | 任意
webserver.connector.inprocess_http.limit.max_request_line | 任意

（凡例）

必須：必ず指定することを示す。省略した場合はエラーとなり，SFOサーバ用アプリケーションを開始できない。

任意：省略できることを示す。省略した場合はデフォルトの値が設定される。

6.14.4　定義内容の詳細（webserver.sfoから始まるパラメタ）

メモリセッションフェイルオーバ機能を使用する場合に指定するキーの詳細について次に示します。なお「省略値」とは，キーの指定がない場合に仮定される値です。

「VR」とは，キーが導入・変更されたアプリケーションサーバのバージョンです。

キー名称
内容
省略値
VR

webserver.sfo.negotiation.ignore_serverId
ネゴシエーションで，J2EEサーバに設定されたHttpSessionのセッションIDに付加するサーバIDが，すでに接続済みのJ2EEサーバの設定と一致した場合に，エラーとするかどうかを指定します。

trueを指定した場合：

エラーとします。

falseを指定した場合：

エラーとしません。

このパラメタは，HAモニタを使用したクラスタ環境だけで設定してください。それ以外の環境では設定しないでください。
false
－

webserver.sfo.check_size.mode
グローバルセッション情報のサイズ見積もり機能を有効にするかどうかを指定します。

onを指定した場合：

グローバルセッション情報のサイズ見積もり機能が有効になります。

offを指定した場合

グローバルセッション情報のサイズ見積もり機能が無効になります。

off
07-60

webserver.sfo.sfo_server.<SFOサーバ名>※1.connectionTimeout
J2EEサーバからSFOサーバに通信した際のタイムアウト時間を，1～3600の整数（単位：秒）で指定します。
30
06-50
07-00

webserver.sfo.sfo_server.<SFOサーバ名>※1.naming
<SFOサーバ名>が指すSFOサーバのインプロセスで起動したCORBAネーミングサービスのIPアドレスまたはホスト名，およびポート番号を指定します。
IPアドレスは10進表記で，ポート番号は1～65535の整数で指定します。区切り文字には半角コロン（:）を使用します。

指定形式：

<IPアドレス>:<ポート番号>

<ホスト名>:<ポート番号>

webserver.sfo.sfo_serversキーで指定した，すべてのSFOサーバについて設定が必要です。設定されていないSFOサーバが存在した場合，セッションフェイルオーバを使用するアプリケーションは開始できません。
簡易構築定義ファイルで指定できる値を次に示します。

IPv4アドレス:ポート番号

ホスト名:ポート番号

@myhost:ポート番号

なし
07-50

webserver.sfo.sfo_servers※2
J2EEサーバ上のWebアプリケーションが使用する，すべてのSFOサーバ名を指定します。1024文字までの文字列が指定できます。半角英数字（A～Z，a～z，0～9）またはアンダースコア（_）が使用できます。
SFOサーバを複数指定する場合は，半角コンマ（,）で区切ります。ただし，一つのSFOサーバ名に指定できる文字列長は32文字までです。このとき，一つ目に指定されたSFOサーバ名がデフォルトとなります。

指定形式：

<SFOサーバ名>[,<SFOサーバ名>]

同じSFOサーバ名を複数回指定することはできません。
セッションフェイルオーバ機能を使用しない場合，このプロパティは無効です。
なし
06-50
07-00

（凡例）

－：08-00より前のバージョンを示します。

注※1

webserver.sfo.sfo_serversキーで指定したSFOサーバ名。webserver.sfo.sfo_serversキーに指定されていないSFOサーバ名を指定した場合，そのキーは無効になります。

注※2

param-valueに値を複数指定する際は，コンマ「,」で区切って指定します。

（例）

<param-value>値1,値2,値3</param-value>

このパラメタは，usrconf.properties（J2EEサーバ用ユーザプロパティファイル）にも指定できます。

6.14.5　簡易構築定義ファイルの指定例

セッション情報の引き継ぎに関連する簡易構築定義ファイルの指定例を次に示します。

 :
<tier>
 <tier-type>combined-tier</tier-type>
 <configuration>
   <logical-server-type>j2ee-server</logical-server-type>
   <param>
     <param-name>webserver.container.server_id.enabled</param-name>
     <param-value>true</param-value>
   </param>
   <param>
     <param-name>webserver.sfo.sfo_servers</param-name>
     <param-value>sfo_server1,sfo_server2</param-value>
   </param>
   <param>
     <param-name>webserver.sfo.sfo_server.sfo_server1.naming</param-name>
     <param-value>host1:910</param-value>
   </param>
   <param>
     <param-name>webserver.sfo.sfo_server.sfo_server1.connectionTimeout</param-name>
     <param-value>5</param-value>
   </param>
   <param>
     <param-name>webserver.sfo.sfo_server.sfo_server2.naming</param-name>
     <param-value>host2:911</param-value>
   </param>
   <param>
     <param-name>webserver.sfo.sfo_server.sfo_server2.connectionTimeout</param-name>
     <param-value>10</param-value>
   </param>
     :
 </configuration>
   :
</tier>
<tier>
 <tier-type>sfo-tier</tier-type>
 <configuration>
   <logical-server-type>sfo-server</logical-server-type>
   <param>
     :
 </configuration>
 <configuration>
   <logical-server-type>performance-tracer</logical-server-type>
   <param>
     :
 </configuration>
</tier>
 :

この記述例で設定される内容は，次のとおりです。

SFOサーバとして，「sfo_server1」および「sfo_server2」の二つを使用します。

Webアプリケーションにグローバルセッション情報を格納するSFOサーバを指定していない場合，デフォルトで「sfo_server1」を使用します。

「sfo_server1」の稼働ホストは「host1」であり，使用するCORBAネーミングサービスのポート番号は「910」です。

「sfo_server1」との通信タイムアウトを「5秒」に設定し，通信時間が5秒を超えた場合は「sfo_server1」で障害が発生したと判断します。

「sfo_server2」の稼働ホストは「host2」であり，使用するCORBAネーミングサービスのポート番号は「911」です。

「sfo_server2」との通信タイムアウトを「10秒」に設定し，通信時間が10秒を超えた場合は「sfo_server2」で障害が発生したと判断します。

6.15　SFOサーバの設定

SFOサーバが使用するネーミングサービス，PRFデーモン，ログ，セキュリティなどの基本設定や，SFOサーバのJavaVMの起動オプションの設定を変更する場合に，必要に応じて実施してください。

注意

CTMを使用している場合，CTMを使用したリクエストのスケジューリングを無効にする必要があります。論理SFOサーバ（sfo-server）の<configuration>タグ内に，ejbserver.ctm.enabledで「true」が指定されている場合，「false」に変更してください。

＜この節の構成＞

6.15.1　簡易構築定義ファイルでの定義

6.15.2　SFOサーバの起動オプションの設定

6.15.1　簡易構築定義ファイルでの定義

SFOサーバの設定は，簡易構築定義ファイルで実施します。メモリセッションフェイルオーバ機能の定義は，簡易構築定義ファイルの論理SFOサーバ（sfo-server）の<configuration>タグ内に指定します。

簡易構築定義ファイルでのメモリセッションフェイルオーバ機能の定義について次の表に示します。なお，ここで説明していないパラメタは編集しないでください。

表6-27　簡易構築定義ファイルでのメモリセッションフェイルオーバ機能の定義

項目
指定するパラメタ
設定内容

CORBAネーミングサービス
ejbserver.naming.port
利用するCORBAネーミングサービスのポート番号を指定します。

EJBコンテナ
ejbserver.container.remove.scan.interval
Stateful Session Beanのタイムアウトやプールの状態を監視するスレッドの起動間隔を指定します。

Webサーバ

ejbserver.http.port

webserver.connector.http.permitted.hosts

webserver.connector.http.bind_host

簡易Webサーバのポート番号，簡易Webサーバへのアクセスを許可するホストや，簡易Webサーバで使用するホストを指定します。

webserver.connector.ajp13.port

webserver.connector.ajp13.bind_host

webserver.connector.ajp13.max_threads※1

Webサーバとの通信ポート番号や，Webサーバ連携で使用するホストを指定します。

PRFデーモン
ejbserver.server.prf.PRFID
利用するPRFデーモンを指定します。

リソース枯渇監視

ejbserver.watch.enabled

ejbserver.watch.memory.enabled

ejbserver.watch.memory.interval

ejbserver.watch.memory.threshold

ejbserver.watch.memory.writefile.enabled

ejbserver.watch.fileDescriptor.enabled※2

ejbserver.watch.fileDescriptor.interval※2

ejbserver.watch.fileDescriptor.threshold※2

ejbserver.watch.fileDescriptor.writefile.enabled※2

ejbserver.watch.thread.enabled

ejbserver.watch.thread.interval

ejbserver.watch.thread.threshold

ejbserver.watch.thread.writefile.enabled

ejbserver.watch.threaddump.enabled

ejbserver.watch.threaddump.interval

ejbserver.watch.threaddump.threshold

ejbserver.watch.threaddump.writefile.enabled

ejbserver.watch.defaultRequestQueue.enabled※3

ejbserver.watch.defaultRequestQueue.interval

ejbserver.watch.defaultRequestQueue.threshold

ejbserver.watch.defaultRequestQueue.writefile.enabled※3

リソース枯渇監視機能の使用の有無，リソースの監視間隔やしきい値を指定します。
リソース枯渇監視機能の設定については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「4.3.3　実行環境での設定」を参照してください。

SFOサーバのログ

ejbserver.logger.enabled.*

ejbserver.logger.channels.define.＜チャネル名＞※4.filenum

ejbserver.logger.channels.define.＜チャネル名＞※4.filesize

ejbserver.logger.systemlog.enabled

SFOサーバのログのファイル面数，ファイルサイズや，ログレベルを指定します。また，SFOサーバのログのイベントログ（UNIXの場合，syslog）への出力の有無を指定します。

スレッドダンプ出力
ejbserver.server.threaddump.filenum
J2EEサーバが障害を検知して自発的にスレッドダンプを出力する場合の
スレッドダンプのファイル数の上限を指定します。

TPBrokerのトレース

vbroker.orb.htc.comt.entryCount

vbroker.orb.htc.comt.fileCount

vbroker.orb.htc.tracePath

TPBrokerのトレースファイルの出力先，ファイル数や，エントリ数を指定します。

TPBrokerのオプション

vbroker.se.iiop_tp.host

vbroker.se.iiop_tp.scm.iiop_tp.listener.port

EJBコンテナの通信ポート，およびIPアドレスを固定する場合に，任意の値を指定します。

注※1

SFOサーバではWebアプリケーションでリクエストを処理することがないため，このパラメタに指定する値を小さくすることでSFOサーバが作成するスレッド数を減らすことができます。値に最小値「1」を設定することをお勧めします。

注※2

UNIXの場合に指定できるパラメタです。

注※3

SFOサーバではWebアプリケーションを実行しないため，HTTPリクエスト実行待ちキュー監視は不要です。値に「false」を設定して監視を無効にすることをお勧めします。

注※4

チャネル名には，種別ごとのチャネル名を指定します。

MessageLogFile，MaintenanceLogFile，ExceptionLogFile，ConsoleLogFile，EJBContainerLogFile，MemoryWatchLogFile，FileDescriptorWatchLogFile，ThreadWatchLogFile，RequestQueueWatchLogFile

簡易構築定義ファイルおよび指定するパラメタの詳細は，マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6　簡易構築定義ファイル」を参照してください。

6.15.2　SFOサーバの起動オプションの設定

SFOサーバでは，Webアプリケーションのグローバルセッション情報の冗長化を開始する前に，グローバルセッション情報を格納するために必要な領域を確保します。このとき確保したメモリは，Webアプリケーションのグローバルセッション情報の冗長化が終了するまで解放されないで，JavaVMのTenured領域に格納されます。

JavaVMでは，Tenured領域の使用状態や，New領域の最大値に対するTenured領域の空き容量などを基に，FullGCを発生させます。SFOサーバでは，FullGCの発生を防ぐために，Webアプリケーションのグローバルセッション情報の冗長化で使用するTenured領域メモリサイズや，SFOサーバが使用するTenured領域のメモリサイズなど，Tenured領域に格納されるオブジェクトのメモリサイズを基に，JavaVMのTenured領域，New領域のサイズをチューニングする必要があります。

JavaVMのTenured領域，New領域のサイズは，簡易構築定義ファイルの論理SFOサーバ（sfo-server）の<configuration>タグ内に，JavaVM起動パラメタで定義します。JavaVM起動パラメタの指定内容を次に示します。

<param-name>タグ

add.jvm.arg

<param-value>タグ

-Xmx（設定値）

-XX:NewRatio=（設定値）

注意

JavaVMの領域をチューニングする場合は，JavaVMのGCログを確認して，SFOサーバの運用でFullGCが発生しないことを確認してください。

Webアプリケーションのグローバルセッション情報の冗長化で使用するTenured領域のメモリサイズ，およびSFOサーバが使用するTenured領域のメモリサイズの見積もり式を次に示します。

Webアプリケーションのグローバルセッション情報の冗長化で使用するTenured領域のメモリサイズの見積もり式

A＝｛(B＋500)×C×1.2÷(1,024×1,024)｝＋D×5

（凡例）

A：Webアプリケーションのグローバルセッション情報の冗長化で使用するTenured領域のメモリサイズ（単位：メガバイト）

B：グローバルセッション情報の最大サイズ（単位：バイト）※1

C：HTTPセッション数の上限値※2

D：接続するJ2EEサーバの数

注※1

Webアプリケーションのフィルタ属性ファイルまたはDD（web.xml）のGSInfosLengthMaxパラメタに指定した値です。グローバルセッション情報の最大サイズの詳細については，「6.12.2(2)　グローバルセッション情報の最大サイズ（GSInfosLengthMax）」を参照してください。

注※2

WebアプリケーションのWAR属性ファイルの<http-session-max-number>タグに指定する値です。HTTPセッション数の上限値の詳細については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7.5　HttpSessionオブジェクト数の上限値の設定」を参照してください。

SFOサーバが使用するTenured領域のメモリサイズの見積もり式

SFOサーバが使用するTenured領域のメモリサイズ＝A＋50

（凡例）

A：各Webアプリケーションのグローバルセッション情報の冗長化で使用するTenured領域のメモリサイズの合計（単位：メガバイト）

6.16　Webアプリケーションの設定

メモリセッションフェイルオーバ機能を使用する場合，Webアプリケーションの設定が必要です。

なお，Webアプリケーションの設定は，cosminexus.xmlを含まないWebアプリケーションのプロパティを設定または変更する場合にだけ参照してください。

ポイント

セッション情報の引き継ぎを行うWebアプリケーションを含むJ2EEアプリケーションの開始後にWebアプリケーションの設定を変更する場合，J2EEアプリケーションを再開始する前に，SFOサーバに登録されたWebアプリケーションの設定情報を削除する必要があります。SFOサーバに登録されたWebアプリケーションの設定情報の削除方法については，「6.17　Webアプリケーションの設定情報の削除」を参照してください。

実行環境でのWebアプリケーションの設定は，サーバ管理コマンドおよび属性ファイルで実施します。メモリセッションフェイルオーバ機能の定義には，フィルタ属性ファイルおよびWAR属性ファイルを使用します。

フィルタ属性ファイルおよびWAR属性ファイルで指定するタグは，DDまたはcosminexus.xmlと対応しています。DD（web.xml）およびcosminexus.xmlでの定義については，「6.12　DDでの定義」および「6.13　cosminexus.xmlでの定義」を参照してください。

属性ファイルを編集してフィルタを組み込む場合，フィルタ属性ファイルおよびWAR属性ファイルに，Webアプリケーションにセッションフェイルオーバ用フィルタを組み込むための設定をします。属性ファイルの取得，編集した属性ファイルの設定の手順については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.9.1　アプリケーションサーバが提供するサーブレットフィルタ（built-inフィルタ）」を参照してください。

6.17　Webアプリケーションの設定情報の削除

セッション情報の引き継ぎを行うWebアプリケーションを含むJ2EEアプリケーションの開始時に，SFOサーバにWebアプリケーションの設定情報が登録されます。このため，J2EEアプリケーションの開始後にWebアプリケーションの設定を変更する場合，J2EEアプリケーションを再開始する前に，SFOサーバに登録されたWebアプリケーションの設定情報を削除する必要があります。

ここでは，Webアプリケーションの設定情報を削除するときの手順について説明します。

Webアプリケーションの設定情報の削除手順を次の図に示します。

図6-35　Webアプリケーションの設定情報の削除手順

図中の「構築・運用ガイド」はマニュアル「アプリケーションサーバ システム構築・運用ガイド」，「AP設定操作ガイド」はマニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」を示します。

図中の1.～5.について説明します。

設定を変更するWebアプリケーションを含むJ2EEアプリケーションをすべて停止します。
J2EEアプリケーションの停止方法については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「10.2.2　J2EEアプリケーションの停止」を参照してください。

SFOサーバが配置されているサービスユニットを停止します。
サービスユニット内のSFOサーバも停止されます。サービスユニットの停止には，Smart Composer機能のコマンドを使用します。サービスユニットの停止方法については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.34　システムを停止する（CUI利用時）」を参照してください。

Webアプリケーションの設定を変更します。
セッション情報の引き継ぎを行うWebアプリケーションの設定については，「6.12　DDでの定義」および「6.13　cosminexus.xmlでの定義」を参照してください。

参考

サービスユニット開始後にWebアプリケーションの設定変更をしたい場合は，「6.16　Webアプリケーションの設定」を参照してください。

手順2で停止したサービスユニットを開始します。
サービスユニット内のSFOサーバも開始されます。SFOサーバの再開始によって，SFOサーバに登録されているWebアプリケーションの設定情報は，すべて削除されます。サービスユニットの開始には，Smart Composer機能のコマンドを使用します。サービスユニットの開始方法については，マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.24　システムを起動する（CUI利用時）」を参照してください。

注意

SFOサーバを再開始すると，SFOサーバに冗長化されているグローバルセッション情報もすべて削除されるため注意が必要です。また，SFOサーバで複数のWebアプリケーションのグローバルセッション情報を冗長化している場合，すべてのWebアプリケーションの設定情報，およびグローバルセッション情報が削除されるため注意してください。

Webアプリケーションの設定変更が完了したら，J2EEアプリケーションを再開始します。
J2EEアプリケーションの開始方法については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「10.2.1　J2EEアプリケーションの開始」を参照してください。

7.　拡張機能の互換機能（そのほかの機能）

この章では，拡張機能の互換機能のうち，複数の構築済み実行環境の切り替え，テストモード，およびcjjsp2javaコマンドについて説明します。

＜この章の構成＞

7.1　この章の構成

7.2　複数の構築済み実行環境の切り替え

7.3　J2EEアプリケーションのテスト機能

7.4　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java）

7.1　この章の構成

この章では，拡張機能の互換機能のうち，次の機能について説明します。

複数の構築済み実行環境の切り替え

J2EEアプリケーションのテスト機能

JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java）

この章の構成を次の表に示します。

表7-1　拡張機能の互換機能（そのほかの機能）と参照先

タイトル | 参照先
複数の構築済み実行環境の切り替え | 7.2
J2EEアプリケーションのテスト機能 | 7.3
JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java） | 7.4

7.2　複数の構築済み実行環境の切り替え

アプリケーションサーバでは，1台のマシンに複数の構築済み実行環境を共存させ，それぞれの実行環境を切り替える機能を提供しています。構築済み実行環境の切り替えで使用できる機能には，退避機能，回復機能，削除機能，および退避環境一覧出力機能があります。構築済み実行環境の切り替えによって，同一製品のバージョンやパッチの違い，設定内容の違いなどによるシステムの動作を，1台のマシンで検証できます。なお，1台のマシンで同時に動作できる実行環境は一つです。

この節の構成を次の表に示します。

表7-2　この節の構成（複数の構築済み実行環境の切り替え）

分類 | タイトル | 参照先
解説 | 構築済み実行環境の切り替えの概要 | 7.2.1
構築済み実行環境の切り替えの流れ | 7.2.2
設定 | 構築済み実行環境を切り替えるための準備 | 7.2.3
構築済み実行環境の切り替え手順 | 7.2.4
運用 | 構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力）） | 7.2.5
構築済み実行環境の切り替えで出力するログの取得 | 7.2.6
構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合） | 7.2.7
注意事項 | 構築済み実行環境を切り替える場合の注意事項 | 7.2.8

注　「実装」について，この節での説明はありません。

注意

構築済み実行環境の切り替えは，UNIX環境の場合に使用できます。退避機能と回復機能は，同じOSの同じバージョンのマシン環境上で実行してください。切り替え対象となる実行環境を構築する製品は，Application Serverです。ただし，構成ソフトウェアのうち，Component Container - Redirectorは構築済み実行環境の切り替え対象外です。

＜この節の構成＞

7.2.1　構築済み実行環境の切り替えの概要

7.2.2　構築済み実行環境の切り替えの流れ

7.2.3　構築済み実行環境を切り替えるための準備

7.2.4　構築済み実行環境の切り替え手順

7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））

7.2.6　構築済み実行環境の切り替えで出力するログの取得

7.2.7　構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合）

7.2.8　構築済み実行環境を切り替える場合の注意事項

7.2.1　構築済み実行環境の切り替えの概要

ここでは，構築済み実行環境の切り替えの概要について説明します。

構築済み実行環境を切り替える場合，構築済みの実行環境ごとに退避環境を作成します。退避環境は，実行環境を圧縮して，稼働可能状態から退避状態（稼働できない状態）に遷移した環境です。複数の退避環境のうち，使用したい退避環境を稼働可能状態に回復して，実行環境を切り替えます。

複数の構築済み実行環境の切り替えの概要を次の図に示します。

図7-1　複数の構築済み実行環境の切り替えの概要

この図では，実行環境Aに対する退避環境Aと，実行環境Bに対する退避環境Bをそれぞれ作成して，実行環境を切り替えています。作成済みの退避環境は，一覧で出力したり，不要となった場合に削除したりできます。

次に，構築済み実行環境を切り替える場合の前提条件，切り替え時に使用する機能，および取得するログファイルについて説明します。

＜この項の構成＞

(1)　前提条件

(2)　構築済み実行環境の切り替えで使用する機能

(3)　構築済み実行環境の切り替え実行時に障害が発生した場合の対処

(1)　前提条件

切り替え対象となる実行環境を構築する製品は，Application Serverです。構築済み実行環境の切り替えは，UNIX環境の場合に使用できます。退避対象となる実行環境は，システムの構築が完了済みで，各サーバやサービスを起動していない状態（稼働可能状態）であることが前提です。

また，構築済み実行環境から退避環境を作成する場合に，実行環境はTAR形式またはCPIO形式に圧縮されます。このため，実行環境の切り替えは，TAR形式またはCPIO形式に対応している環境で実行する必要があります。

(2)　構築済み実行環境の切り替えで使用する機能

構築済み実行環境を切り替える場合，次の四つの機能を使用します。

退避機能
構築済み実行環境をTAR形式またはCPIO形式のファイルに圧縮して，退避環境を作成します。退避機能を実行しても，構築済み実行環境はそのまま残ります。退避環境は，複数作成でき，退避機能実行時に指定する識別子で管理できます。

回復機能
退避環境を回復します。回復機能を実行しても，回復元の退避環境はそのまま残ります。実行環境の回復完了後に，回復元の退避環境を削除したい場合は，削除機能を実行してください。回復機能実行前にはApplication Serverが提供するすべての製品はアンインストール済みである必要があります。

削除機能
退避環境を削除します。退避環境が不要となった場合に実施します。

退避環境一覧出力機能
現在退避している退避環境の一覧を出力します。
退避環境一覧出力機能では，次の項目を出力します。

退避環境の識別子

退避環境の格納先パス

退避環境を作成した日付と時刻

退避環境に退避した製品の形名，バージョン情報および製品名

これらの機能は，cosmienvコマンドに，機能に対応する引数を指定して実行します。cosmienvコマンドの詳細，および退避環境一覧の出力形式については，「7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））」を参照してください。

(3)　構築済み実行環境の切り替え実行時に障害が発生した場合の対処

構築済み実行環境を切り替える場合は，cosmienvコマンドを実行します。cosmienvコマンド実行時に障害が発生した場合は，メッセージと，ログファイルの内容を基に障害を解析してください。ログファイルは機能ごとに取得され，次の場所に格納されます。

構築済み実行環境の切り替えで取得するログファイルの格納場所

/opt/Cosminexus/env/log

機能ごとに出力されるログファイルを次の表に示します。

表7-3　機能ごとに出力されるログファイル

機能の種類 | ログファイル名
退避機能 | cosmienv_s[n].log
回復機能 | cosmienv_r[n].log
削除機能 | cosmienv_d[n].log

なお，退避環境一覧出力機能の場合，ログファイルは出力されません。

ログファイルの内容については，「7.2.7　構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合）」を参照してください。また，メッセージについては，マニュアル「アプリケーションサーバ メッセージ(構築／運用／開発用)」を参照してください。

7.2.2　構築済み実行環境の切り替えの流れ

ここでは，構築済み実行環境を切り替える場合の流れについて説明します。構築済み実行環境の切り替えの流れを次の図に示します。

図7-2　構築済み実行環境の切り替えの流れ

この図では，1台のマシンで，実行環境のバージョンアップを実施し，バージョンアップ後の実行環境で動作確認をしたあと，バージョンアップ前の実行環境に戻しています。この場合，退避機能を使用して，各バージョンの実行環境を退避しているので，動作確認中に障害や不具合が発生しても，再インストールや環境設定などの作業を実施しないで，退避した実行環境に回復できます。

退避機能を使用すると，次に示す実行環境を1台のマシンに共存できます。

製品のバージョンが異なる実行環境

製品のバージョンが同じで，設定が異なる実行環境

製品のバージョンが同じで，適用しているパッチが異なる実行環境

7.2.3　構築済み実行環境を切り替えるための準備

ここでは，構築済み実行環境を切り替えるために必要な準備について説明します。

準備として次の作業が必要です。

退避対象外のファイルの退避

ディスク容量の確認

＜この項の構成＞

(1)　退避対象外のファイルの退避

(2)　ディスク容量の確認

(1)　退避対象外のファイルの退避

構築済み実行環境を切り替える場合，cosmienvコマンドを使用して，構築済み実行環境から退避環境を作成します。cosmienvコマンドによって作成される退避環境には，ユーザ任意の定義ファイルや，ログファイル，プロパティの設定によって作成されたファイルなどは含まれません。このため，cosmienvコマンドを実行する前に，退避対象外のファイルのうち，アプリケーションサーバの動作に必要なファイルは，あらかじめ退避しておく必要があります。

なお，実行環境の回復時には，退避したファイルを回復した実行環境に戻す作業が必要になります。

(a)　退避作業が必要なファイル

退避対象外のファイルのうち，退避作業が必要なファイルと作業方法を次の表に示します。これらのファイルは，アプリケーションサーバの動作に影響があるため，必ず退避作業を実施してください。なお，実行環境の回復時には，退避したファイルを回復した実行環境の退避元フォルダに戻す作業が必要になります。

表7-4　退避作業が必要なファイルと作業方法

項番 | ファイルまたはディレクトリ名 | 作業方法 | 備考 | 構成ソフトウェア
1 | 簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）のwebserver.connector.inprocess_http.error_custom.<エラーページカスタマイズ定義名>.fileパラメタに指定しているファイル | 退避してください。 | エラーステータスコードに対応するファイルを送信する場合に，レスポンスボディとしてクライアントに返すファイル | Component Container
2 | 簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）のwebserver.connector.inprocess_http.redirect.<リダイレクト定義名>.fileで指定しているファイル | 退避してください。 | 特定のファイルをレスポンスとしてクライアントに返す場合にレスポンスボディとして使用するファイル | Component Container
3 | 展開ディレクトリ形式のアプリケーション | 退避してください。 | － | Component Container
4 | コンテナ拡張ライブラリ | 退避してください。 | － | Component Container
5 | アプリケーションサーバの構築・運用・アプリケーション開発で使用するファイルの形式や定義で，パスにデフォルト以外を設定しているディレクトリおよびファイル | 退避してください。 | － | Component Container
6 | Reliable Messagingの管理情報テーブル | 退避してください。 | DBMS上に作成したReliable Messagingの管理情報テーブル | Reliable Messaging
7 | Reliable MessagingのQueueConfigFileNameプロパティに指定しているファイル | プロパティを指定している場合は，退避してください。 | Reliable Messagingのキュー定義ファイル | Reliable Messaging
8 | Reliable MessagingのRMTRTransferControlDirプロパティに指定しているディレクトリ | プロパティを指定している場合は，退避してください。 | Reliable Messagingで使用するクライアント定義ファイルを格納したディレクトリ | Reliable Messaging
9 | Reliable MessagingのQueueMakeFileNameプロパティに指定しているファイル | プロパティを指定している場合は，退避してください。 | Reliable Messagingのキュー作成ファイル | Reliable Messaging
10 | Webサービスセキュリティの環境設定ファイル（cwsscfg.properties）のcwss.binding.KeyLocator.KeystoreDirプロパティに指定しているディレクトリ以下すべて | プロパティを指定している場合は，退避してください。 | 署名付与/検証で使用するキーストアファイルを格納するディレクトリ | Web Services - Security
11 | Webサービスセキュリティの環境設定ファイル（cwsscfg.properties）のcwss.binding.KeyLocator.CertificateDirプロパティに指定しているディレクトリ以下すべて | プロパティを指定している場合は，退避してください。 | 証明書検証で使用する証明書ファイルを格納するディレクトリ | Web Services - Security
12 | Webサービスセキュリティの環境設定ファイル（cwsscfg.properties）のcwss.binding.KeyLocator.SecretKeyDirプロパティに指定しているディレクトリ以下すべて | プロパティを指定している場合は，退避してください。 | 暗号化/復号化で使用する共通鍵ファイルを格納するディレクトリ | Web Services - Security
13 | 環境変数「VBROKER_ADM」またはTPBrokerのvbroker.orb.admDirプロパティに/opt/Cosminexus/TPB/adm以外を設定している場合に，環境変数「VBROKER_ADM」またはvbroker.orb.admDirプロパティに設定しているディレクトリ以下にあるagentaddr，localaddr，HVMGTEE_DEF，htc.props，htc.clienthandleraddr，およびHVIORB_DEF | 環境変数またはプロパティを指定している場合は，退避してください。 | ユーザ作成の定義ファイル | TPBroker
14 | 環境変数「OSAGENT_ADDR_FILE」またはvbroker.agent.addrFileプロパティに指定しているファイル | 環境変数またはプロパティを指定している場合は，退避してください。 | ユーザ作成の定義ファイル | TPBroker
15 | 環境変数「OSAGENT_LOCAL_FILE」，またはvbroker.agent.localFileプロパティに指定しているファイル | 環境変数またはプロパティを指定している場合は，退避してください。 | ユーザ作成の定義ファイル | TPBroker
16 | -ORBpropStorageオプション，またはvbroker.orb.propStorageプロパティで指定しているファイル | オプションまたはプロパティを指定している場合は，退避してください。 | ユーザ作成の定義ファイル | TPBroker
17 | httpsd.confで指定した各種設定ファイル（Includeディレクティブ，TypeConfigディレクティブ，SSLによる暗号化，認証の定義など）のうち，opt/hitachi/httpsd以外にあるファイルすべて | opt/hitachi/httpsd以外を指定している場合は，退避してください。 | － | HTTP Server
18 | httpsd.confで指定したコンテンツディレクトリのうち，opt/hitachi/httpsd以外にあるディレクトリすべて | opt/hitachi/httpsd以外を指定している場合は，退避してください。 | － | HTTP Server

(b)　退避作業が不要なファイル

退避対象外のファイルのうち，退避作業が不要なファイルを次の表に示します。これらのファイルは，アプリケーションサーバの動作に影響はありません。必要に応じて退避してください。なお，退避作業が不要なファイルの場合，実行環境の回復時に退避したファイルを戻す作業は不要です。

表7-5　退避作業が不要なファイル

項番
ファイルまたはディレクトリ名
説明
構成ソフトウェア

1
/opt/Cosminexus/XMLSEC/logs/*
Web Services - Securityに含まれるXML Security - Coreのログ
Web Services - Security

2
/opt/Cosminexus/env以下すべて
構築済み実行環境の切り替え機能のコマンド（cosmienvコマンド）の格納先ディレクトリ
－

3
<製品の作業ディレクトリ>/ejb/<サーバ名称>/logs以下すべて
/opt/Cosminexus/CC/server/public/ejb/<サーバ名称>/logs以下すべて
/opt/Cosminexus/CC/server/public/public_old/ejb/<サーバ名称>/logs以下すべて
J2EEサーバのログ出力先ディレクトリ※
Component Container

4
<製品の作業ディレクトリ>/ejb/<サーバ名称>/以下のcore*，およびjavacore*
/opt/Cosminexus/CC/server/public/ejb/<サーバ名称>/以下のcore*，およびjavacore*
/opt/Cosminexus/CC/server/public/public_old/ejb/<サーバ名称>/以下のcore*，およびjavacore*
J2EEサーバのcoreファイル，およびJavaCoreファイル※
Component Container

5
<製品の作業ディレクトリ>/ejb/<サーバ名称>/stats以下すべて
/opt/Cosminexus/CC/server/public/ejb/<サーバ名称>/stats以下すべて
/opt/Cosminexus/CC/server/public/public_old/ejb/<サーバ名称>/stats以下すべて
J2EEサーバとSFOサーバの稼働情報ファイルの格納先ディレクトリ※
Component Container

6
/opt/Cosminexus/CC/logs以下すべて
Component Containerのログ格納用ディレクトリ
Component Container

7
/opt/Cosminexus/CC/admin/logs以下すべて
サーバ管理コマンドのログ格納用ディレクトリ
Component Container

8
/opt/Cosminexus/CC/client/logs以下すべて
EJBクライアントアプリケーションのログ出力用ディレクトリ
Component Container

9
/opt/Cosminexus/CC/web/containers/<サーバ名称>/以下のcore*，およびjavacore*
Webコンテナサーバのcoreファイル，およびJavaCoreファイル
Component Container

10
/opt/Cosminexus/CC/web/containers/<サーバ名称>/logs以下すべて
Webコンテナサーバのログ出力先ディレクトリ
Component Container

11
/opt/Cosminexus/manager/log以下すべて
Component Containerの運用管理機能のログ出力先ディレクトリ
Component Container

12
/opt/Cosminexus/manager/tmp
Component Containerの運用管理機能の一時的なワークディレクトリ
Component Container

13
/opt/Cosminexus/manager/bin/以下のcore*，およびjavacore*
Component Containerの運用管理機能のcoreファイル，およびJavaCoreファイル
Component Container

14
/opt/Cosminexus/sinagent/log
サーバ通信エージェントのログ出力先ディレクトリ
Component Container

15
/opt/Cosminexus/CC/web/redirector/logsおよび/opt/Cosminexus/CC/web/redirector/servers/<論理Webサーバ名>/logs以下すべて
リダイレクタのメッセージログ出力先ディレクトリおよび保守用トレースログ出力先ディレクトリ
Component Container

16
<製品の作業ディレクトリ>/ejb/<サーバ名称>/otsstatus以下すべて
/opt/Cosminexus/CC/server/public/ejb/<サーバ名称>/otsstatus以下すべて
/opt/Cosminexus/CC/server/public/public_old/ejb/<サーバ名称>/otsstatus以下すべて
インプロセストランザクションサービスのステータスファイルの格納ディレクトリ※
Component Container

17
/var/spool/TPBrokerOTM以下すべて
ドメイン情報ファイル格納ディレクトリ
Component Transaction Monitor

18
CTMSPOOL環境変数で指定したディレクトリ以下すべて
CTMSPOOLディレクトリ
Component Transaction Monitor

19
PRFSPOOL環境変数で指定したディレクトリ以下すべて
PRFSPOOLディレクトリ
Performance Tracer

20
/opt/Cosminexus/RM/logs以下すべて
Reliable Messagingコマンドのログ出力先ディレクトリ
Reliable Messaging

21
/opt/Cosminexus/c4web/logs以下すべて
Component ContainerのSOAPアプリケーション開発支援機能のログ出力先ディレクトリ
Web Services - Security

22
/opt/Cosminexus/TPB/adm/hgtfifo/以下すべて
バーボースログ出力用一時ディレクトリ
TPBroker

23
/opt/Cosminexus/TPB/adm/impl_dir/以下すべて
インプリメンテーションリポジトリデータ作成ディレクトリ
TPBroker

24
/opt/Cosminexus/TPB/log/以下すべて
C++ORB機能トレース出力ディレクトリ
TPBroker

25
/opt/Cosminexus/TPB/logj/以下すべて
JavaORB機能トレース出力ディレクトリ
TPBroker

26
/opt/hitachi/httpsd/logs以下すべて
HTTP Serverのログ出力先ディレクトリ
HTTP Server

27
/opt/hitachi/httpsd/servers/<サーバ名称>/logs以下すべて
HTTP Serverのログ出力先ディレクトリ
HTTP Server

28
/opt/Cosminexus/wss/logs以下すべて
Web Services - Securityのログ出力先ディレクトリ
Web Services - Security

（凡例）－：Application Serverの製品が該当します。

注　表内のディレクトリの意味を次に示します。

<製品の作業ディレクトリ>
<製品の作業ディレクトリ>は，簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）のejb.public.directoryパラメタに設定されているディレクトリです。デフォルト値は，「/opt/Cosminexus/CC/server/public」です。

注※　次のディレクトリも含まれます。

<製品の作業ディレクトリ>を変更する前に使用したデフォルトの作業ディレクトリ

アップグレードインストール後に移行した際に作成されるデフォルトのバックアップディレクトリ

(2)　ディスク容量の確認

構築済み実行環境から退避環境を作成する場合，退避対象ファイルをすべてアーカイブしたファイルが，退避環境として作成されます。このため，実行するマシンに十分なディスク容量があるかを確認してください。退避環境に必要なディスク容量は，構築済みの実行環境の状態によって変わります。製品の新規インストール直後の状態の必要なディスク占有量についてはリリースノートをご確認ください。

注意

簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）のejbserver.distributedtx.ots.status.directory1パラメタ，またはejbserver.distributedtx.ots.status.directory2パラメタで指定したディレクトリは，相対パスで指定している場合は退避されます。この場合，ディスク容量は，ejbserver.distributedtx.ots.status.directory1パラメタ，またはejbserver.distributedtx.ots.status.directory2パラメタで指定しているディレクトリが使用するディスク容量を加えた値で見積もる必要があります。

7.2.4　構築済み実行環境の切り替え手順

ここでは，構築済み実行環境を切り替える場合の手順と，退避環境作成時に退避されるファイルについて説明します。

＜この項の構成＞

(1)　構築済み実行環境の切り替え手順の例

(2)　退避環境作成時に退避対象となるファイル

(1)　構築済み実行環境の切り替え手順の例

ここでは，1台のマシンに実行環境Aを構築し，実行環境Bにバージョンアップして動作検証したあと，実行環境Aに戻す手順を例に説明します。

各実行環境の設定内容の例を次の表に示します。

表7-6　各実行環境の設定内容の例

設定内容 | 実行環境A | 実行環境B
退避環境の格納先 | /home/CosmiBackup
退避対象外のファイルの格納先 | /home/CosmiBackup/apsvAfiles | /home/CosmiBackup/apsvBfiles
退避環境の識別子 | apsvA | apsvB

実行環境の切り替え手順を次に示します。

実行環境Aを構築します。
Application Serverをインストールして，環境設定を実施し，システムを構築します。
実行環境Aが稼働可能状態となります。

実行環境Aの退避対象外のファイルを任意の場所に格納します。
ここでは，「/home/CosmiBackup/apsvAfiles」に格納します。退避対象外のファイルについては，「7.2.3(1) 退避対象外のファイルの退避」を参照してください。

実行環境Aを退避するために必要なディスク容量を確認します。
製品ごとに必要なディスク容量については，「7.2.3(2) ディスク容量の確認」を参照してください。

cosmienvコマンドに引数-sを指定して，実行環境Aの退避環境を作成します。
コマンドの入力例を次に示します。
cosmienv -s -I apsvA -P /home/CosmiBackup
退避環境作成時に退避されるファイルについては，「7.2.4(2) 退避環境作成時に退避対象となるファイル」を参照してください。
cosmienvコマンドを実行しても，実行環境Aは稼働可能状態のまま残ります。

実行環境Bを構築します。
実行環境Aにアップグレードインストールと環境設定を実施します。
実行環境Bが稼働可能状態となり，実行環境Aは退避環境だけとなります。

実行環境Bの退避対象外のファイルを任意の場所に格納します。
ここでは，「/home/CosmiBackup/apsvBfiles」に格納します。退避対象外のファイルについては，「7.2.3(1) 退避対象外のファイルの退避」を参照してください。

実行環境Bを退避するために必要なディスク容量を確認します。
製品ごとに必要なディスク容量については，「7.2.3(2) ディスク容量の確認」を参照してください。

cosmienvコマンドに引数-sを指定して，実行環境Bの退避環境を作成します。
コマンドの入力例を次に示します。
cosmienv -s -I apsvB -P /home/CosmiBackup
退避環境作成時に退避されるファイルについては，「7.2.4(2) 退避環境作成時に退避対象となるファイル」を参照してください。
cosmienvコマンドを実行しても，実行環境Bは稼働可能状態のまま残ります。

実行環境Bで動作検証をします。

実行環境B（Application Server）をアンインストールします。

cosmienvコマンドに引数-rを指定して，実行環境Aに戻します。
コマンドの入力例を次に示します。
cosmienv -r -I apsvA
実行環境Aが稼働可能状態となり，実行環境Bは退避環境だけとなります。回復元の退避環境Aはそのまま残ります。

手順2.で退避したファイルを該当個所（退避元ディレクトリ）に格納します。
退避対象外のファイルを実行環境Aの退避元ディレクトリにそれぞれ格納します。

cosmienvコマンドの詳細については，「7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））」を参照してください。

(2)　退避環境作成時に退避対象となるファイル

退避環境作成時に退避対象となるファイルを次の表に示します。

表7-7　退避環境作成時に退避対象となるファイル

項番 | ファイルまたはディレクトリ名 | 説明 | 構成ソフトウェア
1 | /opt/Cosminexus/XMLSEC | Web Services - Securityに含まれるXML Security - Coreの製品，設定ファイルなど | Web Services - Security
2 | /opt/Cosminexus/.HTC_xxxx.inf | 製品情報ファイル | －
3 | /opt/Cosminexus/common以下すべて | 共通モジュール群 | －
4 | /opt/Cosminexus/CC | Component Containerのインストールディレクトリ | Component Container
5 | /opt/Cosminexus/CWC | Component ContainerのWebアプリケーション開発に利用する機能のインストールディレクトリ | Component Container
6 | /opt/Cosminexus/c4web | Component ContainerのSOAPアプリケーション開発支援機能，SOAP通信基盤のファイルがインストールされているディレクトリ | Component Container
7 | /opt/Cosminexus/manager | Component Containerの運用管理機能のインストールディレクトリ | Component Container
8 | /sbin/init.d/MngSvr | インストール時に作成されるComponent Containerの運用管理機能のrcスクリプトファイル（HP-UXの場合） | Component Container
9 | /sbin/init.d/AdminAgent | インストール時に作成されるComponent Containerの運用管理機能のrcスクリプトファイル（HP-UXの場合） | Component Container
10 | /etc/rc.d/init.d/MngSvr | インストール時に作成されるComponent Containerの運用管理機能のrcスクリプトファイル（Linuxの場合） | Component Container
11 | /etc/rc.d/init.d/AdminAgent | インストール時に作成されるComponent Containerの運用管理機能のrcスクリプトファイル（Linuxの場合） | Component Container
12 | /opt/Cosminexus/CTM/bin以下すべて | Component Transaction Monitorのロードモジュール | Component Transaction Monitor
13 | /opt/Cosminexus/CTM/lib以下すべて | Component Transaction Monitorのライブラリ | Component Transaction Monitor
14 | /opt/Cosminexus/CTM/.HTC_xxxx.inf | Component Transaction Monitorの製品情報ファイル | Component Transaction Monitor
15 | /opt/Cosminexus/PRF/bin以下すべて | Performance Tracerのロードモジュール | Performance Tracer
16 | /opt/Cosminexus/PRF/lib以下すべて | Performance Tracerのライブラリ | Performance Tracer
17 | /opt/Cosminexus/PRF/.HTC_xxxx.inf | Performance Tracerの製品情報ファイル | Performance Tracer
18 | /opt/Cosminexus/jaxp | XML Processorのインストールディレクトリ | XML Processor
19 | /opt/Cosminexus/jdk | Developer's Kit for Javaのインストールディレクトリ | Developer's Kit for Java
20 | /opt/Cosminexus/RM | Reliable Messagingのインストールディレクトリ | Reliable Messaging
21 | /opt/Cosminexus/TPB以下すべて | TPBroker インストールディレクトリ | TPBroker
22 | /opt/hitachi/httpsd | HTTP Serverのインストールディレクトリ | HTTP Server
23 | 簡易構築定義ファイルの論理J2EEサーバ（j2ee-server）のejb.public.directoryパラメタで指定するディレクトリパス | J2EEサーバの作業ディレクトリ | Component Container
24 | /opt/Cosminexus/wss | Web Services - Securityのインストールディレクトリ | Web Services - Security
25 | /opt/Cosminexus/sinagent | サーバ通信エージェントのインストールディレクトリ | Component Container
26 | /etc/rc.d/init.d/SINaviAgent | インストール時に作成されるサーバ通信エージェントのrcスクリプトファイル（Linuxの場合） | Component Container

（凡例）－：Application Serverの製品が該当します。

7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））

構築済み実行環境の切り替えでは，次のコマンドを使用します。

表7-8　構築済み実行環境の切り替えで使用するコマンド

コマンド名称 | 分類 | 概要
cosmienv | 構築済み実行環境の退避，回復，削除，一覧出力 | 実行環境の退避・回復を行います。

コマンドの格納先

構築済み実行環境の切り替えで使用するコマンドは，次のディレクトリに格納されています。

/opt/Cosminexus/env/bin/

以降にコマンドの文法を示します。

●形式

cosmienv <オプション> [-I<識別子>]
                     [-P<退避パス>]
                     [-f]

●機能

実行環境の退避・回復，退避環境の削除または一覧を表示します。

●引数

<オプション>

-s

構築済み実行環境を退避します。

-d

退避環境を削除します。

-r

退避環境を回復します。

-l

現在の退避環境の一覧を表示します。

-h

cosmienvコマンドのヘルプを表示します。

-I<識別子>

退避環境を識別するための識別子を指定します。

20文字までの半角英数字で指定します。

-s，-d，-rオプションを使用する場合には，識別子の指定は必須です。

-P<退避パス>

構築済み実行環境を退避するパス名をフルパスで指定します。

半角空白，全角空白，タブ文字を含むパス名は指定できません。

構築済み実行環境の退避先は <退避パス>/<識別子> となります。

-sオプションを使用する場合には，退避パスの指定は必須です。

-f

-rオプションを指定した場合に，退避環境を強制的に回復することを指定します。

-fオプションを指定した場合，Application Serverのインストール先にファイルが残っていても，退避環境の回復が実行されます。

-fオプションを指定しない場合，Application Serverのインストール先にファイルが残っていると，退避環境の回復は実行されません。

-rオプション以外のオプションと組み合わせて指定した場合，無効です。

●出力形式

退避環境の一覧表示

aa…aa bb…bb cccc/dd/ee ff:gg:hh ii…ii jj…jj kk…kk

aa…aa　退避機能実行時に指定した識別子

bb…bb　退避機能実行時に指定した退避パス

cccc　退避機能実行時の時刻（年）

dd　退避機能実行時の時刻（月）

ee　退避機能実行時の時刻（日）

ff　退避機能実行時の時刻（時）

gg　退避機能実行時の時刻（分）

hh　退避機能実行時の時刻（秒）

ii…ii　退避した製品の形名

jj…jj　退避した製品のVV-RR-SS

kk…kk　退避した製品名

●入力例・出力例

入力例

退避環境の一覧を表示します。

cosmienv -l

出力例

KEUC00001-I The cosmienv -l command will now start.
UCAPSE001 /home/CosmiBackup 2007/03/23 15:02:36 P-1M43-7K71 07-50 uCosminexus Application Server Enterprise
UCAPSS001 /home/CosmiBackup 2007/03/23 16:06:08 P-1M43-7D71 07-50 uCosminexus Application Server Standard
KEUC00002-I The cosmienv -l command ended successfully.

●戻り値

コマンドの戻り値を次の表に示します。

表7-9　cosmienvコマンドの戻り値一覧

戻り値
意味

0
正常終了しました。

128
異常終了しました。

129
構築済み実行環境の退避・回復の元情報が正しくありません。

130
構築済み実行環境の退避・回復の後処理で障害が発生しました。

131
構築済み実行環境の退避・回復のための情報が正しくありません。

133
ディスクのアクセスでエラーが発生しました。

135
ファイルのオープンでエラーが発生しました。

138
引数の指定に誤りがあります。

139
製品がサポートしていない機能を指定しています。

140
コマンド実行中です。

141
コマンドの実行環境が正しくありません。

142
コマンドの実行権限がありません。

143
製品の構成ソフトウェアで障害が発生しました。
構成ソフトウェア※の戻り値が付与されています。

注※　障害が発生した構成ソフトウェアについては，コマンドで出力されるログファイルで確認してください。

戻り値「143」で付与される構成ソフトウェア別の戻り値を次の表に示します。

表7-10　構成ソフトウェア別の戻り値一覧

構成ソフトウェア | 戻り値 | 意味
Component Container | 145 | HNTRLibのインストールに失敗しました。
146 | 退避に失敗しました。
147 | 異常終了しました。
Component Transaction Monitor | 129 | 退避・回復の元情報が正しくありません。
130 | 退避・回復の後処理でエラーが発生しました。
131 | 退避・回復のための情報が正しくありません。
138 | 引数の指定に誤りがあります。
142 | 実行権限がありません。
146 | 退避先ディレクトリがありません。
147 | そのほかのエラーが発生しました。
148 | ファイルおよびディレクトリの削除に失敗しました。
DABroker Library | 128 | 異常終了しました。
131 | 退避・回復の元情報が正しくありません。
138 | 引数の指定に誤りがあります。
144 | DABroker Libraryが実行中です。
Developer's Kit for Java | 131 | 構築済み実行環境の退避・回復のための情報が正しくありません。
138 | 引数の指定に誤りがあります。
144 | 回復に失敗しました。
145 | /opt/Cosminexus/jdkがシンボリックリンクファイルです。
146 | そのほかのエラーが発生しました。
Performance Tracer | 129 | 退避・回復の元情報が正しくありません。
130 | 退避・回復の後処理でエラーが発生しました。
131 | 退避・回復のための情報が正しくありません。
138 | 引数の指定に誤りがあります。
142 | 実行権限がありません。
145 | HCCLibのインストールに失敗しました。
146 | 退避先のディレクトリがありません。
147 | そのほかのエラーが発生しました。
148 | ファイルおよびディレクトリの削除に失敗しました。
Reliable Messaging | 129 | 退避・回復の元情報が正しくありません。
130 | 退避・回復の後処理でエラーが発生しました。
144 | HNTRLib2のインストールに失敗しました。
145 | 退避先のディレクトリがありません。
146 | そのほかのエラーが発生しました。
TPBroker | 129 | 退避・回復の元情報が正しくありません。
130 | 退避・回復の後処理でエラーが発生しました。
131 | 退避・回復のための情報が正しくありません。
133 | ディスクのアクセスでエラーが発生しました。
135 | ファイルのオープンでエラーが発生しました。
144 | HCCLibのインストールに失敗しました。
145 | HNTRLib2のインストールに失敗しました。
146 | 退避に失敗しました。
147 | PPインストーラ情報の取得・設定に失敗しました。
Web Services - Security | 129 | 退避・回復の元情報が正しくありません。
130 | 退避・回復の後処理でエラーが発生しました。
131 | 退避・回復のための情報が正しくありません。
138 | 引数の指定に誤りがあります。
146 | 退避に失敗しました。
147 | そのほかのエラーが発生しました。
148 | ファイルおよびディレクトリの削除に失敗しました。
XML Processor | 128 | 異常終了しました。
138 | 引数の指定に誤りがあります。
144 | 退避に失敗しました。
145 | HNTRLib2のインストールに失敗しました。
HTTP Server | 128 | 異常終了しました。
138 | 引数の指定に誤りがあります。
144 | 退避に失敗しました。

●注意事項

このコマンドはスーパーユーザで実行してください。

退避機能実行時は，アプリケーションサーバが提供するすべてのプログラムが停止中であることを確認してください。

回復機能実行時は，アプリケーションサーバが提供するすべての製品がアンインストール済みであることを確認してください。

すべての製品をアンインストールし，かつアプリケーションサーバのインストール先にファイルやディレクトリが残った状態で回復機能を実行したい場合は，-fオプションを指定してください。この場合，回復処理によってインストール先に残ったファイルが更新されることがあります。

退避機能で退避する範囲以外でアプリケーションサーバの動作に必要なものは，ユーザで退避してください。退避機能で退避する範囲およびユーザで退避が必要なファイルについては，「7.2.3(1) 退避対象外のファイルの退避」を参照してください。

7.2.6　構築済み実行環境の切り替えで出力するログの取得

構築済み実行環境をcosmienvコマンドで切り替えた場合に出力されるログファイルについて説明します。cosmienvコマンドで出力するログファイルは，コマンド実行時に指定する引数（機能）によって異なります。各ログファイルの出力先は「/opt/Cosminexus/env/log」です。ログファイルのファイルサイズは100キロバイト以内です。また，ファイル面数は2面です。コマンド実行時に指定する引数（機能）ごとのログファイルを次に示します。

引数に-sを指定した場合（退避機能の場合）
cosmienv_s[2].log

引数に-dを指定した場合（削除機能の場合）
cosmienv_d[2].log

引数に-rを指定した場合（回復機能の場合）
cosmienv_r[2].log

7.2.7　構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合）

構築済み実行環境をcosmienvコマンドで切り替えた場合に出力される，ログファイルの出力形式および出力項目について説明します。

cosmienvコマンドのログは，独自形式で出力されます。

cosmienvコマンド実行時に出力されるログファイルには，cosmienv_s[2].log，cosmienv_d[2].log，およびcosmienv_r[2].logがあります。これらのファイルの出力形式および出力項目はすべて同じです。

cosmienvコマンド実行時に出力されるログファイルの出力形式は次のとおりです。

YYYY/MM/DD HH:MM:SS 製品の形名 製品名 VVRRSS START
YYYY/MM/DD HH:MM:SS 構成ソフトウェアの形名 START 起動時のコマンドと引数
[YYYY/MM/DD HH:MM:SS 構成ソフトウェアの保守情報]
YYYY/MM/DD HH:MM:SS 構成ソフトウェアの形名 END 構成ソフトウェアの戻り値
：
YYYY/MM/DD HH:MM:SS 製品の形名 製品名 VVRRSS END cosmienvコマンドの戻り値

cosmienvコマンドのログの出力項目を次に示します。

表7-11　cosmienvコマンドのログの出力項目

項目名
説明

YYYY/MM/DD
cosmienvコマンドを実行した日付が出力されます。

HH:MM:SS
cosmienvコマンドを実行した時刻が出力されます。

製品の形名
退避，回復，または削除の対象とした実行環境の形名が出力されます。

製品名
退避，回復，または削除の対象とした実行環境の製品名が出力されます。

VVRRSS
退避，回復，または削除の対象とした実行環境の製品のバージョン情報が出力されます。

構成ソフトウェアの形名
退避，回復，または削除の対象とした実行環境の製品に含まれる構成ソフトウェアの形名が出力されます。
構成ソフトウェアの情報は，製品に含まれる構成ソフトウェアの数分出力されます。

起動時のコマンドと引数
内部処理（構成ソフトウェアの処理）を起動したコマンドと，引数が出力されます。

構成ソフトウェアの保守情報
内部処理（構成ソフトウェアの処理）実行時の保守情報が出力されます。

構成ソフトウェアの戻り値※
内部処理（構成ソフトウェアの処理）の実行結果が出力されます。

cosmienvコマンドの戻り値※
cosmienvコマンドの実行結果が出力されます。

注※　構成ソフトウェアおよびcosmienvコマンドの戻り値については，「7.2.5　構築済み実行環境の切り替えで使用するコマンド（cosmienv（構築済み実行環境の退避，回復，削除，一覧出力））」を参照してください。

退避機能を実行した場合の出力例を次に示します。この例では，退避機能実行時に，構成ソフトウェアの処理でディスク容量不足を検出しています。

2007/05/20 14:37:22 P-1M43-7K71 uCosminexus Application Server 07-50 START
2007/05/20 14:37:22 P-1M3Z-7151 START 2007/05/20 14:37:22 P-1M43-7K71 uCosminexus Application Server 07-50 START
2007/05/20 14:37:22 P-1M3Z-7151 START cosmippenv -s -P/home/CosmiBackup/UCAPSE001 -ZCosmiInside
2007/05/20 14:37:24 P-1M3Z-7151 END 0
2007/05/20 14:37:47 P-1M41-E171 START cosmippenv -s -P/home/CosmiBackup/UCAPSE001 -ZCosmiInside
2007/05/20 14:37:52 httpsd tar: tape write error: No space left on device
2007/05/20 14:37:53 P-1M41-E171 END 128
2007/05/20 14:37:54 P-1M43-7K71 uCosminexus Application Server 07-50 END 143

7.2.8　構築済み実行環境を切り替える場合の注意事項

ここでは，構築済み実行環境を切り替える場合の注意事項について説明します。

退避機能および回復機能を実行する場合，次に示すファイルは，退避および回復されません。

ユーザ任意の定義ファイル

ログファイル

プロパティの設定によって作成されるファイル

これらのファイルのうち，退避機能実行前に退避したり，回復機能実行後に回復したりする作業が必要なファイルがあります。手動で退避・回復が必要なファイルについては，「7.2.3(1)(a) 退避作業が必要なファイル」を参照してください。

CTMドメインマネジャが異常終了したあとに，構築済み実行環境の切り替えを実施すると，CTMドメインマネジャの起動時にKFCT70604-Eメッセージを出力して，起動に失敗する場合があります。CTMドメインマネジャの起動に失敗した場合は，次のどちらかを実施してください。

ctmdmstartコマンドに，-CTMAutoForceオプションまたは-CTMForceStart を指定して，CTMドメインマネジャを起動してください。

CTMSPOOL環境変数で指定したディレクトリ以下を削除してから，CTMドメインマネジャを起動してください。

HP-UX 11i V2（IPF）で構築済み実行環境を切り替える場合は，OSのパッチPHCO_31633がインストールされていないことを確認してください。

7.3　J2EEアプリケーションのテスト機能

J2EEアプリケーションのテスト機能には，J2EEアプリケーションの動作モードとして，本番稼働できるJ2EEアプリケーションの動作モードである通常モードと，テスト専用の動作モードであるテストモードの二つがあります。

この節では，テストモードについて説明します。

この節の構成を次の表に示します。

表7-12　この節の構成（J2EEアプリケーションのテスト機能）

分類 | タイトル | 参照先
解説 | テストモードとは | 7.3.1
テストモードで動作しているJ2EEアプリケーションに対する処理 | 7.3.2
テストモードで動作しているJ2EEアプリケーションに対してできる動作 | 7.3.3
テストモードで動作しているJ2EEアプリケーション情報の取得 | 7.3.4
運用 | テストモードでのJ2EEアプリケーションの動作確認（新規作成時） | 7.3.5
テストモードでのJ2EEアプリケーションの動作確認（入れ替え時） | 7.3.6
テストモードによるJ2EEアプリケーションの実行手順 | 7.3.7
アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え）） | 7.3.8
注意事項 | テストモードでのJ2EEアプリケーション呼び出し時の注意事項 | 7.3.9
テストモード使用時のそのほかの注意事項 | 7.3.10

注　「実装」，「設定」について，この節での説明はありません。

＜この節の構成＞

7.3.1　テストモードとは

7.3.2　テストモードで動作しているJ2EEアプリケーションに対する処理

7.3.3　テストモードで動作しているJ2EEアプリケーションに対してできる動作

7.3.4　テストモードで動作しているJ2EEアプリケーション情報の取得

7.3.5　テストモードでのJ2EEアプリケーションの動作確認（新規作成時）

7.3.6　テストモードでのJ2EEアプリケーションの動作確認（入れ替え時）

7.3.7　テストモードによるJ2EEアプリケーションの実行手順

7.3.8　アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え））

7.3.9　テストモードでのJ2EEアプリケーション呼び出し時の注意事項

7.3.10　テストモード使用時のそのほかの注意事項

7.3.1　テストモードとは

テストモードとは，J2EEアプリケーションをテスト用に動作させるための，専用の動作モードです。J2EEアプリケーションの新規開発時や，J2EEアプリケーションの入れ替え時など，J2EEアプリケーションを本番環境でテストするときに利用します。なお，テストモードの動作の対象となるのは，WebアプリケーションとEJBです。

テストモードには次のような特徴があります。

稼働中のJ2EEサーバ上にテスト用のJ2EEアプリケーションを配置して，テストを実施できます。
テストモードでJ2EEアプリケーションを動作させても，稼働中のJ2EEアプリケーションに影響を与えることはありません。このため，本番環境でJ2EEアプリケーションのテストを実施できます。

J2EEアプリケーションを容易に本番環境に移行できます。
テストモードで動作しているJ2EEアプリケーションは，テスト終了後，容易に本番運用に移行できます。移行のときには，DDなどの設定を変更する必要はありません。

＜この項の構成＞

(1)　テストモード使用の前提条件

(2)　J2EEアプリケーションの動作モードの変更

(3)　テストモードを使用するための設定

(4)　テストモードで動作中のアプリケーションに対してできる操作

(1)　テストモード使用の前提条件

テストモードでJ2EEアプリケーションを動作させるときの前提条件を次に示します。

同一J2EEサーバでは，同じ名称のJ2EEアプリケーション（表示名が同じJ2EEアプリケーション）は，通常モードとテストモードでそれぞれ一つだけ開始できます。

テストモードのJ2EEアプリケーションと，通常モードのJ2EEアプリケーション間で，相互呼び出しはできません。

Connector 1.5仕様に準拠したInboundリソースアダプタは，テストモードで使用できません。

CDIコンポーネントを含むJ2EEアプリケーションはテストモードで使用できません。テストモードでJ2EEアプリケーションを開始した場合，KDJE42396-Eが出力され，開始に失敗します。

(2)　J2EEアプリケーションの動作モードの変更

テストモードから通常モードへの変更，および通常モードからテストモードへの変更時には，J2EEアプリケーションをいったん停止する必要があります。モードの変更後，J2EEアプリケーションを開始してください。なお，モードを変更するとき，標準DDなどの設定変更は不要です。

(3)　テストモードを使用するための設定

テストモードにするかどうかは，J2EEアプリケーション単位で設定します。テストモードでのJ2EEアプリケーションの設定については，「7.3.5　テストモードでのJ2EEアプリケーションの動作確認（新規作成時）」を参照してください。

(4)　テストモードで動作中のアプリケーションに対してできる操作

テストモードで動作するJ2EEアプリケーションのカスタマイズおよび運用操作は，サーバ管理コマンドで実行します。テストモードでのJ2EEアプリケーションの運用については，「7.3.3　テストモードで動作しているJ2EEアプリケーションに対してできる動作」を参照してください。

7.3.2　テストモードで動作しているJ2EEアプリケーションに対する処理

ここでは，テストモードで実行しているJ2EEアプリケーションに対するクライアントからの処理について説明します。

＜この項の構成＞

(1)　処理の流れ

(2)　テストモードで動作しているWebアプリケーションの呼び出し

(3)　テストモードで動作しているEJBの呼び出し

(4)　J2EEアプリケーション外からテストモードで実行されているEnterprise Beanのルックアップをする場合の名称の指定方法

(5)　EJBクライアントアプリケーションからルックアップを使用してUserTransactionを取得する場合の検索文字列

(6)　ユーザ指定名前空間機能でテストモードを使用する場合の注意

(7)　CTMを使用する場合の注意事項

(8)　テストモードで起動されたJ2EEアプリケーションに対するそのほかの注意事項

(1)　処理の流れ

テストモードおよび通常モードで実行しているJ2EEアプリケーションがあるときのアプリケーションサーバの動作について，CTMを使用する場合と使用しない場合に分けて，図に示します。

図7-3　処理の流れ（CTMを使用する場合）

図7-4　処理の流れ

図について説明します。

クライアント

クライアントは，本番用とテスト用とで別に用意します。

J2EEアプリケーション

通常モードで動作中のJ2EEアプリケーションのほかに，テストモードでJ2EEアプリケーションをデプロイします。

名前空間

CTMを使用する場合，グローバルネーミングサービス，およびローカルネーミングサービスの名前空間は，本番用とテスト用で別に用意します。CTMを使用しない場合のネーミングサービスも同様に，本番用とテスト用を別に用意します。

クライアントから検索する名前空間を本番用とテスト用とで切り分けることで，EJBの呼び出しの切り替えをします。

CTMのスケジュールキュー（CTMを使用する場合だけ）

CTMのスケジュールキューは，本番用のJ2EEアプリケーションとテスト用のJ2EEアプリケーションで別に生成します。

DB Connectorおよびデータベース

J2EEアプリケーションがデータベースを使用する場合は，本番用に定義したDB Connectorを使用します。テスト用のクライアントやJ2EEアプリケーションから，テスト用のデータを生成することで，データベースでの確認をします。

参考

なお，テストモードのJ2EEアプリケーションに含まれるWebアプリケーションからWebサーバ上の静的コンテンツを利用する場合には，次のどちらかの方法で静的コンテンツにアクセスしてください。

WebアプリケーションからWebサーバ上の静的コンテンツに相対パスでアクセスする場合，あらかじめWebサーバ上のディレクトリ構成をテストモードのコンテキストルート名を含むディレクトリ構成として静的コンテンツを配置し，アクセスするようにしてください。

WebアプリケーションからWebサーバ上の静的コンテンツに絶対パスでアクセスする場合，あらかじめWebサーバ上で本番用のディレクトリ構成下に配置された静的コンテンツにアクセスするようにしてください。

(2)　テストモードで動作しているWebアプリケーションの呼び出し

テストモードで動作している場合，テスト用のクライアントからは，テスト用のURLでWebアプリケーションに接続します。

J2EEアプリケーションをテストモードで開始すると，コンテキストルートに「_test_」のプリフィックスが付いた，テスト用のコンテキストルートが生成されます。このコンテキストルートを含むURLが，テスト用のURLになります。例えば，コンテキストルートが「example」で，本番用のURLが「http://www.xxx.co.jp/example/index.jsp」である場合，テスト用のURLは「http://www.xxx.co.jp/_test_/example/index.jsp」となります。

注意

通常モードで，コンテキストルート名が「/_test_」で始まるWebアプリケーションを使用している場合，コンテキストルート名が「/_test_」で始まらないWebアプリケーションをテストモードで実行すると，コンテキストルート名が重複したり，またはコンテキストルート名のパスの構成要素が包含関係となったりする場合があります。

例えば，通常モードでコンテキストルート名が「/_test_/example」のWebアプリケーション1を使用している場合に，コンテキストルート名が「/example」のWebアプリケーション2は，テストモードではコンテキストルート名に「/_test_」が付加されるためコンテキストルート名がWebアプリケーション1と重複することになり実行できません。

また，コンテキストルート名が「/example/app」のWebアプリケーション3を，テストモードで実行すると，コンテキストルート名は「/_test_/example/app」となり，Webアプリケーション1とはコンテキストルート名のパスの構成要素が包含関係となります。この場合，テストモードで実行することはできますが，包含されるコンテキストルート名を持つWebアプリケーション1にアクセスできない場合があります。

(3)　テストモードで動作しているEJBの呼び出し

EJBでは，EJBホームオブジェクトおよびEJBローカルホームオブジェクトの取得には，JNDIを利用します。テストモードの場合，通常モード用とは別に名前空間を設けることでJNDIでモードの切り替えをして，EJBを呼び出します。

J2EEアプリケーションをテストモードで開始すると，EJB ホームオブジェクトおよびEJBローカルホームオブジェクトなどは，JNDIで自動変換してから，テストモード用の名前空間に登録および検索されます。クライアント側では，テスト用の名前空間を検索して，EJBホームオブジェクトやEJBローカルホームオブジェクトなどを取得します。JNDIがlookup呼び出し元クライアントのJ2EEアプリケーションのモードを判別して，検索名の変換を自動で実施するので，クライアント側では，テスト用の検索名を意識する必要はありません。

また，テストモードを通常モードに変更しても，lookupの呼び出し元のソースや，WAR，EARなどのDDの変更は必要ありません。

注意

EJBクライアントアプリケーションの場合は，通常モードとテストモードの区別がありません。このため，JNDIでは検索名の自動変換はされませんので，クライアント側ではテストモードの検索名を意識してJ2EEアプリケーションを作成する必要があります。

また，J2EEアプリケーションにEntity Bean（CMP2.0）を含む場合，J2EEアプリケーションのテスト機能を利用できません。

(4)　J2EEアプリケーション外からテストモードで実行されているEnterprise Beanのルックアップをする場合の名称の指定方法

J2EEアプリケーション外からテストモードで実行されているEnterprise Beanをルックアップする場合，テストモード用の名前空間を意識してルックアップする必要があります。通常モードで実行されるEnterprise Beanを「HITACHI_EJB/」で始まる文字列でルックアップする場合，同じEnterprise Beanがテストモードで実行されるときには「$HITACHI_TEST/HITACHI_EJB/」で始まる文字列でルックアップします。また，通常モードで実行されるEnterprise Beanを「MyCart」でルックアップする場合，同じEnterprise Beanがテストモードで実行されるときには，「$HITACHI_TEST/MyCart」でルックアップする必要があります。

(5)　EJBクライアントアプリケーションからルックアップを使用してUserTransactionを取得する場合の検索文字列

EJBクライアントアプリケーションからUserTransactionをルックアップする場合に，テストモードのJ2EEアプリケーションを呼び出すときには，次の検索文字列を指定します。

$HITACHI_TEST/HITACHI_EJB/SERVERS/<サーバ名称>/SERVICES/UserTransaction

(6)　ユーザ指定名前空間機能でテストモードを使用する場合の注意

テストモードを使用している場合，1.と2.で示すオブジェクトの別名に，同じ名前を付けることができます。

テストモードで動作しているJ2EEアプリケーションに含まれる，リモートインタフェースを持つEnterprise Bean

通常モードで動作しているJ2EEアプリケーションに含まれる，リモートインタフェースを持つEnterprise Bean，またはJ2EEリソース

ただし，これらのオブジェクトに重複した別名を付けている場合に，どちらかのJ2EEアプリケーションの動作モードを変更して開始しようとすると，エラーが発生します。

エラーが発生する例を次の図に示します。

図7-5　J2EEアプリケーションの動作モードを変更した場合にエラーが発生する例

動作モードを変更した場合にJ2EEアプリケーションを起動できなかったときは，重複しない別名に変更してください。

(7)　CTMを使用する場合の注意事項

CTMを使用する場合は，次の内容に注意してください。

(a)　スケジュールキューの名称

スケジュールキューの名称は，通常モードの場合，デフォルトでは，J2EEアプリケーションの名称になります。通常モードのキュー名称との衝突を回避するため，テストモードでは，スケジュールキューの名称を，通常モードのキュー名称の先頭に，プリフィックス「_test_」が付けられます。CTMで提供するコマンドを使用してテスト用のキューを操作する場合は，キュー名称を意識する必要があります。

なお，通常モードとテストモードのJ2EEアプリケーションの間では，CTMのスケジュールキューを共有することはできません。

(b)　EJBホームオブジェクトのJNDI登録名

J2EEアプリケーションをテストモードで開始するとき，ローカルネーミングサービスと同様にCTMが利用するグローバルネーミングサービスにもテスト用の名前空間を形成し，EJBホームオブジェクトを登録します。

(8)　テストモードで起動されたJ2EEアプリケーションに対するそのほかの注意事項

テストモードで起動されたアプリケーション内のオブジェクトはPortable Global JNDI名の登録はできません。

J2EEアプリケーションの名称を変更する場合，すでに変更後の名称と同じ名称のJ2EEアプリケーションがある場合，その名称には変更できません。大文字，小文字の違いによる区別はできません。ただし，通常モードまたはテストモードなどの運用時のモードが異なるときは，それぞれのモードで一つずつ同じ名称のJ2EEアプリケーションを登録できます。

7.3.3　テストモードで動作しているJ2EEアプリケーションに対してできる動作

ここでは，テストモードでのJ2EEアプリケーションの運用について説明します。

J2EEアプリケーションを新しく登録する場合や，すでに動作中のJ2EEアプリケーションを入れ替えるとき，本番運用を開始する前に，本番環境で問題なく動作することを確認したいことがあります。このような場合にテストモードを使用します。

テストモードでの運用は，J2EEアプリケーション単位で実行できます。テストモードから本番運用時のモード（通常モード）に変更する場合，J2EEアプリケーションの設定やカスタマイズをし直す必要はありません。また，一つの本番環境で表示名が同じJ2EEアプリケーションを，通常モードとテストモードで同時に開始できます。これによって，既存のJ2EEアプリケーションでクライアントにサービスを提供しながら，入れ替える予定のJ2EEアプリケーションの動作を同じ環境で確認できます。

テストモードで運用できるのは，J2EEアプリケーションだけです。J2EEアプリケーション内でDB Connectorなどのリソースアダプタを使用する場合は，本番時に使用するものを使用してください。また，Webサーバ上の静的コンテンツについても，本番用に構築したWebサーバ上に配置して使用してください。

J2EEアプリケーションのテストモードでの動作確認には，サーバ管理コマンドを使用します。

テストモードで動作中のJ2EEアプリケーションに対してできる操作を次に示します。

インポート

J2EEアプリケーションの開始

J2EEアプリケーションの停止（通常停止，および強制停止）

J2EEアプリケーションの削除

J2EEアプリケーションの設定の追加，変更，および削除

モード変更

リデプロイ

リロード

Management Serverでは，J2EEアプリケーションをテストモードでインポートして動作確認することはできません。ただし，次の場合には，Management Serverの運用管理コマンド（mngsvrutil）で，テストモードで動作しているJ2EEアプリケーションの稼働情報が参照できます。

Management Serverに登録されているJ2EEアプリケーションを，サーバ管理コマンドを使用してテストモードで動作させた場合

Management Serverに登録されているJ2EEアプリケーションと同名のJ2EEアプリケーションを，サーバ管理コマンドを使用してテストモードで動作させた場合

運用管理コマンド（mngsvrutil）では，テストモードで動作しているJ2EEアプリケーションを操作できません。テストモードでJ2EEアプリケーションを操作したい場合は，サーバ管理コマンドを実行してください。ただし，テストモードの場合も，運用管理コマンドで稼働情報を出力できます。

なお，J2EEアプリケーションのモードが，サーバ管理コマンドでテストモードに変更された場合，運用管理コマンドにサブコマンド「get」を指定して取得したJ2EEアプリケーションの稼働情報のfullyQualifiedNameに，「_TEST」という文字列が付いて出力されます。

また，次の表に示すコマンドは，テストモードで実行しているJ2EEアプリケーションに対して実行できます。cjlistthreadコマンド以外のコマンドでは，-testオプションを指定することで，コマンドの実行対象がJ2EEアプリケーションになります。cjlistthreadコマンドは，テストモードのJ2EEアプリケーションだけを対象にするためのオプションはありません。

テストモードのJ2EEアプリケーションに対して実行できるサーバ管理コマンドと実行時の形式を次の表に示します。各コマンドの詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「2.　J2EEサーバで使用するコマンド」を参照してください。

表7-13　テストモードのJ2EEアプリケーションに対して実行できるサーバ管理コマンドと実行時の形式

コマンド
テストモードでの動作
形式

cjclearpool
テストモードのJ2EEアプリケーションにに含まれる指定されたデータソース（JDBC）またはリソースアダプタのコネクションをクリアします。
リソースアダプタ（J2EEアプリケーションに含めて使用）の場合
cjclearpool [<サーバ名称>] [-nameserver <プロバイダURL>] -type connector [-mode {normal｜plan}] [-test] -name <アプリケーション名> -resname <リソースアダプタ表示名> [-resname <リソースアダプタ表示名> ...]

cjdeleteapp
テストモードのJ2EEアプリケーションを削除できます。
cjdeleteapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> [-name <J2EEアプリケーション名> ...]

cjdeletelibjar
ライブラリJARをテストモードのJ2EEアプリケーションから削除します。
cjdeletelibjar [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -f <ライブラリJAR名> [-f <ライブラリJAR名> ...]

cjgencmpsql
テストモードのJ2EEアプリケーションのCMP2.x Entity Bean用のSQL文を生成します。
cjgencmpsql [サーバ名称] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> [-resname <EJB-JARの表示名/Entity Beanの表示名>]

cjgetappprop
テストモードのJ2EEアプリケーションのアプリケーション属性，WAR属性およびEJB-JAR属性を取得できます。
アプリケーションの場合
cjgetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> [-encoding <エンコーディング名>] -c <属性ファイルパス>

EJB-JARファイル，WARファイル，またはRARファイルの場合
cjgetappprop [<サーバ名称>] [-nameserver <プロバイダURL>][-test] -name <J2EEアプリケーション名> -type {ejb|war|rar} -resname <リソース表示名>[/<下位リソース表示名>] [-encoding <エンコーディング名>] -c <属性ファイルパス>

すべての情報を取得する場合
cjgetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -type all [-encoding <エンコーディング名>] -c <属性ファイルパス>

cjgetstubsjar
テストモードのJ2EEアプリケーションからRMI-IIOPスタブおよびインタフェースを取得できます。
cjgetstubsjar [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -d <スタブおよびインタフェース格納先ディレクトリパス>

cjimportapp
J2EEアプリケーションをテストモードでインポートできます。インポートは，実行時情報を含む形式（ZIPファイル）または実行時情報を含まない形式（EARファイル）のどちらも実行できます。
アーカイブ形式のアプリケーションをインポートする場合
cjimportapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] [-nodelete] -f <EARファイルのパス> [-f <EARファイルのパス>...]

展開ディレクトリ形式のアプリケーションとしてインポートする場合（アプリケーションディレクトリ）
cjimportapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -a <アプリケーションディレクトリパス>

展開ディレクトリ形式のアプリケーションとしてインポートする場合（標準のアプリケーションファイル（拡張子.ear）またはアプリケーションサーバのアプリケーション実行環境情報ファイル（拡張子.zip））
cjimportapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] [-nodelete] -f <EARファイルのパス> -d <展開ディレクトリパス>

cjimportlibjar
テストモードのJ2EEアプリケーションにライブラリJARをインポートします。
cjimportlibjar [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -f <ライブラリJARファイルパス> [-f <ライブラリJARファイルパス> ...]

cjlistapp
J2EEサーバに含まれるすべてのJ2EEアプリケーションのうち，テストモードのJ2EEアプリケーションの一覧を表示できます。また，テストモードのJ2EEアプリケーションに含まれるWARファイルおよびEJB-JARファイルの一覧を表示できます。
アプリケーションに含まれるEJB-JARファイルまたはWARファイルの場合
cjlistapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -type {ejb|war} [-resname <表示名>]

アプリケーションに含まれるRARファイルの場合
cjlistapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -type rar [-spec | -resname <表示名> -outbound| -resname <表示名> -inbound| -resname <表示名> -listenertype <メッセージリスナのタイプ名>]

cjlistlibjar
テストモードのJ2EEアプリケーションに含まれるライブラリJARの一覧を標準出力に出力します。
cjlistlibjar [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名>

cjlistpool
テストモードのJ2EEアプリケーションに含まれるリソースアダプタのコネクションプールの状態を標準出力に出力します。
アプリケーションに含めて使用されるリソースアダプタを指定する場合
cjlistpool [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -resname <リソースアダプタの表示名> [-resname <リソースアダプタの表示名> ...]

cjlistthread
テストモードのJ2EEアプリケーションのスレッド一覧を表示できます。
cjlistthread [<サーバ名称>] [-nameserver <プロバイダURL>]

cjreloadapp
テストモードのJ2EEアプリケーションをリロードできます。
cjreloadapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> [-t <強制リロード開始までのタイムアウト時間>]

cjrenameapp※
テストモードのJ2EEアプリケーションの名称を変更します。
cjrenameapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -newname <変更後アプリケーション名>

cjreplaceapp
テストモードのJ2EEアプリケーションをリデプロイできます。
cjreplaceapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -f <ファイルパス> [-t <タイムアウト時間>] [-replaceDD]

cjsetappprop
テストモードのJ2EEアプリケーションのアプリケーション属性，WAR属性およびEJB-JAR属性を設定できます。
アプリケーションの場合
cjsetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -c <属性ファイルパス>

EJB-JARファイル，WARファイル，またはRARファイルの場合
cjsetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -type {ejb|war|rar} -resname <リソース表示名>[/<下位リソース表示名>] -c <属性ファイルパス>

すべての情報を設定する場合
cjsetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -type all -c <属性ファイルパス>

cjstartapp
J2EEアプリケーションをテストモードで開始できます。
cjstartapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> [-jspc]

cjstopapp
テストモードで開始したJ2EEアプリケーションを停止できます。
通常停止を行う場合
cjstopapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> [-t <タイムアウト時間>]

通常停止がタイムアウトしたあと，強制停止を手動で行う場合
cjstopapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -cancel

通常停止がタイムアウトしたあと，強制停止を自動で行う場合
cjstopapp [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <J2EEアプリケーション名> -t <タイムアウト時間> -force

cjstopthread
テストモードのJ2EEアプリケーションに対してメソッドキャンセルを実行できます。
cjstopthread [<サーバ名称>] [-nameserver <プロバイダURL>] -tid <スレッドID> [-tid <スレッドID> ...]

cjtestres
テストモードのJ2EEアプリケーションに含まれるJ2EEリソースアダプタ，メールおよびデータソースの接続テストをします。
アプリケーションに含めて使用するリソースアダプタの場合
cjtestres [<サーバ名称>] [-nameserver <プロバイダURL>] [-test] -name <アプリケーション名> -type rar -resname <表示名> [-resname <表示名> ...]

注※　テストモードと通常モードで，それぞれに一意のアプリケーション名称を登録できます。同一モードで同一アプリケーション名称が存在する場合は，エラーとなります。このとき，アプリケーション名の大文字・小文字は区別されません。

7.3.4　テストモードで動作しているJ2EEアプリケーション情報の取得

テストモードで動作しているJ2EEアプリケーションについて，Management Serverを使用すると統計情報の取得ができます。また，性能解析トレースを使用することで，J2EEアプリケーションのモードを確認できます。

＜この項の構成＞

(1)　統計情報の取得

(2)　性能解析トレースの利用によるJ2EEアプリケーションの動作モードの確認

(1)　統計情報の取得

通常モードのJ2EEアプリケーションと同様に，テストモードのJ2EEアプリケーションでも，統計情報を取得できます。統計情報の取得には，Management Serverを使用します。

注意

テストモードで動作しているJ2EEアプリケーションの場合，Management Serverは統計情報の取得にだけ利用できます。Management Serverを使用して，テストモードで動作するJ2EEアプリケーションに対して操作することはできません。

(2)　性能解析トレースの利用によるJ2EEアプリケーションの動作モードの確認

テストモードのJ2EEアプリケーションの呼び出しと，通常モードのJ2EEアプリケーションの相互呼び出しはできません。性能解析トレースを使用すると，クライアントからのリクエストがテストモードのJ2EEアプリケーションの呼び出しか，通常モードのJ2EEアプリケーションの呼び出しかを判断できるので，テストモードと通常モードのJ2EEアプリケーションを呼び出していないかどうか，確認できます。

Webアプリケーション呼び出し時とEJB呼び出し時のモードの判別方法について説明します。なお，トレース取得ポイントの詳細と取得情報については，マニュアル「アプリケーションサーバ 機能解説 保守／移行編」の「8.　性能解析トレースのトレース取得ポイントとPRFトレース取得レベル」を参照してください。

(a)　Webアプリケーション呼び出し時のモードの判別

Webアプリケーション呼び出しでモードの判別をするときの，トレース取得ポイントとモードの判別方法について次に示します。

トレース取得ポイント

Webコンテナでのリクエスト取得・リクエストヘッダ解析完了時点

リクエスト処理完了時点

モードの判別方法

上記のトレース取得ポイントで取得された出力情報で，オペレーション名に出力されるURLのコンテキストルートに「_test_」が含まれる場合は，テストモードとなります。

(b)　EJB呼び出し時のモードの判別

EJB呼び出しでモードの判別をするときの，トレース取得ポイントとモードの判別方法について次に示します。

トレース取得ポイント

JNDIでの検索処理開始時点
EJB呼び出しの切り替えはJNDIで実施しているため，JNDIでの検索処理開始時の情報を取得します。

モードの判別方法

上記のトレース取得ポイントで取得された出力情報で，オペレーション名に出力される検索文字列に「$HITACHI_TEST」が含まれる場合は，テストモードとなります。

7.3.5　テストモードでのJ2EEアプリケーションの動作確認（新規作成時）

ここでは，新規作成したJ2EEアプリケーションをテストモードで実行して問題なく動作することを確認してから，J2EEアプリケーションの動作モードを通常モードに切り替えて，本番運用を開始する場合の操作について説明します。すでに動作中のJ2EEアプリケーションを入れ替える場合には，動作中のJ2EEアプリケーションの停止や退避などの操作が必要になります。J2EEアプリケーションの入れ替えと保守については，マニュアル「アプリケーションサーバ 機能解説 運用／監視／連携編」の「5.6.3　J2EEアプリケーションの入れ替えと保守」を参照してください。

なお，Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，あらかじめ次の作業が必要です。

リダイレクタの設定（URLのマッピング）
通常モードのコンテキストルートを含むURLのマッピングに加えて，テストモードのコンテキストルートを含むURLのマッピングを設定してください。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが，コンテキストルートとして使用されます。例えば，通常モードのコンテキストルートが「/jsptobean」の場合，テストモードのコンテキストルートは「/_test_/jsptobean」になります。
URLのマッピングについては，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.3　URLパターンでのリクエストの振り分け」を参照してください。

Webサーバの再起動
Webサーバを再起動して，リダイレクタの設定を有効にしてください。

ここでは，上記の作業が済んでいることを前提に，テストモードでのJ2EEアプリケーションの設定について説明します。

テストモードでのJ2EEアプリケーションの設定の流れを次の図に示します。

図7-6　テストモードでのJ2EEアプリケーションの設定の流れ

図中の1.～6.について説明します。

サーバ管理コマンドを使用して，J2EEアプリケーションをテストモードでインポートします。
J2EEアプリケーションのインポートには，cjimportappコマンドで-testを指定します。cjimportappコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjimportapp（J2EEアプリケーションのインポート）」を参照してください。

必要に応じて，サーバ管理コマンドを使用して，J2EEアプリケーションのプロパティを定義します。
J2EEアプリケーションのプロパティの定義には，cjgetapppropコマンドおよびcjsetapppropコマンドで-testを指定します。cjgetappprop -testで各属性ファイルを取得し，ファイル編集後に，cjsetappprop -testで編集内容を反映させます。
J2EEアプリケーションのプロパティの設定内容については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「9.1　J2EEアプリケーションのプロパティ設定の概要」を参照してください。
cjgetapppropコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjgetappprop（アプリケーションの属性の取得）」を，cjsetapppropコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjsetappprop（アプリケーションの属性設定）」を参照してください。
各属性ファイルについては，マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」の「3.　J2EEアプリケーションの設定で使用する属性ファイル」を参照してください。

サーバ管理コマンドを使用して，J2EEアプリケーションをテストモードで開始します。
cjstartappコマンドで-testを指定して，J2EEアプリケーションをテストモードで運用します。cjstartappコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjstartapp（J2EEアプリケーションの開始）」を参照してください。

テストを実施します。
テストモード用に設定した特定のクライアントから適宜操作を実行し，テストを実施して問題ないことが確認できたら，手順5.に進みます。
テスト結果に問題があった場合は，J2EEアプリケーションを修正して，手順1.からもう一度実行してください。なお，同じ名称のJ2EEアプリケーションは同じモードで登録できません。このため，テストが失敗したテストモードのJ2EEアプリケーションは，cjdeleteappコマンドで-testを指定して削除してください。cjdeleteappコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjdeleteapp（J2EEアプリケーションの削除）」を参照してください。

ポイント

テストモードで動作しているJ2EEアプリケーションは，テストモード用に設定した特定のクライアントからだけ利用できます。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが，コンテキストルートとして使用されます。例えば，コンテキストルートが「/jsptobean」で，本番運用でのURLが「http://www.xxx.co.jp/jsptobean/account.jsp」の場合，テストモードでのURLは，「http://www.xxx.co.jp/_test_/jsptobean/account.jsp」になります。テスト用のクライアントからはこのURLを使用してJ2EEアプリケーションに対して操作を実行してください。

EJBを含むJ2EEアプリケーションをテストモードで運用する場合，EJBはテスト用の名前空間に登録されます。EJBクライアントアプリケーションからEJBを呼び出す場合には，通常モード用の名前空間のルートコンテキスト名で始まる検索文字列「HITACHI_EJB/…」ではなく，テストモード用の名前空間のルートコンテキスト名で始まる検索文字列「$HITACHI_TEST/…」を指定してlookupを実行してください。

サーバ管理コマンドを使用して，テストモードで運用しているJ2EEアプリケーションを停止します。
cjstopappコマンドで-testを指定して，J2EEアプリケーションを停止します。cjstopappコマンドについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjstopapp（J2EEアプリケーションの停止）」を参照してください。

サーバ管理コマンドを使用して，テストモードで運用していたJ2EEアプリケーションの動作モードを通常モードに変更します。
cjchmodappコマンドで-test -mode normalを指定して，J2EEアプリケーションの動作モードを通常モードに変更します。cjchmodappコマンドについては，「7.3.8　アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え））」を参照してください。

サーバ管理コマンドでの操作については，マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.　サーバ管理コマンドの基本操作」を参照してください。また，コマンドや属性ファイルについては，マニュアル「アプリケーションサーバ リファレンス コマンド編」，またはマニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション／リソース定義)」を参照してください。

7.3.6　テストモードでのJ2EEアプリケーションの動作確認（入れ替え時）

J2EEアプリケーションを入れ替えるときに，J2EEアプリケーションをテストモードで開始する手順の例を示します。なお，この手順では，入れ替え元のJ2EEアプリケーションは，J2EEサーバ上で開始されていることを前提としています。

準備

Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，あらかじめ次の作業が必要です。

リダイレクタの設定（URLのマッピング）
通常モードのコンテキストルートを含むURLのマッピングに加えて，テストモードのコンテキストルートを含むURLのマッピングを設定してください。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが，コンテキストルートとして使用されます。例えば，通常モードのコンテキストルートが「/jsptobean」の場合，テストモードのコンテキストルートは「/_test_/jsptobean」になります。
URLパターンでのリクエスト振り分けの設定については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「4.3　URLパターンでのリクエストの振り分け」を参照してください。

Webサーバの再起動
Webサーバを再起動して，リダイレクタの設定を有効にしてください。

手順

J2EEアプリケーションをテストモードでインポートします。
J2EEアプリケーションのインポートには，サーバ管理コマンド（cjimportapp）を使用します。
実行形式と実行例を次に示します。
実行形式

cjimportapp <J2EEサーバ名> -test -f <EARファイルのパス>

実行例
cjimportapp MyServer -test -f App1.ear

インポートしたJ2EEアプリケーションのプロパティ設定とカスタマイズを実行します。
サーバ管理コマンド（cjgetapppropおよびcjsetappprop）を使用して実行します。それぞれのコマンドには-testオプションを指定して，テストモードで実行します。
cjgetapppropコマンドの実行形式と実行例を次に示します。
実行形式

cjgetappprop <J2EEサーバ名> -test -name <J2EEアプリケーション名> -type all -c <アプリケーション統合属性ファイルの出力先パス>

実行例
cjgetappprop MyServer -test -name App1 -type all -c App1Prop.xml

属性ファイルはテキストエディタなどで編集します。
cjsetapppropコマンドの実行形式と実行例を次に示します。
実行形式

cjsetappprop <J2EEサーバ名> -test -name <J2EEアプリケーション名> -type all -c <編集したアプリケーション統合属性ファイルのパス>

実行例
cjsetappprop MyServer -test -name App1 -type all -c App1Prop.xml

J2EEアプリケーションをテストモードで開始します。
cjstartappコマンドの実行形式と実行例を次に示します。
実行形式

cjstartapp <J2EEサーバ名> -test -name <J2EEアプリケーション名>

実行例
cjstartapp MyServer -test -name App1

テストを実施します。
テスト用のクライアントから適宜操作を実行して，テストします。問題ないことが確認できたら，手順5.に進みます。
テスト結果に問題があった場合は，J2EEアプリケーションを修正して，手順1.からもう一度実行してください。なお，同じ名称のJ2EEアプリケーションは同じモードで登録できません。このため，テストが失敗したテストモードのJ2EEアプリケーションは削除してください。テストモードのJ2EEアプリケーションの削除は，サーバ管理コマンド（cjdeleteapp）に-testオプションを付けた形式で実行してください。

ポイント

テストモードで動作しているJ2EEアプリケーションは，テストモード用に設定した特定のクライアントからだけ利用できます。Webアプリケーションを含むJ2EEアプリケーションをテストモードで運用する場合，Webアプリケーションのコンテキストルートにプリフィックス「_test_」を付けたものが，コンテキストルートとして使用されます。例えば，コンテキストルートが「/jsptobean」で，本番運用でのURLが「http://www.xxx.co.jp/jsptobean/account.jsp」の場合，テストモードでのURLは，「http://www.xxx.co.jp/_test_/jsptobean/account.jsp」になります。テスト用のクライアントからはこのURLを使用してJ2EEアプリケーションに対して操作を実行してください。

EJBを含むJ2EEアプリケーションをテストモードで運用する場合，EJBはテスト用の名前空間に登録されます。EJBクライアントアプリケーションからEJBを呼び出す場合には，通常モード用の名前空間のルートコンテキスト名で始まる検索文字列「HITACHI_EJB/…」ではなく，テストモード用の名前空間のルートコンテキスト名で始まる検索文字列「$HITACHI_TEST/…」を指定してlookupを実行してください。

テストモードで運用しているJ2EEアプリケーションを停止します。
実行形式

cjstopapp <J2EEサーバ名> -test -name <J2EEアプリケーション名>

実行例
cjstopapp MyServer -test -name App1

通常モードで運用しているJ2EEアプリケーションを停止します。
なお，J2EEアプリケーションを入れ替えではなく新規にインポートした場合，この操作は不要です。
実行形式

cjstopapp <J2EEサーバ名> -name <J2EEアプリケーション名>

実行例
cjstopapp MyServer -name App1

通常モードで運用していたJ2EEアプリケーションの名称を変更します。
なお，J2EEアプリケーションを入れ替えではなく新規にインポートした場合，この操作は不要です。
また，この操作は，インポートしたファイルの世代を管理したい場合などに，必要に応じて実行してください。例えば，「App1」というJ2EEアプリケーションの場合，「App1_bak」などに変更します。
実行形式

cjrenameapp <J2EEサーバ名> -name <変更前のJ2EEアプリケーション名> -newname <変更後のJ2EEアプリケーション名>

実行例
cjrenameapp MyServer -name App1 -newname App1_bak

テストモードで運用していたJ2EEアプリケーションのモードを通常モードに変更します。
実行形式

cjchmodapp <J2EEサーバ名> -test -name <テストモードで動作を確認したJ2EEアプリケーション名> -mode normal

実行例
cjchmodapp MyServer -test -name App1 -mode normal

手順8.でモードを変更したJ2EEアプリケーションを開始します。
実行形式

cjstartapp <J2EEサーバ名> -name <J2EEアプリケーション名>

実行例
cjstartapp MyServer -name App1

7.3.7　テストモードによるJ2EEアプリケーションの実行手順

テストモードによるJ2EEアプリケーションの実行は，アーカイブ形式，展開ディレクトリ形式のどちらのアプリケーションでも実行できます。

テストモードでJ2EEアプリケーションを実行することで，J2EEアプリケーションを本番環境で問題なく実行できるかを確認します。

次の二つの場合について説明します。

新規作成したJ2EEアプリケーションをテストモードで実行します。

J2EEアプリケーションを入れ替える場合にテストモードを使用します。

＜この項の構成＞

(1)　新規作成したJ2EEアプリケーションをテストモードで実行する

(2)　J2EEアプリケーションを入れ替える場合にテストモードを使用する

(1)　新規作成したJ2EEアプリケーションをテストモードで実行する

新規作成したJ2EEアプリケーションをテストモードで実行します。また，本番環境で問題なく実行できることを確認してから通常モードに切り替えます。

J2EEアプリケーションをテストモードでインポートします。
J2EEアプリケーションをテストモードでインポートするには，-testオプションを指定したcjimportappコマンドを実行します。

J2EEアプリケーションをテストモードで開始します。
J2EEアプリケーションをテストモードで開始するには，-testオプションを指定したcjstartappコマンドを実行します。

テストを実施します。
実際にJ2EEアプリケーションを操作してテストします。問題がないことを確認したら次の手順に進みます。
テスト結果に問題があった場合は，J2EEアプリケーションを修正して，手順1.からもう一度実行してください。なお，同じ名称のJ2EEアプリケーションは同じモードで登録できません。このため，テストが失敗したテストモードのJ2EEアプリケーションは削除してください。テストモードのJ2EEアプリケーションを削除するには，-testオプションを指定したcjdeleteappコマンドを実行します。

テストモードで実行しているJ2EEアプリケーションを停止します。
テストモードで実行中のJ2EEアプリケーションを停止するには，-testオプションを指定したcjstopappコマンドを実行します。

次に示すコマンドを実行して，J2EEアプリケーションのモードを，テストモードから通常モードへ切り替えます。

実行形式

cjchmodapp ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -test -name ＜アプリケーション名＞ -mode normal

実行例

cjchmodapp MyServer -test -name App1 -mode normal

cjchmodappコマンドの詳細については，「7.3.8　アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え））」を参照してください。

テストモードから通常モードへ切り替えたJ2EEアプリケーションを開始します。

(2)　J2EEアプリケーションを入れ替える場合にテストモードを使用する

J2EEアプリケーションを入れ替える前に，入れ替えるJ2EEアプリケーションをテストモードで実行します。また，本番環境で問題なく実行できることを確認してから，既存のJ2EEアプリケーションと入れ替えます。

注意

J2EEサーバ内で同じアプリケーションディレクトリを持つ複数のJ2EEアプリケーションは共存できません。展開ディレクトリ形式のアプリケーションの場合はテストモードのアプリケーションと通常モードのアプリケーションでアプリケーションディレクトリを分けてください。

J2EEアプリケーションをテストモードでインポートします。
J2EEアプリケーションをテストモードでインポートするには，-testオプションを指定したcjimportappコマンドを実行します。

J2EEアプリケーションをテストモードで開始します。
J2EEアプリケーションをテストモードで開始するには，-testオプションを指定したcjstartappコマンドを実行します。

テストを実施します。
実際にアプリケーションを操作してテストします。問題がないことを確認したら次の手順に進みます。
テスト結果に問題があった場合は，J2EEアプリケーションを修正して，手順1.からもう一度実行してください。なお，同じ名称のJ2EEアプリケーションは同じモードで登録できません。このため，テストが失敗したテストモードのJ2EEアプリケーションは削除してください。テストモードのJ2EEアプリケーションの削除は，-testオプションを指定したcjdeleteappコマンドを実行します。

テストモードで実行しているJ2EEアプリケーションを停止します。
テストモードで実行中のJ2EEアプリケーションを停止するには，-testオプションを指定したcjstopappコマンドを実行します。

通常モードで実行しているJ2EEアプリケーションを停止します。

通常モードで実行していたJ2EEアプリケーションの名称を変更します。
この操作は，インポートしたファイルの世代を管理したい場合などに，必要に応じて実行してください。例えば，「App1」というJ2EEアプリケーションの場合，「App1_bak」などに変更します。
マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「10.6　J2EEアプリケーション名の変更」を参照してください。

次に示すコマンドを実行して，テストモードで実行していたJ2EEアプリケーションのモードを，テストモードから通常モードへ切り替えます。

実行形式

cjchmodapp ［＜サーバ名称＞］ ［-nameserver ＜プロバイダURL＞］ -test -name ＜アプリケーション名＞ -mode normal

実行例

cjchmodapp MyServer -test -name App1 -mode normal

テストモードから通常モードへ切り替えたJ2EEアプリケーションを開始します。

7.3.8　アプリケーションのモードの切り替えで使用するコマンド（cjchmodapp（アプリケーションのモード切り替え））

アプリケーションのモード切り替えには，次のコマンドを使用します。

表7-14　アプリケーションのモード切り替えで使用するコマンド

コマンド名称 | 分類 | 概要 | コマンドの系統
cjchmodapp | アプリケーションのモード切り替え | J2EEアプリケーションの動作モードを変更します。 | 更新

コマンドの格納先

次のディレクトリに格納されています。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥admin¥bin¥

UNIXの場合
/opt/Cosminexus/CC/admin/bin/

以降にコマンドの文法を示します。

●形式

アプリケーションをテストモードから通常モードに変更する場合

cjchmodapp [<サーバ名称>] [-nameserver <プロバイダURL>] -test
          -name <アプリケーション名> -mode normal

アプリケーションを通常モードからテストモードに変更する場合

cjchmodapp [<サーバ名称>] [-nameserver <プロバイダURL>]
          -name <アプリケーション名> -mode test

●機能

J2EEアプリケーションの動作モードを，テストモードから通常モードへ，または通常モードからテストモードへ変更します。

●引数

<サーバ名称>

接続先J2EEサーバ名称を指定します。サーバ名称を省略したときは，ホスト名称がサーバ名称として使用されます。

-nameserver <プロバイダURL>

CORBAネーミングサービスへのアクセスプロトコル，CORBAネーミングサービスが稼働しているホスト名，およびそれが使用しているポート番号を次に示す形式で指定します。

<プロトコル名称>::<ホスト名称>:<ポート番号>

指定内容の詳細については，マニュアル「アプリケーションサーバ リファレンス コマンド編」の「2.1(2)　プロバイダURLについて」を参照してください。

-test

テストモードのアプリケーションに対してコマンドを実行する場合に指定します。

-name <アプリケーション名>

モードを変更するJ2EEアプリケーション名を指定します。

-mode {test|normal}

アプリケーションの動作モードを指定します。

test
テストモードに変更します。

normal
通常モードに変更します。このオプションを指定する場合，-testオプションの指定が必要です。

●入力例

アプリケーションをテストモードから通常モードに変更する場合

cjchmodapp MyServer -test -name App1 -mode normal

アプリケーションを通常モードからテストモードに変更する場合

cjchmodapp MyServer -name App1 -mode test

●戻り値

0：

正常終了しました。

1：

異常終了しました。

2：

排他エラーによってコマンドを実行できません。

3：

タイムアウトが発生しました。

9：

管理者特権がないため，コマンドが実行できません（Windows Server 2012，Windows Server 2008，Windows 8，Windows 7またはWindows Vistaの場合）。

●注意事項

コマンドの引数にサーバ名称を指定する場合，コマンド名の直後にする必要があります。そのほかの引数は，サーバ名称より後ろ（サーバ名称を省略した場合はコマンド名の後ろ）にあれば順序は任意です。ただし，オプション名と値の順序の入れ替え（例：<アプリケーション名> -name）やオプション名と値を非対応にすること（例：-nameserver <アプリケーション名> -name <プロバイダURL>）はできません。

コマンドの引数にサーバ名称を指定する場合，cjsetupコマンドで指定したサーバ名称と大文字・小文字を一致させた文字列を指定する必要があります。

WARアプリケーションに対してモードの変更はできません。-nameオプションにWARアプリケーションを指定した場合，このコマンドは異常終了します。

7.3.9　テストモードでのJ2EEアプリケーション呼び出し時の注意事項

アプリケーションの動作モードには，本番稼働できる通常モードと，テスト専用のテストモードの二つがあります。

テストモードは，アプリケーションの新規開発や，アプリケーションの入れ替えなど，アプリケーションをテストするときに利用します。なお，テストの対象となるのは，WebアプリケーションとEnterprise Beanです。

＜この項の構成＞

(1)　テストモードでのWebアプリケーション呼び出しについての注意事項

(2)　テストモードでのEnterprise Bean呼び出しについての注意事項

(1)　テストモードでのWebアプリケーション呼び出しについての注意事項

アプリケーションの作りによっては，テストモードでのWebアプリケーション呼び出し機能が利用できないことがあります。注意事項を次に説明します。

(a)　ほかのWebアプリケーションとのリンクを作成する場合

テストモードで起動するJ2EEアプリケーションに複数のWebアプリケーションが含まれている場合，そのWebアプリケーションから，同じくテストモードで起動されたWebアプリケーションへのリンク（URLまたはURI）を作成する処理が含まれることがあります。この場合，サーブレットAPIでほかのWebアプリケーションのコンテキストルートは取得できないため，Webアプリケーションで固定またはユーザプログラム内の定義で指定していると考えられます。

この場合，テストモードのWebアプリケーションにアクセスし，作成されたページのリンクにアクセスすると，テストモードのWebアプリケーションではなく，通常モードのWebアプリケーションにアクセスするので注意してください。

(b)　静的コンテンツ内のリンクがコンテキストルートからのパスで記述されている場合

静的コンテンツ内で記述しているリンクが，相対パスではなくコンテキストルートからのパスで記述してある場合，通常モードのWebアプリケーションにアクセスしてしまいます。

(c)　サーブレットAPIを利用する場合

サーブレットAPIで使用するメソッドによっては，次に示す注意が必要になる場合があります。

注意事項A：

引数にコンテキストルート名をハードコーディングしたり，戻り値として特定のコンテキストルート名が返されることを期待したりしないでください。

注意事項B：

戻り値としてファイルシステム上の実際のパスが返されます。特定のファイルパスが返されることを期待しないでください。

注意事項Aおよび注意事項Bに該当するメソッドを，次の表に示します。

表7-15　注意が必要なサーブレットAPI

パッケージ | クラス | メソッド | 注意事項
A | B
javax.servlet | ServletContext | getContext(java.lang.String uripath) | ○ | －
getResource(java.lang.String path) | ○ | －
getRealPath(java.lang.String path) | － | ○
javax.servlet.http | HttpServletRequest | getContextPath() | ○ | －
getPathTranslated() | ○ | －
getRequestURI() | ○ | －
getRequestURL() | ○ | －
getPathTranslated() | － | ○
HttpServletResponse | encodeRedirectUrl(java.lang.String url) | ○ | －
encodeRedirectURL(java.lang.String url) | ○ | －
encodeUrl(java.lang.String url) | ○ | －
encodeURL(java.lang.String url) | ○ | －
sendRedirect(java.lang.String location) | ○ | －
Cookie | getPath() | ○ | －
setPath(java.lang.String uri) | ○ | －
HttpServletRequestWrapper | getContextPath() | ○ | －
getPathTranslated() | ○ | －
getRequestURI() | ○ | －
getRequestURL() | ○ | －
getPathTranslated() | － | ○
HttpServletResponseWrapper | encodeRedirectUrl(java.lang.String url) | ○ | －
encodeRedirectURL(java.lang.String url) | ○ | －
encodeUrl(java.lang.String url) | ○ | －
encodeURL(java.lang.String url) | ○ | －
sendRedirect(java.lang.String location) | ○ | －
HttpUtils | getRequestURL(HttpServletRequest req) | ○ | －

（凡例）

○：注意事項に該当することを示します。

－：注意事項に該当することを示します。

(2)　テストモードでのEnterprise Bean呼び出しについての注意事項

Enterprise Beanの場合，一般にEJBホームオブジェクトおよびEJBローカルホームオブジェクトの取得にJNDIを利用します。したがって，通常モード用とは別にテストモード用の名前空間を設け，JNDIで通常／テストのモード切り替えを実施することで，テストモードでのEnterprise Beanの呼び出しを実現します。テストモードでのEnterprise Beanの呼び出しについての注意事項を次に示します。

(a)　Enterprise Beanを開始する場合

Enterprise Beanを含むJ2EEアプリケーションをテストモードで開始するとき，テストモードで開始されたEnterprise BeanのEJBホームオブジェクト，およびEJBローカルホームオブジェクトなどをテストモード用の名前空間に登録します。テストモード用名前空間への登録／検索については，JNDIで自動変換して実行するため，J2EEアプリケーションに本番／テストのモード変更が発生しても，lookupメソッド呼び出し元のソースや，WAR，Enterprise BeanなどのDD定義の変更は不要です。

(b)　クライアントから接続する場合

クライアントでは，テストモード用の名前空間を検索してEJBホームオブジェクト，およびEJBローカルホームオブジェクトなどを取得します。

J2EEアプリケーション形態のEnterprise Beanのクライアント（例：JSP／サーブレットやEnterprise Bean）では，JNDIがlookupメソッド呼び出し元（クライアント）のJ2EEアプリケーションのモードを判別して自動的に検索名を変換するため，クライアント側ではテストモードの検索名を意識しなくて済みます。

一方，J2EEアプリケーション形態以外のEnterprise Beanのクライアント（例：EJBクライアントアプリケーション）では，JNDIでは自動的に検索名を変換しません。そのため，クライアント側では，テストモードの検索名を意識し，テスト用のクライアントを作成してください（J2EEアプリケーション形態以外のEnterprise Beanのクライアントには，通常モード／テストモードの区別がありません。このため，JNDIでは，検索名の自動変換は実行されません）。

(c)　ダイナミッククラスローディング機能を使用する場合

ダイナミッククラスローディング機能を使用する場合，一つのJ2EEサーバ上で通常モードとテストモードのJ2EEアプリケーションを，同じ名称で同時に開始できません。例えば，すでに通常モードでJ2EEアプリケーションが動作しているときにテストモードのJ2EEアプリケーションを開始しようとすると，開始に失敗します。

テストモードでJ2EEアプリケーションを動作させる場合は，ダイナミッククラスローディング機能を使用しないことをお勧めします。

7.3.10　テストモード使用時のそのほかの注意事項

mngsvrutilコマンドのサブコマンドstartを指定してJ2EEアプリケーションをテストモードで開始することはできません。

mngsvrutilコマンドのサブコマンドstartを指定してテストモードで開始されているJ2EEアプリケーションを停止することはできません。

ユーザスレッドではテストモードでのJ2EEアプリケーションの実行機能を使用できません。

7.4　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック（cjjsp2java）

cjjsp2javaコマンドを使用して，JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックができます。

この節の構成を次の表に示します。

表7-16　この節の構成（JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェック）

分類 | タイトル | 参照先
実装 | JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンド（cjjsp2java（JSPソースのチェック）） | 7.4.1
注意事項 | JSP実装時の注意事項 | 7.4.2

注　「解説」「設定」および「運用」について，この節での説明はありません。

＜この節の構成＞

7.4.1　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンド（cjjsp2java（JSPソースのチェック））

7.4.2　JSP実装時の注意事項

7.4.1　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンド（cjjsp2java（JSPソースのチェック））

JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックでは，次のコマンドを使用します。

表7-17　JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンド

コマンド名称 | 分類 | 概要
cjjsp2java | JSPソースのチェック | JSPファイルのシンタックスチェックをします。

コマンドの格納先

JSP1.1仕様およびJSP1.2仕様に準拠したJSPソースのチェックで使用するコマンドは，次のディレクトリに格納されています。

Windowsの場合
<Application Serverのインストールディレクトリ>¥CC¥web¥bin¥

UNIXの場合
/opt/Cosminexus/CC/web/bin/

以降にコマンドの文法を示します。

●形式

cjjsp2java [-d <ディレクトリ>|-d:non] [-classpath <クラスパス>]
          [-root <ディレクトリ> [[-taglib <uri> <location>]...]]
          <JSPファイル名>...

●機能

JSP1.1仕様およびJSP1.2仕様に準拠したJSPファイルからJavaソースを生成し，JSPファイルのシンタックスチェックをします。

なお，JSP2.0仕様以降に準拠したJSPファイルのシンタックスチェックをする場合は，cjjspcコマンドを使用してください。

●引数

-d <ディレクトリ>

生成したjavaソースファイルの出力先ディレクトリを指定します。このオプションを指定しなかった場合は，コマンドを実行したカレントディレクトリ下に生成されます。

-rootオプションを指定していない場合，-dオプションで指定したディレクトリの直下にjavaソースファイルが生成されます。同一ファイル名のJSPファイルが複数指定された場合，javaソースファイルも同一名称となるため，先に生成されたjavaソースファイルは，あとから生成されたjavaソースファイルに上書きされます。-rootオプションを指定している場合，-dオプションで指定したディレクトリ下に-rootオプションで指定したwebアプリケーションのルートディレクトリからJSPファイルまでのパスが生成され，そのディレクトリ下にjavaソースファイルが生成されます。

-d:non

javaソースファイルを生成しません。JSPファイルの確認だけを実施します。

-classpath <クラスパス>

JSPファイルからjavaファイルを生成する時に必要となるクラスのクラスパスを絶対パスで指定します。次のクラスパスが必要です。

タグライブラリの実装クラス（タグライブラリバリデータの実装クラスも含む）

<jsp:useBean>タグで指定したJavaBeansの実装クラス

複数のパスを指定する場合は，";" で区切って指定します（UNIXの場合，":"）。

なお，-rootオプションを使用し，指定したディレクトリ下のWEB-INF¥classes¥（UNIXの場合，WEB-INF/classes/）ディレクトリ，およびWEB-INF¥lib¥（UNIXの場合，WEB-INF/lib/）ディレクトリ下に必要なclassファイル，jarファイルを配置する場合，このオプションで指定する必要はありません。

-root <ディレクトリ>

Webアプリケーションのルートディレクトリを指定します。JSPファイルでincludeディレクティブを使用する場合，タグライブラリを使用する場合，またはjavaソースファイル生成時に必要なクラスパスを指定する場合に，このオプションを指定します。-rootオプションを指定した場合，指定したWebアプリケーションのルートディレクトリ下にJSPファイルを配置する必要があります。Webアプリケーションのルートディレクトリ下以外にあるJSPファイルを指定した場合は無視されます。

includeディレクティブを使用する場合

includeディレクティブのpage属性に"/"から始まるパスを指定した場合，このオプションで指定されたルートディレクトリからインクルード対象のJSPファイル，または静的コンテンツが検索されます。また，page属性に"/"から始まるパスを指定していても，-rootオプションを指定していない場合は，コマンドに指定したJSPファイルのディレクトリから"/"以下のファイルが検索されます。

タグライブラリを使用する場合

-taglibオプションの<location>に指定されたパス，または-taglibオプションを使用しないでJSPファイル内に直接記述されたtldファイルの検索に使用されます。タグライブラリを使用する場合，-rootオプションは必ず指定してください。

tldファイルがjarファイルに含まれる場合，そのjarファイルの検索に使用されます。この場合，使用するjarファイルは指定したWebアプリケーションのルートディレクトリ下のWEB-INF¥lib¥（UNIXの場合，WEB-INF/lib/）ディレクトリ下に配置する必要があります。

クラスパスを指定する場合

javaファイル生成時にクラスパスの指定が必要な場合，Webアプリケーションのルートディレクトリ下のWEB-INF¥classes¥（UNIXの場合，WEB-INF/classes/）ディレクトリ，またはWEB-INF¥lib¥（UNIXの場合，WEB-INF/lib/）ディレクトリ下にclassファイル，jarファイルを配置します。クラスパスの指定が必要な場合については，-classpathオプションの説明を参照してください。

-taglib <uri> <location>

タグライブラリを使用する場合に，<uri>および<location>に，それぞれweb.xmlに定義する<taglib-uri>タグ，<taglib-location>タグの内容を指定します。-taglibオプションを指定する場合，-rootオプションでWebアプリケーションのルートディレクトリを指定する必要があります。

複数のタグライブラリを使用する場合，-taglib <uri> <location>の形式で複数指定します。

<JSPファイル名>

javaソースファイルを生成するJSPファイルを指定します。複数のJSPファイルを指定する場合は，空白で区切って指定します。

複数のJSPファイルを指定した場合，同名のJSPファイルがあるときは，先に生成されたjavaソースファイルは，あとから生成されたjavaソースファイルに上書きされます。

複数のJSPファイルを指定した場合，指定した順にjavaソースが生成されます。途中でエラーを検出した場合はjavaソースファイルの生成が中断されます。

●戻り値

0：

正常終了しました。

1：

オプション解析エラーです。

2以上：

異常終了しました。

●注意事項

このコマンドで生成されたjavaソースファイルは，javacコマンドに-encodingオプションを指定してコンパイルすることで<%! ... %>タグ，<% ... %>タグ，または<%= ... %>タグで記述したjava言語ソースコードのコンパイル確認もできます。ただし，生成されたjavaソースファイルから，javacコマンドで作成したclassファイルは実行できません。

また，cjjsp2javaコマンドで生成したソースファイルをコンパイルするには，次に示すJARファイルをクラスパスに指定する必要があります。

<Application Serverのインストールディレクトリ>¥CC¥lib¥ejbserver.jar

<Application Serverのインストールディレクトリ>¥CC¥lib¥hitj2ee.jar

7.4.2　JSP実装時の注意事項

taglibディレクティブのuri属性で指定するURIとTLDファイルのマッピングで，TLDファイルの<uri>要素で指定したURIとそのTLDファイル自身をマッピングする場合に，URIの重複が検出されたときには，メッセージがWebアプリケーション単位で出力され，該当するマッピングは無視されます。

ここでは，出力されるメッセージに対するcjjsp2javaコマンドの場合だけに固有の出力条件について説明します。

出力されるメッセージ

KDJE39314-W

出力条件

TLDファイルで記述した<uri>要素の内容が，コマンド引数-taglibに指定したuriの内容，またはほかのTLDファイルで記述した<uri>要素の内容と重複したときに出力されます。

これ以外の出力条件については，マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「6.2.6　JSP実装時の注意事項」を参照してください。

付録

＜この付録の構成＞

付録A　各バージョンでの主な機能変更

付録B　用語解説

付録A　各バージョンでの主な機能変更

ここでは，09-70よりも前のアプリケーションサーバの各バージョンでの主な機能の変更について，変更目的ごとに説明します。09-70での主な機能変更については，「1.4　アプリケーションサーバ 09-70での主な機能変更」を参照してください。

説明内容は次のとおりです。

アプリケーションサーバの各バージョンで変更になった主な機能と，その概要を説明しています。機能の詳細については「参照先マニュアル」の「参照個所」の記述を確認してください。「参照先マニュアル」および「参照個所」には，その機能についての09-70のマニュアルでの主な記載個所を記載しています。

「参照先マニュアル」に示したマニュアル名の「アプリケーションサーバ」は省略しています。

＜この節の構成＞

付録A.1　09-60での主な機能変更

付録A.2　09-50での主な機能変更

付録A.3　09-00での主な機能変更

付録A.4　08-70での主な機能変更

付録A.5　08-53での主な機能変更

付録A.6　08-50での主な機能変更

付録A.7　08-00での主な機能変更

付録A.1　09-60での主な機能変更

＜この項の構成＞

(1)　標準機能・既存機能への対応

(2)　信頼性の維持・向上

(3)　そのほかの目的

(1)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A-1　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
G1GCへの対応 | G1GCを選択できるようになりました。 | システム設計ガイド | 7.15
リファレンス 定義編(サーバ定義) | 16.5
圧縮オブジェクトポインタ機能への対応 | 圧縮オブジェクトポインタ機能を使用できるようになりました。 | 機能解説 保守／移行編 | 9.16

(2)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A-2　信頼性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
ファイナライズ滞留解消機能の追加 | ファイナライズ処理の滞留を解消でき，OS資源の解放遅れなどの発生を抑止できるようになりました。 | 機能解説 保守／移行編 | 9.17

(3)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A-3　そのほかの目的による変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
ログファイルの非同期出力機能の追加 | ログのファイル出力を非同期でできるようになりました。 | リファレンス 定義編(サーバ定義) | 16.2

付録A.2　09-50での主な機能変更

＜この項の構成＞

(1)　開発生産性の向上

(2)　導入・構築の容易性強化

(3)　標準機能・既存機能への対応

(4)　信頼性の維持・向上

(5)　運用性の維持・向上

(6)　そのほかの目的

(1)　開発生産性の向上

開発生産性の向上を目的として変更した項目を次の表に示します。

表A-4　開発生産性の向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
Eclipseセットアップの簡略化 | GUIを利用してEclipse環境をセットアップできるようになりました。 | アプリケーション開発ガイド | 1.1.5，2.4
ユーザ拡張性能解析トレースを使ったデバッグ支援 | ユーザ拡張性能解析トレース設定ファイルを開発環境で作成できるようになりました。 | アプリケーション開発ガイド | 1.1.3，6.5

(2)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A-5　導入・構築の容易性強化を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

仮想化環境でのシステム構成パターンの拡充
仮想化環境で使用できるティアの種類（http-tier，j2ee-tierおよびctm-tier）が増えました。これによって，次のシステム構成パターンが構築できるようになりました。

WebサーバとJ2EEサーバを別のホストに配置するパターン

フロントエンド（サーブレット，JSP）とバックエンド（EJB）を分けて配置するパターン

CTMを使用するパターン

仮想化システム構築・運用ガイド
1.1.2

(3)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A-6　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
JDBC 4.0仕様への対応 | DB ConnectorでJDBC 4.0仕様のHiRDB Type4 JDBC Driver，およびSQL ServerのJDBCドライバに対応しました。 | 機能解説 基本・開発編(コンテナ共通機能) | 3.6.3
Portable Global JNDI名での命名規則の緩和 | Portable Global JNDI名に使用できる文字を追加しました。 | 機能解説 基本・開発編(コンテナ共通機能) | 2.4.3
Servlet 3.0仕様への対応 | Servlet 3.0のHTTP Cookieの名称，およびURLのパスパラメタ名の変更が，Servlet 2.5以前のバージョンでも使用できるようになりました。 | 機能解説 基本・開発編(Webコンテナ) | 2.7
Bean Validationと連携できるアプリケーションの適用拡大 | CDIやUAPでもBean Validationを使って検証できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 10章
JavaMailへの対応 | JavaMail 1.4に準拠したAPIを使用したメール送受信機能を利用できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 8章
javacoreコマンドが使用できるOSの適用拡大 | javacoreコマンドを使って，Windowsのスレッドダンプを取得できるようになりました。 | リファレンス コマンド編 | javacore（スレッドダンプの取得／Windowsの場合）

(4)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A-7　信頼性の維持・向上を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

コードキャッシュ領域の枯渇回避
システムで使用しているコードキャッシュ領域のサイズを確認して，領域が枯渇する前にしきい値を変更して領域枯渇するのを回避できるようになりました。
システム設計ガイド
7.2.6

機能解説 保守／移行編
5.7.2，5.7.3

リファレンス 定義編(サーバ定義)
16.1，16.2，16.4

明示管理ヒープ機能の効率的な適用への対応
自動解放処理時間を短縮し，明示管理ヒープ機能を効率的に適用するための機能として，Explicitヒープに移動するオブジェクトを制御できる機能を追加しました。

Explicitメモリブロックへのオブジェクト移動制御機能

明示管理ヒープ機能適用除外クラス指定機能

Explicitヒープ情報へのオブジェクト解放率情報の出力

システム設計ガイド
7.14.6

機能解説 拡張編
8.2.2，8.6.5，8.10，8.13.1，8.13.3

機能解説 保守／移行編
5.5

クラス別統計情報の出力範囲拡大
クラス別統計情報を含んだ拡張スレッドダンプに，staticフィールドを基点とした参照関係を出力できるようになりました。
機能解説 保守／移行編
9.6

(5)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A-8　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
EADsセッションフェイルオーバ機能のサポート | EADsと連携してセッションフェイルオーバ機能を実現するEADsセッションフェイルオーバ機能をサポートしました。 | 機能解説 拡張編 | 5章，7章
WARによる運用 | WARファイルだけで構成されたWARアプリケーションをJ2EEサーバにデプロイできるようになりました。 | 機能解説 基本・開発編(Webコンテナ) | 2.2.1
機能解説 基本・開発編(コンテナ共通機能) | 13.9
リファレンス コマンド編 | cjimportwar（WARアプリケーションのインポート）
運用管理機能の同期実行による起動と停止 | 運用管理機能（Management Serverおよび運用管理エージェント）の起動および停止を，同期実行するオプションを追加しました。 | 機能解説 運用／監視／連携編 | 2.6.1，2.6.2，2.6.3，2.6.4
リファレンス コマンド編 | adminagentctl（運用管理エージェントの起動と停止），mngautorun（自動起動および自動再起動の設定／設定解除），mngsvrctl（Management Serverの起動／停止／セットアップ）
明示管理ヒープ機能でのExplicitメモリブロックの強制解放 | javagcコマンドで，Explicitメモリブロックの解放処理を任意のタイミングで実行できるようになりました。 | 機能解説 拡張編 | 8.6.1，8.9
リファレンス コマンド編 | javagc（GCの強制発生）

(6)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A-9　そのほかの目的による変更

項目
変更の概要
参照先マニュアル
参照個所

定義情報の取得
snapshotlog（snapshotログの収集）コマンドで定義ファイルだけを収集できるようになりました。
機能解説 保守／移行編
2.3

リファレンス コマンド編
snapshotlog（snapshotログの収集）

cjenvsetupコマンドのログ出力
Component Container管理者のセットアップ（cjenvsetupコマンド）の実行情報がメッセージログに出力されるようになりました。
システム構築・運用ガイド
4.1.4

機能解説 保守／移行編
4.20

リファレンス コマンド編
cjenvsetup（Component Container管理者のセットアップ）

BIG-IP v11のサポート
使用できる負荷分散機の種類にBIG-IP v11が追加になりました。
システム構築・運用ガイド
4.7.2

仮想化システム構築・運用ガイド
2.1

明示管理ヒープ機能のイベントログへのCPU時間の出力
Explicitメモリブロック解放処理に掛かったCPU時間が，明示管理ヒープ機能のイベントログに出力されるようになりました。
機能解説 保守／移行編
5.11.3

ユーザ拡張性能解析トレースの機能拡張
ユーザ拡張性能解析トレースで，次の機能を追加しました。

トレース対象の指定方法を通常のメソッド単位の指定方法に加えて，パッケージ単位またはクラス単位で指定できるようになりました。

使用できるイベントIDの範囲を拡張しました。

ユーザ拡張性能解析トレース設定ファイルに指定できる行数の制限を緩和しました。

ユーザ拡張性能解析トレース設定ファイルでトレース取得レベルを指定できるようになりました。

機能解説 保守／移行編
7.5.2，7.5.3，8.28.1

Session Beanの非同期呼び出し使用時の情報解析向上
PRFトレースのルートアプリケーション情報を使用して，呼び出し元と呼び出し先のリクエストを突き合わせることができるようになりました。
機能解説 基本・開発編（EJBコンテナ）
2.17.3

付録A.3　09-00での主な機能変更

＜この項の構成＞

(1)　導入・構築の容易性強化

(2)　標準機能・既存機能への対応

(3)　信頼性の維持・向上

(4)　運用性の維持・向上

(5)　そのほかの目的

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A-10　導入・構築の容易性強化を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
仮想化環境での構築・運用の操作対象単位の変更 | 仮想化環境の構築・運用時の操作対象単位が仮想サーバから仮想サーバグループへ変更になりました。仮想サーバグループの情報を定義したファイルを使用して，複数の仮想サーバを管理ユニットへ一括で登録できるようになりました。 | 仮想化システム構築・運用ガイド | 1.1.2
セットアップウィザードによる構築環境の制限解除 | セットアップウィザードを使用して構築できる環境の制限が解除されました。ほかの機能で構築した環境があってもアンセットアップされて，セットアップウィザードで構築できるようになりました。 | システム構築・運用ガイド | 2.2.7
構築環境の削除手順の簡略化 | Management Serverを使用して構築したシステム環境を削除する機能（mngunsetupコマンド）の追加によって，削除手順を簡略化しました。 | システム構築・運用ガイド | 4.1.37
運用管理ポータル操作ガイド | 3.6，5.4
リファレンス コマンド編 | mngunsetup（Management Serverの構築環境の削除）

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A-11　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
Servlet 3.0への対応 | Servlet 3.0に対応しました。 | 機能解説 基本・開発編(Webコンテナ) | 6章
EJB 3.1への対応 | EJB 3.1に対応しました。 | 機能解説 基本・開発編(EJBコンテナ) | 2章
JSF 2.1への対応 | JSF 2.1に対応しました。 | 機能解説 基本・開発編(Webコンテナ) | 3章
JSTL 1.2への対応 | JSTL 1.2に対応しました。 | 機能解説 基本・開発編(Webコンテナ) | 3章
CDI 1.0への対応 | CDI 1.0に対応しました。 | 機能解説 基本・開発編(コンテナ共通機能) | 9章
Portable Global JNDI名の利用 | Portable Global JNDI名を利用したオブジェクトのルックアップができるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 2.4
JAX-WS 2.2への対応 | JAX-WS 2.2に対応しました。 | Webサービス開発ガイド | 1.1，16.1.5，16.1.7，16.2.1，16.2.6，16.2.10，16.2.12，16.2.13，16.2.14，16.2.16，16.2.17，16.2.18，16.2.20，16.2.22，19.1，19.2.3，37.2，37.6.1，37.6.2，37.6.3
JAX-RS 1.1への対応 | JAX-RS 1.1に対応しました。 | Webサービス開発ガイド | 1.1，1.2.2，1.3.2，1.4.2，1.5.1，1.6，2.3，11章，12章，13章，17章，24章，39章

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A-12　信頼性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
SSL/TLS通信でのTLSv1.2の使用 | RSA BSAFE SSL-Jを使用して，TLSv1.2を含むセキュリティ・プロトコルでSSL/TLS通信ができるようになりました。 | 機能解説 セキュリティ管理機能編 | 7.3

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A-13　運用性の維持・向上を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

Webコンテナ全体の実行待ちキューの総和の監視
Webコンテナ全体の実行待ちキューの総和を稼働情報に出力して監視できるようになりました。
機能解説 運用／監視／連携編
3章

アプリケーションの性能解析トレース（ユーザ拡張トレース）の出力
ユーザが開発したアプリケーションの処理性能を解析するための性能解析トレースを，アプリケーションの変更をしないで出力できるようになりました。
機能解説 保守／移行編
7章

仮想化環境でのユーザスクリプトを使用した運用
任意のタイミングでユーザ作成のスクリプト（ユーザスクリプト）を仮想サーバ上で実行できるようになりました。
仮想化システム構築・運用ガイド
7.8

運用管理ポータル改善
運用管理ポータルの次の画面で，手順を示すメッセージを画面に表示するように変更しました。

［設定情報の配布］画面

Webサーバ，J2EEサーバおよびSFOサーバの起動画面

WebサーバクラスタとJ2EEサーバクラスタの一括起動，一括再起動および起動画面

運用管理ポータル操作ガイド
10.11.1，11.9.2，11.10.2，11.11.2，11.11.4，11.11.6，11.12.2，11.13.2，11.13.4，11.13.6

運用管理機能の再起動機能の追加
運用管理機能（Management Serverおよび運用管理エージェント）で自動再起動が設定できるようになり，運用管理機能で障害が発生した場合でも運用が継続できるようになりました。また，自動起動の設定方法も変更になりました。
機能解説 運用／監視／連携編
2.4.1，2.4.2，2.6.3，2.6.4

リファレンス コマンド編
mngautorun（自動起動および自動再起動の設定／設定解除）

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A-14　そのほかの目的による変更

項目
変更の概要
参照先マニュアル
参照個所

ログ出力時のファイル切り替え単位の変更
ログ出力時に，日付ごとに出力先のファイルを切り替えられるようになりました。
機能解説 保守／移行編
3.2.1

Webサーバの名称の変更
アプリケーションサーバに含まれるWebサーバの名称をHTTP Serverに変更しました。
HTTP Server
－

BIG-IPのAPI（SOAPアーキテクチャ）を使用した直接接続への対応
BIG-IP（負荷分散機）でAPI（SOAPアーキテクチャ）を使用した直接接続に対応しました。
また，APIを使用した直接接続を使用する場合に，負荷分散機の接続環境を設定する方法が変更になりました。
システム構築・運用ガイド
4.7.3，付録K

仮想化システム構築・運用ガイド
2.1，付録C

機能解説 セキュリティ管理機能編
8.2，8.4，8.5，8.6，18.2，18.3，18.4

（凡例）－：マニュアル全体を参照する

付録A.4　08-70での主な機能変更

＜この項の構成＞

(1)　導入・構築の容易性強化

(2)　標準機能・既存機能への対応

(3)　信頼性の維持・向上

(4)　運用性の維持・向上

(5)　そのほかの目的

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更した項目を次の表に示します。

表A-15　導入・構築の容易性強化を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

運用管理ポータル改善
運用管理ポータルの画面で，リソースアダプタの属性を定義するプロパティ（Connector属性ファイルの設定内容）の設定，および接続テストができるようになりました。また，運用管理ポータルの画面で，J2EEアプリケーション（earファイルおよびzipファイル）をManagement Serverにアップロードできるようになりました。
ファーストステップガイド
3.5

運用管理ポータル操作ガイド
－

page/tagディレクティブのimport属性暗黙インポート機能の追加
page/tagディレクティブのimport属性暗黙インポート機能を使用できるようになりました。
機能解説 基本・開発編(Webコンテナ)
2.3.7

仮想化環境でのJP1製品に対する環境設定の自動化対応
仮想サーバへのアプリケーションサーバ構築時に，仮想サーバに対するJP1製品の環境設定を，フックスクリプトで自動的に設定できるようになりました。
仮想化システム構築・運用ガイド
7.7.2

統合ユーザ管理機能の改善
ユーザ情報リポジトリでデータベースを使用する場合に，データベース製品のJDBCドライバを使用して，データベースに接続できるようになりました。DABroker LibraryのJDBCドライバによるデータベース接続はサポート外になりました。
簡易構築定義ファイルおよび運用管理ポータルの画面で，統合ユーザ管理機能に関する設定ができるようになりました。
また，Active Directoryの場合，DNで日本語などの2バイト文字に対応しました。
機能解説 セキュリティ管理機能編
5章，14.3

運用管理ポータル操作ガイド
3.5，10.9.1

HTTP Server設定項目の拡充
簡易構築定義ファイルおよび運用管理ポータルの画面で，HTTP Serverの動作環境を定義するディレクティブ（httpsd.confの設定内容）を直接設定できるようになりました。
システム構築・運用ガイド
4.1.21

運用管理ポータル操作ガイド
10.10.1

リファレンス 定義編(サーバ定義)
4.13

（凡例）－：マニュアル全体を参照する

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更した項目を次の表に示します。

表A-16　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
ejb-jar.xmlの指定項目の追加 | ejb-jar.xmlに，クラスレベルインターセプタおよびメソッドレベルインターセプタを指定できるようになりました。 | 機能解説 基本・開発編(EJBコンテナ) | 2.15
パラレルコピーガーベージコレクションへの対応 | パラレルコピーガーベージコレクションを選択できるようになりました。 | リファレンス 定義編(サーバ定義) | 16.5
Connector 1.5仕様に準拠したInboundリソースアダプタのグローバルトランザクションへの対応 | Connector 1.5仕様に準拠したリソースアダプタでTransacted Deliveryを使用できるようにしました。これによって，Message-driven Beanを呼び出すEISがグローバルトランザクションに参加できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 3.16.3
TP1インバウンドアダプタのMHPへの対応 | TP1インバウンドアダプタを使用してアプリケーションサーバを呼び出すOpenTP1のクライアントとして，MHPを使用できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 4章
cjrarupdateコマンドのFTPインバウンドアダプタへの対応 | cjrarupdateコマンドでバージョンアップできるリソースアダプタにFTPインバウンドアダプタを追加しました。 | リファレンス コマンド編 | 2.2

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更した項目を次の表に示します。

表A-17　信頼性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
データベースセッションフェイルオーバ機能の改善 | 性能を重視するシステムで，グローバルセッション情報を格納したデータベースのロックを取得しないモードを選択できるようになりました。また，データベースを更新しない，参照専用のリクエストを定義できるようになりました。 | 機能解説 拡張編 | 6章
OutOfMemoryハンドリング機能の対象となる処理の拡大 | OutOfMemoryハンドリング機能の対象となる処理を追加しました。 | 機能解説 保守／移行編 | 2.5.7
リファレンス 定義編(サーバ定義) | 16.2
HTTPセッションで利用するExplicitヒープの省メモリ化機能の追加 | HTTPセッションで利用するExplicitヒープのメモリ使用量を抑止する機能を追加しました。 | 機能解説 拡張編 | 8.11

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更した項目を次の表に示します。

表A-18　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
仮想化環境でのJP1製品を使用したユーザ認証への対応（クラウド運用対応） | JP1連携時に，JP1製品の認証サーバを利用して，仮想サーバマネージャを使用するユーザを管理・認証できるようになりました。 | 仮想化システム構築・運用ガイド | 1.2.2，3章，4章，5章，6章，7.9

(5)　そのほかの目的

そのほかの目的で変更した項目を次の表に示します。

表A-19　そのほかの目的による変更

項目
変更の概要
参照先マニュアル
参照個所

負荷分散機へのAPI（RESTアーキテクチャ）を使用した直接接続の対応
負荷分散機への接続方法として，API（RESTアーキテクチャ）を使用した直接接続に対応しました。
また，使用できる負荷分散機の種類にACOS（AX2500）が追加になりました。
システム構築・運用ガイド
4.7.2，4.7.3

仮想化システム構築・運用ガイド
2.1

リファレンス 定義編(サーバ定義)
4.5

snapshotログ収集時のタイムアウトへの対応と収集対象の改善
snapshotログの収集が指定した時間で終了（タイムアウト）できるようになりました。一次送付資料として収集される内容が変更になりました。
機能解説 保守／移行編
付録A

付録A.5　08-53での主な機能変更

＜この項の構成＞

(1)　導入・構築の容易性強化

(2)　標準機能・既存機能への対応

(3)　信頼性の維持・向上

(4)　運用性の維持・向上

(5)　そのほかの目的

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更された項目を次の表に示します。

表A-20　導入・構築の容易性強化を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

さまざまなハイパーバイザに対応した仮想化環境の構築
さまざまなハイパーバイザを使用して実現する仮想サーバ上に，アプリケーションサーバを構築できるようになりました。
また，複数のハイパーバイザが混在する環境にも対応しました。
仮想化システム構築・運用ガイド
2章，3章，5章

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更された項目を次の表に示します。

表A-21　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
トランザクション連携に対応したOpenTP1からの呼び出し | OpenTP1からアプリケーションサーバ上で動作するMessage-driven Beanを呼び出すときに，トランザクション連携ができるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 4章
JavaMail | POP3に準拠したメールサーバと連携して，JavaMail 1.3に準拠したAPIを使用したメール受信機能を利用できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 8章

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更された項目を次の表に示します。

表A-22　信頼性の維持・向上を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

JavaVMのトラブルシュート機能強化
JavaVMのトラブルシュート機能として，次の機能が使用できるようになりました。

OutOfMemoryError発生時の動作を変更できるようになりました。

JITコンパイル時に，Cヒープ確保量の上限値を設定できるようになりました。

スレッド数の上限値を設定できるようになりました。

拡張verbosegc情報の出力項目を拡張しました。

機能解説 保守／移行編
4章，5章，9章

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更された項目を次の表に示します。

表A-23　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
JP1/ITRMへの対応 | ITリソースを一元管理する製品であるJP1/ITRMに対応しました。 | 仮想化システム構築・運用ガイド | 1.3，2.1

(5)　そのほかの目的

そのほかの目的で変更された項目を次の表に示します。

表A-24　そのほかの目的による変更

項目
変更の概要
参照先マニュアル
参照個所

Microsoft IIS 7.0およびMicrosoft IIS 7.5への対応
WebサーバとしてMicrosoft IIS 7.0およびMicrosoft IIS 7.5に対応しました。
－
－

HiRDB Version 9およびSQL Server 2008への対応
データベースとして次の製品に対応しました。

HiRDB Server Version 9

HiRDB/Developer's Kit Version 9

HiRDB/Run Time Version 9

SQL Server 2008

また，SQL Server 2008に対応するJDBCドライバとして，SQL Server JDBC Driverに対応しました。
機能解説 基本・開発編(コンテナ共通機能)
3章

（凡例）－：該当なし。

付録A.6　08-50での主な機能変更

＜この項の構成＞

(1)　導入・構築の容易性強化

(2)　標準機能・既存機能への対応

(3)　信頼性の維持・向上

(4)　運用性の維持・向上

(5)　そのほかの目的

(1)　導入・構築の容易性強化

導入・構築の容易性強化を目的として変更された項目を次の表に示します。

表A-25　導入・構築の容易性強化を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
Webサービスプロバイダ側でのweb.xmlの指定必須タグの変更 | Webサービスプロバイダ側でのweb.xmlで，listenerタグ，servletタグ，およびservlet-mappingタグの指定を必須から任意に変更しました。 | リファレンス 定義編(サーバ定義) | 2.4
論理サーバのネットワークリソース使用 | J2EEアプリケーションからほかのホスト上にあるネットワークリソースやネットワークドライブにアクセスするための機能を追加しました。 | 機能解説 運用／監視／連携編 | 1.2.3，5.2，5.7
サンプルプログラムの実行手順の簡略化 | 一部のサンプルプログラムをEAR形式で提供することによって，サンプルプログラムの実行手順を簡略化しました。 | ファーストステップガイド | 3.5
システム構築・運用ガイド | 付録M
運用管理ポータルの画面の動作の改善 | 画面の更新間隔のデフォルトを「更新しない」から「3秒」に変更しました。 | 運用管理ポータル操作ガイド | 7.4.1
セットアップウィザードの完了画面の改善 | セットアップウィザード完了時の画面に，セットアップで使用した簡易構築定義ファイルおよびConnector属性ファイルが表示されるようになりました。 | システム構築・運用ガイド | 2.2.6
仮想化環境の構築 | ハイパーバイザを使用して実現する仮想サーバ上に，アプリケーションサーバを構築する手順を追加しました。※ | 仮想化システム構築・運用ガイド | 3章，5章

注※

08-50モードで構築する場合は，マニュアル「アプリケーションサーバ 仮想化システム構築・運用ガイド」の「付録D　08-50モードの仮想サーバマネージャを利用する場合の設定」を参照してください。

(2)　標準機能・既存機能への対応

標準機能・既存機能への対応を目的として変更された項目を次の表に示します。

表A-26　標準機能・既存機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
OpenTP1からの呼び出しへの対応 | OpenTP1からアプリケーションサーバ上で動作するMessage-driven Beanを呼び出せるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 4章
JMSへの対応 | JMS 1.1仕様に対応したCJMSプロバイダ機能を使用できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 7章
Java SE 6への対応 | Java SE 6の機能が使用できるようになりました。 | 機能解説 保守／移行編 | 5.5，5.8.1
ジェネリクスの使用への対応 | EJBでジェネリクスを使用できるようになりました。 | 機能解説 基本・開発編(EJBコンテナ) | 4.2.19

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更された項目を次の表に示します。

表A-27　信頼性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
明示管理ヒープ機能の使用性向上 | 自動配置設定ファイルを使用して，明示管理ヒープ機能を容易に使用できるようになりました。 | システム設計ガイド | 7.2，7.7.3，7.11.5，7.12.1
機能解説 拡張編 | 8章
データベースセッションフェイルオーバ機能のURI単位での抑止 | データベースセッションフェイルオーバ機能を使用する場合に，機能の対象外にするリクエストをURI単位で指定できるようになりました。 | 機能解説 拡張編 | 5.6.1
仮想化環境での障害監視 | 仮想化システムで，仮想サーバを監視し，障害の発生を検知できるようになりました。 | 仮想化システム構築・運用ガイド | 付録D

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更された項目を次の表に示します。

表A-28　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
管理ユーザアカウントの省略 | 運用管理ポータル，Management Serverのコマンド，またはSmart Composer機能のコマンドで，ユーザのログインIDおよびパスワードの入力を省略できるようになりました。 | システム構築・運用ガイド | 4.1.15
運用管理ポータル操作ガイド | 2.2，7.1.1，7.1.2，7.1.3，8.1，8.2.1，付録F.2
リファレンス コマンド編 | 1.4，mngsvrctl（Management Serverの起動／停止／セットアップ），mngsvrutil（Management Serverの運用管理コマンド），8.3，cmx_admin_passwd（Management Serverの管理ユーザアカウントの設定）
仮想化環境の運用 | 仮想化システムで，複数の仮想サーバを対象にした一括起動・一括停止，スケールイン・スケールアウトなどを実行する手順を追加しました。※ | 仮想化システム構築・運用ガイド | 4章，6章

注※

08-50モードで運用する場合は，マニュアル「アプリケーションサーバ 仮想化システム構築・運用ガイド」の「付録D　08-50モードの仮想サーバマネージャを利用する場合の設定」を参照してください。

(5)　そのほかの目的

そのほかの目的で変更された項目を次の表に示します。

表A-29　そのほかの目的による変更

項目
変更の概要
参照先マニュアル
参照個所

Tenured領域内不要オブジェクト統計機能
Tenured領域内で不要となったオブジェクトだけを特定できるようになりました。
機能解説 保守／移行編
9.8

Tenured増加要因の基点オブジェクトリスト出力機能
Tenured領域内不要オブジェクト統計機能を使って特定した，不要オブジェクトの基点となるオブジェクトの情報を出力できるようになりました。
9.9

クラス別統計情報解析機能
クラス別統計情報をCSV形式で出力できるようになりました。
9.10

論理サーバの自動再起動回数オーバー検知によるクラスタ系切り替え
Management Serverを系切り替えの監視対象としているクラスタ構成の場合，論理サーバが異常停止状態(自動再起動回数をオーバーした状態，または自動再起動回数の設定が0のときに障害を検知した状態)になったタイミングでの系切り替えができるようになりました。
機能解説 運用／監視／連携編
18.4.3，18.5.3，
20.2.2，
20.3.3，20.3.4

ホスト単位管理モデルを対象とした系切り替えシステム
クラスタソフトウェアと連携したシステム運用で，ホスト単位管理モデルを対象にした系切り替えができるようになりました。
20章

ACOS（AX2000，BS320）のサポート
使用できる負荷分散機の種類にACOS（AX2000，BS320）が追加になりました。
システム構築・運用ガイド
4.7.2，4.7.3，4.7.5，4.7.6，付録K，付録K.2

リファレンス 定義編(サーバ定義)
4.5，4.6.2，4.6.4，4.6.5，4.6.6，4.10.1

CMTでトランザクション管理をする場合にStateful Session Bean（SessionSynchronization）に指定できるトランザクション属性の追加
CMTでトランザクション管理をする場合に，Stateful Session Bean（SessionSynchronization）にトランザクション属性としてSupports，NotSupportedおよびNeverを指定できるようになりました。
機能解説 基本・開発編(EJBコンテナ)
2.7.3

OutOfMemoryError発生時の運用管理エージェントの強制終了
JavaVMでOutOfMemoryErrorが発生したときに，運用管理エージェントが強制終了するようになりました。
機能解説 保守／移行編
2.5.8

スレッドの非同期並行処理
TimerManagerおよびWorkManagerを使用して，非同期タイマ処理および非同期スレッド処理を実現できるようになりました。
機能解説 拡張編
10章

付録A.7　08-00での主な機能変更

＜この項の構成＞

(1)　開発生産性の向上

(2)　標準機能への対応

(3)　信頼性の維持・向上

(4)　運用性の維持・向上

(5)　そのほかの目的

(1)　開発生産性の向上

開発生産性の向上を目的として変更された項目を次の表に示します。

表A-30　開発生産性の向上を目的とした変更

項目
変更の概要
参照先マニュアル
参照個所

ほかのアプリケーションサーバ製品からの移行容易化
ほかのアプリケーションサーバ製品からの移行を円滑に実施するため，次の機能を使用できるようになりました。

HTTPセッションの上限が例外で判定できるようになりました。

JavaBeansのIDが重複している場合や，カスタムタグの属性名とTLDの定義で大文字・小文字が異なる場合に，トランスレーションエラーが発生することを抑止できるようになりました。

機能解説 基本・開発編(Webコンテナ)
2.3，2.7.5

cosminexus.xmlの提供
アプリケーションサーバ独自の属性をcosminexus.xmlに記載することによって，J2EEアプリケーションをJ2EEサーバにインポート後，プロパティの設定をしないで開始できるようになりました。
機能解説 基本・開発編(コンテナ共通機能)
11.3

(2)　標準機能への対応

標準機能への対応を目的として変更された項目を次の表に示します。

表A-31　標準機能への対応を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
Servlet 2.5への対応 | Servlet 2.5に対応しました。 | 機能解説 基本・開発編(Webコンテナ) | 2.2，2.5.4，2.6，6章
JSP 2.1への対応 | JSP 2.1に対応しました。 | 機能解説 基本・開発編(Webコンテナ) | 2.3.1，2.3.3，2.5，2.6，6章
JSPデバッグ | MyEclipseを使用した開発環境でJSPデバッグができるようになりました。※ | 機能解説 基本・開発編(Webコンテナ) | 2.4
タグライブラリのライブラリJARへの格納とTLDのマッピング | タグライブラリをライブラリJARに格納した場合に，Webアプリケーション開始時にWebコンテナによってライブラリJAR内のTLDファイルを検索し，自動的にマッピングできるようになりました。 | 機能解説 基本・開発編(Webコンテナ) | 2.3.4
application.xmlの省略 | J2EEアプリケーションでapplication.xmlが省略できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 11.4
アノテーションとDDの併用 | アノテーションとDDを併用できるようになり，アノテーションで指定した内容をDDで更新できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 12.5
アノテーションのJava EE 5標準準拠（デフォルトインターセプタ） | デフォルトインターセプタをライブラリJARに格納できるようになりました。また，デフォルトインターセプタからDIできるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 11.4
@Resourceの参照解決 | @Resourceでリソースの参照解決ができるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 12.4
JPAへの対応 | JPA仕様に対応しました。 | 機能解説 基本・開発編(コンテナ共通機能) | 5章，6章

注※　09-00以降では，WTPを使用した開発環境でJSPデバッグ機能を使用できます。

(3)　信頼性の維持・向上

信頼性の維持・向上を目的として変更された項目を次の表に示します。

表A-32　信頼性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
セッション情報の永続化 | HTTPセッションのセッション情報をデータベースに保存して引き継げるようになりました。 | 機能解説 拡張編 | 5章，6章
FullGCの抑止 | FullGCの要因となるオブジェクトをJavaヒープ外に配置することで，フFullGC発生を抑止できるようになりました。 | 機能解説 拡張編 | 8章
クライアント性能モニタ | クライアント処理に掛かった時間を調査・分析できるようになりました。 | － | －

（凡例）－：09-00で削除された機能です。

(4)　運用性の維持・向上

運用性の維持・向上を目的として変更された項目を次の表に示します。

表A-33　運用性の維持・向上を目的とした変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
運用管理ポータルでのアプリケーション操作性向上 | アプリケーションおよびリソースの操作について，サーバ管理コマンドと運用管理ポータルの相互運用ができるようになりました。 | 運用管理ポータル操作ガイド | 1.1.3

(5)　そのほかの目的

そのほかの目的で変更された項目を次の表に示します。

表A-34　そのほかの目的による変更

項目 | 変更の概要 | 参照先マニュアル | 参照個所
無効なHTTP Cookieの削除 | 無効なHTTP Cookieを削除できるようになりました。 | 機能解説 基本・開発編(Webコンテナ) | 2.7.4
ネーミングサービスの障害検知 | ネーミングサービスの障害が発生した場合に，EJBクライアントが，より早くエラーを検知できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 2.9
コネクション障害検知タイムアウト | コネクション障害検知タイムアウトのタイムアウト時間を指定できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 3.15.1
Oracle11gへの対応 | データベースとしてOracle11gが使用できるようになりました。 | 機能解説 基本・開発編(コンテナ共通機能) | 3章
バッチ処理のスケジューリング | バッチアプリケーションの実行をCTMによってスケジューリングできるようになりました。 | 機能解説 拡張編 | 4章
バッチ処理のログ | バッチ実行コマンドのログファイルのサイズ，面数，ログの排他処理失敗時のリトライ回数とリトライ間隔を指定できるようになりました。 | リファレンス 定義編(サーバ定義) | 3.6
snapshotログ | snapshotログの収集内容が変更されました。 | 機能解説 保守／移行編 | 付録A.1，付録A.2
メソッドキャンセルの保護区公開 | メソッドキャンセルの対象外となる保護区リストの内容を公開しました。 | 機能解説 運用／監視／連携編 | 付録C
統計前のガーベージコレクション選択機能 | クラス別統計情報を出力する前に，ガーベージコレクションを実行するかどうかを選択できるようになりました。 | 機能解説 保守／移行編 | 9.7
Survivor領域の年齢分布情報出力機能 | Survivor領域のJavaオブジェクトの年齢分布情報をJavaVMログファイルに出力できるようになりました。 | 機能解説 保守／移行編 | 9.11
ファイナライズ滞留解消機能 | JavaVMのファイナライズ処理の状態を監視して，処理の滞留を解消できるようになりました。 | － | －
サーバ管理コマンドの最大ヒープサイズの変更 | サーバ管理コマンドが使用する最大ヒープサイズが変更されました。 | リファレンス 定義編(サーバ定義) | 5.2，5.3
推奨しない表示名を指定された場合の対応 | J2EEアプリケーションで推奨しない表示名を指定された場合にメッセージが出力されるようになりました。 | メッセージ(構築／運用／開発用) | KDJE42374-W

（凡例）－：09-00で削除された機能です。

付録B　用語解説

マニュアルで使用する用語について

マニュアル「アプリケーションサーバ & BPM/ESB基盤 用語解説」を参照してください。

索引

[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｇ][Ｈ][Ｊ][Ｌ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｕ][Ｖ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(英字)

(Ａ)

add.jvm.arg〔Webコンテナサーバ用オプション〕

add.library.path

add.library.path〔Webコンテナサーバ用オプション〕

afterCompletionメソッドからのEnterprise Beanの呼び出しについて

(Ｂ)

beforeCompletionメソッドからのEnterprise Beanの呼び出しについて

Blobインタフェース

built-inフィルタ

built-inフィルタ

(Ｃ)

CallableStatementクラス

CallableStatementクラスでのバッチ更新

cjchmodapp

cjcldellog

cjclosecn

cjdumpweb

cjjsp2java

cjstartweb

cjstopweb

cjwebchangedbid

cjwebclearpool

cjwebclosepool

cjwebdeletepool

cjwebeditpool

cjwebeditpool

cjweblistpool

cjwebsetup

cjwebsetup

com.cosminexus.mngsvr.compat.monitor_view〔Management Server環境設定ファイルのキー〕

Component Container管理者

Connectionクラス

Connector属性ファイルのテンプレートファイル

cosmienv

cpp.library.version〔Webコンテナサーバ用オプション〕

(Ｄ)

DAB_HIRDB_DBINF_ESC

DAB_LANG

DABCPP_EVTTRC_LEVEL

DABCPP_EVTTRC_SIZE

DABEXSQL_TRC_LINE

DABHIRDBA_BLOBBUFSIZE

DABLANGMODE

DABORACLE_TYPE

DABORADBA_LONGBUFSIZE

DABroker Library運用ディレクトリ

DABroker Libraryで開発するアプリケーション

DABroker Libraryで取得できるログの種類と出力先

DABroker Libraryで使用するAPIの一覧

DABroker Libraryで使用するコマンドの一覧

DABroker Library動作環境定義ファイル

DABroker Libraryのイベントトレースの出力項目

DABroker Libraryの管理ユーザ

DABroker Libraryのスプール情報の内容

DABroker Libraryのセットアップ

DABroker Libraryのセットアップ

DABroker Libraryのディレクトリ構成

DABroker Libraryのディレクトリ構成〔windowsの場合〕

DABroker Libraryの動作環境の設定（UNIXの場合）

DABroker Libraryの動作環境の設定（Windowsの場合）

DABroker Libraryのトレースファイル運用時の留意事項

DABroker Libraryのメモリ所要量

［DABroker動作環境設定］ダイアログ

DABSELECTCOLCNT

DABSELECTINFCNT

dabsetup

DABSQL_HiRDB_DICTIONARY_DATATYPE

DABSVLOGSIZE

DABTMP

DABXA_LOG_ERROR

dasysconf

DatabaseMetaDataクラス

DataSourceオブジェクトの生成

DataSourceクラス

DBConnector_DABJ_CP.rarまたはDBConnector_DABJ_CP_Cosminexus_RM.rarを使用する場合に指定できるプロパティ

DBConnector_DABJ_XA.rarまたはDBConnector_DABJ_XA_Cosminexus_RM.rarを使用する場合に指定できるプロパティ

Driverクラス

(Ｅ)

ejbserver.application.InitTermProcessClasses〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.appname〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.count〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.encoding〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.filter〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.formatter〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.level〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.limit〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.msgid〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.path〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.CJLogHandler.<ハンドラ名称>.separator〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.Logger.<ロガー名称>.filter〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.Logger.<ロガー名称>.handlers〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.Logger.<ロガー名称>.level〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.Logger.<ロガー名称>.useParentHandlers〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.application.userlog.loggers〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.client.ctm.RequestPriority〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.client.log.directorynum〔Javaアプリケーション〕

ejbserver.container.rebindpolicy〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.deploy.applications.metadata_complete〔J2EEサーバのカスタマイズ用キー〕

ejbserver.jdbc.propertyInfo.BUF_SIZE〔J2EEサーバのカスタマイズ用キー〕

ejbserver.jdbc.propertyInfo.ENCODELANG〔J2EEサーバのカスタマイズ用キー〕

ejbserver.jndi.cache

ejbserver.jndi.cache.interval

ejbserver.jndi.cache.interval.clear.option

ejbserver.jndi.cache.interval.clear.option〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.cache.interval〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.cache.reference〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.cache〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.namingservice.group.<Specify group name>.providerurls〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.namingservice.group.list〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jndi.request.timeout

ejbserver.jndi.request.timeout〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jta.pooldeffile.scramble.enabled〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.jta.TransactionManager.defaultTimeOut〔J2EEサーバのカスタマイズ用キー〕

ejbserver.jta.TransactionManager.defaultTimeOut〔Javaアプリケーション〕

ejbserver.jta.TransactionManager.enlist.compatibleMode.enabled〔J2EEサーバのカスタマイズ用キー〕

ejbserver.logger.channels.define.<チャネル名>.filenum

ejbserver.logger.channels.define.<チャネル名>.filenum〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.logger.channels.define.<チャネル名>.filesize

ejbserver.logger.channels.define.<チャネル名>.filesize〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.logger.enabled.*

ejbserver.logger.enabled.*〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.logger.rotationStyle〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.logger.rotationTime〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.rmi.request.timeout

ejbserver.rmi.request.timeout〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.server.j2ee.feature

ejbserver.server.j2ee.feature〔J2EEサーバのカスタマイズ用キー〕

ejbserver.server.prf.PRFID〔Webコンテナサーバのカスタマイズ用キー〕

ejbserver.stdoutlog.autoflush〔Webコンテナサーバのカスタマイズ用キー〕

EJBコンテナとの連携

EJB呼び出し時のモードの判別

Exceptionトレースログ

Exceptionトレースログ取得の設定

Exceptionトレースログとして出力される情報

Exceptionトレースログの出力項目

Exceptionトレースログのファイル

(Ｇ)

getBlockUpdateメソッド

getBlockUpdateメソッド

getBufferPoolSizeメソッド

getBufSizeメソッド

getDatabaseNameメソッド

getDBEnvメソッド

getDBHostNameメソッド

getDescriptionメソッド

getEncodLangメソッド

getExecuteDirectModeメソッド

getExecuteDirectModeメソッド

getHiRDBCursorModeメソッド

getJDBC_IF_TRCメソッド

getLONGVARBINARY_Accessメソッド

getNetworkProtocolメソッド

getNotErrorOccurredメソッド

getOSAuthorizeメソッド

getPasswordメソッド

getPortNumberメソッド

getRMIDメソッド

getRowSizeメソッド

getServerNameメソッド

getSQLWarningIgnoreメソッド

getSV_EVENT_TRCメソッド

getTRC_NOメソッド

getUapNameメソッド

getUserメソッド

getXACloseStringメソッド

getXALocalCommitModeメソッド

getXAOpenStringメソッド

getXAThreadModeメソッド

(Ｈ)

HiRDB環境変数区切り文字

HiRDBのBLOB型データ受取バッファサイズ

HiRDBの設定

HiRDBのディクショナリ表のデータ属性

HiRDBの場合のバッチ更新

hitachi_web.properties

hitachi_web.properties

HTTP Cookie情報の破棄

HTTP Cookieによるグローバルセッションの制御

HTTP Cookieによる制御

HTTP Cookieによる制御

HTTP Cookieの有効期限

HttpSessionオブジェクトの有効期限が切れた場合の処理

(Ｊ)

J2EEアプリケーション運用のための設定

J2EEアプリケーション運用のための設定

J2EEアプリケーション開始時の処理

J2EEアプリケーションのテスト機能

J2EEアプリケーションの動作モードの変更

J2EEアプリケーションを入れ替える場合にテストモードを使用する

J2EEサーバ起動時の処理〔セッションフェイルオーバ〕

J2EEサーバ停止時のセッション情報の引き継ぎ

J2EEサーバのコネクションクローズまたはコネクションの状態表示

J2EEサーバの設定

J2EEサーバ用ユーザプロパティファイル

java.naming.factory.initial〔Webコンテナサーバのカスタマイズ用キー〕

java.naming.provider.url〔Webコンテナサーバのカスタマイズ用キー〕

javagcコマンド

JavaVMのスレッドダンプ取得の設定

JavaVMログ取得の設定

JavaVMログファイル

javax.annotationパッケージに含まれるアノテーションのサポート範囲

javax.ejbパッケージに含まれるアノテーションのサポート範囲

Javaアプリケーション用ユーザプロパティファイル

JDBC2.0拡張機能で提供する機能のトレースを取得するための情報の指定

JDBC2.0拡張機能の概要

JDBC2.0拡張機能を使用したデータベース接続の設定

JDBC2.0の概要

JdbcDbpsvDataSourceクラス

JdbcDbpsvXADataSourceクラス

JDBC SQLタイプの扱い

JDBCインタフェースメソッドのトレースの出力項目

JDBCドライバのトレース（DABroker Libraryとのイベントトレース）

JDBCドライバのトレース（JDBCインタフェースメソッドトレース）

JDBCドライバのトレース情報の取得

JDBCドライバのトレースファイル

JNDIからの情報の取得

JNDIへの情報の登録

JNDI連携

JSPコンパイル結果の出力先の設定〔サーブレットエンジンモード〕

JSPソースのチェック

JSPタグライブラリ

JSPファイル更新用インターバル

JSPファイル更新用インターバル

JSPファイルのコンパイル結果の保持

JSPファイルのコンパイル結果の保持

JSPファイルのコンパイル結果の保持の設定

JSPファイルの再コンパイル

JSPファイルの再コンパイルに関する設定項目と設定ファイル

JSP用一時ディレクトリのディレクトリ構成

JTAによるトランザクション実装時の注意事項

jvm.type〔Webコンテナサーバ用オプション〕

(Ｌ)

LANG環境変数

LimitRequestLineディレクティブ

(Ｎ)

NLS_LANG

(Ｏ)

ORACLE_HOME

ORACLE_SID

Oracleと接続する場合の注意事項

ORACLEのLONG型データ受取バッファサイズ

Oracleの設定

Oracleの場合のバッチ更新

(Ｐ)

PDCLTPATH

PDHOST

PDNAMEPORT

PDSQLTRACE

PDSWAITTIME

PDUAPERLOG

PreparedStatementクラス

PreparedStatementクラスでのバッチ更新

PRFトレース取得レベル

PRFトレースファイル

(Ｒ)

ResultSetMetaDataクラス

ResultSetクラス

ResultSetタイプ

ResultSetの拡張

RMI-IIOP通信のタイムアウト

(Ｓ)

SecurityManager定義ファイル

SecurityManagerによるWebコンテナの実行時の保護

SessionSynchronizationのメソッド呼び出しについての注意

setBlockUpdateメソッド

setBlockUpdateメソッド

setBufferPoolSizeメソッド

setBufSizeメソッド

setDatabaseNameメソッド

setDBEnvメソッド

setDBHostNameメソッド

setDescriptionメソッド

setEncodLangメソッド

setExecuteDirectModeメソッド

setExecuteDirectModeメソッド

setHiRDBCursorModeメソッド

setJDBC_IF_TRCメソッド

setLONGVARBINARY_Accessメソッド

setNetworkProtocolメソッド

setNotErrorOccurredメソッド

setOSAuthorizeメソッド

setPasswordメソッド

setPortNumberメソッド

setRMIDメソッド

setRowSizeメソッド

setServerNameメソッド

setSQLWarningIgnoreメソッド

setSV_EVENT_TRCメソッド

setTRC_NOメソッド

setUapNameメソッド

setUserメソッド

setXACloseStringメソッド

setXALocalCommitModeメソッド

setXAOpenStringメソッド

setXAThreadModeメソッド

SFOサーバ

SFOサーバアプリケーション

SFOサーバ停止時のセッション情報の引き継ぎ

SFOサーバでのJ2EEサーバの切断検知

SFOサーバでのグローバルセッション情報の管理

SFOサーバに障害が発生した場合のHttpSessionオブジェクトの最大数

SFOサーバに障害が発生した場合のグローバルセッション情報

SFOサーバの障害発生時のグローバルセッションIDの発行

SFOサーバの障害発生時のセッション情報の引き継ぎ

SFOサーバの設定

SFOサーバの複数配置

SFOサーバを複数配置するときの推奨構成

Stateful Session Bean実装時の注意事項

Statementクラス

Statementクラスでのバッチ更新

(Ｕ)

uatags.jar

uatags.tld

URL書き換えによって制御する場合の負荷分散

URL書き換えによるグローバルセッションの制御

URL書き換えによる制御

URL書き換えによる制御の前提条件

URL書き換えによる制御をする場合のアプリケーションの実装

usrconf.cfg

usrconf.cfg

usrconf.properties

usrconf.properties

usrconf.properties

usrconf.properties

(Ｖ)

vbroker.orb.htc.comt.entryCount

vbroker.orb.htc.comt.entryCount〔Webコンテナサーバのカスタマイズ用キー〕

vbroker.orb.htc.comt.fileCount

vbroker.orb.htc.comt.fileCount〔Webコンテナサーバのカスタマイズ用キー〕

vbroker.orb.htc.tracePath

vbroker.orb.htc.tracePath〔Webコンテナサーバのカスタマイズ用キー〕

(Ｗ)

web.add.class.path

web.add.class.path〔Webコンテナサーバ用オプション〕

web.policy

web.policy

web.server.corefilenum〔Webコンテナサーバ用オプション〕

web.server.log.directory

web.server.log.directory

web.server.log.directory

web.server.log.directory〔Webコンテナサーバ用オプション〕

web.server.log.stderr.filesize〔Webコンテナサーバ用オプション〕

web.server.log.stdout.filesize〔Webコンテナサーバ用オプション〕

web.xml

web.xmlの記述内容とサーバの動作

web.xmlの記述内容とサーブレットエンジンモードの場合のサーバの動作

web-users.xml

web-users.xml

webserver.connector.ajp12.backlog〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp12.max_threads〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp12.port〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.backlog〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.bind_host〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.max_threads

webserver.connector.ajp13.max_threads〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.port〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.receive_timeout

webserver.connector.ajp13.receive_timeout〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.ajp13.send_timeout〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.http.bind_host〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.http.bind_host〔バッチサーバ用のキー〕

webserver.connector.http.enabled

webserver.connector.http.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.http.permitted.hosts

webserver.connector.http.permitted.hosts〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.http.permitted.hosts〔バッチサーバ用のキー〕

webserver.connector.http.port〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.limit.max_parameter_count〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.limit.max_post_form_data〔Webコンテナサーバのカスタマイズ用キー〕

webserver.connector.redirect_https.port

webserver.connector.redirect_https.port〔Webコンテナサーバのカスタマイズ用キー〕

webserver.container.ac.logEnabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.container.server_id.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.container.server_id.name〔Webコンテナサーバのカスタマイズ用キー〕

webserver.container.server_id.value〔Webコンテナサーバのカスタマイズ用キー〕

webserver.container.servlet.default_mapping.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.context.check_interval〔Webコンテナサーバのカスタマイズ用キー〕

webserver.context.reload_delay_timeout〔Webコンテナサーバのカスタマイズ用キー〕

webserver.context.reload_delay_timeout〔Webコンテナサーバ用〕

webserver.context.reloadable〔Webコンテナサーバのカスタマイズ用キー〕

webserver.context.reloadable〔Webコンテナサーバ用〕

webserver.context.update.interval〔Webコンテナサーバのカスタマイズ用キー〕

webserver.context.update.interval〔Webコンテナサーバ用〕

webserver.errorpage.stack_trace.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.http.request.uri_decode.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.additional.import.list〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.check_interval〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.compile.backcompat〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.keepgenerated〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.keepgenerated〔Webコンテナサーバ用〕

webserver.jsp.recompilable〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.recompilable〔Webコンテナサーバ用〕

webserver.jsp.translation.backcompat.customAction.declareVariable〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.translation.backcompat.tag.noCheckRtexprvalue〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.translation.backcompat.tag.rtexprvalueTerminate〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.translation.backcompat.taglib.noCheckPrefix〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.translation.backcompat.useBean.noCheckClass〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.update.interval〔Webコンテナサーバのカスタマイズ用キー〕

webserver.jsp.update.interval〔Webコンテナサーバ用〕

webserver.servlet_api.exception.getCause.backcompat〔Webコンテナサーバのカスタマイズ用キー〕

webserver.session.persistence.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.session.persistence.enabled〔Webコンテナサーバ用〕

webserver.session.server_id.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.session.server_id.value〔Webコンテナサーバのカスタマイズ用キー〕

webserver.session.work.directory〔Webコンテナサーバのカスタマイズ用キー〕

webserver.sfo.check_size.mode〔J2EEサーバのカスタマイズ用キー〕

webserver.sfo.negotiation.ignore_serverId〔J2EEサーバのカスタマイズ用キー〕

webserver.sfo.sfo_server.<SFOサーバ名>.connectionTimeout〔J2EEサーバのカスタマイズ用キー〕

webserver.sfo.sfo_server.<SFOサーバ名>.naming〔J2EEサーバのカスタマイズ用キー〕

webserver.sfo.sfo_servers〔J2EEサーバのカスタマイズ用キー〕

webserver.shutdown.port〔Webコンテナサーバのカスタマイズ用キー〕

webserver.static_content.cache.enabled〔Webコンテナサーバのカスタマイズ用キー〕

webserver.static_content.cache.filesize.threshold〔Webコンテナサーバのカスタマイズ用キー〕

webserver.static_content.cache.size〔Webコンテナサーバのカスタマイズ用キー〕

webserver.work.clean

webserver.work.clean〔Webコンテナサーバのカスタマイズ用キー〕

webserver.work.directory

webserver.work.directory〔Webコンテナサーバのカスタマイズ用キー〕

webserver.xml.validate〔Webコンテナサーバのカスタマイズ用キー〕

webserver.xml.validate〔Webコンテナサーバ用〕

Webアプリケーションに組み込むサーブレットフィルタ〔サーブレットエンジンモード〕

Webアプリケーションのアンデプロイ

Webアプリケーションのアンデプロイ〔サーブレットエンジンモード〕

Webアプリケーションの更新検知とリロード

Webアプリケーションの実行

Webアプリケーションの設定情報の削除

Webアプリケーションのディレクトリ構成

Webアプリケーションのデプロイ

Webアプリケーションのデプロイ

Webアプリケーションのデプロイと設定〔サーブレットエンジンモード〕

Webアプリケーションのユーザログ出力

Webアプリケーションのユーザログ出力の設定

Webアプリケーションのリロード

Webアプリケーションのリロード〔サーブレットエンジンモード〕

Webアプリケーションのリロードの条件

Webアプリケーション呼び出し時のモードの判別

Webコンテナコネクションプール機能の利用方法

Webコンテナサーバで使用するコマンド

Webコンテナサーバで使用するファイル

Webコンテナサーバの移行コマンドで自動的に追加される定義

Webコンテナサーバの開始

Webコンテナサーバのカスタマイズ用キー

Webコンテナサーバの起動

Webコンテナサーバの作業ディレクトリ

Webコンテナサーバのスレッドダンプの取得

Webコンテナサーバのセットアップ

Webコンテナサーバのセットアップとアンセットアップ

Webコンテナサーバの停止

Webコンテナサーバの停止

Webコンテナサーバの動作設定のカスタマイズ

Webコンテナサーバの予約済みキー

Webコンテナサーバのログ取得の設定

Webコンテナサーバ用Webアプリケーションプロパティファイル

Webコンテナサーバ用オプション定義ファイル

Webコンテナサーバ用ユーザプロパティファイル

Webコンテナ単位での同時実行スレッド数の制御

Webコンテナのセキュリティ管理

Webコンテナの通信タイムアウト

Webサーバで使用するホストの固定

Webサーバの使用方法〔サーブレットエンジンモード〕

WebサーバまたはJ2EEサーバの障害発生時のセッション情報の引き継ぎ

(Ｘ)

XAトレースの取得形式

XAトレースを取得する

XDM/RD E2の設定

(ア行)

(あ)

アノテーション参照抑止機能の設定変更

アプリケーションサーバ 09-70での主な機能変更

アプリケーションサーバの移行の概要〔サーブレットエンジンモードの場合〕

アプリケーションサーバの移行の手順〔サーブレットエンジンモードの場合〕

アプリケーションサーバの機能

アプリケーションのイベントリスナ

アプリケーションの更新検知とリロードの設定

アプリケーションの実行基盤としての機能

アプリケーションの実行基盤を運用・保守するための機能

アプリケーションのモード切り替え

アプリケーションを実行するときに追加される属性

(い)

移行前の確認〔サーブレットエンジンモードの場合〕

イベントトレース

(え)

エラー時のJDBCドライバの処理

エラートレース

エラートレースのエラー事象を示す情報の出力項目

エラートレースのデータベース接続情報の出力項目

エラートレースの履歴情報の出力項目

エラートレースファイル

(カ行)

(か)

下位互換用のクラスローダ構成

回復機能

書き換え可能グローバルセッション情報

各実行環境の設定内容の例

拡張スレッドダンプ

拡張スレッドダンプ

拡張データベースアクセストレース

拡張データベースアクセストレース設定項目

DABSQL_TRC_ATTACH（ATTACH）

DABSQL_TRC_ATTRGET（ATTRGET）

DABSQL_TRC_ATTRSET（ATTRSET）

DABSQL_TRC_AUTO_COMMIT_OFF（AUTO COMMIT OFF）

DABSQL_TRC_AUTO_COMMIT_ON（AUTO COMMIT ON）

DABSQL_TRC_BIND（BIND）

DABSQL_TRC_CANCEL（CANCEL）

DABSQL_TRC_CHARFORM（CHARFORM）

DABSQL_TRC_CHARID（CHARID）

DABSQL_TRC_CLOSE（CLOSE）

DABSQL_TRC_COMMIT（COMMIT）

DABSQL_TRC_CONNECT（CONNECT）

DABSQL_TRC_DECLARE（DECLARE）

DABSQL_TRC_DEFINE（DEFINE）

DABSQL_TRC_DESALLOC（DESALLOC）

DABSQL_TRC_DESCANY（DESCANY）

DABSQL_TRC_DESCRIBE（DESCRIBE）

DABSQL_TRC_DESFREE（DESFREE）

DABSQL_TRC_DETACH（DETACH）

DABSQL_TRC_DISCONNECT（DISCONNECT）

DABSQL_TRC_ENVCREATE（ENVCREATE）

DABSQL_TRC_ERRGET（ERRGET）

DABSQL_TRC_EXECUTE_DIRECT（EXECUTE DIRECT）

DABSQL_TRC_EXECUTE（EXECUTE）

DABSQL_TRC_FETCH（FETCH）

DABSQL_TRC_GET_INFO（GET INFO）

DABSQL_TRC_GETDIAG（GETDIAG）

DABSQL_TRC_GETPIECE（GETPIECE）

DABSQL_TRC_HDLALLOC（HDLALLOC）

DABSQL_TRC_HDLFREE（HDLFREE）

DABSQL_TRC_LOBCLOSE（LOBCLOSE）

DABSQL_TRC_LOBLEN（LOBLEN）

DABSQL_TRC_LOBOPEN（LOBOPEN）

DABSQL_TRC_LOBREAD（LOBREAD）

DABSQL_TRC_LOBWRITE（LOBWRITE）

DABSQL_TRC_LOGGING（LOGGING）

DABSQL_TRC_LOGLESS（LOGLESS）

DABSQL_TRC_OPEN（OPEN）

DABSQL_TRC_PARAMGET（PARAMGET）

DABSQL_TRC_PREPARE（PREPARE）

DABSQL_TRC_ROLLBACK（ROLLBACK）

DABSQL_TRC_SESBEGIN（SESBEGIN）

DABSQL_TRC_SESEND（SESEND）

DABSQL_TRC_SET_INFO（SET INFO）

DABSQL_TRC_SETPIECE（SETPIECE）

拡張データベースアクセストレースの出力項目

拡張データベースアクセストレースファイル

拡張データベースアクセストレースを取得する

拡張データベーストレースのファイル名称の規則

簡易Webサーバ機能

簡易Webサーバ機能

簡易Webサーバ機能を使用するかどうかの設定

簡易Webサーバへのアクセス許可

簡易Webサーバへのアクセスの制御

漢字コードセット

管理機能用のWebアプリケーション

管理用サーバ

(き)

起動順序の依存関係

機能とマニュアルの対応

機能の分類

機能レイヤ

旧バージョンからの仕様変更の確認〔サーブレットエンジンモードの場合〕

(く)

グローバルセッションID

グローバルセッションIDの形式

グローバルセッションIDの送信に使用するURLのパスパラメタ

グローバルセッションIDを送信するHTTP Cookieの名称

グローバルセッション情報

グローバルセッション情報が引き継がれるセッションの条件

グローバルセッション情報の格納

グローバルセッション情報の更新

グローバルセッション情報のサイズの見積もり

グローバルセッション情報のサイズ見積もり機能

グローバルセッション情報の最大数

グローバルセッション情報の削除

グローバルセッション情報の種別

グローバルセッション情報の排他制御

グローバルセッション情報のロック

グローバルセッションの制御方法

グローバルセッションの制御方法が混在する場合のシステム構成

グローバルセッションを利用したセッション管理（メモリセッションフェイルオーバ機能）

(け)

検索データ取得時のデータ変換

(こ)

更新・検索条件カラム数

更新検知のインターバル

更新検知のインターバル

更新検知のインターバル

更新検知のインターバル

構築済み実行環境の切り替えで出力するログの出力形式と出力項目（UNIXの場合）

構築済み実行環境の切り替えで出力するログの取得

構築済み実行環境の切り替え手順

構築済み実行環境の切り替えで使用するコマンド

構築済み実行環境の切り替えの概要

構築済み実行環境の切り替えの流れ

構築済み実行環境を切り替えるための準備

コネクションスイーパの動作

コネクションプーリングとコネクションスイーパの動作

コネクションプーリングの設定

コネクションプーリングの動作

コネクションを共有する場合の留意点

このマニュアルに記載している機能の説明

コンテキストルート

コンテキストルート名

コンテナ拡張ライブラリ

コンテナ拡張ライブラリの設定

(サ行)

(さ)

サーバの状態とグローバルセッション情報の引き継ぎ

サーブレットエンジンモード

サーブレットエンジンモード

サーブレットエンジンモードで使用できるWebコンテナの機能

サーブレットエンジンモードでのシステム構築

サーブレットエンジンモードでのリソース接続

サーブレットエンジンモードとJ2EEサーバモードの比較

サーブレットエンジンモードの場合の移行

サーブレットコンテキストへの属性追加

サーブレットとJSPのリファレンス定義

再コンパイル機能を使用するための設定

再コンパイルに関する設定

作業ディレクトリ

作業ディレクトリのパス長の見積もり式

削除機能

作成されるスレッドの種類と数

作成されるスレッドの総数

サブディレクトリ専有モード

(し)

システム内に複数のSFOサーバを配置する場合の設定例

システムの起動および停止方法〔サーブレットエンジンモード〕

システムの構築方法〔サーブレットエンジンモード〕

システムログの出力先

受信バッファのプーリングの設定

手動による定義などの修正〔サーブレットエンジンモードの場合〕

使用するJDBCドライバの設定

使用するORACLEのバージョン

使用するメモリ，スレッド数，ポート番号〔サーブレットエンジンモード〕

使用できるJava EEおよびJ2EEの機能

使用できるJava EEおよびJ2EEの機能

使用できるアプリケーションサーバの機能〔サーブレットエンジンモード〕

使用できるアプリケーションサーバの機能〔ベーシックモード〕

使用できる機能の一覧〔サーブレットエンジンモード〕

使用できる機能の一覧〔ベーシックモード〕

シリアライズおよびデシリアライズに失敗する原因

新規作成したJ2EEアプリケーションをテストモードで実行する

(す)

スクロール型ResultSet使用時の注意点

スクロールタイプ

(せ)

静的コンテンツのキャッシュ

性能解析トレースの利用によるJ2EEアプリケーションの動作モードの確認

性能解析トレースファイル

セキュリティロール使用時の設定について

セッション情報の引き継ぎ処理

セッション情報ファイル

セッションフェイルオーバ用フィルタ

セッションフェイルオーバ用フィルタの処理

接続するデータベースの設定

接続できるリソース

接続できるリソース

接続できるリソースとトランザクションの管理方法

接続できるリソースとトランザクションの管理方法

接続プール

(タ行)

(た)

ダイナミッククラスローディング機能

退避環境

退避環境一覧出力機能

退避環境作成時に退避対象となるファイル

退避環境作成時に退避対象となるファイル

退避機能

退避作業が必要なファイル

退避作業が必要なファイルと作業方法

退避作業が不要なファイル

退避作業が不要なファイル

退避作業が不要なファイル

退避作業が不要なファイル

(ち)

チューニング項目

(つ)

通常モード

通信路の暗号化レベルの要請

(て)

定義などのバックアップ〔サーブレットエンジンモードの場合〕

ディスク容量の確認

データ型の対応

データソース

データソースからDB Connectorへの移行方法

データソース設定ファイル

データソース属性ファイル

データソースによるデータベースへの接続で使用できる機能

データソースのインポート

データソースの稼働情報監視

データソースの稼働情報監視（稼働情報）

データソースの稼働情報監視（基本情報）

データソースの削除

データソースの設定

データソースへのリファレンス定義

データベースIDの変更

データベース接続の前提条件

データベース接続の前提条件

データベース接続のための設定

データベース接続のための設定

データベースとアプリケーション間の文字コード変換

データベースと接続中にトラブルが発生した場合

データベースとの接続

データベースとの接続〔サーブレットエンジンモード〕

データベースの設定

データベースへの接続

テストモード

テストモード使用の前提条件

テストモードで動作しているEJBの呼び出し

テストモードで動作しているJ2EEアプリケーション情報の取得

テストモードで動作しているJ2EEアプリケーションに対してできる動作

テストモードで動作しているJ2EEアプリケーションに対する処理

テストモードで動作しているWebアプリケーションの呼び出し

テストモードで動作中のアプリケーションに対してできる操作

テストモードでのEnterprise Bean呼び出しについての注意事項

テストモードでのJ2EEアプリケーションの動作確認（入れ替え時）

テストモードでのJ2EEアプリケーションの動作確認（新規作成時）

テストモードでのJ2EEアプリケーション呼び出し時の注意事項

テストモードでのWebアプリケーション呼び出しについての注意事項

テストモードによるJ2EEアプリケーションの実行

テストモードを使用するための設定

(と)

統計情報の取得

統合ユーザ管理機能の設定

同時実行スレッド数の制御

ドメイン名指定でのトップページの表示

ドメイン名指定でのトップページの表示

トランザクションの管理方法

トレース共通ライブラリ

トレース共通ライブラリ形式

トレース取得サイズ

トレース取得ポイント

トレース取得レベル

トレースファイルサイズ

トレースを取得するための情報の設定

(ナ行)

(に)

入出力ストリーム利用時の注意

(ね)

ネーミングサービスの通信タイムアウト

ネーミングのキャッシング

ネゴシエーションが失敗した場合の対処

(ハ行)

(は)

バインド先アドレス設定機能

バッチ更新

パフォーマンスチューニング

(ひ)

表検索カラム数

(ふ)

プール管理情報設定ファイル

プール管理情報設定ファイル

プール管理情報の一覧表示

プール管理情報の削除

プール管理情報の登録と変更

プール内のコネクションの強制切断

プール内のコネクションのクリア

複数の構築済み実行環境の切り替え

プロセスの依存関係とプロセスの再起動方法

プロセスの再起動方法

分散トランザクション機能

(へ)

並行処理タイプ

ベーシックモード

ベーシックモードでデータベースに接続する場合の運用管理（互換用機能）

ベーシックモードでのリソース接続

ベーシックモードの概要

ベーシックモードの設定

ベーシックモードの場合のプロセスの依存関係

ベーシックモードの場合のプロセスの再起動方法

(マ行)

(む)

無効なグローバルセッションIDが送られた場合の処理

(め)

メッセージログ

メモリセッションフェイルオーバ機能

メモリセッションフェイルオーバ機能

メモリセッションフェイルオーバ機能使用時の障害検知

(ヤ行)

(ゆ)

ユーザスレッドの使用方法

ユーザ認証情報定義ファイル

(よ)

読み込み専用グローバルセッション情報

(ラ行)

(り)

リクエスト実行時の処理

リクエストラインの最大サイズの設定

リソース更新用インターバル

リソース更新用インターバル

リソースへの接続テスト

リロード機能を使用するための設定

リロード時のセッション引き継ぎ

リロード処理の流れ

リロード遅延実行

リロード遅延実行

リロード時のセッション引き継ぎ

リロードに関する設定項目と設定ファイル

(ろ)

ロード対象のクラスとロード時に必要なクラスパス

ログサイズの変更

ログ出力先のサブディレクトリ数の管理

ログの出力先

ログの出力先の変更

ログの出力先や出力レベルの変更

ログの出力先を設定するユーザ定義ファイル（サーブレットエンジンモードの場合）

ログファイルサイズ［dabsv.log］

ログレベルの変更

ロック待ち

■ 商標類

Active Directoryは，米国Microsoft Corporationの，米国およびその他の国における登録商標または商標です。
AX2000は，A10 Networks, Inc.の商品名称です。
BIG-IP，3-DNS，iControl Services Manager，FirePass　および F5 は F5 Networks, Inc. の商標または登録商標です。
BSAFEは，米国EMC コーポレーションの米国およびその他の国における商標または登録商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HP-UXは，Hewlett-Packard Development Company,L.P.のオペレーティングシステムの名称です。
IBM，AIXは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
IIOPは，OMG仕様によるORB(Object Request Broker)間通信のネットワークプロトコルの名称です。
Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MyEclipseは，米国Genuitec社の商品名称です。
OMG，CORBA，IIOP，UML，Unified Modeling Language，MDA，Model　Driven　Architectureは，Object Management Group, Inc.の米国及びその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
RSAは，米国EMC コーポレーションの米国およびその他の国における商標または登録商標です。
SOAP（Simple Object Access Protocol）は，分散ネットワーク環境においてXMLベースの情報を交換するための通信プロトコルの名称です。
すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。
SQL Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
UNIXは，The Open Groupの米国ならびに他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).