-
1. Re: EJBCLIENT000027: No EJBReceiver available for node name MDM101
mayerw01 Oct 20, 2016 6:14 AM (in response to raja_it)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
raja_it Oct 21, 2016 1:15 AM (in response to raja_it)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
mayerw01 Oct 22, 2016 6:59 AM (in response to raja_it)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.