Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 開発ガイド

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

付録L.2 DBアダプタの定義

開発環境上でDBアダプタを定義する場合の作業の流れを次の図に示します。

図L-1 DBアダプタの定義の流れ

[図データ]

各作業の詳細は,以降で説明します。なお,ここでは,HiRDBを使用することを前提として説明します。Oracleを使用する場合は,各種定義を読み替えてください。

<この項の構成>
(1) SQL設計
(2) アダプタ設計
(3) デバッグ用のDBアダプタの定義ファイルの生成
(4) デバッグ用のデータベースの設定
(5) SQL文の作成
(6) SQLのデバッグ
(7) 本番環境用のデータベースの設定
(8) 本番環境用のDBアダプタの定義ファイルの生成
(9) 本番環境用のDBアダプタの設定

(1) SQL設計

DBアダプタ定義支援機能を使って,DBアダプタ上で実行するSQL文の内容を設計します。SQL実行文の表や列の名称およびデータなどの可変部分については,引数要素として設計します。

ただし,DBアダプタ定義支援機能で指定できるSQL命令は次の二つです。

また,指定できるデータ型は,Cosminexus DB Connectorで使用するJDBCドライバがサポートしているデータ型だけです。

(2) アダプタ設計

DBアダプタの内容を設計します。次の内容について設計してください。

(a) DBアダプタの作成単位

DBアダプタはDB Connector単位で必要なため,DB Connectorの構成に合わせてDBアダプタを用意します。

例えば,複数のデータベースと連携するシステムでは,データベースごとにDB Connectorが存在します。このため,データベースのDB ConnectorごとにDBアダプタを作成します。

図L-2 データベースごとにDB Connectorが存在する場合

[図データ]

また,コネクションプールの設定値をDBアダプタごとに設定する場合などは,同じデータベースに複数のDB Connectorを用意します。この場合は,データベースの数に関係なく,DB Connector単位でDBアダプタを作成します。

図L-3 一つのデータベースに複数のDB Connectorが存在する場合

[図データ]

(b) SQL文の定義単位

DBアダプタには,一つ以上のSQL文を定義できます。各DBアダプタで定義するSQL文の内容を設計します。SQL文の設計例を次に示します。

(3) デバッグ用のDBアダプタの定義ファイルの生成

デバッグに使用するDBアダプタの定義ファイルのひな形を作成します。DBアダプタの定義ファイルは,Eclipse上で作成します。DBアダプタの定義ファイルを新規作成する方法を次に示します。

  1. Eclipse上にプロジェクトを作成します。
    プロジェクトの種類は,HCSCTEプロジェクトを推奨します。HCSCTEプロジェクトの作成方法については,「3.1.1 プロジェクトを作成する」を参照してください。
  2. Eclipseのメニューから,[ウィンドウ]−[パースペクティブを開く]−[その他]を選択します。
    [パースペクティブを開く]ダイアログが表示されます。
  3. [HCSC-DBEditor]を選択し,[OK]ボタンをクリックします。
    [DBアダプタ開発支援]パースペクティブが表示されます。
  4. Eclipseのメニューから,[ファイル]−[新規]−[その他]を選択します。
    ウィザードを選択するダイアログが表示されます。
  5. [HCSCTE-DBEDITOR]の[DBEditor ファイル]を選択して,[次へ]ボタンをクリックします。
    [新規DBアダプタ定義ファイル]ウィザードが表示されます。
  6. [親フォルダを入力または選択]で,DBアダプタの定義ファイルを保存するフォルダを入力または選択します。
  7. 保存する定義ファイルのファイル名を[ファイル名]に指定します。
  8. [終了]ボタンをクリックします。
    新しい定義ファイルが作成され,DBアダプタ開発支援画面が表示されます。

    [図データ]

(4) デバッグ用のデータベースの設定

DBアダプタの定義ファイルに,使用するデータベースの内容を設定します。本番環境用のデータベースとは別にデバッグ用のデータベースを使用するかどうかによって,設定方法が異なります。デバッグ用のデータベースを使用しない場合は,SQLのデバッグができません。

