Exemple #1
0
    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);
     }
   }
 }
Exemple #3
0
 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();
    }
  }
Exemple #6
0
  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);
  }
Exemple #7
0
  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();
    }
  }
Exemple #11
0
 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);
    }
  }
Exemple #13
0
 public void publish() throws JMSException {
   testPublisher.publish(topicSession.createTextMessage("message for topic"));
 }