public void publish(int nr) throws JMSException { if (producer == null) producer = ((TopicSession) session).createPublisher((Topic) destination); if (creator == null) throw new JMSException("Publish must have a MessageCreator set"); creator.setSession(session); System.out.println("Publishing " + nr + " messages"); for (int i = 0; i < nr; i++) { System.out.println("Sending Message"); if (qosConfig != null) { System.out.println("Sending Message(a)"); ((TopicPublisher) producer) .publish( creator.createMessage(i), qosConfig.deliveryMode, qosConfig.priority, qosConfig.ttl); } else { System.out.println("Sending Message(b)"); ((TopicPublisher) producer).publish(creator.createMessage(i)); } messageHandled.incrementAndGet(); } if (session.getTransacted()) session.commit(); log.debug("Finished publishing"); }
/** This implementation overrides the superclass method to use JMS 1.0.2 API. */ protected void doSend(MessageProducer producer, Message message) throws JMSException { if (isPubSubDomain()) { if (isExplicitQosEnabled()) { ((TopicPublisher) producer) .publish(message, getDeliveryMode(), getPriority(), getTimeToLive()); } else { ((TopicPublisher) producer).publish(message); } } else { if (isExplicitQosEnabled()) { ((QueueSender) producer).send(message, getDeliveryMode(), getPriority(), getTimeToLive()); } else { ((QueueSender) producer).send(message); } } }
public void send( MessageProducer producer, Message message, Destination dest, boolean persistent, int priority, long ttl, boolean topic) throws JMSException { if (topic && producer instanceof TopicPublisher) { ((TopicPublisher) producer) .publish( (Topic) dest, message, (persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT), priority, ttl); } else if (producer instanceof QueueSender) { ((QueueSender) producer) .send( (Queue) dest, message, (persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT), priority, ttl); } else { throw new IllegalArgumentException("Producer and domain type do not match"); } }
public void onMessage(Message message) { try { MapMessage request = (MapMessage) message; String correlationID = request.getJMSCorrelationID(); int itemId = request.getInt("itemId"); // Retrieve the connection factory connectionFactory = (TopicConnectionFactory) initialContext.lookup(BeanConfig.TopicConnectionFactoryName); // get the bids history String html = getBidHistory(itemId); // send the reply TemporaryTopic temporaryTopic = (TemporaryTopic) request.getJMSReplyTo(); if (temporaryTopic != null) { // create a connection connection = connectionFactory.createTopicConnection(); // create a session: no transaction, auto ack session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); TextMessage reply = session.createTextMessage(); reply.setJMSCorrelationID(correlationID); reply.setText(html); replier = session.createPublisher(null); // unidentified publisher connection.start(); replier.publish(temporaryTopic, reply); replier.close(); session.close(); connection.stop(); connection.close(); } } catch (Exception e) { throw new EJBException("Message traitment failed for MDB_ViewBidHistory: " + e); } }
/** * Publish message * * @param message The message * @param deliveryMode The delivery mode * @param priority The priority * @param timeToLive The time to live * @exception JMSException Thrown if an error occurs */ public void publish( final Message message, final int deliveryMode, final int priority, final long timeToLive) throws JMSException { session.lock(); try { if (HornetQRATopicPublisher.trace) { HornetQRALogger.LOGGER.trace( "send " + this + " message=" + message + " deliveryMode=" + deliveryMode + " priority=" + priority + " ttl=" + timeToLive); } checkState(); ((TopicPublisher) producer).publish(message, deliveryMode, priority, timeToLive); if (HornetQRATopicPublisher.trace) { HornetQRALogger.LOGGER.trace("sent " + this + " result=" + message); } } finally { session.unlock(); } }
private void writeMessage(String s) throws JMSException { TextMessage message = session.createTextMessage(); message.setStringProperty("language", "java"); message.setText(s); System.out.println("sending text message " + message); pub.publish(message); }
public static void sendMessage(String m, TopicSession tses, TopicPublisher tpub) { try { TextMessage tm = tses.createTextMessage(m); tpub.publish(tm); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
@Override public void publish(SilverpeasNotification notification, NotificationTopic onTopic) { try { String topicName = onTopic.getName(); TopicPublisher publisher = jmsService.createTopicPublisher(topicName); ObjectMessage message = jmsService.createObjectMessageFor(publisher); message.setObject(notification); publisher.publish(message); jmsService.disposeTopicPublisher(publisher); } catch (Exception ex) { throw new PublishingException(ex); } }
/** * Overrides the superclass method to use the JMS 1.0.2 API to send a response. * * <p>Uses the JMS pub-sub API if the given destination is a topic, else uses the JMS queue API. */ protected void sendResponse(Session session, Destination destination, Message response) throws JMSException { MessageProducer producer = null; try { if (destination instanceof Topic) { producer = ((TopicSession) session).createPublisher((Topic) destination); postProcessProducer(producer, response); ((TopicPublisher) producer).publish(response); } else { producer = ((QueueSession) session).createSender((Queue) destination); postProcessProducer(producer, response); ((QueueSender) producer).send(response); } } finally { JmsUtils.closeMessageProducer(producer); } }
/** * Publish message * * @param message The message * @exception JMSException Thrown if an error occurs */ public void publish(final Message message) throws JMSException { session.lock(); try { if (HornetQRATopicPublisher.trace) { HornetQRALogger.LOGGER.trace("send " + this + " message=" + message); } checkState(); ((TopicPublisher) producer).publish(message); if (HornetQRATopicPublisher.trace) { HornetQRALogger.LOGGER.trace("sent " + this + " result=" + message); } } finally { session.unlock(); } }
public static void topicPublish( TopicConnection cnn, String topicName, String payload, boolean transacted, int ack, String replyTo) throws JMSException { TopicSession session = cnn.createTopicSession(transacted, ack); Topic topic = session.createTopic(topicName); TopicPublisher publisher = session.createPublisher(topic); TextMessage msg = session.createTextMessage(); msg.setText(payload); msg.setJMSDeliveryMode(ack); if (replyTo != null) { msg.setJMSReplyTo(session.createTopic(replyTo)); } publisher.publish(msg); publisher.close(); session.close(); }
public tibjmsLoadBalancedTopicPublisher(String[] args) { parseArgs(args); /* print parameters */ System.out.println( "\n------------------------------------------------------------------------"); System.out.println("tibjmsLoadBalancedTopicPublisher SAMPLE"); System.out.println("------------------------------------------------------------------------"); System.out.println("Servers...................... " + serverList); System.out.println("User......................... " + (userName != null ? userName : "******")); System.out.println("Topic........................ " + topicName); System.out.println("Messages..................... " + messages); System.out.println("Delay........................ " + delay); System.out.println( "------------------------------------------------------------------------\n"); System.err.println("Publishing on topic '" + topicName + "'\n"); try { HashMap properties = new HashMap(); Integer metric; if (balanceByConnections) metric = new Integer(Tibjms.FACTORY_LOAD_BALANCE_METRIC_CONNECTIONS); else metric = new Integer(Tibjms.FACTORY_LOAD_BALANCE_METRIC_BYTE_RATE); properties.put(Tibjms.FACTORY_LOAD_BALANCE_METRIC, metric); TopicConnectionFactory factory = new com.tibco.tibjms.TibjmsTopicConnectionFactory(serverList, null, properties); TopicConnection connection = factory.createTopicConnection(userName, password); TopicSession session = connection.createTopicSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE); /* * Use createTopic() to enable publishing into dynamic topics. */ javax.jms.Topic topic = session.createTopic(topicName); TopicPublisher publisher = session.createPublisher(topic); /* publish messages */ for (int i = 0; i < messages; i++) { javax.jms.TextMessage message = session.createTextMessage(); String text = "Load balanced message " + i; message.setText(text); publisher.publish(message); System.err.println( "Published message " + i + " to server " + Tibjms.getConnectionActiveURL(connection)); try { Thread.sleep(delay * 1000); } catch (InterruptedException e) { } } connection.close(); } catch (JMSException e) { e.printStackTrace(); System.exit(0); } }
public void publish() throws JMSException { testPublisher.publish(topicSession.createTextMessage("message for topic")); }