bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

TxRPC を使用した Tuxedo アプリケーションのプログラミング

 Previous Next Contents View as PDF  

インターフェイス定義言語 (IDL) の使用

ここでは、次の内容について説明します。

 


参考資料

BEA Tuxedo TxRPC は、『DCE: REMOTE PROCEDURE CALL』(Doc Code:P312 ISBN 1-872630-95-2) の「第 3 章 Interface Definition Language」で説明されている IDL 文法と関連機能をサポートしています。この本は以下から入手できます。

X/OPEN Company Ltd (Publications)
P O Box 109
Penn
High Wycombe
Bucks HP10 8NP
United Kingdom

電話: +44 (0) 494 813844
ファクシミリ: +44 (0) 494 814989

X/OPENドキュメントは、BEA Tuxedo 製品が準拠し、その言語および規則の原典とするものです。X/OPEN TxRPC IDL-only インターフェイスがサポートされていることに注意してください。DCE バインディングとランタイムに関するドキュメントの一部は適用されません。X/OPEN ドキュメントは OSF AES/RPC ドキュメントを基本としています。チュートリアル、プログラマーズ・ガイドとして入手可能な文献は多数ありますが、ほとんどのものには最新の機能は記載されていません。OSF から入手できるプログラマーズ・ガイドとして、Prentice-Hall の『OSF DCE Application Development Guide』(Englewood Cliffs, New Jersey, 07632) があります。

『X/OPEN Preliminary Specification for TxRPC Communication Application Programming Interface』(TxRPC 通信アプリケーション・プログラミング・インターフェイスのための X/OPEN 予備仕様) もまた X/OPEN から入手できます (上記を参照)。TxRPC は、RPC 用のトランザクション・サポートをオリジナルの X/OPEN RPC インターフェイスに追加しています。

 


uuidgen による IDL テンプレートの作成

汎用一意識別子 (UUID) はインターフェイスを一意に識別するために使用します。uuidgen コマンドを実行して UUID を生成します。出力は次のようになります。

$ uuidgen -i > simp.idl
$ cat simp.idl
[uuid(816A4780-A76B-110F-9B3F-930269220000)]
interface INTERFACE
{
}

次にこのテンプレートを使用して、型定義、定数、およびオペレーションを追加するアプリケーション用の IDL 入力ファイルを作成します。

BEA Tuxedo と DCE の両方の uuidgen(1) コマンドを利用できる場合は、DCE コマンドでテンプレートを生成する必要があります。DCE バージョンでは通常、以下で説明するとおり、ノード・アドレスを取得するためにマシン固有の手法を採用しています。

BEA Tuxedo システムの uuidgen コマンドは、-s オプション (初期化された C 構造体として UUID 文字列を生成する) と、-t オプション (以前の形式の UUID 文字列を新規形式に変換する) をサポートしていない点を除いて、DCE コマンドと同じです。インターフェイスの詳細については uuidgen(1) のリファレンス・ページを参照してください。

uuidgen コマンドは、ISO/IEC 8802-3 (ANSI/IEEE 802.3) に記載されているように 48 ビット・ノード・アドレスを要求します。プラットフォームに依存せずにこの値を求める方法は存在しません。また一部のマシン (ワークステーションなど) ではまったく利用できないこともあります。BEA Tuxedo システムの uuidgen コマンドでは、次の手法が使用されています。

 


言語の変更点

IDL コンパイラは IDL 文法を認識して、入力に基づいてスタブ関数を生成します。文法とその指定方法は、本章前半に記載した X/OPEN リファレンスと OSF/DCE リファレンスの両方に詳しく説明されています。次の項目で説明するいくつかの変更を加えることで文法はそのまま認識されます。

 


TxRPC 仕様に基づく変更

次に X/OPEN TxRPC 仕様に定義されている基本 X/OPEN RPC 仕様に対する変更点を示します。

 


言語の拡張

次に X/OPEN RPC 仕様に対する強化を示します。多くの場合、言語は C 言語により密接に従うように拡張されており、ANSI C から IDL プロトタイプに変換することにより、既存インターフェイスの移植を簡素化しています。

移植性に制限を加える可能性がある拡張

X/OPEN RPC 仕様に対して BEA Tuxedo の 4 つの拡張機能が追加されており、これらは仕様をより C 言語に近づける一方で、OSF DCE IDL コンパイラではサポートされないために IDL ファイルの移植性に制限を加えることになります。

 


サポートされていない機能

以下の 7 つの機能は tidl コンパイラではサポートされていません。

 


IDL コンパイラ tidl の使用

IDL コンパイラ用のインターフェイスは、X/OPEN 仕様では指定されていません。

DCE アプリケーションの移植性を考慮し、BEA Tuxedo システムの IDL コンパイラのインターフェイスは DCE IDL コンパイラと同様ですが、次のような例外があります。

デフォルトでは、IDL コンパイラは入力 IDL ファイルを受け取り、クライアントとサーバ・スタブのオブジェクト・ファイルを生成します。-keep c_source オプションは C ソース・ファイルだけを生成し、-keep all オプションは C ソース・ファイルとオブジェクト・ファイルの両方を保持します。アプリケーション例で示したサンプル RPC アプリケーションでは、-keep object オプションを使用してオブジェクト・ファイルを生成しています。

デフォルトでは、tidl は最大 50 個までのエラーを表示します。エラー数が 50 個を超えている場合に、すべてのエラーを表示するときは、-error all オプションを指定します。エラー出力は stderr に送られます。

その他使用可能なオプションの詳細については、『BEA Tuxedo コマンド・リファレンス』の tidl(1) を参照してください。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy