JBoss OpenTool for JBuilder 6 Enterprise
mredeker Feb 16, 2002 6:33 PMI have a message bean that reponds to a client submitting a queue
when I have
QueueSession session = qc.createQueueSession (false,Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(queue) ;
TextMessage tm = session.createTextMessage("Hello World");
qc.start() ;
sender.send(queue,tm) ;
Jboss reads the queue and reports on the console the output.
ie: My message bean gets the attached queue text message.
When I change it to false on the createQueueSession
QueueSession session = qc.createQueueSession(true,0);
QueueSender sender = session.createSender(queue) ;
TextMessage tm = session.createTextMessage("Hello World");
qc.start() ;
sender.send(queue,tm) ;
And then modify my ejb-jar.xml (see below) to support transactions.
I don't get any response. ie: the message bean never sees the input.
Anyone have an idea?
Thanks a bunch.
Ron
<ejb-jar>
<display-name>BranchConsolidator</display-name>
<enterprise-beans>
<message-driven>
<display-name>HeadOfficeConsolidatorMessageBean</display-name>
<ejb-name>HeadOfficeConsolidatorMessageBean</ejb-name>
<ejb-class>ca.husky.imanmq.HeadOfficeConsolidatorMessageBean</ejb-class>
<transaction-type>Container</transaction-type>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
<subscription-durability>Durable</subscription-durability>
</message-driven-destination>
</message-driven>
<assembly-descriptor>
<container-transaction>
<method-permission>
<ejb-name>HeadOfficeConsolidatorMessageBean</ejb-name>
<method-name>*</method-name>
</method-permission>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</enterprise-beans>
</ejb-jar>
My EJB onMessage is this
public void onMessage(Message message) {
System.out.println("Bean got message" + message.toString() );
TextMessage msg = null;
try {
if (message instanceof TextMessage) {
msg = (TextMessage) message;
System.out.println("MESSAGE BEAN: Message " + "received: " + msg.getText());
System.out.println("message.getJMSMessageID()= " + message.getJMSMessageID()) ;
} else {
System.out.println("Message of wrong type: " + message.getClass().getName());
}
// msg.notify() ;
} catch (JMSException e) {
System.err.println("MessageBean.onMessage: " + "JMSException: " + e.toString());
mdc.setRollbackOnly();
} catch (Throwable te) {
System.err.println("MessageBean.onMessage: " + "Exception: " + te.toString());
}