Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

15.3.2 既存のバッチアプリケーションから移行する場合

既存のバッチアプリケーション(Javaアプリケーション)から移行する場合,リソースに接続する方法は次の2種類があります。

DB Connectorを使用しない場合,バッチアプリケーションのコードを修正する必要はありません。ただし,DB Connectorが提供する機能およびガーベージコレクション制御機能は利用できません。ここでは,リソースの接続方法をDB Connectorに変更する場合の移行方法と,JDBCドライバを使用する場合(接続方法を変更しない場合)の移行方法を説明します。

<この項の構成>
(1) DB Connectorを使用したリソース接続に変更する
(2) JDBCドライバを使用してリソースに接続する

(1) DB Connectorを使用したリソース接続に変更する

DB Connectorを使用する場合,DB Connectorからjava.sql.Connectionを取得するようバッチアプリケーションを変更してください。変更方法を次に示します。

  1. バッチサーバで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 システム構築ガイド」のリソースアダプタの設定に関する説明を参照してください。
  2. バッチアプリケーション内のリソース接続処理のコードを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(バッチサーバ用オプション定義ファイル)に関する説明を参照してください。