1.5 Oracle Tuxedo API: ATMI
アプリケーションのロジックを記述するC言語のほかに、アプリケーション・トランザクション・モニター・インタフェース(ATMI)を使用する必要があります。このATMIは、アプリケーションとOracle Tuxedoシステム間のインタフェースになります。ATMI関数は、オペレーティング・システム・コールに類似したC言語の関数です。これらの関数により、必要なすべてのリソースも含め、Oracle Tuxedoシステムのトランザクション・モニターの下で動作するアプリケーション・モジュール間の通信が実装されます。
ATMIは、リソースのオープンとクローズ、トランザクションの開始と終了、バッファの割当てと解放、およびクライアントとサーバー間の通信のサポートなどの処理に使用されるコンパクトな関数セットです。次の表は、ATMI関数をまとめたものです。各関数については、『Oracle Tuxedo ATMI C言語関数リファレンス』を参照してください。
表1-2 ATMI関数の使用
| 対象となるタスク | 使用するC関数 | 目的 | 詳細の参照先 | 
|---|---|---|---|
| バッファ管理 | tpalloc() | メッセージ・バッファを作成します。 | 型付きバッファの管理 | 
| tprealloc() | メッセージ・バッファのサイズを変更します。 | ||
| tptypes() | メッセージのタイプとサブタイプを取得します。 | ||
| tpfree() | メッセージ・バッファを解放します。 | ||
| クライアントのメンバーシップ | tpchkauth() | 認証が必要かどうかを確認します。 | クライアントのコーディング | 
| tpinit() | アプリケーションに参加します。 | ||
| tpterm() | アプリケーションから分離します。 | ||
| 複数のアプリケーション・コンテキストの管理 | tpgetctxt(3c) | 現在のスレッドのコンテキストの識別子を取得します。 | マルチスレッドおよびマルチコンテキストATMIアプリケーションのプログラミング | 
| tpsetctxt(3c) | マルチコンテキスト・プロセスに現在のスレッドのコンテキストを設定します。 | ||
| サービスの登録と応答 | tpsvrinit() | サーバーを初期化します。 | |
| tpsvrdone() | サーバーを終了します。 | ||
| tpsvrthrinit() | 個々のサーバー・スレッドを初期化します。 | ||
| tpsvrthrdone() | 個々のサーバー・スレッドの終了コードです。 | ||
| tpreturn() | サービス関数を終了します。 | ||
| tpforward() | リクエストを転送します。 | ||
| 動的な通知 | tpadvertise() | サービス名を通知します。 | サーバーのコーディング | 
| tpadvertisex() | ドメイン内で一意のサービス名を持つサービスを通知するか、Oracle Tuxedoサーバーのセカンダリ・リクエスト・キューにサービスを通知します。 | ||
| tpunadvertise() | サービス名の通知を解除します。 | ||
| メッセージの優先度 | tpgprio() | 最後のリクエストの優先度を取得します。 | サーバーのコーディング | 
| tpsprio() | 次のリクエストの優先度を設定します。 | ||
| リクエスト/レスポンス通信 | tpcall() | サービスへの同期リクエスト/レスポンスを開始します。 | |
| tpacall() | 非同期リクエストを開始します。 | ||
| tpgetrply() | 非同期レスポンスを受け取ります。 | ||
| tpcancel() | 非同期リクエストを取り消します。 | ||
| 会話型通信 | tpconnect() | サービスとの会話を開始します。 | 会話型クライアントおよびサーバーのコーディング | 
| tpdiscon() | 会話を異常終了します。 | ||
| tpsend() | 会話中にメッセージを送信します。 | ||
| tprecv() | 会話中にメッセージを受信します。 | ||
| 信頼性の高いキュー | tpenqueue(3c) | メッセージをメッセージ・キューに登録します。 | ATMI /Qコンポーネントの使用 | 
| tpdequeue(3c) | メッセージをメッセージ・キューから取り出します。 | ||
| イベント・ベースの通信 | tpnotify() | クライアントに非請求メッセージを送信します。 | イベント・ベースのクライアントおよびサーバーのコーディング | 
| tpbroadcast() | 複数のクライアントにメッセージを送信します。 | ||
| tpsetunsol() | 非請求メッセージのコールバックを設定します。 | ||
| tpchkunsol() | 非請求メッセージの到着を確認します。 | ||
| tppost() | イベント・メッセージをポストします。 | ||
| tpsubscribe() | イベント・メッセージをサブスクライブします。 | ||
| tpunsubscribe() | イベント・メッセージのサブスクリプションを削除します。 | ||
| トランザクション管理 | tpbegin() | トランザクションを開始します。 | グローバル・トランザクションのコーディング | 
| tpcommit() | 現在のトランザクションをコミットします。 | ||
| tpabort() | 現在のトランザクションをロールバックします。 | ||
| tpgetlev() | トランザクション・モードであるかどうかを確認します。 | ||
| tpsuspend() | 現在のトランザクションを一時停止します。 | ||
| tpresume() | トランザクションを再開します。 | ||
| リソース管理 | tpopen(3c) | リソース・マネージャをオープンします。 | Oracle Tuxedoアプリケーションの設定 | 
| tpclose(3c) | リソース・マネージャをクローズします。 | ||
| ブロック・タイム管理 | tpgblktime(3c) | ブロック・タイム値を取得します。 | 『Oracle Tuxedo ATMI C言語関数リファレンス』 | 
| tpsblktime(3c) | ブロック・タイム値を秒単位またはミリ秒単位で設定します。 | ||
| セキュリティ | tpkey_open(3c) | デジタル署名の生成、メッセージの暗号化、またはメッセージの復号化のためのキー・ハンドルをオープンします。 | CORBAアプリケーションにおけるセキュリティの使用 | 
| tpkey_getinfo(3c) | キー・ハンドルに関連付けられた情報を取得します。 | ||
| tpkey_setinfo(3c) | キー・ハンドルに関連付けられた属性(オプション)を設定します。 | ||
| tpkey_close(3c)  | すでにオープンされているハンドルをクローズします。 | ||
| tpsign(3c) | デジタル署名を生成するための型付きメッセージ・バッファをマークします。 | ||
| tpseal(3c)  | 暗号化エンベロープを生成するための型付きメッセージ・バッファをマークします。 | ||
| tpenvelope(3c)  | 型付きメッセージ・バッファに関連付けられたデジタル署名と受信側の情報にアクセスします。 | ||
| tpexport(3c) | 型付きメッセージ・バッファをエクスポート可能でマシンに依存しない(外部化された)文字列表現に変換します。 | ||
| tpimport(3c) | 外部化された文字列表現を型付きメッセージ・バッファに変換します。 | ||
| 関連項目:Oracle Tuxedo ATMI C関数の詳細は、「セクション3c - C関数」を参照してください | |||
親トピック: Oracle Tuxedoプログラミングの紹介