参考
uCosminexus Service Architectには,デバッグで使用できる組み込みデータベースが含まれています。
(a) 本番環境用とは別にデバッグ用のデータベースを用意する場合

本番環境用のデータベースとは別に,デバッグ用のデータベースを用意する場合の設定方法を次に示します。

  1. Eclipse上でDBアダプタの定義ファイルを開きます。
    DBアダプタ開発支援画面が表示されます。
  2. [コネクション]タブにある[DataSources]を右クリックし,[新規データソース]を選択します。
    [新規データソース]ダイアログが表示されます。

    [図データ]

  3. [データベースコネクション]の入力フィールドに値を入力します。
    SQLをデバッグするための設定をします。
    ここでは,JDBCドライバを利用して接続するための設定をします。

    表L-1 [データベースコネクション]の入力フィールドに定義する内容([新規データソース]ダイアログ)

    表示項目 説明 デフォルト値
    名称 DBアダプタ開発支援画面の[コネクション]タブに表示する名称です。DBエディタ定義ファイル内で一意になるような任意の名称を指定します。 HiRDB
    データベースなし デバッグ用のデータベースがない場合にチェックします。 チェックなし
    ドライバ JAR JDBCドライバのJARファイルを指定します。
    対応するJDBCドライバは事前に入手しておいてください。
    <Cosminexusインストールディレクトリ>\DB\CLIENT\UTL\pdjdbc2.jar
    ドライバ 使用するJDBCドライバのパッケージ名(完全修飾Javaクラス名)を指定します。 JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver
    URL 接続するデータベースのポート番号とホスト名を指定した,データベース接続URLを指定します。 jdbc:hitachi:hirdb://DBID=22200,DBHOST=localhost
    ユーザ名 データベースへ接続するときに使用するログインユーザ名を指定します。 admin
    パスワード データベースへ接続するときに使用するパスワードを指定します。 admin(画面上の表示は「****」)

    [データベースコネクション]の入力フィールドの値は,SQL文をデバッグするときにだけに使用されます。DBアダプタ定義支援機能で生成するSQLオペレーション定義ファイルおよびアプリケーション統合属性ファイルには,使用されません。

    注※
    デフォルト値は,[新規データソース]ダイアログ上の[デフォルト]ボタンをクリックした場合の値です。
    初期値は,HCSC簡易セットアップ機能を初期値で実行した場合に構築された環境の値です。

  4. [DBアダプタ設定]の入力フィールドに値を入力します。
    ここでは,DBアダプタ用のSQLオペレーション定義ファイル,およびアプリケーション統合属性ファイルを定義するための設定をします。使用するDB Connectorの設定に沿って指定してください。

    表L-2 [DBアダプタ設定]の入力フィールドに定義する内容([新規データソース]ダイアログ)

    表示項目 説明 デフォルト値
    データベース参照名 データベース参照名を指定します。 DB_SERVER1
    データベース種別 データベース種別を指定します。 HIRDB
    リソースアダプタ名 DB Connectorのプロパティ定義(display-name)に指定したリソースアダプタの名称を指定します。
    リソースアダプタ名がドロップダウンリストから選択できない場合は,直接値を入力してください。
    DBConnector_HiRDB_Type4_CP
    インスタンスの最大値 DBアダプタのインスタンスの最大数を指定します。
    無制限の場合は,0を指定します。
    0
    インスタンスの最小値 DBアダプタのインスタンスの最小数を指定します。 1
    DB Connector の共有 DBアダプタが参照するDB Connectorを共有するかどうかを指定します。 Shareable
    検索結果出力最大件数 SELECTで検索した結果の最大出力件数を指定します。
    検索結果が指定値より大きい場合は,指定値までの件数が表示されます。

    (例)
    「1000」を指定した場合は,最大1,000レコードまでの結果を表示します。
    1000
    実行する SQL 文の最大個数 1回のサービス部品実行要求で複数のSQL文を実行する場合,実行するSQL文の最大個数を指定します。 1024

    注※
    デフォルト値は,[新規データソース]ダイアログ上の[デフォルト]ボタンをクリックした場合の値です。
    初期値は,HCSC簡易セットアップ機能を初期値で実行した場合に構築された環境の値です。

  5. [OK]ボタンをクリックします。
    設定した内容が登録されます。
