ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express リファレンスマニュアル(コマンド編)
Interstage

19.1 IDLc

名前

IDLc  -  IDLコンパイラ

形式

IDLc [-C | -cpp | -cobol | -oocob | -java | -vcpp] [-mss[SS]]
    [-a [-create | -update | -delete] | -R [-create | -update | -delete]]
    [-poa] [-tie] [-lc] [-ls] [-javaee] [-noex] [-Idir] [-Dname] [-noinclude] [-dy]
    [-o prefix] [-Sname] [-Tdir] [-mapinfo] [-f] [-nolog] [-unic] [-M system] [IDLfile]

機能説明

IDLcコマンドは、IDLfileで指定されたIDLファイルから、指定された言語(C言語/C++言語/Java言語/COBOL/OOCOBOL/Visual C++用) にマッピングされたスタブ・スケルトンを作成します。IDLファイルのファイル名は、“XX.idl”(XX:任意、拡張子:小文字)で指定します(省略時:“Foo.idl”)。

以下に、IDLcコマンドのオプションを説明します。
排他関係にあるオプションが指定された場合は、後に指定されたものが有効となります。

注意

  • OOCOBOL用のオプション(-oocob)は、使用できません。

  • OOCOBOL用のオプション(-oocob、-unic)は、Windows(R)クライアントで使用可能です。

[マッピング言語オプション]

マッピング言語を指定するオプションとして、以下のいずれかを指定します(省略時:“-C”)。

-C

C言語にマッピングされたスタブ・スケルトンなどのファイルを生成します。

-cpp

C++言語にマッピングされたスタブ・スケルトンなどのファイルを生成します。

-cobol

COBOLにマッピングされたスタブ・スケルトンなどのファイルを生成します。

-oocob

OOCOBOL(オブジェクト指向COBOL)にマッピングされたスタブ・スケルトンなどのファイルを生成します。

-java

Java言語にマッピングされたスタブ・スケルトンなどのファイルを生成します。

-vcpp

Visual C++用(Windows(R)用)にマッピングされたスタブ・スケルトンなどのファイルを生成します。

-mss[SS]

スタブと異なる言語のスケルトンを生成します。
ssには、スケルトンのマッピング言語として、以下を指定します。vcpp(Visual C++言語)は、指定できません。スタブのマッピング言語は、上記のオプション(-C/-cpp/-cobol/-oocob/-java)に従います。

  • c(C言語)

  • cpp(C++言語)

  • cobol(COBOL)

  • oocob(OOCOBOL)

  • java(Java言語)

SSを指定すると、スケルトンファイルの拡張子を変更できます。
SSを省略すると、以下が指定されたものとみなされます。-mcobol、-moocob、-mjavaの場合、SSは無効です。

  • -mcの場合:SS=c

  • -mcppの場合:SS=cpp

生成されるスタブ・スケルトンについては“生成ファイル名”を参照してください。

生成ファイル名

スタブ・スケルトンのファイルは、以下の名前で生成されます。

注)IDLファイル名:“xx.idl”、IDLファイル内で定義されているモジュール:“MM”、インタフェース:“yy”、データ型名:“zz”

開発言語(C言語)

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スタブ側

スケルトン側 [SS暗黙値:c]

xx.h

xx.h

xx_SS.h

共通ヘッダファイル

xx_cdr.h

xx_cdr.h

xx_cdr_SS.h

CDRヘッダファイル

xx_cdr.c

xx_cdr.c

xx_cdr_SS.c

CDRソースファイル

xx_stub.c

xx_stub.c

  

スタブファイル

xx_skel.c

  

xx_skel.c

スケルトンファイル

xx_MM_yy_skel.c

  

xx_MM_yy_skel.c

スケルトンファイル(-dy指定時)

開発言語(C++言語)

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スタブ側

スケルトン側 [SS暗黙値:cpp]

xx.H

xx.H

xx.H

共通ヘッダファイル

xx.h

  

xx_SS.h

共通ヘッダファイル

xx_cdr.h

xx_cdr.h

xx_SS_cdr.h

CDRヘッダファイル

xx_cdr.c

xx_cdr.c

xx_SS_cdr.c

CDRソースファイル

xx_c++.C

xx_c++.C

xx_c++.C

クラスメソッド定義ファイル

