BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   C 言語を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


クライアント・プロセスの例

次の疑似コードは、通常のクライアント・プロセスがアプリケーションに参加してから分離するまでの処理を示しています。

クライアント・プロセスのパラダイム

main() 
{  
セキュリティ・レベルをチェック
tpsetunsol() を呼び出して TPU_DIP 用にハンドラを命名
usrname, cltname を取得
アプリケーション・パスワードの入力を要求
TPINIT バッファを割り当て
TPINIT バッファ構造体メンバに値を格納
 
if (tpinit((TPINIT *) tpinfo) == -1){ 
エラー・ルーチン; 
} 
  
ユーザ入力が存在する間に
メッセージ・バッファを割り当て { 
ユーザ入力をバッファに格納
サービス呼び出しを行う
応答を受信
任意通知型メッセージを確認 
}  
バッファを開放 
. . . 
if (tpterm() == -1) { 
エラー・ルーチン; 
}
}

エラーが発生すると -1 が返され、アプリケーションが外部グローバル変数 tperrno にエラーの原因を示す値を設定します。tperrno は、atmi.h ヘッダ・ファイルに定義されています。詳細については、『ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス』の tperrno(5) を参照してください。通常、プログラマが発生したエラーの種類を示すエラー コードをこのグローバル変数に設定します。tperrno の値については 「システム・エラー」 を参照してください。各 ATMI 呼び出しで返される全エラー・コードのリストについては、『BEA Tuxedo C リファレンス』 の 「C 言語アプリケーション・トランザクション・モニタ・インターフェイスについて」を参照してください。

次の例は、tpinit()tpterm() 関数の使用方法を示しています。このコード例は、BEA Tuxedo ソフトウェアに提供されている銀行業務のサンプル・アプリケーション bankapp から引用したものです。

アプリケーションへの参加と分離

#include <stdio.h>         /* UNIX */
#include <string.h> /* UNIX */
#include <fml.h> /* BEA Tuxedo システム */
#include <atmi.h> /* BEA Tuxedo システム */
#include <Uunix.h> /* BEA Tuxedo システム */
#include <userlog.h> /* BEA Tuxedo システム */
#include "bank.h" /* 銀行業務アプリケーションのマクロ定義 */
#include "aud.h" /* 銀行業務アプリケーションの VIEW 定義 */

...

main(argc, argv)
int argc;
char *argv[];

{
...
if (strrchr(argv[0],'/') != NULL)
proc_name = strrchr(argv[0],'/')+1;
else
proc_name = argv[0];
...
/* アプリケーションへの参加 */
if (tpinit((TPINIT *) NULL) == -1) {
(void)userlog("%s:failed to join application\n", proc_name);
exit(1);
}
...
/* アプリケーションからの分離 */
if (tpterm() == -1) {
(void)userlog("%s:failed to leave application\n", proc_name);
exit(1);
}
}

この例は、tpinit() を呼び出すことによって、アプリケーションに参加しているクライアント・プロセスを示しています。エラー (戻り値が -1) が発生すると、このプロセスは C プログラム文の printf() と似た引数を取る userlog() を呼び出して、中央イベント・ログにメッセージを書き込みます。詳細については、『BEA Tuxedo C リファレンス』 の userlog(3c) を参照してください。

同様に、tpterm() を呼び出し、エラーが発生すると、このプロセスは中央イベント・ログにメッセージを書き込みます。

 

先頭へ戻る 前のトピックへ 次のトピックへ