CA Gen Web Client fails to call Gen EJB under JBoss EAP 7.1 (EJBCLIENT000079) & WildFly 10.1 (EJBCLIENT000025)

book

Article ID: 124858

calendar_today

Updated On:

Products

CA Gen CA Gen - Build Tool CA Gen - Workstation Toolset CA Gen - Host Encyclopedia CA Gen - Run Time Distributed 3RD PARTY TSO

Issue/Introduction

Gen Web Generation client call to Gen EJB server procedure step SERVER1 (Server Manager SVR1) which has been deployed to JBoss EAP 7.1 in file cstest.ear receives message:

TIRM037E: Fatal Error was encountered ***
TIRM158E: A communication error was encountered on the client
[Function: EJBRMIDynamicCoopFlow.processException.EJBRMI.Exception]javax.ejb.NoSuchEJBException: EJBCLIENT000079: Unable to discover destination for request for EJB StatelessEJBLocator for "/SVR1/SERVER1", view is interface cstest.SERVER1_Remote, affinity is None
TIRM046E: Processing terminated ***



Similar message received for EJB deployment under WildFly 10.1:

TIRM037E: Fatal Error was encountered ***
TIRM158E: A communication error was encountered on the client
[Function: EJBRMIDynamicCoopFlow.processException.EJBRMI.Exception]java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:SVR1, distinctName:] combination for invocation context [email protected]
TIRM046E: Processing terminated ***


 

Cause

The errors are due to using the standard syntax "*=EJBRMI" in the commcfg.properties file referenced by the Gen Web client.
 

Environment

CA Gen 8.6
JBoss EAP 7.1 with required PTFs installed.
WildFly 10.1 with required PTFs installed.

Resolution

When calling an EJB under JBoss or Wildfly the EJBRMI reference for the transaction/trancode lookup must contain the ear file name i.e.
JBoss: <TRANCODE>=EJBRMI J {EARFileName} 
WildFly: <TRANCODE>=EJBRMI W {EARFileName} 

So for this example these values should be used:
JBoss: "*=EJBRMI J cstest"
WildFly: "*=EJBRMI W cstest"

NOTE: The ear file name should not contain the extension '.ear' otherwise similar errors will continue to occur.
The ear file name with no extension will match the node for the deployed EJB global reference as seen in the server.log file e.g. "java:global/cstest/SVR1/SERVER1!cstest.SERVER1_Remote"
"java:global/cstest/SVR1/SERVER1!cstest.SERVER1_Local"

Additional Information

Gen 8.6 documentation references:
"Developing Working with Build Tool > EAR File Assembling > WildFly Considerations"
https://docops.ca.com/ca-gen/8-6/en/developing/working-with-build-tool/ear-file-assembling#EARFileAssembling-WFCWildFlyConsiderations

"Distributed Processing > Working With Distributed Processing > Overriding Communications Support at Execution Time > Execution Time Configuration > Comm Config Files > Transaction Routing"
https://docops.ca.com/ca-gen/8-6/en/distributed-processing/working-with-distributed-processing/overriding-communications-support-at-execution-time#OverridingCommunicationsSupportatExecutionTime-TransactionRouting

"Distributed Processing > Working With Enterprise JavaBeans > Converter Services > How to Configure C to the Java RMI Coopflow > Change commcfg.ini File"
https://docops.ca.com/ca-gen/8-6/en/distributed-processing/working-with-enterprise-javabeans/converter-services/how-to-configure-c-to-the-java-rmi-coopflow