Interstage Application Server アプリケーション作成ガイド (コンポーネントトランザクションサービス編) |
目次
索引
![]() ![]() |
第2章 サーバアプリケーションの作成(C言語) |
サーバアプリケーションの処理を、オペレーティングシステムに添付されているエディタなどを使用して記述します。
ローカルトランザクション運用の場合は、リソースマネージャが提供するトランザクション命令と、リソースマネージャを使用するために必要な、データベースの結合処理や切り離し文などを記述してください。記述するトランザクション命令については、使用するリソースマネージャのマニュアルを参照してください。
IDL定義とサーバアプリケーション名の関係を以下に示します。
モジュール名_インタフェース名_オペレーション名 |
IDLコンパイルにより生成される以下のヘッダファイルをサーバアプリケーションにインクルードしてください。
ヘッダファイル |
種別 |
---|---|
TD_オブジェクト名.h |
スケルトン用ヘッダファイル |
IDLファイル名.h |
スタブ用ヘッダファイル(注) |
(注)
中継用サーバアプリケーションを作成するときに必要です。スタブ側のIDLファイルのコンパイルにより生成されます。
出口プログラムは以下の形式で作成してください。なお、ここでの出口プログラムとは、前出口プログラム、後出口プログラム、および、プロセスバインド機能を使用する場合の異常出口プログラムを指します。
引数 |
なし |
復帰値 |
long型 |
復帰値が0以外の場合は、出口プログラム異常終了とみなし、出口プログラム種別ごとに以下の動作となります。
出口プログラムを使用する場合、出口プログラムをDLLからエクスポートするために、関数のプロトタイプ宣言に__declspec(dllexport)キーワードを付加してください。または、モジュール定義ファイル(.DEF)を使用して、出口プログラムをエクスポートしてください。
アプリケーションより標準出力または標準エラー出力に向けて出力されたデータは、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されます。
しかし、Microsoft(R) Visual C++ .NETを使用してビルドされたアプリケーションでは、標準出力または標準エラー出力に向けて出力されたデータが、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されません。
これを回避し正しく出力するためには、アプリケーションにおいて以下の対処を実施してください。
プログラムの先頭に以下のコードを追加してください。
freopen("stdout", "w", stdout); freopen("stderr", "w", stderr);
なお、前出口プログラムを使用される場合は、前出口プログラムの先頭に追加してください。前出口プログラムに追加した場合、本処理および後出口プログラムへの対処は必要ありません。
前出口プログラムを使用されない場合は、本処理の先頭に追加し、かつ、初回呼び出し時のみ実行するよう対処してください。
目次
索引
![]() ![]() |