Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第1部 J2EE共通編 | > 第4章 JNDI | > 4.3 JDBC(データベース)を参照する場合の環境設定 |
JDBCデータソースの作成時に任意のデータベースやJDBCドライバのデータソースを作成できます。これをデータソースの汎用定義と呼びます。開発中にアプリケーションの動作確認をする場合に、一時的にサポートしないデータベースと接続確認を行う場合などに使用してください。実運用時にはサポートするデータベース/JDBCドライバを使用することを推奨します。(未サポートのデータベースやJDBCドライバを使用した場合、動作保証されません。)汎用定義で定義したデータソースを使用する場合、以下に注意してください。
汎用定義で定義したデータソースクラスがjava.sql.ConnectionPoolDataSourceインタフェースを実装している場合、そのデータソースはInterstage側でコネクションプーリングされます。ただし、自動再接続機能は使用できません。
java.sql.ConnectionPoolDataSourceインタフェースを実装しないデータソースが定義された場合、Interstage側でプーリングは行いません。コネクションをプーリングするかはJDBCドライバ側の実装に依存しますので、JDBCドライバ(もしくは使用しているデータベース)のマニュアルを参照してください。
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が返却されます。)
汎用定義で定義したデータソースを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などの設定が行われます。
- setAutoCommit(false)
- setTransactionIsolation(設定値)
- 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”を参照してください。
設定項目 |
設定方法 |
---|---|
|
以下のいずれかにパスを設定してください。
以下のいずれかを使用して設定してください。
設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。 |
|
以下にライブラリパスを設定してください。
以下のいずれかを使用して設定してください。
設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。 |
クラスパス |
以下にクラスパスを設定してください。
以下のいずれかを使用して設定してください。
設定方法の詳細はInterstage管理コンソールのヘルプまたは“リファレンスマニュアル(コマンド編)”を参照してください。 クラスローダの分離をしないIJServerの場合、システム環境変数に設定しても有効となります。IJServerで使用するクラスパスの設定方法の詳細は“IJServerで使用するクラスの設定について”を参照してください。 Webアプリケーションのディレクトリ構成である“WEB-INF/lib”に、クラスパスに設定するJDBCドライバを格納しないでください。格納した場合、以下の機能が使用できない場合があります。
|
2) クライアント環境の場合の設定方法
クライアント環境でJ2EEアプリケーションクライアントを動作させる場合は、環境変数に設定してください。
Interstage管理コンソールで、データソースを定義します。詳細は、Interstage管理コンソールのヘルプを参照してください。また、isj2eeadminコマンドを使用して変更することもできます。詳細は“リファレンスマニュアル(コマンド編)”の“isj2eeadmin”を参照してください。
その他データソース・プロパティ情報に設定された情報は、DB接続テスト実施およびデータソース使用時にデータソースに対して以下のように設定されます。
以下の場合にはエラーとなります。DB接続テスト機能を使用してデータソース・プロパティが正しく設定できているか確認してください。
目次 索引 |