バージョン 4.2.5
 —  ユーティリティ  —

パラメータ指定による単一スタブの生成

Stub Generation機能には、必要なパラメータ定義を入力するか、必要なパラメータ定義を既存のサブプログラムまたはパラメータデータエリア(PDA)から読み込むスタブ生成の画面を使用して、単一スタブサブプログラムをオンラインで生成するオプションがあります。

スタブサブプログラムを PDA から生成する場合、スタブサブプログラムを生成する前にサブプログラムを作成し、内部パラメータデータエリアを定義する手間を省くことができます。

このセクションでは、次のトピックについて説明します。


Stub Generation 機能の使用

スタブサブプログラムは、現在のシステムファイルの現在の Natural ライブラリに作成されます。 このため、リモート CALLNAT の実行時にクライアントで使用されるアプリケーションライブラリまたはその steplib のいずれかにログオンすることを強くお勧めします。

重要:
スタブ生成機能では、ソースワークエリアに含まれるすべてのデータが上書きされます。 スタブ生成機能を呼び出す場合、該当するメッセージで、不用意に既存のデータを削除しないよう警告されます。PF12 キーを押して機能をキャンセルするか、Enter キーを押して操作を確認し、ソースワークエリアの内容を上書きします。

Start of instruction set単一スタブサブプログラムを生成するには

  1. SYSRPC ユーティリティを呼び出す前に、次の点を考慮してください。

  2. [Client Maintenance]メニューの[Code]フィールドに、次のコマンドを入力します。

    SG
  3. ENTER キーを押します。

    [Generate Client Stub Routine]ウィンドウが表示されます。

  4. [Program Name]フィールドに、生成するスタブサブプログラムの名前を入力します。

    スタブサブプログラムの名前は、リモート CALLNAT プログラムの名前と一致する必要があります。

    [Library]フィールドは現在のライブラリの名前で事前設定されており、変更できません。

    [Compression]フィールドに、圧縮タイプ 01、または 2(デフォルトは 1)を入力します。『Natural リモートプロシージャコール(RPC)』ドキュメントの「Natural RPC 環境の運用」にある「圧縮の使用」の記載を参照してください。

  5. ENTER キーを押します。

  6. [Stub Generation]画面において、スタブサブプログラムで使用するパラメータの追加または変更を行います。詳細については、「パラメータの指定」を参照してください。

    [Stub Generation]画面で使用できるコマンドは、「Service Directory Maintenance」セクションのコマンドと PF キーに関する項目で説明されているコマンドに対応します。

    例外:

    ダイレクトコマンド 機能
    EXPIRATION スタブ生成には適用できません。

    LIMIT 32000
    または
    LIMIT 1GB
    または
    LIMIT
    (サイズなし)

    サイズの上限を 32000 バイトまたは 1 GB に設定します。

    サイズ表示のない LIMIT では、LIMIT 32000 または LIMIT 1GB で設定されたサイズ制限が削除されます。

  7. ENTER キーを押してスタブサブプログラムを生成し、手順を終了します。 スタブサブプログラムは割り当てられたライブラリに生成されます。

    [SYSRPC - Information]ウィンドウが表示され、クライアントとサーバー間でデータを送受信するためにスタブサブプログラムで必要となるサイズが示されます。 このサイズには、スタブサブプログラムで使用される内部 RPC 情報が含まれます。 サイズがわかっていると、EntireX Broker 使用時の Broker 属性ファイルなど、ミドルウェア層を構成する際に役立ちます。

    サンプルサブプログラム TESTS5(下記の「例 1」を参照)からスタブサブプログラムを生成すると、[SYSRPC – Information]ウィンドウに次のメッセージが表示されます。

    Stub TESTS5 is generated in library SAGTEST (99,49).                
       It requires:                                                      
            Send length: 2249 bytes                                      
         Receive length: 2221 bytes
    

    ダイナミックパラメータの X-array または X-group 配列を使用すると、このメッセージで示されるのは最小長の要件のみとなります。 実際の長さの要件はプログラムの実行時に初めて決まりますが、呼び出しごとに長さが異なる可能性があります。 [Send length]または[Receive length]の値が Entire Net-Work の上限である 32000 バイトを超えている場合、ウィンドウが開いて警告が表示されます。

    Y」(はい)を入力して続行するか、「N」(いいえ)を入力して生成をキャンセルします。 「Y」を入力した場合、この設定は SYSRPC セッション全体で有効になります。つまり、これ以降は警告が表示されることなく、スタブサブプログラムの生成を続けることができます。

    送受信されるデータの合計(内部 RPC 情報を含まない)が 1073739357 バイト(1 GB から内部 RPC 情報の 2467 バイトを引いた数値)を超えた場合、SYSRPC は処理を停止してエラーメッセージを発行します。 このエラーメッセージには、小計計算の基準になるフィールドで転送できたデータの量が、小計としてバイト単位で表示されます。 次に、対応するフィールドがマークされます。 この場合は、データの量を減らしてスタブサブプログラムの生成を続行します。

    スタブサブプログラムが Natural システムライブラリ SYSRPC で生成された場合、Natural 転送ユーティリティの SYSMAIN またはオブジェクトハンドラを使用して、スタブサブプログラムをアプリケーションライブラリまたは steplib に移動する必要があります。 状況によっては、ターゲット環境でスタブサブプログラムのソースを再カタログする必要がありますので注意してください。

