Exemplo n.º 1
0
 public static Message topicSubscribe(TopicConnection cnn, String topicName, long timeout)
     throws JMSException {
   TopicSubscriber receiver = getTopicSubscriber(cnn, topicName);
   Message msg = receiver.receive(timeout);
   if (msg != null) msg.acknowledge();
   receiver.close();
   return msg;
 }
Exemplo n.º 2
0
  public static void drainTopic(TopicConnection cnn, String topic) throws Exception {
    TopicSession session = cnn.createTopicSession(false, Session.DUPS_OK_ACKNOWLEDGE);
    Topic t = session.createTopic(topic);

    TopicSubscriber subscriber = session.createSubscriber(t);
    Message msg = subscriber.receiveNoWait();
    while (msg != null) {
      try {
        msg.acknowledge();
      } catch (JMSException e) {

      }
      msg = subscriber.receiveNoWait();
    }
    subscriber.close();
    session.close();
  }
 @Override
 public void registerTopicSubscriber(
     @NotNull RequestContext rc, @NotNull TopicSubscriber subscriber) {
   addToStats("topicSubscription");
   Boolean bootstrap = rc.bootstrap();
   topicSubscribers.add((TopicSubscriber<K, V>) subscriber);
   if (bootstrap != Boolean.FALSE && kvStore != null) {
     try {
       for (int i = 0; i < kvStore.segments(); i++)
         kvStore.entriesFor(i, e -> subscriber.onMessage(e.getKey(), e.getValue()));
     } catch (InvalidSubscriberException dontAdd) {
       topicSubscribers.remove(subscriber);
     }
   }
 }
 @Override
 public void unregisterTopicSubscriber(@NotNull TopicSubscriber subscriber) {
   topicSubscribers.remove(subscriber);
   removeFromStats("topicSubscription");
   subscriber.onEndOfSubscription();
 }
Exemplo n.º 5
0
  public tibjmsTopicSubscriber(String[] args) {

    parseArgs(args);

    /* print parameters */
    System.err.println(
        "\n------------------------------------------------------------------------");
    System.err.println("tibjmsTopicSubscriber SAMPLE");
    System.err.println("------------------------------------------------------------------------");
    System.err.println(
        "Server....................... " + ((serverUrl != null) ? serverUrl : "localhost"));
    System.err.println(
        "User......................... " + ((userName != null) ? userName : "******"));
    System.err.println("Topic........................ " + topicName);
    System.err.println(
        "------------------------------------------------------------------------\n");

    try {
      tibjmsUtilities.initSSLParams(serverUrl, args);
    } catch (JMSSecurityException e) {
      System.err.println(
          "JMSSecurityException: " + e.getMessage() + ", provider=" + e.getErrorCode());
      e.printStackTrace();
      System.exit(0);
    }

    if (topicName == null) {
      System.err.println("Error: must specify topic name");
      usage();
    }

    System.err.println("Subscribing to topic: " + topicName);

    try {
      TopicConnectionFactory factory = new com.tibco.tibjms.TibjmsTopicConnectionFactory(serverUrl);

      TopicConnection connection = factory.createTopicConnection(userName, password);

      TopicSession session =
          connection.createTopicSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);

      /*
       * Use createTopic() to enable subscriptions to dynamic topics.
       */
      javax.jms.Topic topic = session.createTopic(topicName);

      TopicSubscriber subscriber = session.createSubscriber(topic);

      connection.start();

      /* read topic messages */
      while (true) {
        javax.jms.Message message = subscriber.receive();
        if (message == null) break;

        System.err.println("Received message: " + message);
      }

      connection.close();
    } catch (JMSException e) {
      System.err.println("JMSException: " + e.getMessage() + ", provider=" + e.getErrorCode());
      e.printStackTrace();
      System.exit(0);
    }
  }