rpcserver.exe

We have a dotnet server setup in an old machine Win Serv5.2 5.2 x86 which is working fine

Now we need to migrate this to new server , I am testing this in a VM first : Win NT 6.1 AMD64

So I installed new Sofyware AG
Broker: Version 9.5.1.00 Platform z/OS 01.00
Server: EntireX RPC server 9.5.1.0

Update my Dot net code to Framework 4

Updated RPCserver.exe.config with new DLL path, When I ran Entirex IDL tester , I am getting below err in Application Logs

EventData
Application: rpcserver.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: exception code c0000005, exception address 0000000073F6E480 Stack:

EventData
rpcserver.exe
9.5.1.0
52204c6a
MSVCR90.dll
9.0.30729.6161
4dace4e7
c0000005
000000000001e480
18a0
01d17bc3bdb40dd3
c:\SoftwareAG\EntireX\bin\rpcserver.exe
C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251\MSVCR90.dll
090a8046-e7b7-11e5-a251-0050560ec4d6

Just want to update My err details

Faulting application name: rpcserver.exe, version: 9.5.1.0, time stamp: 0x52204c6a
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x000007fe999a4da5
Faulting process id: 0x163c
Faulting application start time: 0x01d17bdfaaaacb51
Faulting application path: c:\SoftwareAG\EntireX\bin\rpcserver.exe
Faulting module path: unknown
Report Id: 269b56d1-e7d3-11e5-86f4-0050560ec4d6

Application: rpcserver.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
at SoftwareAG.EntireX.NETWrapper.Runtime.Trace.StackTrace(System.Exception)
at .ERXGetParameter(Int32, tagERX_CALL_INFORMATION_BLOCK*)

Hello Gurbeer,

why our you using EntireX 9.5? This is already a rather old version, I suggest to install the latest version 9.9.

Anyway, after installation you should install the latest fixes using the Software Update Manager.

I checked with our Team, they said
we install the version to match the mainframe, which is 9.5

We don’t need any fixes. Could you please let us know what could be the issue for this err.

You can run different versions of the Broker messaging partners. v9.9 EntireX applications on open systems will work just fine with EntireX 9.5 on the mainframe. :smiley:

You should open a support ticket for this issue.

I am able to resolve this, somehow copied DLL was not copied properly.

Now I am facing a new err. We have this RPC server class, I added one RPC client class in my project, from SAG tester I am calling my RPCServer, from Log, I can see its coming to class , its calling clinet, its getting the result from mainframe but stuck there, it never come out. I tired putting return statement at end but no success .
Error 0074 0074: WAIT timeout occurred
In Trace
10:23:25 WORKER(227c): 10050032 ERXMarshal() failed for WBNETCAL/STNETCAL. error=10050032
10:23:25 WORKER(227c): 10050033 Could not resolve RPC call for WBNETCAL/STNETCAL. error=10050033

STNETCAL is a Server class, here we are calling Client, to call clinet , I initiated an another Broker obj and service obj.
And in dotNetServer.cfg we have this setting.
MinWorkers=1
MaxWorkers=1

Is this the reason. If I remove client calling logic, RPC server is working fine, so I am sure something is missing. In my all existing Project they never implement like this, Inside RPC server, they call External webservice and in webservice they call Clinet. Don’t we support calling RPCclient from RPCserver

A client program would not use a server class. A server class would be used to provide services on the .Net platform to other RPC clients. If you are calling a mainframe service, then you need a client program to call the .Net wrapper program (generated from the workbench) which calls the mainframe service.

If your .Net server is being called by the mainframe client application, then your server needs to use a server class to call your .Net service(s) to respond to the mainframe client.

It is possible for the .Net server to act as a client to another server (.Net or otherwise). (Possible, but not a typical pattern.) It doesn’t make much sense for the server to call another service on the same server via EntireX - that’s a lot of overhead for little gain. If the server does call itself, yes, it does need more than one thread as the caller is already occupying the only available thread with MaxWorkers=1.

If you could diagram out the complete flow you are expecting, it probably would help. At the moment, it isn’t clear if the mainframe is the server or not since you have a .Net server.