Top of page

パラメータの指定

[Stub Generation]画面に表示される入力フィールドに、スタブサブプログラムで使用されるパラメータ定義を入力できます。 最大 5000 パラメータ指定できます。 次の表に示されていない場合、フィールドへの入力は必須です。

フィールド 説明
Level

フィールドのレベル。

レベルには、01(最高レベル)~99(最低レベル)の範囲の数を指定できます。 先頭の 0 は任意です。

グループ定義の例については、「グループの定義」および「例 2」を参照してください。

Attr

パラメータを指定する属性。

M(可変フィールド)、O(出力フィールド - OUT)、または I(入力フィールド)。

2 以上のレベル番号を割り当てられたパラメータは、グループの一部であるとみなされます。 グループ内のパラメータは、1 レベル上を割り当てられた直前のグループと同じ属性である必要があります。 ネスト構造のグループでは、この属性は最高レベルのグループの属性です。 グループ定義の例については、「例 2」を参照してください。

スタブサブプログラムがサブプログラムまたは PDA から生成された場合、属性はデフォルトの M で、変更が必要な場合があります。

スタブサブプログラムが別のスタブサブプログラムから生成された場合、元のスタブサブプログラムに指定された属性値が維持されます。

生成されたスタブサブプログラムには、パラメータに指定された属性の INOUT、または INOUT を示すコメントが含まれます。

Type

N(数値)と G(グループ)、または K(漢字)などの Natural データフォーマット。 Natural データフォーマット C(属性制御)および Handle は使用できません。

Natural データフォーマットの詳細については、『プログラミングガイド』の「ユーザー定義変数」セクションの「ユーザー定義変数のフォーマットおよび長さ」および「特別なフォーマット」を参照してください。

Length

パラメータまたは DYNAMIC の長さ。

このフィールドは、D(日付)、G(グループ)、L(論理)、および T(時間)の Natural データフォーマットには適用されません。

Natural データフォーマット A は 1073739357 バイトに制限されており、Natural データフォーマット B は 536869678 バイトに制限されています。

DYNAMIC はダイナミックパラメータを示し、Natural データフォーマット A および B に適用されます。

Prec

Natural データフォーマット N(数値)および P(パック)のみに適用されます。 任意です。

パラメータの精度、つまり、小数点の後の桁数。

Dimension ½/3 配列のみに適用されます。 任意です。

パラメータの 1 次元、2 次元、および 3 次元。

X-array または X-Group 配列は、次元にアスタリスク(*)を入力して指定します。

X-array および X-Group 配列の定義」も参照してください。

以降のセクションでは、次の項目について説明します。

グループの定義

EntireX RPC サーバー上の Natural 以外のオブジェクトを呼び出すクライアント Natural オブジェクトのグループ構造のみを定義する必要があります。 グループ構造は、EntireX の IDL 定義に対応している必要があります。 Natural RPC サーバー上のサブプログラムを呼び出すクライアント Natural オブジェクトには、グループ構造は必要ありません。

