7.4.2 連携できるJava EEアプリケーションサーバ
HiRDBでは,次に示すJava EEアプリケーションサーバと連携できます。
-
Cosminexus
-
JBoss Enterprise Application Platform
(1) Cosminexus
CosminexusをサポートしているJDBCドライバの種別を次の表に示します。
JDBCドライバ種別 |
サポート |
|
---|---|---|
Type2 JDBCドライバ |
× |
|
Type4 JDBCドライバ |
JDBC2.0版 |
○ |
JDBC4.0版 |
○ |
- (凡例)
-
○:サポート
×:未サポート
(a) 設定方法
設定方法についてはCosminexusのマニュアルを参照してください。
(b) Cosminexus連携時に考慮が必要になる機能
- ●各種トレースファイル,監査証跡ファイル
-
- ・トレースファイル名
-
システムプロパティejbserver.serverNameによって指定されるJ2EEサーバのサーバ名からトレースファイル名が決まります。トレースファイル名を次の表に示します。
表7‒7 トレースファイルの種類とトレースファイル名 トレースファイルの種類
トレースファイル名
Exceptionトレースログ
<サーバ名>exc{1|2}.trc
不正電文トレース
<サーバ名>dataerr{1|2}.trc
- ・トレースファイルの出力先
-
JDBCドライバが出力する各種トレースファイルは,クライアント環境定義PDCLTPATHなどで出力先を明示的に指定していない場合,J2EEサーバのカレントディレクトリに出力します。具体的な出力先を次に示します。
-
J2EEサーバの作業ディレクトリがデフォルトの場合
<インストール先ディレクトリ>¥CC¥Server¥public¥ejb¥<サーバ名>
-
J2EEサーバの作業ディレクトリを変更している場合
<作業ディレクトリ>¥ejb¥<サーバ名>
J2EEサーバのカレントディレクトリについて,詳細はCosminexusのマニュアルを参照してください。
-
- ・ルートアプリケーション情報
-
ルートアプリケーション情報とはCosminexusのPRFトレースに出力される情報であり,Cosminexusを呼び出すクライアントからの個々のリクエストを識別するために使用できます。HiRDBでは次のファイルで出力しているため,ルートアプリケーション情報によってCosminexusのPRFトレースと関連づけることで,どのリクエストの延長で出力された情報であるかを判別できます。
-
監査証跡ファイル
-
PRFトレース
-
SQLトレース
-
Exceptionトレースログ
-
- ・再接続トレース機能
-
自動再接続機能で再接続された場合,再接続トレース機能を使用すると,CosminexusのPRFトレース機能で出力されるトレース中の接続情報を追跡できます。
詳細はマニュアル「HiRDB Version 9 UAP開発ガイド」の「再接続トレース機能」を参照してください。
- ●クライアント環境定義
-
- ・UAP名称
-
クライアント環境定義PDCLTAPNAMEを省略した場合,システムプロパティejbserver.serverNameによってJ2EEサーバのサーバ名からUAP名称が決まります。UAP名称を次の表に示します。なお,PDCLTAPNAME以外のUAP名称の指定方法については,マニュアル「HiRDB Version 9 UAP開発ガイド」の「接続情報の優先順位」を参照してください。
表7‒8 JDBCドライバとUAP名称 JDBCドライバ
UAP名称
JDBC2.0版
JDBC20_<サーバ名>
JDBC4.0版
JDBC40_<サーバ名>
(c) 注意事項
-
クライアント環境定義PDUSERで指定したユーザ名/パスワードは無効になります。ユーザ名/パスワードは,CosminexusのConnector属性ファイルのプロパティ値として設定してください。
-
使用するJDBCドライバをDABroker for JavaからType4 JDBCドライバへ移行する場合,UAPの修正が必要になることがあります。詳細はマニュアル「HiRDB Version 9 UAP開発ガイド」の「DABroker for Javaからの移行」を参照してください。
(2) JBoss Enterprise Application Platform
JBoss Enterprise Application Platform(以降,JBossと表記)をサポートしているJDBCドライバの種別を次の表に示します。
JDBCドライバ種別 |
サポート |
|
---|---|---|
Type2 JDBCドライバ |
× |
|
Type4 JDBCドライバ |
JDBC2.0版 |
× |
JDBC4.0版 |
○ |
- (凡例)
-
○:サポート
×:未サポート
(a) 設定方法
JDBCドライバを使用するまでの手順を次に示します。
-
JDBCドライバをコアモジュールとして追加
-
JDBCドライバの登録
-
データソースの追加
2,3については,管理CLI又は管理コンソールを使用します。管理CLIを使用した場合の手順を次に示します。
-
JDBCドライバをコアモジュールとして追加
モジュールとは,JBossでのクラスローディング及び依存関係管理に使用されるクラスの論理グループのことを指します。JDBCドライバにクラスパスを通すために,JDBCドライバ(pdjdbc4.jar)をコアモジュールとして追加します。
モジュール名をcom.hirdbとした場合の設定例を次に示します。
次のディレクトリを作成してください。
<JBossインストールディレクトリ>¥modules¥com¥hirdb¥main¥
作成したディレクトリに,次に示すmodule.xmlファイルとJDBCドライバを格納してください。
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.hirdb"> <resources> <resource-root path="pdjdbc4.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
-
JDBCドライバの登録
管理CLIコマンドで次のコマンドを実行してください。
/subsystem=datasources/jdbc-driver=<JDBCドライバ名>: add(driver-name=<JDBCドライバ名>,driver-module-name=<モジュール名>, driver-xa-datasource-class-name=JP.co.Hitachi.soft.HiRDB.JDBC.PrdbXADataSource, driver-class-name=JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver)
JDBCドライバ登録時の設定項目を次の表に示します。
表7‒10 JDBCドライバ登録時の設定項目 項目
概要
JDBCドライバ名
JDBCドライバの識別子
モジュール名
1.で追加したモジュールのモジュール名
JDBCドライバの登録例を次に示します。
/subsystem=datasources/jdbc-driver=hirdb: add(driver-name=hirdb,driver-module-name=com.hirdb, driver-xa-datasource-class-name=JP.co.Hitachi.soft.HiRDB.JDBC.PrdbXADataSource, driver-class-name=JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver)
-
データソースの追加
管理CLIコマンドで次のコマンドを実行してください。
-
非XAデータソース
data-source add --name=<データソース名> --jndi-name=<JNDI名> --driver-name=<JDBCドライバ名> --connection-url=<接続URL> --user-name=<ユーザ名> --password=<パスワード> --valid-connection-checker-class-name= org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker
-
XAデータソース
xa-data-source add --name=<データソース名> --jndi-name=<JNDI名> --driver-name=<JDBCドライバ名> --user-name=<ユーザ名> --password=<パスワード> --valid-connection-checker-class-name= org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker --xa-datasource-properties={"description"=>"<環境変数グループ識別子>", "XAOpenString"=>"<XAオープン文字列>"}
データソース追加時の設定項目を次の表に示します。
表7‒11 データソース追加時の設定項目 項目
概要
データソース名
データソースの識別子
JNDI名
データソースのlookupに使用するJNDI名
JDBCドライバ名
表「JDBCドライバ登録時の設定項目」のJDBCドライバ名
ユーザ名
ユーザ名/パスワード(他で設定している場合は省略できます)
パスワード
接続URL
DriverManagerクラスのgetConnectionメソッドに指定するURL
環境変数グループ識別子
XADataSourceクラスのsetDescriptionメソッドに指定するHiRDBの環境変数グループ識別子
XAオープン文字列
XADataSourceクラスのsetXAOpenStringメソッドに指定するXAオープン文字列
ユーザ名,パスワード以外は必須項目になります。また,表に記載していない項目については,必要に応じて追加してください。
データソースの追加例を次に示します。
-
非XAデータソース
data-source add --name=HiRDBDS --jndi-name=java:jboss/HiRDBDS --driver-name=hirdb --connection-url=jdbc:hitachi:hirdb://DBID=22200,DBHOST=localhost --user-name=admin --password=admin --valid-connection-checker-class-name= org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker
-
XAデータソース
xa-data-source add --name=HiRDBXADS --jndi-name=java:jboss/HiRDBXADS --driver-name=hirdb --user-name=admin --password=admin --valid-connection-checker-class-name= org.jboss.jca.adapters.jdbc.extensions.novendor.JDBC4ValidConnectionChecker --xa-datasource-properties= {"description"=>"HDB1","XAOpenString"=>"HDB1+C:\home\hirdb\HiRDB.ini"}
-
(b) 注意事項
JBossで使用できない機能を次の表に示します。
使用できない機能 |
概要 |
対策 |
|
---|---|---|---|
HiRDBを格納先とするトランザクションオブジェクトストア |
JBossがトランザクションログを格納するための場所 |
トランザクションオブジェクトストアとして次を使用してください。
|
|
データソースのパラメタ |
connectable=true (未設定とするか,falseを設定してください) |
Commit Markable Resource(非XAデータソースをXAトランザクションに参加させるための機能) |
XADataSourceを使用してください。 |
exception-sorter-class-name (未設定としてください) |
例外発生時に,通信障害かどうかを判定するクラス |
「接続の検証」機能のデータソースを設定してください。※ |
|
share-prepared-statements=true (未設定とするか,falseを設定してください) |
前処理済みのステートメントをクローズしないで,再度同一SQL文を指定して前処理済みのステートメントを取得した場合に,キャッシュされた同一のステートメントを取得する |
なし (2つ目のステートメントは新規に作成されます) |
|
interleaving=true (未設定とするか,falseを設定してください) |
同一コネクション上で複数のXAトランザクションを切り替えて使用する |
なし (XAトランザクションが完了するまで,コネクションを占有します) |
- 注※
-
JBossの「接続の検証」機能を使用すると,UAPでの無効なコネクションの取得を防げます。「接続の検証」機能のパラメタを次に示します。
-
validate-on-match:コネクションプールからConnectionを取り出す契機で接続を検証します。
-
background-validation:コネクションプール内のConnectionに対し,一定間隔で接続を検証します。
-
background-validation-millis:background-validationの検証間隔を指定します。
background-validationの場合,指定間隔の経過前に無効なコネクションを取得することがあるため,validate-on-matchの指定を推奨します。
-