コンポーネントトランザクションサービスでは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