BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


TPINIT 型バッファの機能

次の TPINIT 型バッファの機能をクライアントで利用するには、tpinit() 関数を明示的に呼び出す必要があります。

クライアント命名

クライアントがアプリケーションに参加すると、BEA Tuxedo システムによって一意なクライアント識別子が割り当てられます。識別子は、クライアントによって呼び出される各サービスに渡されます。識別子は、任意通知型通知に使用することもできます。

一意なクライアント名とユーザ名をそれぞれ 30 文字以内で割り当てることもできます。その場合、tpinfo バッファ引数を使用して名前を tpinit() 関数に渡します。BEA Tuxedo システムでは、各プロセスに対応付けられているクライアント名とユーザ名、およびプロセスが実行されているマシンの論理マシン ID (LMID) を組み合わせることにより、そのプロセスに対して一意な識別子が使用されます。これらのフィールド値を取得する方法は選択することができます。

注記 プロセスがアプリケーションの管理ドメイン以外で実行されている場合 (つまり、管理ドメインに接続されたワークステーション上で実行されている場合)、アプリケーションにアクセスするためにワークステーション・クライアントで使用されているマシンの LMID が割り当てられます。

クライアント・プロセスに対して一意な識別子が作成されると、次の操作を行うことができます。

任意通知型メッセージの送受信の詳細については、「イベント・ベースのクライアントおよびサーバのコーディング」を参照してください。tmadmin(1) の詳細については、『BEA Tuxedo C リファレンス』を参照してください。

次の図は、アプリケーションにアクセスするクライアントに名前を割り当てる方法を示しています。この例では、ジョブ関数を示す cltname フィールドがアプリケーションで使用されています。

クライアントの名前付け


 

任意通知型通知の処理

任意通知型通知とは、クライアントが予期していないサービス要求に対する応答 (またはエラー・コード) を受け取る通信です。たとえば、管理者が 5 分後にシステムをシャットダウンすることを通知するメッセージをブロードキャストした場合などです。

クライアントに任意通知型メッセージを通知する方法は数多くあります。たとえば、オペレーティング・システムがクライアントにシグナルを送って、クライアントの現在の処理を中断させる方法があります。BEA Tuxedo システムでは、ATMI 関数が呼び出されるたびに任意通知型メッセージが到着していないかどうかがデフォルトで確認されます。これはディップ・インと呼ばれる方法で、次の利点があります。

ディップ・インでは、メッセージの到着を確認するまでの間隔が長い場合があります。そのため、アプリケーションで tpchkunsol() 関数を呼び出して、既に到着している任意通知型メッセージがないかどうかを確認できます。tpchkunsol() 関数の詳細については、「イベント・ベースのクライアントおよびサーバのコーディング」を参照してください。

クライアントが tpinit() 関数を使用してアプリケーションに参加する場合、フラグを定義して任意通知型メッセージの処理方法を指定できます。クライアントへの通知では、次の表に示す値を flags に指定できます。

TPINIT 型バッファのクライアント通知でのフラグ

フラグ

説明

TPU_SIG

シグナルによる任意通知を選択します。このフラグは、シングル・スレッドでシングル・コンテキストのアプリケーションのみで使用します。このモードの利点は、直ちに通知できることです。このモードには、次のような不都合があります。

システムや環境の要件を満たしていない場合にこのフラグを指定すると、フラグに TPU_DIP が設定され、ログにイベントが記録されます。

TPU_DIP (デフォルト)

ディップ・インを使用した任意通知型メッセージを指定します。クライアントは tpchkunsol() 関数を使用してメッセージ処理関数の名前を指定し、tpsetunsol() 関数を使用して待機中の任意通知型メッセージを確認できます。

TPU_THREAD

別のスレッド内の THREAD 通知を指定します。このフラグは、マルチスレッドをサポートするプラットフォーム専用です。マルチスレッドがサポートされていないプラットフォームで TPU_THREAD を指定すると、無効な引数として処理されます。その結果、tperrno(5)エラーが返されて TPEINVAL が設定されます。

TPU_IGN

任意通知を無視します。

TPINIT 型バッファ・フラグの詳細については、『BEA Tuxedo C リファレンス』の tpinit(3c) を参照してください。

システム・アクセス・モード

アプリケーションは、protected または fastpath のいずれかのモードで BEA Tuxedo システムにアクセスできます。クライアントは、tpinit() 関数を使用してアプリケーションに参加するときに、モードを要求できます。モードを指定するには、TPINIT バッファの flags フィールドにいずれかのモードを指定して、その値を tpinit() 関数に渡します。

TPINIT 型バッファのシステム・アクセス・フラグ

モード

説明

PROTECTED

アプリケーション内で ATMI 関数を呼び出し、共用メモリを使用して BEA Tuxedo システムの内部テーブルにアクセスします。BEA Tuxedo システム・ライブラリ外のアプリケーション・コードからのアクセスに対して、共用メモリを保護します。この値は、NO_OVERRIDE が指定されている場合を除き、UBBCONFIG の値に優先します。UBBCONFIG の詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。

FASTPATH (デフォルト)

アプリケーション・コード内で ATMI 関数を呼び出し、共用メモリを使用して BEA Tuxedo システム内部にアクセスします。BEA Tuxedo システム・ライブラリ外のアプリケーション・コードからのアクセスに対して、共用メモリを保護しません。この値は、NO_OVERRIDE が指定されている場合を除き、UBBCONFIG の値に優先します。UBBCONFIG の詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。

リソース・マネージャとの対応付け

アプリケーション管理者は、リソース・マネージャに対応付けられたサーバ(トランザクションを調整するための管理プロセスを提供するサーバを含む)をグループ化できます。グループの定義については、『BEA Tuxedo アプリケーションの設定』を参照してください。

アプリケーションに参加している場合、クライアントは TPINIT 型バッファの grpname フィールドにグループ名を指定して、特定のグループに参加できます。

クライアント認証

BEA Tuxedo システムでは、オペレーティング・システムのセキュリティ、アプリケーション・パスワード、ユーザ認証、オプションのアクセス制御リスト、必須のアクセス制御リスト、リンク・レベルの暗号化などのセキュリティ・レベルを設定できます。セキュリティ・レベル設定の詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。

セキュリティ・レベルとしてアプリケーション・パスワードが設定されている場合、アプリケーションに参加するときに、すべてのクライアントがアプリケーション・パスワードを入力する必要があります。管理者はアプリケーション・パスワードを設定したり変更できます。また、そのパスワードを有効なユーザに提供する必要があります。

このレベルのセキュリティが設定されていると、BEA Tuxedo システムで提供される ud(1) などのクライアント・プログラムでは、アプリケーション・パスワードの入力が求められます。ud(1)、wud(1) の詳細については、『BEA Tuxedo アプリケーション実行時の管理』を参照してください。アプリケーション固有のクライアント・プログラムには、ユーザからパスワードを取得するコードが記述されていることが必要です。クライアントがアプリケーションに参加するために tpinit() を呼び出すと、非暗号化パスワードが TPINIT バッファに格納されて評価されます。

注記 パスワードは画面には表示されません。

tpchkauth(3c) 関数を使用すると、次の内容を確認できます。

通常、クライアントは tpinit() より先に tpchkauth() 関数を呼び出して、初期化時に指定する必要のあるセキュリティ情報を確認します。

セキュリティのプログラミング手法の詳細については、『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

 

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