バージョン 4.2.5
 —  Natural リモートプロシージャコール(RPC)  —

前提条件および予備情報

このドキュメントでは、一般的な前提条件の概要を説明し、Natural リモートプロシージャコール(RPC)環境を実装するために Natural で使用できる機能について簡単に説明します。

次のトピックについて説明します。


関連製品

RPC 環境を異なるプラットフォームに実装する場合、Natural for Mainframes、Windows、UNIX、または OpenVMS の対応する最新バージョンが必要になります。 また、次の必須またはオプションの製品、サブ製品、および機能を Natural RPC 環境で使用できます。

製品 目的
EntireX Communicator(EntireX Broker) Software AG 製品 EntireX Communicator の EntireX Broker は、通常、Natural クライアントと Natural サーバー間のミドルウェア層を確立します。 ACI プロトコルを使用し、適切なクライアント/サーバースタブで構成されます。
Entire Net-Work この Software AG 製品は、EntireX Broker が使用するトランスポートメソッドが Entire Net-work である場合に必要です。 これは、推奨されるトランスポートメソッドです。
TCP/IP EntireX Broker が使用するトランスポートメソッドが TCP/IP である場合に必要です。

Natural RPC 環境の設定」の「トランスポートメソッドとしての TCP/IP の使用」も参照してください。

EntireX 開発者キット EntireX Communicator 製品に含まれているこのキットは、Natural 以外のプログラミング言語サポートのために必要です。
ディレクトリサービス リモートディレクトリサーバー(RDS)を使用すると、そのサービスを RPC 環境内の全クライアントが使用できるよう、1 つの場所にディレクトリ定義を定めることが可能となります。

RDS は、EntireX Broker が提供するロケーショントランスペアレンシを使用する場合に必要です。

Natural Security オプション。

この Software AG アドオン製品は、クライアントでセキュリティがアクティブな場合に、Natural RPC サーバーおよびサービスを保護するためにサーバー側で必要です。その逆も同様です。

EntireX RPC オプション。

Natural RPC は、EntireX RPC for 3GL を完全にサポートします。 EntireX RPC は、EntireX Communicator 製品に含まれています。

EntireX Security オプション。

Natural RPC は、クライアント側およびサーバー側の EntireX Security を完全にサポートします。 EntireX Security は、EntireX Broker 製品に含まれています。

サポートされる Software AG 製品のバージョンについては、Natural for Mainframes の最新リリースノートの「Natural および他の Software AG 製品」を参照してください。

Natural RPC ベースの環境に関係する可能性がある他の製品の詳細については、該当する製品のドキュメントを参照してください。

Top of page

関係する Natural ステートメント

次の Natural ステートメントが、Natural RPC 環境の作成に使用されます。

セクション「制限および制約事項」の「Natural ステートメントの動作」および「サーバーに対する Natural ステートメントの注意事項」には、これらのステートメントを Natural RPC 環境で使用するときに、これらのステートメントの異常な動作について知っておく必要があることが記載されています。

Top of page

Natural RPC で使用する Natural ユーティリティ

次の Natural ユーティリティが、Natural RPC 環境の作成および管理に使用されます。

Top of page

Natural RPC で使用するアプリケーションプログラミングインターフェイス

Natural アプリケーションプログラミングインターフェイス(API)の目的は、Natural ステートメントではアクセス不可能な情報の検索や修正、またはサービスを使用することにあります。

Natural ライブラリ SYSEXT で使用可能な次のアプリケーションプログラミングインターフェイスは、Natural RPC での使用が想定されています。

API 目的
USR1071N Natural RPC のユーザー ID、パスワード、およびチケット基準を設定できます。

Security の使用」を参照してください。

USR2007N リモートプログラムをサービスディレクトリ経由でアドレスできないときに使用されるデフォルトのサーバーアドレスを指定できます。

Natural RPC 環境の運用」の「Natural セッション内のデフォルトサーバーアドレスの指定」を参照してください。

USR2032N クライアント側での CLOSE CONVERSATION ステートメントのコミットをサポートします。 呼び出されると、この API により、個々の会話の終了時に暗黙的な END TRANSACTION が生じます。

Natural RPC について」の「データベーストランザクション」の「会話型 CALLNAT」セクションを参照してください。

USR2035N EntireX Broker への TCP/IP 通信のために Secure Socket Layer(SSL)が使用される場合に、必要な SSL パラメータ文字列を設定できます。

Natural RPC 環境の運用」の「Secure Socket Layer の使用」を参照してください。

USR2071N

Natural Security 以外のクライアントの場合に、サーバーに渡されるログオンデータを指定するために呼び出す必要があります。

Security の使用」の「Natural Security での Natural RPC の使用」を参照してください。

USR2072N プロファイルパラメータ RPC またはパラメータマクロ NTRPC のキーワードサブパラメータ SRVUSER とともに LOGON に使用されるパスワードを指定できます。

Security の使用」の「サーバー側」の「EntireX Security での Natural RPC の使用」セクションを参照してください。

