以下のデータ型を用いる場合は、各データ型に応じた専用の関数により領域獲得を行う必要があります。専用の関数で獲得していない場合は、アプリケーション動作時にメモリアクセスエラーを引き起こす要因となります。また、クライアントおよびスタブ内で動的に獲得した領域は、不要になった時点で各データ型に応じた開放関数および方法により明示的な開放操作が基本的に必要です。開放漏れの場合、メモリリークの要因となります。
- 文字列型、ワイド文字列型、any型、シーケンス型、構造体、共用体、配列
any型およびシーケンス型に関してデータ域も合わせて解放する場合は、専用関数により事前にリリースフラグを設定する必要があります。明示的に設定しない場合、デフォルトは解放しない設定となっているため、メモリリークの要因となります。リリースフラグの詳細については各開発言語の“any型、sequence型のリリースフラグ”を参照してください。
以下のデータ型を用いる場合、クライアントアプリケーションのinパラメタ、inoutパラメタ、およびサーバアプリケーションのoutパラメタ、inoutパラメタ、復帰値として、NULLポインタは設定できません。誤って設定した場合、メモリアクセスエラーを招く要因となります。
- 文字列型、シーケンス型、構造体、共用体、配列
COBOLアプリケーションにおいて以下の型のデータ設定・取得操作は必ず専用APIを使用してください。各APIの詳細については“リファレンスマニュアル(API編)”の該当する記事を参照してください。
データ型 | データ設定API | データ取得API |
---|---|---|
文字列型 | CORBA-STRING-SET | CORBA-STRING-GET |
ワイド文字列型 | CORBA-WSTRING-SET | CORBA-WSTRING-GET |
シーケンス型 | CORBA-SEQUENCE-ELEMENT-SET | CORBA-SEQUENCE-ELEMENT-GET |
参考マニュアル
・“アプリケーションの開発(C言語)”の“3.7 データ型に対するマッピング”、“3.8 any型、sequence型のリリースフラグ”
・“アプリケーションの開発(C++言語)”の“4.5 データ型に対するマッピング”、“4.5.12 any型、sequence型のリリースフラグ”
・“アプリケーションの開発(COBOL)”の“6.8 データ型に対するマッピング”、“6.9 any型、sequence型のリリースフラグ”