15.3.2 既存のバッチアプリケーションから移行する場合
既存のバッチアプリケーション(Javaアプリケーション)から移行する場合,リソースに接続する方法は次の2種類があります。
- Cosminexusで提供するDB Connectorを使用したリソース接続に変更する。
- JDBCドライバを使用してリソースに接続する(接続方法を変更しない)。
DB Connectorを使用しない場合,バッチアプリケーションのコードを修正する必要はありません。ただし,DB Connectorが提供する機能およびガーベージコレクション制御機能は利用できません。ここでは,リソースの接続方法をDB Connectorに変更する場合の移行方法と,JDBCドライバを使用する場合(接続方法を変更しない場合)の移行方法を説明します。
- <この項の構成>
- (1) DB Connectorを使用したリソース接続に変更する
- (2) JDBCドライバを使用してリソースに接続する
(1) DB Connectorを使用したリソース接続に変更する
DB Connectorを使用する場合,DB Connectorからjava.sql.Connectionを取得するようバッチアプリケーションを変更してください。変更方法を次に示します。
- バッチサーバでDB Connectorを設定します。
ユーザ指定名前空間機能を使用して,DB Connectorのオブジェクトに別名を付けてJNDI名前空間に登録します。バッチアプリケーションからデータベースに接続するときには,必ずユーザ指定名前空間機能を使用してください。
別名は,DB Connectorをバッチサーバにデプロイしたあと,Connector属性ファイルで設定します。次の設定例のように,Connector属性ファイルの<resource-external-property>タグに<optional-name>タグを追加して別名を設定します。
設定例
<connector-runtime>
:
<resource-external-property>
<optional-name>DB Connectorの別名</optional-name>
</resource-external-property>
</connector-runtime> |
DB Connectorの別名の付け方については,「8.3 Enterprise BeanまたはJ2EEリソースへの別名付与(ユーザ指定名前空間機能)」を参照してください。
また,DB Connectorの設定の流れについては,マニュアル「Cosminexus システム構築ガイド」のリソースアダプタの設定に関する説明を参照してください。
- バッチアプリケーション内のリソース接続処理のコードをDB Connectorを使用するよう変更します。
変更前のバッチアプリケーションを次に示します。下線部分はConnection取得処理です。この処理を「変更後のバッチアプリケーション」の下線部分の処理に変更してください。「変更後のバッチアプリケーション」の下線部分は,DB ConnectorのConnection取得処理です。
- 変更前のバッチアプリケーション
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(uri,"user","pass");
con.setAutoCommit(false);
Statement stmt = con.createStatement();
stmt.executeBatch();
con.commit(); |
- 変更後のバッチアプリケーション
String dbName = <DB Connectorの別名>
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup(dbName);
Connection con = ds.getConnection();
con.setAutoCommit(false);
Statement stmt = con.createStatement();
stmt.executeBatch();
con.commit(); |
DB Connectorから取得したjava.sql.Connectionは,JDBCドライバのjava.sql.Connectionと同様に使用できます。このため,java.sql.Connectionの取得方法だけを変更すれば,ほかのバッチアプリケーションのコードを変更する必要はありません。
- 注意
- DB Connectorを使用する場合,バッチサーバでDB Connectorを開始してからバッチアプリケーションを実行してください。
(2) JDBCドライバを使用してリソースに接続する
JDBCドライバを使用する場合,バッチアプリケーションのコードを修正する必要はありません。ただし,使用するJDBCドライバのライブラリをバッチサーバのクラスパスに追加する必要があります。詳細は,使用するJDBCドライバの設定に従ってください。次に,JDBCドライバのライブラリをバッチサーバのクラスパスに追加する方法を示します。バッチサーバのクラスパスに追加するには,usrconf.cfg(バッチサーバ用オプション定義ファイル)に次の記述を追加します。
add.class.path=<JDBCドライバのライブラリのフルパス>
なお,usrconf.cfg(バッチサーバ用オプション定義ファイル)については,マニュアル「Cosminexus リファレンス 定義編」のusrconf.cfg(バッチサーバ用オプション定義ファイル)に関する説明を参照してください。