I am getting an error when the process leaves the onMessage() of the MDB. It is related to the entity bean that is trying to add a row to a cloudscape database.
"An illegal attempt to commit a one phase capable resource with existing two phase capable resources has occurred."
Phase? What are they refering to? I am using IBM MQ as my JMS service.
MDB code...
package mdbBeans;
import javax.ejb.CreateException;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Bean implementation class for Enterprise Bean: TaxMDB
*/
public class TaxMDBBean
implements javax.ejb.MessageDrivenBean, javax.jms.MessageListener {
private javax.ejb.MessageDrivenContext fMessageDrivenCtx;
/**
* getMessageDrivenContext
*/
public javax.ejb.MessageDrivenContext getMessageDrivenContext() {
return fMessageDrivenCtx;
}
/**
* setMessageDrivenContext
*/
public void setMessageDrivenContext(javax.ejb.MessageDrivenContext ctx) {
fMessageDrivenCtx = ctx;
}
/**
* ejbCreate
*/
public void ejbCreate() {
}
/**
* onMessage
*/
public void onMessage(javax.jms.Message msg) {
TextMessage tm = (TextMessage) msg;
String lmsg = tm.toString();
int len = lmsg.lastIndexOf("\n");
lmsg = lmsg.substring(len + 1);
System.out.println("Message received: " + lmsg);
int key;
key = Integer.parseInt(lmsg);
try {
InitialContext initialContext = new InitialContext();
TaxEjbEntityLocalHome TaxH = (TaxEjbEntityLocalHome)initialContext.lookup("java:comp/env/ejb/TaxEjbEntity");
TaxEjbEntityLocal tl = TaxH.create(key);
tl.setTaxName(("***" + key + "local" + "***"));
} catch (NamingException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
}
}
/**
* ejbRemove
*/
public void ejbRemove() {
}
}