3 Replies Latest reply on Oct 22, 2016 6:59 AM by Wolfgang Mayer

    EJBCLIENT000027: No EJBReceiver available for node name MDM101

    RAJASEKAR R Newbie

      When I was executing the code I was getting the below error.

      Please let me know ,if u have any idea on this.

      Thank you.

       

       

       

      Error:

       

      EJBCLIENT000027: No EJBReceiver available for node name MDM101

       

          at org.jboss.ejb.client.EJBClientContext.requireNodeEJBReceiver(EJBClientContext.java:842)

          at org.jboss.ejb.client.EJBClientContext.requireNodeEJBReceiverContext(EJBClientContext.java:883)

          at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:47)

          at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

          at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:255)

          at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:200)

          at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:183)

          at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:146)

          at com.sun.proxy.$Proxy2.processTxSupports(Unknown Source)

          at com.siperian.sif.client.EjbSiperianClient._process(EjbSiperianClient.java:123)

          at com.siperian.sif.client.SiperianClient.process(SiperianClient.java:179)

          at com.informatica.support.SIFClient.main(SIFClient.java:87)

        • 1. Re: EJBCLIENT000027: No EJBReceiver available for node name MDM101
          Wolfgang Mayer Master

          I think here it would help if you could provide some more details regarding the environment you are using (like OS, jdk, WildFly version aso).

          Do you also have some source code you can share?

          • 2. Re: EJBCLIENT000027: No EJBReceiver available for node name MDM101
            RAJASEKAR R Newbie

            I was using following configuration in my system.

            OS: CentOS7

            Java version : 1.7

             

             

            ***** Code**********.

             

             

             

            import java.io.File;

            import java.util.ArrayList;

             

            import javax.naming.Context;

            import javax.transaction.UserTransaction;

             

            import org.jboss.ejb.client.EJBClient;

             

            import com.siperian.sif.client.EjbSiperianClient;

            import com.siperian.sif.client.SiperianClient;

            import com.siperian.sif.message.Field;

            import com.siperian.sif.message.Parameter;

            import com.siperian.sif.message.Record;

            import com.siperian.sif.message.RecordKey;

            import com.siperian.sif.message.mrm.PutRequest;

            import com.siperian.sif.message.mrm.PutResponse;

            import com.siperian.sif.message.mrm.SearchQueryRequest;

            import com.siperian.sif.message.mrm.SearchQueryResponse;

             

            public class SIFClients {

             

                /*

                 * @param args

                 */

                public static void main(String[] args) {

                    UserTransaction tx = null;

                    try {

                          

                          File file = new File("resource/properties/TestEJB.properties");

                       

                          if(!file.exists()) {

                              System.out.println("***ERROR -> Properties File does not exist in location - " );

                                    }        else {

                                        System.out.println("Properties file exists File name loc= "+file.getAbsolutePath());

                                    }

             

                          EjbSiperianClient sipClient = (EjbSiperianClient) SiperianClient.newSiperianClient(file);

                        //specify the jboss.node.name from the jboss server

                        //get this from jboss admin or read all the system properties within jboss

                        String jbossNodeName = sipClient.getConfig().getProperty("jboss.node.name");

                        System.out.println("Node name:"+sipClient.getConfig().getProperty("jboss.node.name"));

                        if(jbossNodeName == null || jbossNodeName.equals("")) {

                            throw new Exception("Invalid JBoss Node Name. Add jboss.node.name in properties file");

                        }

                        //tx = EJBClient.getUserTransaction("mdm961forranjee");`

                        tx = EJBClient.getUserTransaction(jbossNodeName);

                        tx.setTransactionTimeout(100);

                        System.out.println(tx);

                        tx.begin();

                        System.out.println("TXN BEGAN");

             

                        PutRequest putRequest1 = new PutRequest();

             

                        RecordKey recordKey1 = new RecordKey();

                        recordKey1.setRowid("309");

                        recordKey1.setSystemName("Admin");

             

                        Record record1 = new Record();

                        record1.setSiperianObjectUid("BASE_OBJECT.C_PARTY");

             

                        Field field1 = new Field();

             

                        field1.setName("DISPLAY_NAME");

                        field1.setStringValue("Hello Test Updated");

                        record1.setField(field1);

                        putRequest1.setRecord(record1);

                        putRequest1.setRecordKey(recordKey1);

             

                        PutResponse putResponse1 = (PutResponse) sipClient.process(putRequest1);

                        System.out.println("Record1 created for PUT - " + putResponse1.getMessage());

                        System.out.println("txn before commit status-" + tx.getStatus());

             

                      

                      

                        SearchQueryRequest request = new SearchQueryRequest();

                        request.setRecordsToReturn(5); //Required

                        request.setSiperianObjectUid("BASE_OBJECT.C_PARTY");

                        //Required

                        request.setFilterCriteria("C_PARTY.FIRST_NAME =?");

                        ArrayList params = new ArrayList(2);

                        params.add(new Parameter("3333"));

                        request.setFilterParameters(params);

             

                       SearchQueryResponse response = (SearchQueryResponse) sipClient.process(request);

                    

                        ArrayList<Record> recordList = response.getRecords();

             

                        for (Record record : recordList) {

                       

                            System.out.println("Period Start Date: " +record.getField("PERIOD_START_DATE").getDateValue().toString());

                            System.out.println("Period End Date: " + record.getField("PERIOD_END_DATE").getDateValue().toString());

                          

             

                        }

                      

                        tx.commit();

                        System.out.println("txn after commit status-"+ tx.getStatus());

                        System.out.println("TXN COMMITTED");

                    } catch (Exception e) {

                        e.printStackTrace();

                      

                    } finally {

                      

                        System.out.println("Finally");

                    }

             

                }

             

            }

             

            ***

            The highlighted specifies the occurrence(response code) of error.

            **********************

            When  I was executing the above code I was getting the Error......

            ************

            ERROR:

             

            TXN BEGAN

            java.lang.IllegalStateException: EJBCLIENT000027: No EJBReceiver available for node name MDM101

            Finally

                at org.jboss.ejb.client.EJBClientContext.requireNodeEJBReceiver(EJBClientContext.java:842)

                at org.jboss.ejb.client.EJBClientContext.requireNodeEJBReceiverContext(EJBClientContext.java:883)

                at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:47)

                at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

                at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:255)

                at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:200)

                at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:183)

                at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:146)

                at com.sun.proxy.$Proxy2.processTxSupports(Unknown Source)

                at com.siperian.sif.client.EjbSiperianClient._process(EjbSiperianClient.java:123)

                at com.siperian.sif.client.SiperianClient.process(SiperianClient.java:179)

                at com.informatica.support.SIFClient.main(SIFClient.java:87)

            • 3. Re: EJBCLIENT000027: No EJBReceiver available for node name MDM101
              Wolfgang Mayer Master

              I am still not sure which WildFly version you are using. But this seems to be a problem within the Siperian software.

              I understand WilFly throws the noEJBReceiverForNode if there is no EJBReceiver associated.

              You should check your client output. Usually you should find an entry like:

              "org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate"

              Maybe the jboss-ejb-client jar is not bound into the Siperian software.