Visual C++.Net IDEによるOracle Tuxedo ATMIアプリケーションの開発
次の項では、Windowsデスクトップ・システムまたはWindows ServerシステムのMicrosoft Visual C++統合開発環境(
msdev)でATMIアプリケーションのクライアント/サーバーを開発する方法について説明します。
Windowsデスクトップ・システムには、Oracle Tuxedo ATMIクライアント・コンポーネント(サーバー・コンポーネントは別)をインストールできるため、これらのプラットフォームでは、Microsoft Visual C++ IDEでATMIアプリケーション・クライアントのみを開発できます。これに対して、Windows ServerにはOracle Tuxedo ATMIクライアント・コンポーネントとサーバー・コンポーネントの両方をインストールできるため、Windows Serverプラットフォームでは、Microsoft Visual C++.Net IDEを使用して、ATMIアプリケーションのクライアントとサーバーの両方を開発できます。
Oracle Tuxedo ATMIは、Microsoft Visual C++.Net IDE (
msdev)に統合されますが、統合できない場合は
msdevの機能がエミュレートされます。この統合により、64ビットおよび32ビットのWindowsオペレーティング・システムでOracle Tuxedo ATMIアプリケーションを簡単に開発できます。
Oracle Tuxedo ATMIのサービス・リクエストの作成、リクエストの送信、会話型接続の設定、および応答の受信に必要なコーディングは、基本的にはUNIX環境およびWindows Server環境のどちらでも同じです。
BuildTuxedoは、
msdevビルド環境と密接に統合されている1つの開発ツールで、開発者は、
buildserver、
buildclientおよび
buildcltコマンドのかわりにOracle Tuxedoアプリケーションの開発に使用できます。(もちろん、これらのコマンドを利用してもかまいません。)
BuildTuxedoシステムは、現在サポートされているすべてのWindows環境でスムーズに作動します。
buildserverコマンドおよびbuildclientコマンドを使用する
Windows Serverシステムでは
buildclientおよび
buildserverコマンドの両方が使用できます。しかし、Windowsデスクトップ・システムでは
buildclientコマンドのみが使用でき、これは、Windowsデスクトップ・システムではTuxedoアプリケーション・クライアントのみをビルドできることを意味します。buildコマンドの詳細は、
『Oracle Tuxedoコマンド・リファレンス』の
「buildclient(1)」および
「buildserver(1)」を参照してください。
buildclientコマンドと
buildserverコマンドのオプションは、次の表に示すように、統合開発環境と統合開発環境以外の環境で異なる働きをします。
表3-1
buildserverコマンドとbuildclientコマンドの使用
|
|
|
|
|
デフォルトですべてのオプションがタブに表示されます。( -vオプションは必要ありません。サポートもされていません。)
|
|
|
1.
|
msdevの「Build」メニューから「Settings」を選択します。
|
2.
|
「Project Settings」ダイアログ・ボックスの「Link」タブを選択します。
|
3.
|
編集コントロールを使用して、出力ファイルの名前を指定します。
|
|
|
|
1.
|
msdevの「Build」メニューから「Settings」を選択します。
|
2.
|
「Project Settings」ダイアログ・ボックスの「Link」タブを選択します。
|
3.
|
編集コントロールを使用して、最初にリンクするファイルを指定します。
|
|
|
|
1.
|
msdevメニューから「Project」を選択します。
|
2.
|
「Project Settings」ダイアログ・ボックスの「Link」タブを選択します。
|
3.
|
編集コントロールを使用して、最後にリンクするファイルを指定します。
|
|
|
|
2.
|
BuildTuxedoの「Test」ウィンドウにアクセスし、「Resources」タブを選択します。
|
3.
|
「Tuxedo Resource Manager」フィールドに、リソース・マネージャの名前を入力します。
|
|
|
|
2.
|
BuildTuxedoの「Test」ウィンドウにアクセスし、「Service」タブを選択します。
|
3.
|
「Service Name」フィールドに、各サービスの名前を行ごとに入力します。
|
|
|
|
|
統合開発環境でビルド環境を変更するには、次の手順に従います。
1.
|
msdevの「Project」メニューから「Settings」を選択します。
|
2.
|
「C/C++」または「Link」タブを選択します。
|
ライブラリを指定して統合開発環境にパスを含めるには、次の手順に従います。
1.
|
MSDEVの「Tools」メニューから、「Options」を選択して「Options」ダイアログ・ボックスを表示します。
|
2.
|
「Options」ダイアログ・ボックスで、「Directories」タブを選択します。
|
MSDEVの「Tools」メニューにBuildTuxedoを追加する
BuildTuxedoをMSDEVの「Tools」メニューに追加するには、次の手順に従います。
1.
|
Microsoft Visual C++.Net IDE ( msdev)のグラフィカル・ユーザー・インタフェース(GUI)で、「Tools」 →「External Tools」を選択します。「External Tools」ウィンドウが表示されます。
|
2.
|
「External Tools」ウィンドウで、「Add」をクリックして「Title」フィールドをクリアします。
|
3.
|
「External Tools」ページの「Title」フィールドで、空のフィールドに「 &BuildTuxedo」と入力します。
|
注意:
|
文字キーを ホット・キーとして有効にするには、該当の文字の前にアンパサンド(&)を追加します。
|
4.
|
「External Tools」ページの「Command」フィールドで、次の操作のいずれかの方法でパス名を指定します。
|
•
|
BuildTuxedoのフルパス名( %TUXDIR%\bin\BuildTuxedo)を入力します。
|
•
|
「Command」フィールドの右側にある省略記号ボタン ![](images/ntpgm.4.1.2.jpg) をクリックして、ディレクトリを参照し、 buildtuxedo.exeを選択して「Open」をクリックします。選択したパス名が「External Tools」ウィンドウに表示されます。
|
5.
|
「External Tools」ページの「Initial directory」フィールドで、右矢印 ボタンをクリックしてポップアップ・メニューを表示します。ポップアップ・メニューから、「Project Directory」( $(ProjectDir))を選択します。
|
注意:
|
項目を変更するには、その項目を強調表示してから上書きします。項目を移動するには、その項目を強調表示してから、「Menu Content」ボックスの上部にある上矢印または下矢印を選択します。
|
6.
|
「Apply」をクリックして変更内容を保存し、「OK」をクリックして「External Tools」ウィンドウを閉じます。
|
これで、BuildTuxedoがMSDEVの「Tools」メニューに表示されます。
Oracle Tuxedo ATMIプロジェクト・ファイルを作成する
BuildTuxedoでは、Oracle Tuxedo ATMIアプリケーションごとに使用される個別のプロジェクト・ファイルをカレント・ディレクトリに保持します。
BuildTuxedoが起動すると、カレント・ディレクトリ内にある有効なプロジェクト・ファイルが検索されます。見つかった場合は、ダイアログ・ボックス内の値がこのファイル内の値に設定され、ダイアログが表示されます。タイトル・バーには次の情報が表示されます。
BuildTuxedoプロジェクトはカレント・ディレクトリ内の
msdevプロジェクトに密接に関連付けられているため、
BuildTuxedoでは、次の2つのファイルも検索されます。
•
|
msdevの有効なmakeファイル( filename. mak)
|
•
|
msdevプロジェクト・ファイル( filename.mdp、filename.dswまたは filename.dsp)
|
BuildTuxedoでこれらのファイルが見つからない場合は、警告が表示されるか、起動できなくなります(あるいは両方)。ディレクトリに複数の
BuildTuxedoプロジェクト・ファイル、複数の
msdevプロジェクト・ファイル、またはmakeファイルがある場合は、該当のターゲット名を含むメニュー項目が「System」メニューに追加されます。
現行のプロジェクト・ファイルを保存するには、「OK」または「Apply」を選択します。プロジェクト・ファイルまたはOracle Tuxedoで保持されるファイルに加えた変更内容を取り消すには、「Cancel」または[Esc]をクリックします。
IDEでOracle Tuxedo ATMIアプリケーションをビルドする前に、次の基本パラメータを環境に設定する必要があります。
•
|
BuildTuxedoで作成および管理されるCまたはC++ファイルのファイル名
|
この情報を指定するには、
msdevのGUIで、「
BuildTuxedo project_name」ダイアログ・ボックスにアクセスします。
ビルド・タイプ、ヘッダー・ファイル、およびファイル名を指定する
ビルド・タイプ、ヘッダー・タイプおよびファイル名を指定するには、次の手順に従います。
1.
|
「project_name」ダイアログ・ボックスで、「Build」タブをクリックして「Build」ページを表示します。
|
2.
|
「Build」ページの「Build Types」フィールドの下矢印をクリックし、次のいずれかを選択します。
|
•
|
Native client or Workstation client(ネイティブ・クライアントまたはワークステーション・クライアント)
|
注意:
|
Windowsデスクトップのユーザーが選択できるのは、ワークステーション・クライアントのみです。
|
|
|
|
「Initialization」、「Cleanup」および「Entry Point」フィールドに情報を入力します。ステップ3に進みます。
|
Native Client or Workstation Client(ネイティブ・クライアントまたはワークステーション・クライアント)
|
|
「Initialization」オプションおよび「Cleanup」オプションでは、有効な関数名を指定して、デフォルトのinit/exit関数をオーバーライドできます。「Entry Point」オプションでは、
BuildTuxedoで生成される関数の名前を指定できます。関数名を指定しておくと、アプリケーションのどこからでもこの関数を呼び出すことができます。
3.
|
「Build」ページの「Header File」に、「 stdafx.h」と入力します。
|
4.
|
「Build」ページの「File Name」フィールドに、 BuildTuxedoによって生成および管理されるCまたはC++ファイルの名前を入力します。
|
BuildTuxedoでヘッダー・ファイルを使用する
ヘッダー・ファイルでは、
BuildTuxedoによって必要なPRAGMA文が追加され、現在のOracle Tuxedo ATMIプロジェクトが正しく作成されます。
BuildTuxedoでは、「Build」ページの「Header File」フィールドに指定されたファイルが存在する場合に、このファイルを開き、ファイルがない場合は、新しいファイルを作成します。次の行で始まり、
//Begin Tuxedo Section*****DO NOT EDIT*****
ヘッダー・ファイルでpragma文が書き込まれる部分を指定します。この部分は、
BuildTuxedoによって管理されます。ファイル内のこのセクションが
BuildTuxedoで見つからない場合は、ヘッダー・ファイルの最後に追加されます。これ以外のファイル内のテキストは変更されないため、ヘッダー・ファイルには
stdafx.hを指定できます。
注意:
|
新しいプロジェクトを作成して「OK」または「Apply」を選択した場合は、MSDEVの「Insert」メニューの「Files into Project」を選択する必要があります。次に、 BuildTuxedoで生成されたファイルを現在のプロジェクトに追加します。この操作は、新しいプロジェクトの場合、またはC/C++出力ファイルの名前を変更する場合にのみ実行します。
|
「Services」タブを選択すると、「サービス」ページが表示され、ここでは、関数名とサービス名を指定します。
「サービス」ページでは、サービス・ディスパッチ表の管理に使用される2つのリストが表示されます。
•
|
「Function Names」は、サービスに関連付けることのできるユーザー管理の関数のリストです。
|
•
|
「Service Names」は、関連するサービスのユーザー管理のリストです。
|
注意:
|
リストを上または下にスクロールするには、矢印キーを使用します。
|
通常、サービスと、そのサービスを実行する関数は同じ名前で表します。たとえば、関数
xではサービス
xを実行します。実行するサービスと異なる名前の関数もあります。たとえば、関数
abcではサービス
x、
yおよび
zを実行します。別のケースでは、実行時までサービス名がわからない場合もあります。
サーバーを構築する場合は、サービスに関連する関数を指定する必要があります。サービスに関連する関数には、サービス、適切なプロトタイプ、Cリンク、無効な戻り値、および
TPSVCINFOポインタ・パラメータを1つ指定する必要があります。サービス名をマッピングする関数を指定するには、この関数を「Function Name」リストに追加する必要があります。この情報は、サービス・ディスパッチ表に必要です。
注意:
|
buildserver(1)コマンドを使用している場合は、 -sオプションを使用してこの情報を入力できます。 -sオプションの詳細は、 『C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング』または 『COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』を参照してください。
|
「Function Names」リストに名前を追加または編集するには、次の手順に従います。
1.
|
「Services」フォルダ内で、次の表のいずれかの操作を選択します。
|
|
|
|
1.
|
「New」アイコン(左上隅が点滅している破線ボックス)をクリックします。
|
2.
|
「Insert」をクリックするか、リスト内の空白の部分(点線で囲まれたボックス)を選択します。
|
|
|
|
|
リスト内の名前を強調表示し、「X」アイコンまたは「Delete」をクリックします。
|
2.
|
完了したら、「OK」をクリックするか[Enter]を押して、変更内容を保存して終了します。(変更を保存せずに終了するには、[Esc]または[Tab]を押します。)
|
リソース・マネージャを指定するには、次の手順に従います。
1.
|
「 BuildTuxedo」ウィンドウの「Resources」タブを選択して、「Resources」ページを表示します。
|
![](images/chap6a.gif)
\
2.
|
「Resources」ページの「Tuxedo Resource Manager」フィールドに、アプリケーションのリソース・マネージャのフルパス名を入力します。
|
注意:
|
「Tuxedo Resource Manager」フィールドには、システムで利用可能なOracle Tuxedoのリソース・マネージャのリストが用意されており、 %TUXDIR%\udataobj\RMファイルで定義されています。ファイルが存在しない場合は、デフォルト(NONE)が表示されます。
|
Oracle Tuxedo ATMIサーバー・アプリケーションをデバッグする
次の手順は、プロジェクトでデバッグ構成を使用してATMIサーバー・アプリケーションをビルドした場合にのみ使用してください。
まだ起動していないサーバーをデバッグするには、次の手順に従います。
1.
|
Windowsのコマンド・プロンプトで、「 tmboot -n -d 1 -s servername」と入力し、 servernameを起動するために tmboot(1)で使用されるコマンド行オプションを表示します。
|
2.
|
tmboot -Mコマンドを実行し、BBLを起動します。(必要であれば、さらにアプリケーション・サーバーまたはマシンを起動します。)
|
3.
|
msdevで、「Project」 →「Settings」を選択します。
|
4.
|
「Debug」ページの「Program Arguments」フィールドで、ステップ1で使用したコマンド行オプションを入力します。
|
5.
|
デバッガを起動し、サーバー・アプリケーションをデバッグします。
|
注意:
|
Oracle Tuxedoのライブラリにはデバッグ情報が組み込まれておらず、ソース・コードも提供されていないため、直接Oracle Tuxedoのコードにアクセスすることはできません。
|
6.
|
デバッグ・セッションを終了するには、Windowのコマンド・プロンプトで「 tmshutdown」と入力します。
|
警告:
|
Oracle Tuxedoシステムがサーバーを再起動しようとする場合があるため、「Debug」 →「Stop」を選択する手順でサーバーを停止しないでください。
|
注意:
|
実行中のサーバーをデバッグするには、Windowsのコマンド・プロンプトで「 msdev -p nnn」と入力し、 nnnをサーバーのプロセスID (10進数)で置き換えます。
|
Visual C++.Net IDE GUIのかわりにコマンド行オプションを使用してATMIアプリケーションを開発する
Microsoft Visual C++ IDE GUIのかわりにコマンド行オプションを使用して、Oracle Tuxedo ATMIアプリケーションを開発する必要がある場合は、
buildserver(1)コマンドおよび
buildclient(1)コマンドを使用します。この場合は、Oracle Tuxedo ATMIアプリケーションのビルドに必要なコンパイラとリンク・オプションを指定します。これらのツールの使用方法の詳細は、次のドキュメントを参照してください。
•
|
『Oracle Tuxedoコマンド・リファレンス』
|
•
|
Oracle Tuxedo ATMIアプリケーション開発のためのチュートリアル
|
•
|
使用する言語に応じて、次のマニュアルのいずれかを参照してください。
|
•
|
C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング
|
•
|
『COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』
|
buildserverまたは
buildclientを使用してATMIアプリケーションのデバッグ・バージョンをビルドするには、
/Ziおよび
/Odオプションを指定して、すべてのソース・ファイルをコンパイルする必要があります。
/Ziオプションでは、デバッグを有効にし、
/Odオプションでは、最適化を無効にします。また、
_DEBUGプロプロセッサ・ディレクティブの定義が必要になる場合もあります。このプロセスを完了するには、リンク・オプションを次のように指定します。
-l"/link/debug:full /debugtype:both"
Oracle Tuxedo ATMIの詳細は、次のドキュメントを参照してください。
•
|
C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング
|
•
|
『COBOLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング』
|
•
|
FMLを使用したOracle Tuxedo ATMIアプリケーションのプログラミング
|
•
|
『Oracle Tuxedoコマンド・リファレンス』
|
•
|
『Oracle Tuxedo ATMI C言語関数リファレンス』
|
•
|
『Oracle Tuxedo ATMI COBOL関数リファレンス』
|
•
|
『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』
|