You publish messages on the topic and expect receiving messages from the queue, 
even if they are the same name but they are different thing in JMS 
specification.
 Your consumers can subscribe the topic where your producers publish messages 
for receiving messages.




At 2013-02-13 21:18:09,"Sule BASOL" <[email protected]> wrote:
>       Hi , i'm using openejb with activemq but they run on separate jvms.
>
>i tried ;
>
>on openejb jvm : 
>
>@Singleton
>@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
>public class MonitoringTimerService {
>    @PostConstruct
>    private void init() {
>            final Hashtable<String, String> ctxProps = new Hashtable<String, 
> String>(2);
>            ctxProps.put("java.naming.factory.initial", 
> "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
>            ctxProps.put("java.naming.provider.url", "tcp://localhost:61616");
>
>            final InitialContext activeMQInitialContext = new 
> InitialContext(ctxProps);
>
>            final javax.jms.ConnectionFactory factory = 
> (javax.jms.ConnectionFactory)activeMQInitialContext.lookup("ConnectionFactory");
>            final Connection connection = factory.createConnection();
>            session = connection.createSession(false, 
> Session.AUTO_ACKNOWLEDGE);
>
>            connection.start();
>
>            topic = session.createTopic( "screenNotifications" );
>            producer = session.createProducer(topic);
>       }
>
>    @Lock(LockType.WRITE)
>    @Schedule(second="*/15", minute="*",hour="*",dayOfMonth = "*", 
> persistent=false)
>    public void deleteLogs(){
>        //check if...
>        System.out.println("checking");
>
>
>        try {
>            TextMessage message = session.createTextMessage("Test 1 2 3");
>            producer.send(message);
>        } catch (JMSException e) {
>            e.printStackTrace();  //To change body of catch statement use File 
> | Settings | File Templates.
>        }
>
>
>        System.out.println("done");
>
>    }
>}
>
>
>
>This code opens screenNotifications jms topic and sends message every 15 
>seconds like that :
>
>
>
>
>
>Then i've second java swing client that listens for messages from 
>"screenNotifications" like shown below :
>
>
>InitialContext activeMQInitialContext = getActiveMQInitialContext();
>
>                javax.jms.ConnectionFactory factory = 
> (javax.jms.ConnectionFactory)activeMQInitialContext.lookup("ConnectionFactory");
>                final Connection connection = factory.createConnection();
>
>                final Session session = connection.createSession(false, 
> Session.AUTO_ACKNOWLEDGE);
>                
>                Destination destination = 
> session.createQueue("screenNotifications");
>
>                // MessageConsumer is used for receiving (consuming) messages
>                MessageConsumer consumer = session.createConsumer(destination);
>
>                consumer.setMessageListener( this );
>
>
>
>    @Override
>    public void onMessage(Message message) {
>        //To change body of implemented methods use File | Settings | File 
> Templates.
>        System.out.println("Deneme");
>    }
>
>
>
>
>
>But i dont get any message from openejb server although queue name with topic 
>is same , whats wrong ?
>

Reply via email to