クライアント Natural オブジェクトからスタブサブプログラムに渡されるグループ配列および X-Group 配列は連続している必要があります。 このため、常に全次元用のアスタリスク(*)表記を使用して、スタブサブプログラムに完全な配列を渡すことを強くお勧めします。 また、クライアント Natural プログラム、スタブサブプログラム、およびサーバープログラムに同一のデータ定義を使用することを強くお勧めします。

グループ定義の例については、「例 2」も参照してください。

X-array および X-Group 配列の定義

パラメータのいずれかの次元が拡張可能な場合、そのパラメータの他のすべての次元も拡張可能です。 サブプログラムでパラメータに拡張可能な固定次元を定義すると、スタブ生成機能によって警告が発行され、自動的に固定次元が拡張可能な次元に変更されます(「例 3」を参照)。 グループ構造では、レベルごとに拡張可能な次元または固定次元のいずれかを定義できます。 レベル間で固定次元が拡張可能な次元に自動的に変更されることはありません。

Natural RPC では、拡張可能な上限のみがサポートされます。 このため、スタブサブプログラムの生成された DEFINE DATA PARAMETER エリアのすべての X-array と X-Group 配列は、(1:*) として定義されます。

注意:
拡張可能な下限を持つ X-array または X-group array を含むサブプログラムまたは PDA からスタブサブプログラムを生成した場合、拡張可能な下限は拡張可能な上限に変換されます。

拡張可能な次元を持つグループの詳細については、「例 3」を参照してください。

Top of page

スタブ生成の例

このセクションでは、Natural サブプログラムおよびそれらのサブプログラムから生成されるスタブサブプログラムの例を示します。

次に示すパラメータ定義は、Natural システムライブラリ SYSRPC で提供されるサンプルサブプログラムから抽出されています。

例 1

次の DEFINE DATA PARAMETER エリア(サンプルサブプログラム TESTS5)は、[Stub Generation]画面の 4 つの変更可能なパラメータおよび対応するパラメータ定義を示しています。

DEFINE DATA
PARAMETER               
  01 #IDENTIFIER  (A10)     
  01 #N-OF-ID     (I4)      
  01 #FREQ        (P5.2)    
  01 #A100        (A100/5,4)
スタブ生成
  Level Attr Type Length Prec 次元 1 次元 2 次元 3
1 01 M A 10        
2 01 M I 4        
3 01 M P 5 2      
4 01 M A 100   5 4  

例 2

次の DEFINE DATA PARAMETER エリア(サンプルサブプログラム TESTS6)は、[Stub Generation]画面のネストされたグループ構造および対応するパラメータ定義を示しています。

DEFINE DATA
PARAMETER
 01 GROUP-1(10) 
   02 A (A20)
   02 B (A20)
   02 GROUP-2(20)
     03 C (A10/5)
     03 D (A10)
 01 LINE (A) DYNAMIC
スタブ生成
  Level Attr Type Length Prec 次元 1 次元 2 次元 3
1 01 M G     10    
2 02 M A 20        
3 02 M A 20        
4 02 M G     20    
5 03 M A 10   5    
6 03 M A 10        
7 01 M A DYNAMIC        

例 3

次の DEFINE DATA PARAMETER エリア(サンプルサブプログラム TESTS7)は、[Stub Generation]画面の拡張可能な次元があるネストされたグループ構造および対応するパラメータ定義を示しています。

DEFINE DATA
PARAMETER
 01 GROUP-1(10) 
   02 A (A20)
   02 B (A20)
   02 GROUP-2(0:*)
     03 C (A10/5)
     03 D (A10)
 01 LINE (A) DYNAMIC
スタブ生成
  Level Attr Type Length Prec 次元 1 次元 2 次元 3
1 01 M G     10    
2 02 M A 20        
3 02 M A 20        
4 02 M G     *    
5 03 M A 10   5    
6 03 M A 10        
7 01 M A DYNAMIC        

Top of page