(b) 本番環境用のデータベースをデバッグに使用する場合

デバッグ用のデータベースを使用しない場合の設定方法を次に示します。

  1. Eclipse上でDBアダプタの定義ファイルを開きます。
    DBアダプタ開発支援画面が表示されます。
  2. [コネクション]タブにある[DataSources]を右クリックし,[新規データソース]を選択します。
    [新規データソース]ダイアログが表示されます。
  3. [データベースコネクション]の[データベースなし]チェックボックスをチェックします。
  4. [DBアダプタ設定]に本番環境用のデータベースの設定内容を入力します。
  5. [OK]ボタンをクリックします。
    設定した内容が登録されます。

(5) SQL文の作成

DBアダプタ上で実行するSQL文を定義します。

  1. Eclipse上でDBアダプタの定義ファイルを開きます。
    DBアダプタ開発支援画面が表示されます。
  2. [データソース]プルダウンリストから,使用するデータソースを選択します。

    [図データ]

  3. [オペレーション]プルダウンリストの横の[追加]ボタンをクリックします。
    追加するオペレーションの名称を定義するダイアログが表示されます。

    [図データ]

  4. 追加するオペレーション名を入力し,[OK]ボタンをクリックします。
    一つのDBアダプタに複数のSQLを定義したい場合は,オペレーションを呼び出すSQLごとに定義します。
  5. SQL文の入力フィールドに実行するSQL文を定義します。
    引数要素の定義方法については,「4.3.5(1)(c) SQLオペレーション定義ファイルの形式」を参照してください。
    注意
     
    • 各オペレーションに記述できるSQLは一つだけです。
    • ワイルドカード(*)は使用できません。SELECTで検索するカラム名は,すべて記述してください。
    • SQL文の最後にセミコロンは不要です。

(6) SQLのデバッグ

定義したSQLのデバッグを実施します。SQL文中の引数要素については,値を代入して実行します。なお,SQLのデバッグは,本番環境用のデータベースとは別に,デバッグ用のデータベースを用意している場合にだけ実施できます。

次の手順でSQLのデバッグを実施してください。

  1. デバッグ用のテーブルを作成します。
    事前にデバッグ用のデータベース上にデバッグで使用するテーブルを作成します。定義したSQLに沿ってテーブルを作成してください。
    作成例
    テーブル名:PURCHASEMASTERTABLE
    テーブル構成:
    ORDERID
    (VARCHAR)
    ORDERNAME
    (VARCHAR)
    PRODUCTCODE
    (VARCHAR)
    PRODUCTNAME
    (VARCHAR)
    NUMBER
    (INTEGER)
    01 AA001 0A1 NPW 4
    02 AA002 0A1 NPW 3
    03 AA003 0E1 NPW 3
    04 BB001 0E1 NPW 4
    05 BB002 0B1 NPW 5
  2. Eclipse上でDBアダプタの定義ファイルを開きます。
    DBアダプタ開発支援画面が表示されます。

    [図データ]

  3. 引数要素を抽出したいSQL文を[オペレーション]プルダウンリストから選択した状態で,ツールバーの[変数の生成]アイコン([図データ])をクリックします。
    引数要素が抽出され,抽出結果が[変数]タブに反映されます。

    [図データ]

  4. [変数]タブの[値]列に,デバッグで使用したい値を入力します。
    設定例
    引数要素名 DBa_inf data_type
    KEYCOLUMN column ORDERID
    ENZANSHI preset =
    DATA data VARCHAR '01'
    なお,デバッグ用のデータベースを用意していない場合は,以降の手順を実施できません。[実行するSQL文の表示]アイコン([図データ])をクリックすると,Messagesビューに引数要素に値を代入した状態のSQLが表示されるので,この画面でSQL文が正しいかどうかを確認してください。

    [図データ]

  5. [コネクション]タブに表示されている,デバッグに使用するデータソースを右クリックし,[接続]を選択します。
    設定した内容でデータベースに接続します。接続が成功すると,Messagesビューに,「INFO: データソース <データソース名> の接続に成功しました。」のメッセージが表示されます。
    なお,SQL文が複数定義されている場合は,SQL文ごとに手順3〜手順5を繰り返してください。
  6. ツールバーにある[SQLの実行]アイコン([図データ])をクリックします。
    SQLの実行に失敗した場合は,Messagesビューにエラーメッセージが表示されます。メッセージに従ってSQLおよび引数要素名を修正してください。
    なお,SQLの実行結果は,[実行結果]タブに表示されます。

    [図データ]

