チュートリアル:アプリケーションの移行 - 機能エミュレーションの追加

このチュートリアルでは DB2 アプリケーションを SQL Server アプリケーションに移行し、HCOSS を使用して機能エミュレーションを追加するプロセスについて説明します。
このチュートリアルでは、機能エミュレーションの追加について次のプロセスにより順を追って説明します。
  • DB2 の標準数学関数を表す数学関数を SQL Server に追加する
  • Customize SQL Name Mapping ツールを使用して、DB2 関数を新しい SQL Server 関数にマッピングする

このチュートリアルでは、Eclipse でビルド後のイベントを使用したアプリケーションのバインドについても説明します。

要件

このチュートリアルを実施する前に、まず次のチュートリアルを完了して、必要な PROD と TEST のスキーマを含んだ HCO_Test という名前の SQL Server データベースと、HCO_Test データベースへの接続を確立しておく必要があります。
  • 『チュートリアル:SQL Server データベースの作成』
  • 『Tutorial:Create a Database Connection』
  • 『チュートリアル:DB2 データベース移行』または『チュートリアル:アプリケーションの移行 チュートリアルのためのセットアップ』

Eclipse プロジェクト

このチュートリアルで使用する Eclipse プロジェクト には、ネイティブ COBOL プロジェクトの FunctionEmulation プロジェクトが含まれています。

第 1 段階:ユーザ定義関数の作成

  1. SQL Server Management Studio を起動し、HCO_Test データベースを選択します。
  2. FunctionEmulation.sql ファイルを探して開きます。このファイルは %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\SQL\hcoss\FunctionEmulation ディレクトリにあります。

    このファイルには、例題コードに必要なユーザ定義の数学関数を作成するスクリプトが含まれています。

  3. [Execute] をクリックします。
  4. Object Explorer から、[HCO_Test > Programmability > Functions > Scalar-Valued Functions] を展開して選択し、[Refresh] をクリックしてフォルダを更新します。これで、新規作成された関数が表示されます。

第 2 段階:Enterprise Developer および HCO for SQL Server の起動

Enterprise Developer ツールおよび HCOSS for SQL Server ツールが既に実行している場合は、この段階をスキップしてください。

  1. [Start > All Programs > Micro Focus Enterprise Developer > Enterprise Developer for Eclipse] の順に選択して、Enterprise Developer を管理者として起動します。
  2. Eclipse IDE から、[Run > Tools > HCO for SQL Server] の順にクリックします。

第 3 段階:HCOSS の関数マッピング

  1. HCO for SQL Server インターフェイスから、[Customize SQL Name Mappings] をクリックします。
  2. グリッドの下部までスクロールして、最初の空のセルをダブルクリックして編集可能にします。次の情報を該当する行と列に入力し、それぞれに対応する [Is Function] ボックスをオンにします。
    DB2 関数 / 特殊レジスタ SQL Server での対応先
    atanh dbo.atanh
    cosh dbo.cosh
    sinh dbo.sinh
    tanh dbo.tanh
  3. [Save] をクリックして接続をマッピングします。

第 4 段階:ネイティブ・アプリケーションの分析、ビルド、バインド

ネイティブ・アプリケーションの分析
  1. Eclipse IDE から、[File > Import] をクリックします。
  2. [General] を展開し、[Existing Projects into Workspace] を選択して、[Next] をクリックします。
  3. [Set root directory] を選択し、%PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\SQL\hcoss\FunctionEmulation ディレクトリを参照して、[OK] をクリックします。
  4. [Projects] リストで、[FunctionEmulation] をオンにします。
  5. [Copy projects into workspace] をオンにします。
  6. [Finish] をクリックします。Eclipse はプロジェクトをロードし、それを自動的にビルドします。
  7. COBOL Explorer から、[FunctionEmulation > COBOL Programs] を展開し、[FunctionEmulation.cbl] ファイルをダブルクリックして内容を表示します。ユーザ定義の関数を参照する EXEC SQL 文に特に注意してください。
  8. コード・エディタを閉じます。
  9. [FunctionEmulation] プロジェクトのプロジェクト・プロパティを開きます。
  10. [Micro Focus > Project Settings > COBOL] の順に展開し、[SQL Settings] を選択します。いくつかの OpenESQL コンパイラ指令が既に設定されています。次の表に、それぞれの概要を示します。
    SQL(TARGETDB=MSSQLSERVER) ターゲット・データベースは SQL Server です。
    SQL(DB=HCODemo) SQL Server 接続名は HCODemo です。
    SQL(DIALECT=MAINFRAME) HCOSS データベース構文変換を有効にします。
    SQL(DBRMLIB) EXEC-SQL コマンドを抽出し、データベース要求モジュール (DBRM) に置きます。
    SQL(INIT) データベース接続を開始します。
    SQL(NOCHECK) SQL のコンパイル時検証は実行されません。
ビルド後のイベントの定義
  1. [Properties] ウィンドウで、[Micro Focus > Build Configurations > Events] を展開します。
  2. [Post build event command line] フィールドに次のコマンドを入力します。
    DSN SYSTEM(HCODemo) @"FunctionEmulation.hcodsn"

    このコマンドは DSN バインド・ユーティリティを呼び出し、使用する SQL データベース接続を指定し、バインド・スクリプト・ファイルの場所と名前を提示します。Eclipse はアプリケーションのビルドの直後にこのイベントを実行し、その時点でアプリケーションを自動的にバインドします。

  3. [OK] をクリックします。Eclipse はネイティブのアプリケーションを自動的にビルドします。
バインド・スクリプト・ファイルの内容の表示
  • COBOL Explorer から、FunctionEmulation.hcodsn を開いて内容を検証します。バインド・スクリプト・ファイルには、FunctionEmulation メンバを FunctionEmulation という名前のプランにバインドする BIND PLAN コマンド 1 つが含まれています。
結果の検証
  1. Microsoft SQL Server Management Studio を使用して、SQL Server インスタンスに接続します。
  2. Object Explorer で、[Databases > HCO_Test > Programmability > Stored Procedures] の順に展開し、パッケージとプランを実行したとき HCOSS により作成されたストアド・プロシージャを確認します。
  3. 名前の一部に PLN を含んでいるストアド・プロシージャを開きます。

    この中に、ユーザ定義関数を呼び出すアプリケーション・コードが表示されます。

第 5 段階:ネイティブ・アプリケーションの実行

  1. COBOL Explorer から、FunctionEmulation.cbl ソース・ファイルを開きます。
  2. if sqlcode = 0 を含んでいる行にブレーク・ポイントを設定します。
  3. [Run > Debug] をクリックしデバッグを開始します。
  4. [Debug As] ダイアログ・ボックスの指示が表示された場合は、[COBOL Application] を選択し、[OK] をクリックします。
  5. [Debug] パースペクティブを開く指示が表示されたら、[Yes] をクリックします。
  6. [Resume] をクリックしてブレーク・ポイント設定を続行します。

出力から、結果がユーザ定義の関数によって実行された計算であることがわかります。

注:出力ウィンドウが見えない場合は、Eclipse を最小化してウィンドウが見えるようにします。

これでこのチュートリアルは終了です。