Hi,
I have Natural 6.1.1 and EntireX Communicator 7.1.1 installed on a Windows XP computer. In this scenario, I am trying to setup a Natural RPC Server inside Natural 6.1.1 and I have configured a Broker service using the EntireX Broker Administration tool. For this Broker service, I have configured the following service in the ENTIREX/NATURAL RPC services section of the Broker Attribute File.
CLASS = RPC, SERVER = SRV1, SERVICE = CALLNAT
Everything seems to go smoothly accept when I start the RPC service in the Broker Administration tool and I don’t see the service mentioned above. When I go to Natural and try to ping this RPC service, I receive the ‘00070007 Service not registered’ error message.
Does anyone happen to know what I need to get this to work? I have read documentation on Natural and EntireX but I’m basically at a loss as to what the problem might be. Any help would be greatly appreciated.
In order to call the service you defined in the Broker attribute file, you have to start a Natural RPC Server. I presume (from your description) that you might not have configured or started a Natural RPC Server. In order to do so you should create a new Natural profile using the Natural Configuration Utility. In the profile you should set the appropriate parameters for your RPC Server.
To setup the profile go to the “Client/Server” tab and select the “RPC” option. This will open another window on the right hand side of the configuration utility. Select the “RPC General” tab and set the MAXBUFF parameter - start with a value around 28kb.
Next select the “RPC (Server)” tab and set the following parameters:
1) Select “Start Session as RPC Service” option
2) Set “Server Name” to “SRV1”
3) Set Server Node to your Broker Node name, i.e. ETB172
4) Specify a user-id
Next select the "Natural Execution Configuration? on the left side of the screen. Next select the “Program Loading and Execution” parameter and in the “Natural stack command line (STACK)” specify the library name you want to logon, for example:
LOGON MYLIB
Next save the profile and create a new shortcut to your Natural. Once you did this, select the newly created shortcut and right-click. Select the “Properties” option. In the “Target” parameter you will see a reference to the natural.exe, for example:
“C:\Program Files\Software AG\Natural\6.1.1\Bin\natural.exe”
Add the following to the end of the line:
PARM=<YOUR_NATURAL_PROFILE_NAME>
The modified version might look something like this:
“C:\Program Files\Software AG\Natural\6.1.1\Bin\natural.exe” PARM=RPCSRV
Once you made this change, save the shortcut. Make sure your Broker is started and then start your RPC Server by double-clicking on the newly created shortcut. You will note that a Natural session will start but not “do anything”. When you know go to the Broker Control Center you should see the newly registered RPC Server. Only once it has registered will you be able to call it.
I hope this information will help.
Regards
Theo
Hi,
Thanks for the information. It was very helpful. With the instructions you provided, I was able to get the RPC Server to register with Broker.
However, I have one other problem that I am having with the Natural IDL Generator. Once I noticed the RPC server has been registered successfully, I decided to go to the Natural IDL Generator to see if I could generate an IDL from a Natural subprogram. When I tried to generate the IDL, I received the error below:
---------------------------------------------------------------------
Error: 1014 0082 IDLNRP0 9999 NAT0082 Invalid command, or Subprogram IDLNRP0 does not exist in library
Lib=MYLIB,Pgm=IDLNRP0,(NATURAL Error Info:
Program=IDLNRP0,Error=0082,Line=9999,Status=O,Level=01).
Object not found.
Please check your Natural RPC Server installation.
The default library and/or Steplib definitions may be incorrect.
---------------------------------------------------------------------
I located the library where IDLNRP0 was located so I added the library to the Steplib using the Natural Configuration Utility. I tried to regenerate the IDL but I received the same error for a different subprogram (RPCGSYM). I was not able to find an exact match for this particular subprogram, however, I did find RPCGSYM4.NGN, which is located in the SYSRPC library. Then I added SYSRPC to Steplib but when I tried to generate the IDL I received the same error as before.
I feel there may be something I’m missing here and I didn’t want to proceed too far without asking. Do you know how I may go about getting this to work?
Thanks again.
[This message was edited by sagprog on 24 Dec 2004 at 4:05.]
[This message was edited by sagprog on 24 Dec 2004 at 4:09.]
The EntireX Communicator documentation contains a section that describes the steps you should take in order to setup the Natural IDL Generator, under Windows. Please take a look at the following section in the EntireX documentation:
file:///c:/Program%20Files/Software%20AG/EntireX/Docu/admin/windows/setup/natidl.htm
If you follow these steps you should be able to use the Natural IDL Generator.
Regards
Theo
Hi,
I have added each library mentioned in the EntireX documentation. When I tried to generate the IDL, I received the same error related to the subprogram RPCGSYM.NGN. I renamed the subprogram called RPCGSYM4.NGN in SYSRPC to RPCCGSYM.NGN but I received the error below when I tried to generate the IDL. I have renamed the file back to RPCGSYM4.NGN.
----------------------------------------------
Error: 1014 0966 IDLNRP0 0490 NAT0966 ConvError assign BY VALUE parameter 2 (Subprogram
RPCGSYM/SYSRPC/99/100) Lib=MyLib,Pgm=IDLNRP0,(NATURAL Error Info:
Program=IDLNRP0,Error=0966,Line=0490,Status=O,Level=02).
----------------------------------------------
Apparently, RPCGSYM4 uses different parameters than RPCGSYM. The EntireX documentation mentions RPCGSYM but not RPCGSYM4. Is there a way to force EntireX to use RPCGSYM4?
Thanks.
[This message was edited by sagprog on 24 Dec 2004 at 15:20.]
do not rename the “rpcgsym4” module to anything else. It is a subprogram, most likely called by RPCGSYM - there is no point in forcing EntireX to use RPCGSYM4.
If you are still getting 0082 errors when attempting to do the IDL generate, then you may not have the IDL steplibs defined correctly.
Douglas Kelly,
Principal Consultant
Software AG, Inc
Hi,
Yes, I am getting the NAT0082 error when using RPCGSYM4. Can you tell me what I need to do in order to define the IDL steplibs correctly?
Below is how they are configured in the NATPARM profile (in the Natural Configuration Utility) I am using.
Name DBID FNR
SYSEXDDM 99 100
SYSCOMP 99 100
SYSEXT 99 100
SYSIDL 99 100
SYSRPC 99 100
SYSLIBS 99 100
Is there something here or somewhere else that needs to be changed?
Thanks.
Could you provide us with more specific information regarding the Natural profile you are using? I just created a new profile and followed the instructions provided in the EntireX Documentation and everything worked okay.
So I assume the problem you are experiencing might be a configuration issue.
Could you send me your Natural Profile?
Theo
I just noticed your previous posting and have a quick question. What are your FNAT and FUSER file numbers?
Does (99,100) point to your FNAT or FUSER File? By default the FNAT is (99,102), which points to “C:\Program Files\Software AG\Natural\6.1.1\Fnat”
and the FUSER is (99,101), which points to “C:\Program Files\Software AG\Natural\NATAPPS\FUSER”
Please ensure that the SYSIDL, SYSRPC, SYSEXT and SYSLIBS libraries point to the FNAT and that it is located in the directory listed below.
Theo
Hi,
In the System Files section of NATPARM, FNAT is using DBID=99 and FNR=100 and the path points to the location you mentioned before. As for FUSER, it is using DBID=99 and FNR=101 and the path also is the same you mentioned earlier. All steplibs are using (99, 100) so the steplibs appear to be pointing to FNAT.
Is there something else I need to check as well? Also, I have attached the NATPARM profile I am using to this message. Please let me know if I need to resend the profile.
Thanks again.
NATPARM.SAG (20.2 KB)
NATPARM is the default Natural parameter file. I suggest you create another Natural parm file. The parm you sent me also lacked some other settings in order to work properly. In this profile the RPC settings were not configured.
I created a copy of your parm file and called it TSTRPC. I made all the rquired changes and then create a new Natural shortcut on my desktop that started a Natural RPC Server session, usig TSTRPC.
Once the RPC Server started I configured the Natural IDL Generator to invoke the RPC Service and return the Natural Objects returned in my Natural Libraries.
I suggest you do the following:
1) Save the attached Natural Parm file into your profile directory, which should be “C:\Program Files\Software AG\Natural\6.1.1\Prof”
2) Change the System files to so that it is pointing to your FNAT and FUSER files
3) Change the Parm file to also point to your Broker
4) Create a new server entry in the Broker attribute file for the server you are about to start, namely NATWEB
5) Create a new shortcut that starte a Natural RPC Server session using the newly created profile
6) Once the RPC Server has successfully started, you can open the Natural IDL Generator.
7) Select the Options tab and make sure the Broker id is pointing to your Broker and the Server Name is pointing to the newly create RPC Service.
8) Once you verified this, you should be able to select the FUSER and a list of Libraries will be listed within the window.
Try these steps and let me know whether it worked.
Regards
Theo
TSTRPC.SAG (20.3 KB)
Hi,
You mentioned something about an attached parm file in the previous post. Was there an attachment that you wanted me to copy over?
Thanks.
Please disregard my previous post. I got it.
Thanks.
Okay, Here’s where I’m at now. First, I went into the Natural Configuration Utility then created a new profile called TSTRPC. Next, I closed the Natural Configuration Utility then I copied the attached file TSTRPC.SAG to the folder “C:\Program Files\Software AG\Natural\6.1.1\Prof” overwriting the existing TSTRPC.SAG file.
Inside the Natural Configuration Utility, I made the following changes to the TSTRPC profile.
1. Under TSTRPC->Natural Execution Configuration->Steplibs, I changed FNR from 102 to 200 for each steplib listed.
2. Under TSTRPC->Natural Execution Configuration->System Files->FNAT tab, I changed FNR from 102 to 100 and left the
path=C:\Program Files\Software AG\Natural\6.1.1\Fnat.
3. I added the following line to the attribute file in the “ENTIREX/NATURAL RPC services” section.
CLASS = RPC, SERVER = NATWEB, SERVICE = CALLNAT
4. Now, I create a new shortcut called TSTRPC with the
Target=“C:\Program Files\Software AG\Natural\6.1.1\Bin\natural.exe” PARM=TSTRPC.
5. Then I start the EntireX Broker ETB172 and execute the shortcut created in step 4 which starts the Natural session.
6. Inside the EntireX Natural IDL Generator, I have reconfigured the Broker Parameters to the following.
General tab: BrokerID=ETB172
Server Name=NATWEB
Session tab: Natural User ID=NATUser
NOTE: Steplib path is pointing to SYSIDL.
When I go to the EntireX Broker Control Center, I do see the NATWEB server running. Inside the EntireX Natural ID Generator, I can go to NATWEB->FUSER->{LibraryName} and see a list of Libraries. I can also see a list of subprograms when I open a specific library. However, when I right-click a subprogram in the list then click Generate IDL I receive the message below.
---------------------------------------------------------------------------------------------
Error: 1014 0082 IDLNRP0 0490 NAT0082 Invalid command, or Subprogram RPCGSYM does not exist in library.
Lib=MYLIB,Pgm=IDLNRP0,(NATURAL Error Info:
Program=IDLNRP0,Error=0082,Line=0490,Status=O,Level=02).
Object not found.
Please check your Natural RPC Server installation.
The default library and/or Steplib definitions may be incorrect.
---------------------------------------------------------------------------------------------
Maybe I am overlooking something. Could I be missing something else at this point?
Thanks.
There are a number of things we can do to debug the problem.
Steps to Verify Steplibs
1) Within the TSTRPC Parm, go to “RPC → RPC (Server)” and deselect the “Start session as RPC Server”
2) Start the Natural session by selecting the shortcut you created. The Natural session will now open in “interactive mode”.
3) Once the Natural session started, go to the command prompt and type in the “TECH” command.
4) Select the “Steplibs” tab. You should see the list of Steplibs defined for the Natural sessions. It should list all of the Steplibs you defined within the TSTRPC parm.
This is the only obvious problem I can think of right now. I will do some more digging.
Regards
Theo
I just found a support log that describes the same problem. It appears that RPCGSYM was missing with the versions of Natural 6.1.1 before patch level 5.
I’m not sure which patch level of Natural you have, but I suspect that it might be pre patch level 5. You can solve the problem by either copying RPCGSYM.NGN and RPCGSYM.NGL into the
“C:\Program Files\Software AG\Natural\6.1.1\Fnat\SYSRPC\GP” directory or upgrade your Natural to the latest Natural 6.1.1 patch level (PL9).
I zipped up the two modules and will attach it to this posting so you can test to see whether it solves your problem. If it doesn’t solve the problem, then your best bet would be to upgrade to patch level 9.
Let me know the outcome.
Regards
Theo
RPCGSYM.zip (2.7 KB)
Hi,
Copying the two files over appears to have done the trick. Is there a site available that I can download the patches you mentioned?
Also, I have more question related to the IDL that I generated as a test. The IDL displays the parameters like this:
Par01 (A5)
Par02 (A15)
Par03 (N1)
Par04 (N5)
I noticed the original parameter names were replaced with Par99. Is there a way to set this where it will pick up the original parameter names?
FYI - Below is the list of Steplibs that were displayed using the TECH command.
Library DBID FNR
------- ---- —
SYSIDL 99 100
SYSRPC 99 100
SYSEXT 99 100
SYSLIBS 99 100
SYSEXDDM 99 100
SYSCOMP 99 100
SYSTEM 99 101
SYSTEM 99 100
Will having two SYSTEM Libraries make a difference here? Would it be correct to assume that one is for FNAT (100) and the other is for FUSER (101)?
Thanks again.
[This message was edited by sagprog on 29 Dec 2004 at 0:37.]
Within the Natural IDL Generator, there is an option you can select, which will parse the source code and return the variable names. To select this option go to “View → Options → Natural ->” (within the Natural IDL Generator), then select the “Parse Natural Subprogram Source” option.
This should solve your problem.
Regards
Theo
I suggest you contact your local Software AG Support Center, in order to get the latest Natural Patch Level. I’m not aware of any sites that allow you download the Natural Patches.
Regards
Theo
Hi,
It worked like a charm but I have one more question. Is there a site available to the public where updates for Natural or EntireX can be downloaded?
Thanks again.