JavaCompute ノードを使用したデータベースとの対話

JavaCompute ノードに組み込まれている Java™ コードからデータベースにアクセスします。

次のようなデータベース対話のオプションの中から選択します。

MbSQLStatement を使用してアクセスするデータベースは、グローバル整合済みトランザクションに参加することができます。 他の場合はすべて、データベース・アクセスをグローバル整合することはできません。

MbSQLStatement

MbSQLStatement クラスは、ESQL および ODBC を使用した完全なトランザクション・データベース・アクセスを提供します。 ブローカー・リソース・マネージャーは、MbSQLStatement の使用時にデータベース・アクセスを調整します。 グローバル整合は、分散プラットフォームでは WebSphere® MQ から提供され、z/OS® では RRS から提供されます。 必要な ODBC リソースのセットアップ方法の詳細は、データベースへの ODBC 接続の使用可能化を参照してください。

MbNodecreateSQLStatement() メソッドを使用し、このメソッドに、ODBC データ・ソース、ブローカーの EQSL ステートメント、およびオプションでトランザクション・モードを渡して、MbSQLStatement クラスのインスタンスを作成します。
  • このオブジェクトに対する select() 呼び出しは、照会の結果を戻します。
  • このオブジェクトに対する execute() 呼び出しは、表の更新など、結果が戻されない場合に照会を実行します。
以下の Java コードは、MbSQLStatement を使用してデータベースにアクセスする方法を示しています。
MbMessage newMsg = new MbMessage(assembly.getMessage());
MbMessageAssembly newAssembly = new MbMessageAssembly(assembly, newMsg);

String table = "dbTable";

MbSQLStatement state = createSQLStatement( "dbName",
	"SET OutputRoot.XMLNS.integer[] = PASSTHRU('SELECT * FROM " + table + "');" );

state.setThrowExceptionOnDatabaseError(false);
state.setTreatWarningsAsErrors(true);
state.select( assembly, newAssembly );

int sqlCode = state.getSQLCode();
if(sqlCode != 0)
{
	// Do error handling here 
}

getOutputTerminal("out").propagate(assembly); 

JDBC API

JDBC 呼び出しも含め、JavaCompute ノード用に作成したコード内で、標準の Java API にアクセスすることができます。 したがって、JDBC API を使用して、データベースへの接続、データベースを対象とした書き込みまたは読み取り、およびデータベースからの切断を行うことができます。 ブローカーでは、この環境で Type 2 と Type 4 の両方の JDBC ドライバーを JDBC 接続コードから呼び出すことができますが、ブローカーはこれらのドライバーを提供しません。 このドライバーは、データベース・ベンダーから入手する必要があります。

この方法でデータベースにアクセスすることを選択した場合、トランザクションの管理のためのサポートはブローカーから一切提供されません。データベースの変更のローカル・コミットおよびロールバックは、コードで管理する必要があります。 また、接続のライフ・サイクル、接続スレッドの親和性、および接続プールもコードで管理する必要があります。 さらに、そのような接続が原因で、ブローカーによって確立された接続が妨害を受けないようにするためにこの技法を使用する場合には、データベースへのアクセスもモニターする必要があります。 特に、ESQL からデータベースにアクセスするために、メッセージ・フロー内で使用中の ODBC 接続に、Type 2 ドライバーがブリッジすることに注意してください。

SQLJ

SQLJ は Java の拡張機能であり、これを使用して、静的 SQL ステートメントを Java コード内に組み込むことができます。 SQLJ ファイルを作成するには、ワークベンチを使用します。 SQLJ を使用する場合は、ブローカー・リソース・マネージャーはデータベース・アクセスを調整しません。
  1. 次のようにして、ワークベンチで SQLJ 機能を有効化します。
    1. 「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
    2. 「ウィンドウ」 > 「プリファレンス」を選択します。
    3. 「ワークベンチ」 を展開します。
    4. 「機能」 を選択します。
    5. 「データベース開発者」 を展開します。
    6. 「SQLJ 開発」を選択します。
    7. 「OK」をクリックします。
  2. 次のようにして、Java プロジェクト内で新規の SQLJ ファイルを作成します。
    1. ファイルの作成先とする 「Java プロジェクト」 を右クリックします。
    2. 「新規作成」 > 「その他」 を選択します。
    3. 「データ」 を展開します。
    4. 「SQLJ」 を展開します。
    5. 「SQLJ ファイル」をクリックします。
    6. 「次へ」をクリックします。
    7. 「新規の SQLJ ファイル」 ウィザードからの指示に従って SQLJ ファイルを生成します。
これで、このプロジェクトまたは別の参照されるプロジェクトの JavaCompute ノード・クラスから、この SQLJ ファイルのクラスを参照することができます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:43:02

ac30494_