xx_stub_c++.C

xx_stub_c++.C

  

スタブファイル

xx_skel_c++.C

  

xx_skel_c++.C

スケルトンファイル

yy_skel_c++.C

  

yy_skel_c++.C

スケルトンファイル(-dy指定時)

開発言語(COBOL

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スタブ側

スケルトン側

xx_cdr.cbl

xx_cdr.cbl

xx_cdr.cbl

CDRソースファイル

xx_stub.cbl

xx_stub.cbl

  

スタブファイル

xx_yy_skel.cbl

  

xx_yy_skel.cbl

スケルトンファイル

xx_skel.cbl

  

xx_skel.cbl

領域獲得用スケルトン(注1)

xx_h.cbl

xx_h.cbl

xx_h.cbl

データ型定義ファイル(注2)

開発言語(OOCOBOL(注3)

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スタブ側

スケルトン側

xx--REP.cbl

xx--REP.cbl

xx--REP.cbl

リポジトリ段落宣言用登録集

xx--CONST.cbl

xx--CONST.cbl

xx--CONST.cbl

定数宣言用登録集

xx—COPY.cbl

xx--COPY.cbl

xx--COPY.cbl

TYPEDEF型宣言用登録集

yy.cob

yy.cob

yy.cob

インタフェースファイル

yy—helper.cob

yy--helper.cob

yy--helper.cob

Helperクラスファイル

yy—stub.cob

yy--stub.cob

  

スタブクラスファイル

yy--NarrowStub.cob

yy--NarrowStub.cob

  

Narrowスタブファイル

yy--NarrowSkel.cob

  

yy--NarrowSkel.cob

Narrowスケルトンファイル

yy--tie.cob

  

yy--tie.cob

tieクラスファイル

yy--NEW.cob

  

yy--NEW.cob

インプリメンテーション登録ファイル

zz.cob

zz.cob

zz.cob

データ型クラスファイル(注4)

zz—helper.cob

zz--helper.cob

zz--helper.cob

データ型Helperファイル(注4)

開発言語(Java言語)(注5)

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スケルトン側

スタブ側

MM/yy.java

MM/yy.java

インタフェースクラスファイル

MM/yyOperations.java

MM/yyOperations.java

インタフェースOperationsファイル

MM/yyHelper.java

MM/yyHelper.java

Helperクラスファイル

MM/yyHolder.java

MM/yyHolder.java

Holderクラスファイル

MM/_yyStub.java

MM/_yyStub.java

スタブクラスファイル

MM/yyPOA.java

  

スケルトンクラスファイル(注6)

MM/yyPOATie.java

  

tieクラスファイル(注6)

MM/yyPackage/zz.java

MM/yyPackage/zz.java

データ型クラスファイル(注7

MM/yyPackage/zzHelper.java

MM/yyPackage/zzHelper.java

データ型Helperファイル

MM/yyPackage/zzHolder.java

MM/yyPackage/zzHolder.java

データ型Holderファイル(注7)(注8

開発言語(Visual C++用)

-m指定なし

-m指定あり

ファイル種別

スタブ・スケルトン

スタブ側

スケルトン側

xx.h

xx.h

  

共通ヘッダファイル

xx_cdr.h

xx_cdr.h

  

CDRヘッダファイル

xx_cdr.cpp

xx_cdr.cpp

  

CDRソースファイル

xx_c++.cpp

xx_c++.cpp

  

クラスメソッド定義ファイル

xx_stub.cpp

xx_stub.cpp

  

スタブファイル

xx_skel.cpp

  

  

スケルトンファイル

yy_skel.cpp

  

  

スケルトンファイル(-dy指定時)

注1基本データ型以外のIDL定義に対する領域獲得用関数が組み込まれます。基本データ型だけでは、作成されません。

2スタブ・スケルトンで使用されるデータ型を定義したファイルです。

3以下は、フルスコープになります。

yy(インタフェース名)

zz(データ型名)

4以下の宣言に対してファイル生成されます。

  • typedef

  • string(サイズ指定あり)

  • wstring(サイズ指定あり)

  • enum

  • sequence

  • struct

  • union

  • fixed

  • exception

5Java言語マッピングでは、IDL構造に対応したディレクトリ構成(Javaパッケージ)が生成され、ファイルが配置されます。表中の<module名>は、IDLファイル内で定義したmodule名です。
データ定義(zz)内に別のデータ定義がある場合は、zzPackageの名前でさらにサブディレクトリが生成され、その配下に新たなデータ定義に関するクラスファイルが格納されます。

注6)-javaeeオプションを指定した場合、本ファイルは、生成されません。

7本ファイルは、以下のデータ型の宣言に対して生成されます。

  • enum

  • struct

  • union

  • exception

8本ファイルは、以下のデータ型をtypedefした宣言に対して生成されます。

  • enum

  • struct

  • union

  • exception

  • sequence

  • array

[動作モードオプション]

スタブ・スケルトンを生成するか、およびインタフェースリポジトリにインタフェース情報を登録するかを指定するオプションとして、以下のどちらかを指定します。動作モードオプションを省略した場合、スタブ・スケルトンは生成されますが、インタフェース情報はインタフェースリポジトリに登録されません。

-a

スタブ・スケルトンを生成し、インタフェースリポジトリにインタフェース情報を登録します。-create、-update、-deleteオプションのいずれかと組み合わせて指定します。

-R

インタフェースリポジトリにインタフェース情報を登録します。スタブ・スケルトンは、生成されません。-create、-update、-deleteオプションのいずれかと組み合わせて指定します。

[インタフェースリポジトリ登録オプション]

インタフェースリポジトリ登録オプションとして以下のいずれかを指定します(省略時:“-create”)。上記の動作モードオプションと同時に指定する必要があります。

-create

インタフェースリポジトリにインタフェース情報を登録します。すでに同じ識別子が登録されている場合は、エラーとなり、インタフェース情報は登録されません。

-update

インタフェースリポジトリにインタフェース情報を登録します。すでに同じ識別子が登録されている場合は、インタフェース情報を更新します。IDLファイルを変更した場合は、本オプションを指定する必要があります。

-delete

インタフェースリポジトリからインタフェース情報を削除します。登録されていない識別子がある場合は、エラーとなります。

IDLファイルを変更して、すでにインタフェースリポジトリに登録されているIDL定義情報を変更/削除する場合は、-deleteオプションと変更前のIDLファイル(インタフェースリポジトリ登録時のIDLファイル)を指定して登録内容をいったん削除した後、変更したIDLファイルを指定して再度登録する必要があります。

[スタブ・スケルトン生成モードオプション]

-poa

マッピング言語がC++(-cpp/-mcpp)/Visual C++(-vcpp)の場合に、POA(Portable Object Adapter)方式のファイルを生成します(省略時:BOA(Basic Object Adapter)方式)。POA方式については、“アプリケーション作成ガイド(CORBAサービス編)”(Interstage Application Server Enterprise Editionで提供)の“サーバアプリケーションのプログラミング(Portable Object Adapter:POA)”を参照してください。

-tie

TIEクラス方式でファイルを生成します(省略時:implクラス方式)。マッピング言語がC++(-cpp/-mcpp)、Visual C++(-vcpp)の場合に有効です。TIEクラス方式については、“アプリケーション作成ガイド(CORBAサービス編)”(Interstage Application Server Enterprise Editionで提供)の“サーバアプリケーションのプログラミング(Basic Object Adapter:BOA)”-“静的スケルトンインタフェース”-“インタフェース実装関数”を参照してください。

-lc
-ls

IDLcで生成されたスタブとスケルトンを結合し、1つのモジュールを作成する場合に指定します。通常、XX_alloc関数(基本データ型以外のデータ型に対する領域獲得関数)は、スタブ・スケルトン両方に作成されますが、スタブ・スケルトンのどちらか一方だけに作成する場合/スタブ・スケルトンのどちらにも作成しない場合に、本オプションを指定します。詳細については、“アプリケーション作成ガイド(CORBAサービス編)”(Interstage Application Server Enterprise Editionで提供)の“データ型に対するマッピング”(各言語)を参照してください。

  • -ls:スケルトンだけに作成します。

  • -lc:スタブだけに作成します。

  • -ls -lc:どちらにも作成しません。

なお、マッピング言語が以下の場合に有効です。

  • C(-C/-mc)

  • COBOL(-cobol/-mcobol)

上記以外のマッピング言語の場合は、以下のように指定してスタブ・スケルトンを結合します。ただし、スケルトンの領域獲得関数は、無効となります。

  • C++(-cpp):C++コンパイラの実行時に“-D_MULTI_LINK_”を指定します。

  • Visual C++用(-vcpp):“_MULTI_LINK_”マクロを指定します。

-javaee

Java EE上で動作するCORBAアプリケーション用のファイルを生成します。マッピング言語がJava(-java)の場合に有効です。Java EE上で動作するCORBAアプリケーションについては、“Java EE運用ガイド”を参照してください。

-noex

CORBA::Environment方式で例外処理を生成します(省略時:try~catch方式)。マッピング言語がC++(-cpp/-mcpp)の場合に有効です。

[その他のオプション]

-Idir

#include文で指定したファイルを検索対象ディレクトリにdirを追加します。本オプションは、複数指定可能です。複数指定した場合は、指定された順にディレクトリを検索します。

-Dname[=val]

マクロnameを定義します。IDLファイルの先頭に“#define name val”があるのと同じ意味を持ちます。“=val”を省略すると、“#define name”と同じ意味を持ちます。

-noinclude

#include文で指定されたファイルをマッピングしません。-create/deleteとは、同時に指定できません。削除する場合は、いったん“-R -delete”を指定してインタフェースリポジトリから削除してください。マッピング言語がC/C++/COBOL/Visual C++の場合に有効です。

-dy

スケルトンファイルをインタフェース定義ごとに生成します。本オプションは、サーバアプリケーションをライブラリ形式とする場合に指定します。スケルトンのマッピング言語がCOBOL/OOCOBOLの場合は、常に有効となります。ファイル名については、“生成ファイル名”を参照してください。

-o prefix

“xx.idl”から生成されたファイルの名前“xx”を“prefix”に変更します。マッピング言語がJavaの場合は、無効となります。

-Sname

関数名の先頭に“name”を付加します。スケルトンのマッピング言語がCのときに有効です。本オプションを指定した場合、OD_impl_instコマンドでサーバアプリケーション情報を登録する際に、オブジェクト(インタフェースリポジトリID)に対するprefixを指定してください。

-Tdir

コンパイラの作業用ファイルの作成位置を指定します(省略時:環境変数TEMP/TMPの設定値)。

-mapinfo

マッピング情報ファイルを作成します。マッピング言語がOOCOBOL(-oocob)の場合に有効です。マッピング情報ファイルについては、“マッピング情報ファイル”を参照してください。

-

インタフェース情報とスタブの不一致検出機能を有効とします。本オプションは、マッピング言語が以下の場合に有効です。

  • C(-C/-mc)

  • C++(-cpp/-mcpp)

  • COBOL(-cobol/-mcobol)

  • Java(-java)
    注)-javaeeオプション指定時は、無効となります。

なお、本オプションを指定すると、コンパイラの実行時間が多少長くなります。コンパイラが失敗する場合は、クライアントにサーバメソッドが復帰するまでの待機時間(configファイルのperiod_receive_timeoutパラメタの設定値)を大きく設定してください。

-nolog

CORBAサービスのログ採取機能・トレース採取機能を無効とします。本オプションを指定すると、スタブ・スケルトンでログ・トレース情報を採取しません。

-unic

UNICODE用のマッピングを出力します。本オプションは、NetCOBOL環境でマッピング言語がOOCOBOLの場合に有効です。

コード系に“UNICODE”を設定しているOOCOBOOLアプリケーションを作成する場合は、必ず本オプションを指定してください。

-M system

拡張システムを生成した場合に、運用の対象となるシステム名systemを指定します。本オプションを省略すると、デフォルトシステムでの運用が対象となります。
本オプションは、以下の製品で指定可能です。

  • Interstage Application Server Enterprise Edition

マッピング情報ファイル

マッピング情報ファイルは、IDLファイルで宣言されたインタフェース情報/データ型情報/ユーザ例外情報のクラス名を出力するファイルです(ファイル名:IDLファイルの拡張子“idl”を“inf”に置き換えた名称)。IDLcコマンドでは、クラス名が30文字を超えると一部が省略されるため、省略後のクラス名を確認する際にこのファイルを使用します。アプリケーションプログラムでクラス名を指定する場合や、コンパイラ実行時にリンクするファイル名を指定する場合に、このファイルに記述されたファイル名を使用してください。

項番

タグ名

内容

名称

用途

1

<interface>~</interface>

インタフェース情報(*1)

2

<typedef>~</typedef>

データ型情報(*1)

3

<exception>~</exception>

ユーザ例外情報(*1)

4

<map name="a" type="b">~</map>

各宣言に対するマッピング情報(*2)
  a: フルスコープ名
  b: 種別()

5

<name>~</name>

データ型名

6

<class>~</class>

クラス名

*3

7

<class-file>~</class-file>

クラスファイル名

クラス名.cob

*4

8

<helper>~</helper>

Helperクラス名

クラス名--H/
データ型名--H

*3

9

<helper-file>~</helper-file>

Helperクラスファイル名

クラス名--helper.cob/
データ型名--helper.cob

*4

10

<stub>~</stub>

スタブクラス名

クラス名--S

*3

11

<stub-file>~</stub-file>

スタブクラスファイル名

クラス名--stub.cob

*4

12

<narrow-stub>~</narrow-stub>

Narrowスタブファイル名

クラス名--NarrowStub.cob

*4

13

<narrow-skel>~</narrow-skel>

Narrowスケルトンファイル名

クラス名--NarrowSkel.cob

*4

14

<new-impl>~</new-impl>

インプリメンテーション登録ファイル名

クラス名--NEW.cob

*4

15

<tie>~</tie>

tieクラス名

クラス名--T

*3

16

<tie-file>~</tie-file>

tieクラスファイル名

クラス名--tie.cob

*4

*1項番4の情報を含む
*2項番5以降の情報を含む
*3アプリケーションプログラムに指定するクラス名
*4コンパイラ実行時にリンクするファイル名

) 対象となるIDL宣言とその種別(type)を以下に示します。

宣言

種別(type)

interface

interface

typedef

typedef

exception

exception

struct(固定長)

struct-fixed

struct(可変長)

struct-variable

union

union

enum

enum

sequence

sequence

string(サイズ指定あり)

string

wstring(サイズ指定あり)

wstring

fixed

fixed

注意事項

エラーメッセージ

[コンパイル時のエラーメッセージ]

Can't open file :n

エラー
ファイルfileがオープンできません。
システムエラー番号: n


Read failed file

エラー
fileからの読込みに失敗しました。


Write failed file

エラー
fileへの出力に失敗しました。


MALLOC:name: n Bytes: Not enough memory

エラー
メモリが不足しているため、nameのnバイトの領域を獲得できません。


Syntax error:string

エラー
stringの定義に構文の誤りがあります。または、stringで示す内容に誤りがあります。


Structure member redeclaration of name

エラー
構造体メンバnameが再定義されました。


Union-switch member redeclaration of name

エラー
共用体でunion-switchメンバnameが再定義されました。


Duplicate case in union-switch, label

エラー
共用体でunion-switchに同じlabelのcaseが定義されました。


Out of array dimension

エラー
配列の次元が範囲外です。


Identifier redeclaration of name

エラー
識別子nameが再定義されました。


Illegal scoping name

エラー
nameは、スコープで使用する名称として正しくありません。


name undefined data type

エラー
nameは、データ型として定義されていません。


name is not data type

エラー
nameは、データ型ではありません。


Illegal union-switch data type, name

エラー
nameは、union-switchデータ型として正しくありません。


Identifier too long.max(n)

エラー
識別子の長さが既定値を超えています。最大長は(n)です。


name undefined exception

エラー
nameは、例外定義されていません。


name is not exception

エラー
nameは、例外定義ではありません。


Warning:duplicate raises name exception

警告
Raises句でname例外を二重定義しています。


name undefined interface

エラー
nameは、インタフェース定義されていません。


name is not interface

エラー
nameは、インタフェースではありません。


Warning: duplicate inheritance name interface

警告
nameインタフェースが二重に継承されています。


name undefined constant

エラー
nameは、定数定義されていません。


name is not constant

エラー
nameは、定数ではありません。


Illegal constant type, name

警告
nameは、定数型として正しくありません。


Warning:operator operator, out of range

警告
シフト演算子operatorの右の引数がとりうる範囲を超えています。


Operator operator, division by zero

エラー
演算子operatorの2番目の式がゼロです。


Overflow, Floating point value

エラー
浮動小数点値がオーバーフロー。


Bad assignment values, type1 : type2

エラー
type1とtype2の型が異なるため、割り当てられません。


Warning:overflow signed long

警告
サイン付きlongがオーバーフロー。


Illegal expression, type

エラー
typeが例外定義として正しくありません。


Syntax error hexadecimal, string

エラー
stringに16進数で指定できない文字が指定されました。


Syntax error octal, string

エラー
stringに8進数で指定できない文字が指定されました。


Undefined escape character, string

エラー
stringは、エスケープ文字として定義されていません。


Unsupported multiple sourcefile

エラー
IDLファイルが複数指定されています。


Positive-integer constant only

エラー
正の整数定数しか指定できません。


Ambiguous variable usege

エラー
該当する変数宣言が不明です。


Can't close "file-name"

エラー
"file-name"ファイルがクローズできません。


REALLOC:"name" : n Bytes

エラー
"name"領域nバイトのメモリ獲得に失敗しました。


CORBA_ORB_init ERROR

エラー
CORBAサービス(ObjectDirector)が起動されていません。


CORBA_ORB_BOA_init ERROR

エラー
CORBAサービス(ObjectDirector)が起動されていません。


can't make temp list

エラー
資源不足のため、作業ファイルが作成できません。


Unsupported data type : "type"

エラー
定義された“type”は、未サポートです。


Directory Create Failed : "name"

エラー
Javaマッピングでクラスを格納するディレクトリが作成できません。

その他のメッセージ

IDLcコマンドが言語マッピングを行う際に、インタフェースリポジトリおよびネーミングサービスを使用する場合、環境設定ミスや通信エラーなどによりIDLファイルのコンパイルに失敗すると、以下の形式でエラーメッセージが表示されます。

  処理フェーズ(I/R):処理名・関数名
  IDL:例外コード
  IDLc: Stop.処理フェーズ status = 終了ステータス.

処理フェーズ

IDLparser: IDLファイルの構文解析
IDLcg: Cマッピング処理
IDLcppg: C++/Visual C++マッピング処理
IDLjavacg: javaマッピング処理
IDLcobolcg: COBOLマッピング処理
IDLoocobcg: OOCOBOLマッピング処理
IDLinst: インタフェースリポジトリへの登録/変更/削除処理

destory_rep: 終了処理

処理名・関数名

IDLcコマンドのエラー検出箇所を特定する情報が表示されます。

例外コード

システム例外として、以下の例外コードが通知されます。

IDL:CORBA/StExcep/UNKNOWN:1.0

未知の例外です。


IDL:CORBA/StExcep/BAD_PARAM:1.0

パラメタが不正です。


IDL:CORBA/StExcep/NO_MEMORY:1.0

メモリ不足を検出しました。


IDL:CORBA/StExcep/IMP_LIMIT:1.0

起動するサーバアプリケーションの限界数に達しました。


IDL:CORBA/StExcep/COMM_FAILURE:1.0

通信エラー。

インタフェースリポジトリサービスと通信できません。


IDL:CORBA/StExcep/INV_OBJREF:1.0

オブジェクトリファレンスが無効です。


IDL:CORBA/StExcep/NO_PERMISSION:1.0

メソッドの実行権限がありません。


IDL:CORBA/StExcep/INTERNAL:1.0

CORBAサービス(ObjectDirector)の内部エラーです。


IDL:CORBA/StExcep/MARSHAL:1.0

パラメタ、結果のマーシャリングエラーです。


IDL:CORBA/StExcep/INITIALIZE:1.0

CORBAサービス(ObjectDirector)の初期化に失敗しました。


IDL:CORBA/StExcep/NO_IMPLEMENT:1.0

インタフェースリポジトリサービスが起動されていません。


IDL:CORBA/StExcep/BAD_TYPECODE:1.0

タイプコードが不正です。


IDL:CORBA/StExcep/BAD_OPERATION:1.0

オペレーションが無効です。


IDL:CORBA/StExcep/NO_RESOURCES:1.0

リクエストに対して十分なリソースがありません。


IDL:CORBA/StExcep/NO_RESPONSE:1.0

インタフェースリポジトリサービスからの応答がありません。


IDL:CORBA/StExcep/PERSIST_STORE:1.0

永続的な蓄積の失敗です。


IDL:CORBA/StExcep/BAD_INV_ORDER:1.0

ルーチンの呼び出しが正常ではありません。


IDL:CORBA/StExcep/TRANSIENT:1.0

遷移中のエラー、リクエストを再発行します。


IDL:CORBA/StExcep/FREE_MEM:1.0

メモリ解放に失敗しました。


IDL:CORBA/StExcep/INV_IDENT

識別子のシンタックスが無効です。


IDL:CORBA/StExcep/INV_FLAG:1.0

フラグが無効です。


IDL:CORBA/StExcep/INTF_REPOS:1.0

インタフェースリポジトリのアクセスエラーです。


IDL:CORBA/StExcep/CONTEXT:1.0

コンテキストオブジェクトのエラーです。


IDL:CORBA/StExcep/OBJ_ADAPTER:1.0

オブジェクトアダプタのエラーです。


IDL:CORBA/StExcep/DATA_CONVERSION:1.0

データ変換のエラーです。

例外コードに対する対処方法

環境設定ミスなどで発生するシステム例外とその対処方法を以下に示します。

IDL:CORBA/StExcep/NO_MEMORY:1.0

[原因]
システムのメモリ不足を検出しました。

[対処]
メモリ/スワップ領域を増設します。

IDL:CORBA/StExcep/COMM_FAILURE:1.0

[原因]
以下の原因でインタフェースリポジトリサービスとの通信に失敗しました。

  1. サーバマシンで電源投入されていない、またはCORBAサービス未起動のため、サーバとの通信ができません。

  2. irconfigのir_timeout(初期値:1800秒)までにインタフェースリポジトリの処理が完了しませんでした。

  3. サーバへの処理要求数がconfigのmax_IIOP_resp_con(初期値:8)を超えました。

  4. ネットワーク環境に異常が発生しました。

  5. inithost/initial_hostsファイルの設定に誤りがあります。

  6. valueインタフェース用インタフェースリポジトリサービスが起動されていません(EJBアプリケーション開発時)。

[対処]
上記それぞれについて、以下の対処を行ってください。

  1. サーバマシンの電源を投入し、インタフェースリポジトリのサーバを起動してください。

  2. irconfigのir_timeoutの設定値を大きくして、インタフェースリポジトリを再起動してください。インタフェースリポジトリサービスの起動に失敗した場合は、出力されたメッセージを確認して対処してください。メッセージの詳細については、“メッセージ集”を参照してください。

  3. configのmax_IIOP_resp_conを大きくして、CORBAサービスを再起動してください。

  4. ネットワーク環境を確認し、問題があれば修復してください。

  5. inithost/initial_hostsファイルを確認してください。

  6. EJBアプリケーション開発時には、Interstage初期化処理でEJBオプションを指定してください。


IDL:CORBA/StExcep/NO_IMPLEMENT:1.0

[原因]
インタフェースリポジトリのサーバが未起動です。

[対処]
インタフェースリポジトリのサーバを起動します。起動に失敗する場合は、環境設定を確認し、再度起動します。EJBアプリケーション開発時には、Interstage初期化処理でEJBオプションを指定してください。


IDL:CORBA/StExcep/NO_RESOURCES:1.0

[原因]
インタフェースリポジトリサービスを呼び出すためのオブジェクトの生成ができません。
または、同一のインプリメンテーションIDのサーバが起動済です。

[対処]
しばらく待ってから再試行します。または、同一のインプリメンテーションIDのサーバの停止、インプリメンテーションIDの見直しを行います。

終了ステータス

2: シンタックスエラー。
3: 未サポートの処理が呼ばれました。
4: その他のエラーを検出しました。

使用例

マクロDEBUG=1として、sample.idlをコンパイルします。作業用ファイルは、-Tオプションに指定したディレクトリに作成されます。

IDLc -DDEBUG -TC:\tmp1 sample.idl

IDLc -DDEBUG -T/tmp1 sample.idl


IDLファイルFoo.idl(デフォルト)をコンパイルします。インクルードファイルは、-Iオプションに指定したディレクトリから検索されます。インタフェースリポジトリへは登録しません。

IDLc -IC:\home\ORB\include\IDL

IDLc -I/home/ORB/include/IDL