package com.solace.sample; import javax.annotation.Resource; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Queue; import javax.jms.Session; @Stateless(name = "ProducerSB") @TransactionAttribute(value = TransactionAttributeType.NOT_SUPPORTED) public class ProducerSB implements Producer, ProducerLocal { @Resource(name = "myCF") ConnectionFactory myCF; @Resource(name = "myReplyQueue") Queue myReplyQueue; public ProducerSB() { } @TransactionAttribute(value = TransactionAttributeType.NOT_SUPPORTED) @Override public void sendMessage() throws JMSException { System.out.println("Sending reply message"); Connection conn = null; Session session = null; MessageProducer prod = null; try { conn = myCF.createConnection(); session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); prod = session.createProducer(myReplyQueue); ObjectMessage msg = session.createObjectMessage(); msg.setObject("Hello world!"); prod.send(msg, DeliveryMode.PERSISTENT, 0, 0); } finally { if (prod != null) prod.close(); if (session != null) session.close(); if (conn != null) conn.close(); } } }