REMOTE コマンド(RNPC)

分散サーバー(DSMSRV)が起動しているマシンのパラメータを指示するコマンドです。 このREMOTE〜CALLの機能を、RNPC(Remote NOMAD Procedure Call)と呼びます。

REMOTE リモートID
NOMADSERVER
USERID ユーザーID
PASSWORD パスワード
SERVER サーバー名 ;

REMOTE リモートID
NOMADSERVER
USERID ユーザーID
PASSWORD パスワード
OBJID アプリケーションID ;


必須パラメータ
リモートID
CALL文のREMOTE節で指定されるIDです。
NOMADSERVER
リモートNOMADプロシージャコールのための定義であることを明示します。
NOMSRVと省略して記述することもできます。
USERID ユーザーID
リモートマシンへのユーザーIDを指定します。
「dsm/r」で定義されたユーザー名を指定してください。
PASSWORD パスワード
リモートマシンへのパスワードを指定します。 「dsm/r」で定義されたユーザーIDに対するパスワードを指定してください。

オプションパラメータ
SERVER サーバー名
リモートマシンの名前、またはIPアドレスを指定します。
OBJID アプリケーションID
分散DSMCGI環境における、アプリケーションIDを指定します。

解説
分散DSMCGI環境において、リモートマシン上でNOMADプロシージャ(Entry)を実行するためのコマンドです。
このREMOTE文は、CALL(RNPC)と組み合わせて使用されます。
選択パラメータのSERVERとOBJIDは、必ずどれか1つを指定するようにしてください。

リモートサーバー上で、分散サーバー(DSMSRV)が起動している必要があります。
リモートサーバー名の代わりにアプリケーションIDを使用する場合は、 ローカルの設定ファイル[dsm.ini]に分散メインサーバーの設定が必要です。
また、分散メインサーバーの設定ファイル[dsm.ini]に、アプリケーションIDの記述を持った分散先サーバー(分散サブサーバー)の設定が必要です。


プログラム例

/* リモートサーバー上のプロシージャ[sample.nom] */

entry sample(&a);
dec &a as a20;

file define aa='result.txt ';
file open aa create;
write "I accept the following string." on aa;
write &a on aa;
file close aa;

return;


/*ローカル上の呼び出し側のプロシージャ*/

remote REMSERV nomadserver userid username password userpass server tasmania;
file open aa='result.txt' create;
call sample("Hello!!") remote REMSERV sesoff on aa;

file close aa;

この例では、リモートの分散サーバー[tasmania]上にある[sample.nom]ファイルを実行して、[sample.nom]が出力するファイル[result.txt]をローカルに転送します。
分散サーバー[tasmania]には、あらかじめユーザー名/パスワードがusername/userpassと登録されている必要があります。
ユーザー名/パスワードは、分散サーバー上のコンソールで「dsm/r」として登録してください。
実行後、分散サーバー上のB/NOMADセッションを解放します。

RNPCのコールは通常のローカルCALLと違い、結果をローカルにて取得する場合には、 その内容をリモートプロシージャ内でファイルに出力する必要があります。
また、そのファイル名と同名のファイルをローカルでオープンする必要があります。
OUTPUTウィンドウに表示される内容が、そのままローカルに転送されてくるという仕様にはなっておりません。


以下のコマンドも参照してください。
 CALL(RNPC)
 FILE OPEN
 FILE CLOSE