Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第1部 J2EE共通編> 第4章 JNDI> 4.3 JDBC(データベース)を参照する場合の環境設定

4.3.5 汎用定義のデータソースを使用する場合の環境設定

 JDBCデータソースの作成時に任意のデータベースやJDBCドライバのデータソースを作成できます。これをデータソースの汎用定義と呼びます。開発中にアプリケーションの動作確認をする場合に、一時的にサポートしないデータベースと接続確認を行う場合などに使用してください。実運用時にはサポートするデータベース/JDBCドライバを使用することを推奨します。(未サポートのデータベースやJDBCドライバを使用した場合、動作保証されません。)汎用定義で定義したデータソースを使用する場合、以下に注意してください。

■コネクションプーリング機能

 汎用定義で定義したデータソースクラスがjava.sql.ConnectionPoolDataSourceインタフェースを実装している場合、そのデータソースはInterstage側でコネクションプーリングされます。ただし、自動再接続機能は使用できません。
 java.sql.ConnectionPoolDataSourceインタフェースを実装しないデータソースが定義された場合、Interstage側でプーリングは行いません。コネクションをプーリングするかはJDBCドライバ側の実装に依存しますので、JDBCドライバ(もしくは使用しているデータベース)のマニュアルを参照してください。

■EJBのCMP1.1 Entity Bean、CMP2.0 Entity Bean

 EJBコンテナがデータベースアクセス処理を行うCMP1.1 Entity BeanもしくはCMP2.0 Entity Beanは、汎用定義で定義したデータソースは使用できません。CMPの定義で使用できないデータソースを指定した場合、IJServer起動時にエラーとなります。またJ2EEのHotDeploy機能を用いてCMPの定義で使用できないデータソースを設定したモジュールを配備した場合、活性化処理に失敗し非活性状態になります。
 ただし、開発時に一時的に使用したい場合、オプションを指定することでCMP1.1 Entity BeanもしくはCMP2.0 Entity Beanでも利用できます。汎用定義で定義したデータソースをCMP1.1 Entity Bean/CMP2.0 Entity Beanで使用できません。一時的に使用する場合は以下のオプションを指定してください。

定義ファイル格納ディレクトリ


C:\Interstage\EJB\etc

/opt/FJSVejb/etc

定義ファイル名

FJEJBconfig.properties

指定するキー

“cmp_generic_datasource_use”

指定する値

“yes”を指定します。

 本オプションを指定してコンテナで異常が発生した場合、すぐにオプションの指定を中止してください。サポートしていないデータベースを利用した場合には以下の制限があります。

【制限事項】
 サポートしないデータベースを利用した場合、CMP1.1 Entity Beanのcreateメソッドにおいてすでに存在するレコードデータを挿入しようとした場合、java.rmi.RemoteExceptionが返却されます。(サポートするデータベースの場合、javax.ejb.DuplicateKeyExceptionが返却されます。)

■必須API

 汎用定義で定義したデータソースをJ2EEのJNDI機能でlookupして利用する場合、利用するデータベースもしくはJDBCドライバが以下のAPIをサポートしている必要があります。

インタフェース名

メソッド名

備考

javax.sql.ConnectionPoolDataSource

getPooledConnection()

java.sql.ConnectionPoolDataSourceインタフェースを実装したデータソースを定義した場合のみ。

getPooledConnection(String user,String password)

javax.sql.DataSource

getConnection()

 

getConnection(String user, String password)

javax.sql.PooledConnection

addConnectionEventListener(ConnectionEventListener listener)

java.sql.ConnectionPoolDataSourceインタフェースを実装したデータソースを定義した場合のみ。

close()

getConnection()

removeConnectionEventListener(ConnectionEventListener listener)

java.sql.Connection

close()

J2EEのトランザクション開始後コネクションを取得する時、以下の順番でAutoCommitなどの設定が行われます。

  1. setAutoCommit(false)
  2. setTransactionIsolation(設定値)
  3. setReadOnly(false)

2. の設定はDBコネクション設定においてIsolation-Levelをdefault以外に設定した場合のみ実行されます。

commit()

getAutoCommit()

