Micro Focus メインフレームソリューション スターターズキット

Micro Focus メインフレームソリューション
スターターズキット
7. Enterprise Developer for Visual Studio 2012 on Windows8
:データベース連携
7.1
目的
当チュートリアルではデータベース接続を行うための下記手順の習得を目的としています。
1) プリコンパイルについて
2) プロジェクトの作成と既存プログラムの取り込み方法
3) プロジェクトと個別ファイルプロパティの設定方法
4) XA スイッチモジュールの作成方法
5) プログラムのコンパイル方法
6) Enterprise Server 設定方法
7) XA リソース正常ロードの確認方法
8) JCL の実行と確認方法
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.2
チュートリアルの前提と準備
本チュートリアル実施に伴う前提条件と、例題プログラムに関連する資源を用意します。
1) 「5. Enterprise Developer JCL チュートリアル」を終了していることを前提とします。
2) 対象データベースクライアントがインストール済で接続確認済であることを前提とします・
3) キットに添付されている DBtutorial.zip を C:¥ 直下へ解凍し、C:¥DBtutorial を作成します。
本書作成時に使用したデータベース環境は下記の通りです。
Oracle
Oracle クライアント 11g 11.2.0.4.0 64bit
DB: リモート環境(Oracle 10g 10.2.0.1.0 64bit)
(Oracle Pro*COBOL プリコンパイラ使用)
DB2
DB2 クライアント 9.7.900.250 64bit
DB: ローカル環境(DB2 9.7.900.250 64bit)
(DB2 PREP プリコンパイラ使用)
SQL Server
ODBC ドライバー: SQL Server Native Client 11.0
DB: ローカル環境(SQL Server 2012 R1 64bit)
(ODBC 使用)
7.3
プリコンパイルについて
埋め込み SQL 付き COBOL ソースは下記2通りのプリコンパイル方法があります。
1) 予め Micro Focus 形式の COBOL ソースを作成してプリコンパイルする。
2) 製品機能のプリプロセッサ機能からプリコンパイラを呼び出し内部的にプリコンパイルする。
ここでは、オリジナルソースイメージでデバッグが可能かつ管理が容易な 2)を紹介します。
JCL バッチからの使用方法として紹介していますが、CICS や IMS プログラムで Oracle, DB2, SQL Server などとの
データベース連携を XA リソース方式で行う場合も同様の設定となります。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.4
プロジェクトの作成とプログラム取り込み
1) スタートアイコンから Enterprise Developer for Visual Studio 2012 を起動します。
2) 新しいプロジェクトを作成します。
プロダウンメニューの [ファイル]>[新規作成]>[プロジェクト] を選択します。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
3) プロジェクトの種類と名前、場所を指定します。
1. ペインツリーの [テンプレート]>[COBOL プロジェクト]>[Native] 内から “メインフレーム サブシステム アプリ
ケーション”を選択します。
2. [名前] は “DBDEMO” を入力します・
3. [場所] は 既存 C:¥work フォルダを指定します。
4. [ソリューションのディレクトリを作成] のチェックを外して [OK] をクリックします。
4) プロジェクトへ例題プログラムを追加します。
ソリューションエクスプローラでプロジェクトを右クリックし、[追加]>[既存の項目] を選択すると、ファイル選択のためのエ
クスプローラが表示されます。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
5) [すべてのファイル]を選択して、展開した C:DBtutorial 直下に存在する全ファイルを選択し [追加] をクリックしま
す。
6) ソリューションエクスプローラへ追加されたファイルが表示されます。
7.5
プロジェクトと個別ファイルプロパティの設定
1) プロジェクトのプロパティを設定します。
①
ソリューション エクスプローラ内のプロジェクト [Properties] をダブルクリックし、設定ウィンドウを開きます。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
②
ペインツリーの [アプリケーション]>[出力の種類] は [INT/GNT] オブジェクトタイプを選択します。
補足情報
[リンクライブラリ] を指定すると”.DLL”が作成されます。
③
ペインツリーの [COBOL] を選択し、以下の項目を設定します。
1.
[全般]>[プラットフォームターゲット] は “x64” を選択します。
2.
[全般]>[COBOL 方言] は “Enterprise COBOL for z/OS” を選択します。
3.
[全般]>[文字セット] は “ASCII” を選択します。
4.
[全般]>[.GNT にコンパイル] へチェックをして有効にします。
5.
[全般]>[デバッグ用にコンパイル] へチェックをして有効にします。
重要事項
「① 作成するオブジェクト;ビット数 = ② XA リソース;ビット数 = ③ Enterprise Server;ビット数 = ④ DB;許容するビット数 」
が正常に稼働するために必要な条件です。
上記 [プラットフォームターゲット] 指定は①にあたり、今回は 64 ビットオブジェクトを作成するために指定します。
プロジェクト単位に指定可能です。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
④
プロパティ設定ファイルを上書き保存します。
2) 個別ファイルのプロパティを設定します。
①
ソリューション エクスプローラ内の ”.cbl” ファイルを選択して右クリックし [プロパティ] を選択すると、設定ウィンドウ
が開きます。
②
ペインツリーの [COBOL] を選択し、使用するデータベース製品に合わせ、埋め込み SQL 対応のプリプロセッサの
設定を追加します。
1.Oracle の例:
COBSQL プリプロセッサを使用するため、以下の指令を追加指令欄へ追加します。
“DIALECT(ENTCOBOL) P(COBSQL) ENDP”
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
2.DB2 の例:
DB2 ECM プリプロセッサを使用するため、以下の指令を追加指令欄へ追加します。
“DIALECT(ENTCOBOL) DB2(DB=LCLDB2,VALIDATE=RUN)”
“DB=”に続く名称は DB2エイリアス名です。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
3.SQL Server の例:
OPENESQL プリプロセッサを使用するため、以下の指令を追加指令欄へ追加します。
“DIALECT(ENTCOBOL) SQL(DBMAN=ODBC,BEHAVIOR=JCL,TARGETDB=MSSQLSERVER)”
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.6
XA スイッチモジュールの生成
この環境で実行するプログラム内では、XA スイッチモジュール経由でデータベースと接続することになります。
ここでは使用するデータベース製品に合わせた XA スイッチモジュールを作成します。作成手順は以下の通りです。
1) スタートアイコンから Enterprise Developer 2012 コマンドプロンプト(64-bit)を管理者として実行します。
2) プリコンパイルを行うため下記フォルダを書き込み権限があるフォルダ配下へコピーします。当チュートリアルでは C:¥直下
へコピーします。
【理由①】 Oracle のプリコンパイラがパスに英数字とアンダースコア以外は許容しない
【理由②】 製品関連フォルダの書き込み権限によるトラブルを避ける
【コピー元フォルダ】
C:¥Program Files (x86)¥Micro Focus¥Enterprise Developer for Visual Studio 2012¥src¥enterpriseserver¥xa
【コピー先フォルダの例】
C:¥xa
3) コマンドプロンプトから C:¥xa へ移動します。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
4) Oracle を使用する場合
① XA スイッチモジュールを build コマンドで作成します。
“build < ora10 または ora11 >” を実行します。ここでは 11g を使用するため下記コマンドを実行します。
“build ora11”
② JCL 機能で IKJEFT01 ユーティリティを使用する場合は、xxx1pc.dll サブモジュール生成も必要になるため、下記コ
マンドを実行します。
“build ora1pc”
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
5) DB2 を使用する場合
① XA スイッチモジュールを下記 build コマンドで作成します。
“build db2”
② build db21pc < DB のエイリアス > を実行します。ここでは下記コマンドを実行します。
“build db21pc LCLDB2”
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
6) SQL SERVER を使用する場合
① XA スイッチモジュールを下記 build コマンドで作成します。
“build mssql”
xaswitch.lib の読み込み失敗でリンクエラーとなる場合は、環境変数「LIB」へ左記ファイルパスを
追加し、コマンドプロンプトを再起動後に再作成してください。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
② XA スイッチモジュールを有効にするため下記設定を確認します。
1.[コントロールパネル]>[管理ツール]>[コンポーネントサービス]>[コンピューター]>[マイコンピュータ]>
[Distributed Transaction Coordinator]>[ローカル DTC]まで展開します。
2.[ローカル DTC]を右クリックして[プロパティ]を選択し、[セキュリティ]タブへ移動します。
[XA トランザクションを有効にする]にチェックされていることを確認、もしくはチェックして有効にします。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.7
プログラムのコンパイル
1) ソリューションエクスプローラで4つのコボルファイルを選択後、右クリックで[コンパイル]を選択します。
2) 出力ウィンドウで正常に完了したことを確認します。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.8
Enterprise Server の設定
本チュートリアルでは例題 JCL を Enterprise Server にサブミットして実行します。64 ビットオブジェクトを作成しているた
め、64 ビットの Server を準備します。
1) Enterprise Server Administration ウィンドウで [追加] ボタンをクリックし下記を設定します。(1/3 ページ)
① [サーバー名] には ”DBDEMO64” を入力します。
② [動作モード] では ”64-bit” を選択します。
③ [次へ] ボタンをクリックします。
2) [サーバータイプ] では [Micro Focus Enterprise Server with Mainframe Subsystem Support]を選択
し、[次へ] ボタンをクリックします。(2/3 ページ)
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
3) [64-Bit Working Mode] へチェックされていることを確認し、[TN3270 リスナーの作成] のチェックをはずします。
[追加] ボタンをクリックします。(3/3 ページ)
4) 管理ウィンドウから [編集] ボタンをクリックし、[XA リソース] タブを開き、[追加] ボタンをクリックします。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
5) 使用するデータベース製品に合わせた XA リソースの下記項目を設定します。
① [ID]:IKJEFT ユーティリティに渡す DSN TSO コマンドの SYSTEM パラメタで渡す DB2 サブシステム名を指定
します。(このチュートリアルでは XADB とします)
② [名前]:Oracle の場合は ”ORACLE_XA” を指定し、他はリソース名として任意の名前を指定します。
③ [モジュール]:前項で作成した XA スイッチメインモジュールのパスと DLL ファイル名を指定します。(xxx1pc.dll
は指定無し)
<<DB に依存した当チュートリアルで指定するべき値の例>>
・
Oracle
“C:¥xa¥ESORA11XA.DLL”
・
DB2
“C:¥xa¥ESDB2XA.DLL”
・
SQL Server
“C:¥xa¥ESMSSQL.DLL”
④
[OPEN 文字列]:DB オープンのために必要な値を指定します。(設定済みの DB 環境設定に依存)
1. Oracle の例
例えば以下のように設定し、[追加] ボタンをクリックします。名前と OPEN 文字の先頭は必ず ”ORACLE_XA”
を指定してください。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
2. DB2 の例
例えば以下のように設定し、[追加] ボタンをクリックします。
3. SQL Server の例
例えば以下のように設定し、[追加] ボタンをクリックします。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
6) JCL チュートリアルで実行したように、JCL を実行するために [JES] の設定を行い [Apply] ボタンをクリックします。
7) [JES]>[Initiators] を作成し、実行する JCL のクラスが含まれるよう入力後、[追加] ボタンをクリックします。
8) サーバーにプロジェクトを関連付けます。
9) サーバー エクスプローラから [DBDEMO64] を開始します。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
7.9
XA リソース正常ロードの確認
XA スイッチモジュールが Enterprise Server に正しくロードできると、Enterprise Server Administration のコン
ソールログには以下のメッセージが出力されます。下記は SQL Server の例です。
注意事項
ロードに失敗してもサーバーは開始されますので、ログ内容を確認してください。
7.10 JCL の実行と確認
1) ソリューション エクスプローラから dbdemo1.jcl をダブルクリックしてエディタを開き、内容を確認します。
Micro Focus メインフレームソリューション スターターズキット
データベース連携編
このジョブは4つのステップから構成され下記の様に連携されています。

STEP01:
DB にテーブルを新規作成

STEP02:
JCL に記述された SYSIN データをテーブルに追加

STEP03:
テーブルからデータを全件読み出し SYSOUT へ出力

STEP04:
テーブルを削除
2) ソリューション エクスプローラから dbdemo1.jcl を右クリックして [サブミット JCL] を選択します。
3) 以下のように DBDEMO1 ジョブが実行された旨のメッセージが出力ウィンドウへ表示されます。
4) 以降は JCL チュートリアルを参考にして、スプールビューの Out Hold キューおよび Output キューを開き、実行された
DBDEMO1 ジョブの結果を確認したり、バッチプログラムのデバッグも同様に実行してみてください。また、各 DB 付属の
管理ツールを使用すると、各ステップにおける DB テーブルの状況が確認できます。
以上
Micro Focus メインフレームソリューション スターターズキット
データベース連携編