USR2073N アプリケーション内から RPC サーバーを ping または終了できます。

Natural RPC サーバーの終了」の「アプリケーションプログラミングインターフェイス USR2073N の使用」を参照してください。

USR2074N Natural RPC サービス要求によって、RPC サーバーの Natural Security パスワードを変更できます。

Security の使用」の「パスワードの変更」を参照してください。

USR2075N アプリケーション内から EntireX Broker サービスを終了できます。

EntireX Broker サービスの終了」の「アプリケーションプログラミングインターフェイス USR2075N の使用」を参照してください。

USR4008N クライアント側で、サーバーがログオンするライブラリの代替名を指定できます。

Natural RPC 環境の運用」の「ログオンオプションの使用」を参照してください。

USR4009N Natural RPC クライアントまたはサーバー環境の EntireX のパラメータを設定/取得できます。

Natural RPC 環境の運用」の「EntireX のパラメータの設定/取得」を参照してください。

USR4010N クライアント側で、サーバーのランタイム設定を取得できます。

Natural RPC 環境の運用」の「サーバーのランタイム設定の取得」を参照してください。

USR6304N 信頼性の高い Natural RPC の信頼性状態を設定/取得できます。

Reliable RPC」の「Natural RPC クライアント側の Reliable RPC」を参照してください。

USR6305N Reliable RPC メッセージをコミットまたはロールバックできます。 この API は、Reliable RPC の状態が "クライアントコミット" に設定されている場合に必要です。

Reliable RPC」の「Natural RPC クライアント側の Reliable RPC」を参照してください。

USR6306N 現在 EntireX Broker にログオンしているユーザーの、すべての Reliable RPC メッセージのステータスを取得できます。

Reliable RPC」の「Natural RPC サーバー側の Reliable RPC」を参照してください。

RPC 固有の API は、すべての値を混在モードでも受け入れます。 大文字変換は、プログラム例 USRnnnnP(ソースオブジェクト)が、対応するサブプログラム USRnnnnN を呼び出すために使用される場合にのみ行われます。 例外:パスワードを処理するすべての USRnnnnP プログラムには、大文字小文字混在モードでパスワードを入力するオプションがあります。

各 API に一般的に指定される Natural オブジェクトタイプについては、Natural ユーティリティ SYSEXT を参照してください。

Top of page

Software AG IDL から Natural への対応関係

このセクションでは、Software AG IDL のデータタイプ、グループ、配列、および構造の、Natural プログラミング言語への対応関係について説明します。 (EntireX ドキュメントの)「Software AG IDL File」に記載されている、すべての言語バインディングについて有効な、IDL データタイプに関する補記やヒントも参照してください。

Software AG IDL データタイプから Natural データフォーマットへの対応関係

下の表では、IDL に対して、次のメタ記号およびプレースホルダが使用されています。

Software AG IDL 説明 Natural データフォーマット
Anumber 英数字 Anumber  
AV 英数字変数長 A DYNAMIC  
AVnumber 最大長指定付き英数字変数長 A DYNAMIC  
Bnumber バイナリ Bnumber  
BV バイナリ変数長 B DYNAMIC  
BVnumber 最大長指定付きバイナリ変数長 B DYNAMIC  
D 日付 D 3,5
F4 浮動小数点(小) F4 2
F8 浮動小数点(大) F8 2
I1 整数(小) I1  
I2 整数(中) I2  
I4 整数(大) I4  
Knumber 漢字 Anumber 1
KV 漢字変数長 A DYNAMIC 1
KVnumber 最大長指定付き漢字変数長 A DYNAMIC 1
L 論理 L  
Nnumber[.number] アンパック小数 Nnumber[.number]  
NUnumber[.number] 符号なしアンパック小数 Nnumber[.number]  
Pnumber[.number] パック小数 Pnumber[.number]  
PUnumber[.number] 符号なしパック小数 Pnumber[.number]  
T 時刻 T 3,4
numberU Unicode numberU  
UV Unicode 変数長 U DYNAMIC  
UVnumber 最大長指定付き Unicode 変数長 U DYNAMIC  

(『EntireX』ドキュメントの)「Software AG IDL Data Types」に記載されている、すべての言語バインディングに有効なヒントや制限事項も参照してください。