getTransactionIsolation()

isClosed()

isReadOnly()

setAutoCommit(boolean autoCommit)

setReadOnly(boolean readOnly)

setTransactionIsolation(int level)

■環境設定

 以下の環境設定が必要です。

環境変数の設定

 必要な環境設定については、使用する各データベースもしくはJDBCドライバのマニュアルを参照してください。

設定方法

1) IJServerを使用する場合の設定方法

 IJServerでWebアプリケーション、またはEJBアプリケーションを運用する場合は、以下のように設定してください。
 Interstage管理コンソールを使用する場合の詳細については、Interstage管理コンソールのヘルプを参照してください。また、isj2eeadminコマンドを使用する場合の詳細は“リファレンスマニュアル(コマンド編)”の“isj2eeadmin”を参照してください。

設定項目

設定方法


パス

以下のいずれかにパスを設定してください。

  • J2EEプロパティのパス
  • IJServer環境設定のパス

以下のいずれかを使用して設定してください。

  • Interstage管理コンソール
    • [システム] > [環境設定] > [J2EEプロパティ] > [パス]
    • [システム] > [ワークユニット] > [IJServer名] > [環境設定] > [パス]
  • isj2eeadminコマンド
    • J2EEシステム定義ファイル
    • IJServer定義ファイル

設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。


ライブラリパス

以下にライブラリパスを設定してください。

  • J2EEプロパティのライブラリパス
  • IJServer環境設定のライブラリパス

以下のいずれかを使用して設定してください。

  • Interstage管理コンソール
    • [システム] > [環境設定] > [J2EEプロパティ] > [ライブラリパス]
    • [システム] > [ワークユニット] > [IJServer名] > [環境設定] > [ライブラリパス]
  • isj2eeadminコマンド
    • J2EEシステム定義ファイル
    • IJServer定義ファイル

設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。

クラスパス

以下にクラスパスを設定してください。

  • J2EEプロパティのクラスパス
  • IJServer環境設定のクラスパス

以下のいずれかを使用して設定してください。

  • Interstage管理コンソール
    • [システム] > [環境設定] > [J2EEプロパティ] > [クラスパス]
    • [システム] > [ワークユニット] > [IJServer名] > [環境設定] > [クラスパス]
  • isj2eeadminコマンド
    • J2EEシステム定義ファイル
    • IJServer定義ファイル

設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。

クラスローダの分離をしないIJServerの場合、システム環境変数に設定しても有効となります。IJServerで使用するクラスパスの設定方法の詳細は“IJServerで使用するクラスの設定について”を参照してください。

Webアプリケーションのディレクトリ構成である“WEB-INF/lib”に、クラスパスに設定するJDBCドライバを格納しないでください。格納した場合、以下の機能が使用できない場合があります。

  • 事前コネクト
  • 異常時の再接続

2) クライアント環境の場合の設定方法

 クライアント環境でJ2EEアプリケーションクライアントを動作させる場合は、環境変数に設定してください。

Interstageへのデータソース登録

 Interstage管理コンソールで、データソースを定義します。詳細は、Interstage管理コンソールのヘルプを参照してください。また、isj2eeadminコマンドを使用して変更することもできます。詳細は“リファレンスマニュアル(コマンド編)”の“isj2eeadmin”を参照してください。

その他データソース・プロパティ情報の設定

 その他データソース・プロパティ情報に設定された情報は、DB接続テスト実施およびデータソース使用時にデータソースに対して以下のように設定されます。

  1. データソースに「"set" + データソース・プロパティ名」という名前のメソッドが存在するかを確認します。ただし、データソース・プロパティ名の先頭の文字がアルファベットの小文字の場合は、それを大文字に変換し"set"につなげます。
    例) データソース・プロパティ名がpropertyの場合、setPropertyというメソッドが実行されます。
     
  2. データソースに1.のメソッド名が存在して引数が1つのメソッドであれば、データソース・プロパティ値をその引数の型データに変換してデータソースに対してメソッドを実行します。

 以下の場合にはエラーとなります。DB接続テスト機能を使用してデータソース・プロパティが正しく設定できているか確認してください。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED