Special Command Tags
[RPC] Remote Process Control
   
Formats
1. Call Remote Subprogram: CALL "[RPC:server]subprog[;entry]"[,ERR=stmtref][,arglist]
2. Open Remote File: OPEN (chan[,fileopt])"[RPC:server]filename"
   
Where:
[RPC:server] The RPC clause that initiates the remote CALL. server is the logical server name (see below).
chan Channel or logical file number to open.
;entry Entry point label. (Optional.) If you include a label, precede it with a semicolon and append it to your subprogram name.
filename Name of the file to open prefixed by [RPC:server]. Use a string literal as in OPEN (14)"[RPC:server]my_file"
fileopt File options. Supported options include:
BSZ=num Block size
ERR=stmtref Error transfer
IOL=iolref Default IOList
ISZ=num Open file in binary mode
NBF=num Dedicated number of buffers
OPT=char$ File open options
REC=string$ Record prefix (REC=VIS(string$) can also be used).
arglist One or more arguments (comma-separated if you include a list arg,arg...) to pass to the subprogram. Optional.
server Name to be associated with a program server. Established using the PROCESS SERVER Directive.
stmtref Program line number or statement label to which to transfer control.
   
Description The [RPC] tag is used as a prefix to denote that ProvideX is to CALL a subprogram or open a file that resides on a remote server. Before a remote process control can be initiated, the server must be identified, and the server name established, via the PROCESS SERVER Directive.


*Note* This feature requires ProvideX RPC activation.


   
Format 1 Call Remote Subprogram
 
CALL "[RPC:server]subprog[;entry]"[,ERR=stmtref][,arglist],varlist
The RPC CALL format tells ProvideX that your subprogram is to run (and that your data resides) on a different processor on the network; i.e., on a remote server. Use the same syntax as you would for a standard CALL directive, except that a [RPC:server] clause designates a remote server to handle the CALL. Since no data is transferred during RPC CALL processing, this helps maximize both network performance and data security. For more information, refer to the CALL Directive.
 
Transparent RPC Process
At run time, ProvideX doesn't transfer data files or programs across the network for your RPC CALL. Instead, ProvideX puts your called remote subprogram name and parameters into a TCP/IP data packet and sends the packet to your remote server. The remote server loads and runs your subprogram, passing it your parameters. When your subprogram exits, the remote server puts your parameters (as altered by your subprogram) into a TCP/IP response packet and sends this back to the calling program.


*Note* Since ProvideX RPC processing is true distributed processing, handled as a transparent background process, any displays during subprogram processing will appear on the remote server. Do not attempt to display subprogram activity on the calling machine.


   
Format 2 Open Remote File
 
OPEN (chan[,fileopt])"[RPC:server]filename"
 
ProvideX supports the OPEN directive for remote files. Prefix your filename with the
[RPC:server] clause to indicate that the server is to handle file requests.
   
See Also PROCESS SERVER Directive
OPEN Directive
Remote Process Capability Technical Overview.