注意:

  1. データタイプ K は、RPC 固有のデータフォーマットで、Natural 言語の一部ではありません。

  2. 浮動小数点データタイプが使用された場合は、丸めが原因でエラーが発生する場合があるため、送信側と受信側で値が多少異なることがあります。 このことは、特に、使用している浮動小数点データ表現(IEEE、HFP)がクライアントとサーバーで異なる場合に当てはまります。

  3. AD(紀元後の西暦)の日数のカウント。 有効な範囲は 1.1.0001~28.11.2737 です。 数値から 1.1.0001 以降の全日付範囲への対応関係は、ユリウス暦およびグレゴリオ暦に従い、以下のルールを考慮します。

    1. 4 で割り切れる年は閏年です。

    2. 100 で割り切れる年は、次の規則 3 が該当する場合を除き、閏年ではありません。

    3. 400 で割り切れる年は閏年です。

    4. 西暦 1582 年より前は、ユリウス暦の規則 1 が使用されます。 西暦 1582 年以降は、グレゴリオ暦の規則 1、2、および 3 が使用されます。

    パック型の数値と実際の日付との関係については、次の表を参照してください。

    日付/日付の範囲 値/値の範囲
    1.1.0000 0(特別な値 - 日付なし)
    未定義の日付 1~364(使用しないでください)
    1.1.0001 365
    1.1.1970 719527(日付カウント機能の始点)
    28.11.2737 999999(上限の日付)
  4. AD(紀元後の西暦)の 1/10 秒のカウント。 有効な範囲は 1.1.0001 00:00:00.0~16.11.3168 9:46:39 + 0.9 秒です。 パック型の数値と実際の時刻との関係については、次の表を参照してください。

    時刻/時刻の範囲 値/値の範囲
    1.1.0000 00:00:00.0 0(特別な値 - 日付なし)
    未定義の時刻 1 - 315359999
    1.1.0001 00:00:00.0 315360000
    1.1.1970 00:00:00.0 621671328000(時間カウント機能の始点)
  5. パック型数値と日時データタイプとの関係は、次のとおりです。

    1 日に含まれる 1/10 秒数 = 24*60*60*10 = 864000

    時刻数 = 日付数 * 864000
    315360000 = 365 * 864000 1.1.0001 00:00:00.0
    621671328000 = 719527 * 864000 1.1.1970 00:00:00.0
    日付数 = 時刻数 / 864000
    365 = 315360000 / 864000 1.1.0001
    719527 = 621671328000 / 864000 1.1.1970

ライブラリ名とエイリアスの対応先

IDL ファイルに指定されているライブラリ名は、Natural ではサポートされません。 デフォルトで、Natural クライアントはライブラリ名 SYSTEM をサーバーに送信します。 クライアントからサーバーへ SYSTEM 以外のライブラリ名を送信するには、クライアントで次の手順を実行する必要があります。

Start of instruction setクライアントからサーバーへ SYSTEM 以外のライブラリ名を送信するには

  1. クライアントでログオンオプションをオンにします。

  2. アプリケーションプログラミングインターフェイス USR4008N を呼び出し、ライブラリ名を指定します。このようにしない場合は、現在のライブラリの名前が送信されます。

ライブラリ名の最大長は 8 文字です。

プログラム名とエイリアスの対応先

プログラム名はクライアントからサーバーへ送信されます。 特殊文字は置き換えられません。 プログラムのエイリアスはサーバーに送信されません。

生成された Natural インターフェイスオブジェクト(スタブサブプログラム)は同じ名前になります。

RPC サーバーでは、送信された IDL プログラム名が Natural サブプログラムの特定に使用されます。

プログラム名の最大長は 8 文字です。

パラメータ名の対応先

IDL ファイルのパラメータデータ定義に指定されているパラメータ名は、生成された Natural インターフェイスオブジェクト(スタブサブプログラム)の生成名で置き換えられます。

EntireX』ドキュメントのセクション「Software AG IDL Grammar」の「parameter-data-definition」を参照してください。

固定サイズ配列と境界なし配列の対応先

グループとピリオディックグループの対応先

IDL ファイルに含まれるグループは、Natural グループになります。 IDL ファイルにグループを作成する構文については、「group-parameter-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。

構造の対応先

IDL ファイルに含まれる構造は、Natural グループになります。 IDL ファイルに構造を作成する構文については、「structure-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。

方向属性 IN、OUT、INOUT の対応先

IDL 構文では、パラメータを IN パラメータ、OUT パラメータ、または INOUT パラメータ(指定がない場合のデフォルト)として定義できます。 この方向指定は、Natural に次のように反映されます。

IDL ファイルに属性を記述して direction-attribute を参照する構文については、「attribute-list」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。

注意:
インターフェイスオブジェクトレイアウトを Natural アプリケーション SYSRPC に定義する場合、方向属性 IN および OUT は IDL での記述に対して反転されます。

ALIGNED 属性の対応先

ALIGNED 属性は、Natural プログラミング言語とは関係ありません。 ただし、Natural クライアントは必要に応じて ALIGNED 属性を RPC サーバーに送信できます。 このことを実行するには、IDL ファイルを基に生成された Natural インターフェイスオブジェクト(スタブサブプログラム)が必要です。

IDL ファイルで属性を記述して aligned-attribute を参照する構文については、「attribute-list」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。

プロシージャまたは関数としてのサーバーの呼び出し

IDL 構文で定義できるのはプロシージャのみです。 IDL 構文に関数という概念はありません。 関数とは、パラメータの他に値を返すプロシージャです。 プロシージャおよび関数は、クライアントとサーバーとの間で透過的です。 つまり、関数を使用するクライアントは、プロシージャとして実装されているサーバーを呼び出すことができ、その逆も可能です。

クライアント側とサーバー側

Natural RPC では関数がサポートされていません。

Top of page