10050044 ERXDynDispatch() failed

I get the following error message when performing a remote procedure call:
10050044 ERXDynDispatch() failed

I’m using a c client, the windows c rpcserver, mainframe broker and Natural sub programs.

The rpc server sends a response if I ping it, but fails when I try to execute a remote procedure using the c client.

Could this error be caused by something in my server implementation frame?

There should be an additional error message in the RPC Server log/output, something like:

12:17:51 WORKER(10c8): 10050044 ERXDynDispatch() failed.
12:17:51 WORKER(10c8): 10010016 Callee not found.

My complete error message is below. Also, I double checked my DLL’s acording to the documentation at:
\Software AG\EntireX\Docu\admin\windows\rpcserv.htm
There is an attached word doc with the files I’m using. Are there parameters that insure the dll’s are available to rpcserver.exe?

/***** Server Running ******
EntireX RPC server V7.1.1.30 parameters:
Broker Id (default)…ETB212.teale.ca.gov:18212
Service (default)…RPC/SRV1/CALLNAT
MinWorker (free for new conversation) 1
MaxWorker (max parallel active) … 2
EndWorker (criteria when to stop) … I
Timeout (in seconds for Broker) … 30
Api used (for Broker) … AUTO
Codepage (for data conversion) … Non-ECS
Server is starting… Tue May 03 12:23:10 2005
Broker available, server continues…Tue May 03 12:23:10 2005

/******* Error Message ******
12:23:23 WORKER(0730): 10050033 Could not resolve RPC call for ETXPROG/CALC.

12:23:23 WORKER(0730): 10050044 ERXDynDispatch() failed.
12:23:23 WORKER(0730): 10010016 Callee not found.
FilesUsedFor-RPC ServerOnWindows.doc (44 KB)

This is actually a product problem because the second line should contain a detailed error message.

The typical cause is that either the ETXPROG/DETXPROG dll cannot be loaded or that they do not contain an entry for CALC.

Did you start server.bat from c:\RPCServer ? If not make sure that c:\RPCServer is in the Windows PATH.

To get more infomation start the RPC server with tracing enabled. In server.cfg define TraceLevel=Standard. The trace is written to My Documents\Software AG\EntireX and should contain the actual error.

I started server.bat from c:\RPCSever. I also turned on tracing. It looks like the DETXPROG.dll and ETXPROG.dll are not being loaded. Please see attached trace output.

Thanks
ERXtrace.003.log (12.3 KB)

It did find/load the ddls, but the ddls do not contain an entry point for CALC:

0x000002c4> . . . . . SERVER checkpoint: Try to find STUB.
0x000002c4> . . . . . SERVER checkpoint: LoadLibray(DETXPROG) successful
0x000002c4> . . . . . SERVER checkpoint: LoadDynamic(DETXPROG,DCALC) failed
0x000002c4> . . . . . SERVER checkpoint: Try to find STUB.
0x000002c4> . . . . . SERVER checkpoint: LoadLibray(ETXPROG) successful
0x000002c4> . . . . . SERVER checkpoint: LoadDynamic(ETXPROG,DCALC) failed
0x000002c4> . . . . . 10050033 Could not resolve RPC call for ETXPROG/CALC.

I have a similar problem. Are you able to solve the “callee not found” problem?

I also get this error and can’t find a solution. The server log is included as attachment.

My problem is that i generate the c-server and try to test it with the java-test-client from the workbench. Is it possible that this error may be caused from an idl that is to big?

The server is running under windows xp and the entirex version is 7.2.1.50
ERXtrace.001.log (6.74 KB)

The RPC Server tries to load your server implementation, ares.dll with entry point EMTA2LV. This fails with a Floating-point invalid operation.

You should check if your dll contains any initialization code with floating point operations.

I can now debug the ares.dll. I just changed something in the idl and generated the server-sources.
The idl contained some structures with a beginning #
If I remove these #, then it works.

Thanks for the help :smiley:

That’s kind of strange :o

Could you please post the source of the dll which does NOT work ?

In the attachment is the idl from which i generated the c-server.

Running the server in debug, there are 2 calls in DEMTA2LV.

The first with flag ERX_DYN_VERSION set
The second with flag ERX_DYN_INFO set

both return a success but thats it
There isn’t a call with the flag ERX_DYN_CALLING

 ERXeReturnCode ERX_CALL_DECLARATION DEMTA2LV
(
   ERX_CALL_INFORMATION_BLOCK ERXPTR *pCallInfoBlock,
   const ERX_DYN_FLAG Flag,
   S_EMTA2LV  *pParm,
#ifdef _WINDOWS
   HINSTANCE sHandle
#elif  _HPUX_SOURCE
   shl_t sHandle
#elif  defined(__IBMC__) && defined(__MVS__)
   dllhandle *sHandle
#else
   void *sHandle
#endif
)
{  /* Deliver EntireX RPC stub version */
   if (Flag == ERX_DYN_VERSION)
   {
      short *pVersion;
      pVersion = (short *) pParm;
     *pVersion = 3;
      return(ERX_S_SUCCESS);
   }

   /* Deliver EntireX RPC parameter description */
   if (Flag == ERX_DYN_INFO)
   {

      if (pCallInfoBlock->uParameterCount < 381)
      {
         pCallInfoBlock->uParameterCount = 381;
         return(ERX_E_RPC_STUB_DYN_PARM_OVERFLOW);
      }
      pCallInfoBlock->uParameterCount = 381;
      memcpy( pCallInfoBlock->pParmDef, PD_EMTA2LV, sizeof(PD_EMTA2LV));
      return(ERX_S_SUCCESS);
   }

   /* Invoke customer function */
   if (Flag == ERX_DYN_CALLING)
   {

If you need the sources from the dll, maybe there is another way to send them to you or can I attach more than 1 file to 1 post?
emta2lv_not_work.idl (14.9 KB)

No, it’s only 1 file. But you can put them in a zip archive and attach the zip file.

OK, here is the DAres.c and CAres.h
Ares.zip (10.3 KB)

These 2 files are used to build the dares.dll which does not have a problem.

It is the ares.dll which cannot be loaded. This dll contains your server implementation, I think the corresponding source file is named Fares.c.

It worked for some time till now. The error came back. In this zip-File are the resources of the project with all files except the rklibd8.lib

I hope you can find the problem with these files.

[EDIT]
Ah, sorry. I found the error. The function GetTarifGeneration() accepts no double and there was an invalid floating point operation. I deleted the attached files.
Thanks for the help. :slight_smile:

Now i tried to use a very huge lib with lots of functions and i get the error again.

This is the error message, when the dll is called:
Eine Ausnahme (erste Chance) bei 0x0131d653 (Ares.dll) in rpcserver.exe: 0xC0000090: Floating-point invalid operation.

Is there any chance to find the reason of this error or do I have to search through the hole sources of the lib for type conversion errors or anything like that? When I compile the lib there are no error messages from the compiler (Mivrosoft C++ .NET 2003)
Maybe you know some compiler which can find the error(s)?