Retrieve info from Windows server to Mainframe using RPC

We are in the process of implementing a system where we pull information from a mainframe (MVS/Natural/Adabas) into a Windows SQL server (VB/C#)using EntireX and RPC. The Windows client initiates the call to the mainframe and the info is stored in a SQL server.
This all works great, but I now need to do the opposite for another system, i.e. a mainframe Natural user requests some information from a Windows SQL server where a Java RPC server will probably be running.

I read the threads posted by Lajuan regarding this topic, but I do not see the solution.

Could somebody please give me some direction with this.


Hi Lizette,

the situation you are describing is somewhat different from the screnario described by LaJuan in his post (Trigger remote process with Natural RPC Server)

You can solve your problem by simply configuring and starting a Java RPC Server on the machine where you would like the process to be executed.

Once the Java RPC Server registered to the Broker, you can invoke the Java Service from your Natural program. The Natural program will in essence do a CALLNAT to the Java Service.

In order to call the Java RPC Service you will have to do a number of configuration steps within your Natural environment. Please take a look at the Natural RPC Section in your Natural documentation for more information on how to configure the RPC setup on your mainframe.

Let us know should you have any questions regarding the configuration and setup of either the Java RPC Server or Natural RPC environment.


[This message was edited by Theo Beack on 08 Feb 2005 at 22:05.]

Since you want to access SQL server and you mentioned VB/C# you might also be interested in the .NET RPC Server which is new with EntireX 7.2.1.

Similar to the Java RPC Server it generates a C# server skeleton which you can extend with your server application logic.

Kind regards,

This is what I’ve got:

EntireX broker is running on the mainframe (BROKER ID = ETB211). On the mainframe I added for Node ETB211 server SRV2, library=SYSRPC and Program=CALC. I generated a stub for CALC on the mainframe.
A Java RPC server is running on my PC with Broker-ID = ETB211 and Service RPC/SRV2/CALLNAT. (I’m using the JAVA server provided on the EntireX CD). When I look in the EntireX Broker Control Center I can see SRV2 with status waiting.

When I call subprogram CALC from a Natural program on the mainframe I get the following error message
‘NAT6972 Directory error on Client, reason 3’

I’m not sure if I’m way of base with what I’m doing or if there is just something small wrong. Please let me know.

Sounds like you’re almost there :wink:

When starting Natural on the client side, you need to specify an RPC buffer size - RPC=(MAXBUFF=30,RPCSIZE=64) will probably get you going (MAXBUFF is the size of the largest PDA you will send to the server, RPCSIZE is at least 4 greater).

There is a Technical Paper on Servline24 in the EntireX section titled “RPC Tests” that talks about configuring this scenario - Natural to Java RPC server.

Douglas Kelly,
Principal Consultant
Software AG, Inc