コンポーネントトランザクションサービスではIDLの文法に準拠していますが、次のように利用範囲を限定しています。
トランザクションアプリケーション向けの利用範囲を、以下に示します。
データ型 | サポート可否 | 備考 | ||
---|---|---|---|---|
基本データ型 | 整数型(注) | long long | ○ | 符号つきlong long:-263~263-1 |
浮動小数点型 | float | △ | COBOLでは、long doubleは未サポートです。 | |
文字型 | char | ○ |
| |
オクテット型 | octet | ○ |
| |
ブーリアン型 | boolean | ○ |
| |
列挙型 | enum | × |
| |
any型 | any | × |
| |
文字列型 | string | ○ |
| |
シーケンス型 | sequence | △ | 要素のデータ型は、基本データ型とします。 | |
配列 | array | △ | 配列要素のデータ型は、基本データ型および構造体とします。また、配列の次元数は1次元までとします。 | |
構造体 | struct | △ | 構造体メンバのデータ型は、基本データ型だけとします。 | |
共用体 | union | × |
| |
固定小数点型 | fixed | × |
| |
オブジェクトリファレンス | Object | × |
| |
interface | × |
| ||
タイプコード | TypeCode | × |
|
○:サポート
△:一部サポート
×:未サポート
注)COBOLマッピングでは、以下の数値が使用可能です。他言語とは異なるため、注意してください。
long:-999,999,999~999,999,999
unsigned long:0~999,999,999
short:-9,999~9,999
unsigned short:0~9,999
long long:-999,999,999,999,999,999~999,999,999,999,999,999
また、IDLの文法全体に対して、利用不可の項目を以下に示します。
未サポート
例
module A { interface B { ... }; }; interface C {}; → 不可
未サポート
未サポート
一部サポート
基本データ型、配列以外は、使用できません。
配列要素のデータ型に、基本データ型以外を使用できません。
また、配列の次元数は1次元までとします。
例
typedef struct A { long a1; } A_str; exception B { A_str b1[4]; };
未サポート
未サポート
未サポート
一部サポート
サーバアプリケーション言語がCOBOL言語の場合は、使用できません。
例
module M1 { interface I1 { typedef long L1; long ope1(); }; interface I2 { long ope2(in M1::I1::L1 para1); → 不可 }; };
注意
以下の予約語は、TDであらかじめ用途が決められた固有の意味を持つ語のため、識別子に記述できません。
TD_RTNVAL