(7) 本番環境用のデータベースの設定

DBアダプタの定義ファイルのデータソースの設定を,本番環境用のデータベースの情報に変更します。

注意
本番環境用のデータベースの情報に変更する前に,デバッグで使用したデータリソースを切断しておいてください。データソースの切断方法は,次のとおりです。
  1. デバッグで使用したDBアダプタの定義ファイルをEclipse上で開きます。
  2. [コネクション]タブで,デバッグに使用したデータソースを右クリックし,[切断]を選択します。

次の手順でデータベースの情報を変更します。

  1. デバッグで使用したDBアダプタの定義ファイルをEclipse上で開きます。
    DBアダプタ開発支援画面が表示されます。
  2. [コネクション]タブに表示されているデータソースを右クリックして,[データソース編集]を選択します。
    [データソース編集]ダイアログが表示されます。
  3. [DBアダプタ設定]の入力フィールドに本番環境用のデータベースの情報を入力します。

    [図データ]

  4. [OK]ボタンをクリックします。
    設定した内容が登録されます。

(8) 本番環境用のDBアダプタの定義ファイルの生成

本番環境で使用するDBアダプタの定義ファイルの生成方法を次に示します。

  1. Eclipse上で,デバッグ用のDBアダプタの定義ファイルを開きます。
    DBアダプタ開発支援画面が表示されます。
  2. [データソース]プルダウンリストから,本番環境用のDBアダプタの定義ファイルに反映させたいデータソースを選択します。

    [図データ]

  3. ツールバーの[DBアダプタ定義生成]アイコン([図データ])をクリックします。
    [DBアダプタ定義生成]ダイアログが表示されます。

    [図データ]

  4. [出力先ディレクトリ]に,本番環境用のDBアダプタの定義ファイルを出力するディレクトリを指定します。
    [...]ボタンをクリックすると,[出力先ディレクトリ]に次のパスが選択されます。
    <Eclipseのプロジェクトのパス>\<DBアダプタの定義ファイル名>_Output
    注意
     
    • 出力先ディレクトリにEclipseのプロジェクトのパスを指定した場合は,Eclipseの機能を使って,DBアダプタの定義ファイルおよび生成結果を一括でインポートおよびエクスポートできます。
    • 出力先ディレクトリ名は,絶対パスをUTF-8で変換したときに155バイト以内になるように指定してください。
  5. 生成したいオペレーションのチェックボックスにチェックします。
    一つのDBアダプタに複数のSQL文を定義した場合は,SQLの定義に必要なオペレーションをすべて選択してください。
  6. [終了]ボタンをクリックします。
    指定した出力先ディレクトリに,本番環境で使用するDBアダプタの定義ファイルが出力されます。
    なお,出力先ディレクトリにEclipseのプロジェクトのパスを指定している場合は,DBアダプタの定義ファイルを生成したあとに,出力先となるEclipseのプロジェクトを更新してください。Eclipseのパッケージ・エクスプローラー上に,生成されたDBアダプタの定義ファイルが表示されます。
    生成されるファイルの一覧を次の表に示します。

    表L-3 生成されるファイルの一覧

    ファイルの種別 ファイル名 数量 備考
    SQLオペレーション定義ファイル csa_sql_dbadapter.xml 1
    アプリケーション統合属性ファイル cscadapter_property.xml 1
    要求電文の標準電文※1 <オペレーション名>_Input.xsd 0〜N※2 <オペレーション名>は,指定したオペレーション名になります。
    応答電文の標準電文※3 <オペレーション名>_Output.xsd 0〜N※2 <オペレーション名>は,指定したオペレーション名になります。
    要求電文および応答電文のサービス部品電文 ServiceMessageFile.xsd 1 要求電文および応答電文のサービス部品電文には,同じファイルを使用してください。

    (凡例)
    −:該当する説明はありません。

    注※1
    SQL文中に引数要素がない場合,要求電文の標準電文は生成されません。サービス部品電文だけを使用してください。引数要素がない状態でDBアダプタを呼び出す場合は,Javaアクティビティなどで要求電文を生成して,DBアダプタを呼び出します。
    設定例
     オペレーション名:select_op
     実行するSQL文:SELECT ORDERID FROM PURCHASEMASTERTABLE
     Javaアクティビティなどで生成する電文:
    <?xml version="1.0" encoding="UTF-8"?>
    <BDAdapter>
    <DBA_MULTI_SQL>
    <select_op/>
    </DBA_MULTI_SQL>
    </BDAdapter>

    注※2
    本番環境用のDBアダプタの定義ファイルを生成したときに指定したオペレーションの数になります。

    注※3
    応答電文の標準電文は,SQL命令がSELECTの場合にだけ出力されます。INSERTの場合は,応答電文のサービス部品電文フォーマットを使用してください。

(9) 本番環境用のDBアダプタの設定

生成した本番環境用のDBアダプタの定義ファイルを使用して,DBアダプタを作成します。

(a) DBアダプタの作成

Eclipseに組み込まれているHCSCTEを利用して,DBアダプタを新規作成します。DBアダプタを新規に作成する方法については,「5.2.2 DBアダプタを新規に追加する」を参照してください。

また,「(8) 本番環境用のDBアダプタの定義ファイルの生成」で指定したオペレーションを,作成したDBアダプタに追加してください。複数のオペレーションを指定した場合は,指定したオペレーションの数だけ追加してください。

(b) SQLオペレーション定義ファイルとアプリケーション統合属性ファイルの設定

作成したDBアダプタのサービスアダプタ定義(詳細)画面を表示します。[独自定義ファイル]に次のファイルを追加してください。

(c) 要求電文と応答電文の設定

作成したDBアダプタのサービスアダプタ定義(基本)画面を表示します。次の内容を設定してください。

オペレーション名の設定
  • [サービス部品制御情報]の[オペレーション]
    オペレーション名をドロップダウンリストから選択します。

オペレーションに対応する要求電文の設定
  • [要求電文]の[標準]の[電文フォーマット]
    「<オペレーション名>_Input.xsd」を指定します。
  • [要求電文]の[サービス部品]の[電文フォーマット]
    「ServiceMessageFile.xsd」を指定します。

オペレーションに対応する応答電文の設定
  • [応答電文]の[標準]の[電文フォーマット]
    「<オペレーション名>_Output.xsd」を指定します。ただし,指定したオペレーションに含まれるSQL命令がSELECTの場合にだけ指定します。INSERTの場合は不要です。
  • [応答電文]の[サービス部品]の[電文フォーマット]
    「ServiceMessageFile.xsd」を指定します。

設定例を次の図に示します。

図L-7 要求電文と応答電文の設定例

[図データ]

(d) データ変換(マッピング)の定義

データ変換するときの変換元と変換先のマッピングを定義します。