Пример #1
0
 public void start() {
   try {
     conn.start();
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #2
0
  public QLender(String queuecf, String requestQueue) {
    try {
      // Connect to the provider and get the JMS connection
      Context ctx = new InitialContext();
      QueueConnectionFactory qFactory = (QueueConnectionFactory) ctx.lookup(queuecf);
      qConnect = qFactory.createQueueConnection();

      // Create the JMS Session
      qSession = qConnect.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

      // Lookup the request queue
      requestQ = (Queue) ctx.lookup(requestQueue);

      // Now that setup is complete, start the Connection
      qConnect.start();

      // Create the message listener
      QueueReceiver qReceiver = qSession.createReceiver(requestQ);
      qReceiver.setMessageListener(this);

      System.out.println("Waiting for loan requests...");

    } catch (JMSException jmse) {
      jmse.printStackTrace();
      System.exit(1);
    } catch (NamingException jne) {
      jne.printStackTrace();
      System.exit(1);
    }
  }
  public void onMessage(Message inMessage) {
    TextMessage msg = null;

    try {
      if (inMessage instanceof TextMessage) {
        msg = (TextMessage) inMessage;
        System.out.println("MESSAGE BEAN: Message received: " + msg.getText());
        long sleepTime = msg.getLongProperty("sleeptime");
        System.out.println("Sleeping for : " + sleepTime + " milli seconds ");
        Thread.sleep(sleepTime);
        queueConnection = queueConnectionFactory.createQueueConnection();
        queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
        queueSender = queueSession.createSender(queue);
        TextMessage message = queueSession.createTextMessage();

        message.setText("REPLIED:" + msg.getText());
        message.setIntProperty("replyid", msg.getIntProperty("id"));
        System.out.println("Sending message: " + message.getText());
        queueSender.send(message);
      } else {
        System.out.println("Message of wrong type: " + inMessage.getClass().getName());
      }
    } catch (JMSException e) {
      e.printStackTrace();
    } catch (Throwable te) {
      te.printStackTrace();
    } finally {
      try {
        queueSession.close();
        queueConnection.close();
      } catch (Exception e) {
      }
    }
  } // onMessage
Пример #4
0
  @Override
  public void onMessage(Message message) {
    if (!(message instanceof ObjectMessage)) {
      return;
    }

    try {
      Object objectInMessage = ((ObjectMessage) message).getObject();
      if (!(objectInMessage instanceof LectureWrapperDTO)) {
        return;
      }

      final String messageAction = message.getStringProperty("action");
      if (messageAction == null) {
        return;
      }
      LectureWrapperDTO lectureWrapperDTO = (LectureWrapperDTO) objectInMessage;

      if (messageAction.equals(ISchedulerListener.InfoType.CREATED.toString())) {
        schedulerListener.notify(ISchedulerListener.InfoType.CREATED, lectureWrapperDTO);
      } else if (messageAction.equals(ISchedulerListener.InfoType.INFO.toString())) {
        schedulerListener.notify(ISchedulerListener.InfoType.INFO, lectureWrapperDTO);
      } else if (messageAction.equals(ISchedulerListener.InfoType.DENIED.toString())) {
        schedulerListener.notify(ISchedulerListener.InfoType.DENIED, lectureWrapperDTO);
      } else if (messageAction.equals(ISchedulerListener.InfoType.STREAMED.toString())) {
        schedulerListener.notify(ISchedulerListener.InfoType.STREAMED, lectureWrapperDTO);
      }
    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
  public DigitalLibraryServer() {
    try {
      Properties properties = new Properties();
      properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
      properties.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces");
      properties.put(Context.PROVIDER_URL, "localhost");

      InitialContext jndi = new InitialContext(properties);
      ConnectionFactory conFactory = (ConnectionFactory) jndi.lookup("XAConnectionFactory");
      connection = conFactory.createConnection();

      session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

      try {
        counterTopic = (Topic) jndi.lookup("counterTopic");
      } catch (NamingException NE1) {
        System.out.println("NamingException: " + NE1 + " : Continuing anyway...");
      }

      if (null == counterTopic) {
        counterTopic = session.createTopic("counterTopic");
        jndi.bind("counterTopic", counterTopic);
      }

      consumer = session.createConsumer(counterTopic);
      consumer.setMessageListener(this);
      System.out.println("Server started waiting for client requests");
      connection.start();
    } catch (NamingException NE) {
      System.out.println("Naming Exception: " + NE);
    } catch (JMSException JMSE) {
      System.out.println("JMS Exception: " + JMSE);
      JMSE.printStackTrace();
    }
  }
Пример #6
0
 private void consume() {
   try {
     consumer = session.createConsumer(queue);
     message = consumer.receive();
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #7
0
 private void exit() {
   try {
     qConnect.close();
   } catch (JMSException jmse) {
     jmse.printStackTrace();
   }
   System.exit(0);
 }
Пример #8
0
 @Override
 public void onMessage(Message message) {
   TextMessage textMessage = (TextMessage) message;
   try {
     System.out.println("Tratador recebendo mensagem: " + textMessage.getText());
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #9
0
 @Override
 public void stop() {
   try {
     messageConsumer.close();
     connection.stop();
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #10
0
 public void close() {
   try {
     if (con != null) {
       con.close();
     }
   } catch (JMSException x) {
     x.printStackTrace();
   }
 }
Пример #11
0
 public void init() {
   factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
   try {
     connection = factory.createConnection();
     connection.start();
     session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
     queue = session.createQueue(queueName);
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #12
0
 public void stop() {
   try {
     session.close();
   } catch (JMSException e) {
     e.printStackTrace();
   }
   try {
     conn.close();
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #13
0
  public void onMessage(Message message) {
    TextMessage msg = (TextMessage) message;
    try {
      System.out.println("received: " + msg.getText());

      if (msg.getText().equals("exit")) {
        AsyncSimpleConsumer.catchExit = true;
      }
    } catch (JMSException ex) {
      ex.printStackTrace();
    }
  }
Пример #14
0
  @Override
  public void info(long lectureWrapperId) {
    InfoLectureWrapperDTO infoLectureWrapperDTO = new InfoLectureWrapperDTO(lectureWrapperId);

    try {
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
      ObjectMessage objectMessage = session.createObjectMessage(infoLectureWrapperDTO);
      session.createProducer(serverQueue).send(objectMessage);
    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
Пример #15
0
 @Override
 public void start() {
   try {
     connection = connectionFactory.createConnection();
     Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
     messageConsumer = session.createConsumer(schedulerQueue);
     messageConsumer.setMessageListener(this);
     connection.start();
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #16
0
 public void onMessage(Message message) {
   // 这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换,或者直接把onMessage方法的参数改成Message的子类TextMessage
   TextMessage textMsg = (TextMessage) message;
   System.out.println("接收到一个纯文本消息。");
   try {
     System.out.println("消息内容是:" + textMsg.getText());
     if (1 == 1) {
       throw new RuntimeException("Error");
     }
   } catch (JMSException e) {
     e.printStackTrace();
   }
 }
Пример #17
0
  /**
   * Wait for 'count' messages on controlQueue before continuing. Called by a publisher to make sure
   * that subscribers have started before it begins publishing messages.
   *
   * <p>If controlQueue doesn't exist, the method throws an exception.
   *
   * @param prefix prefix (publisher or subscriber) to be displayed
   * @param controlQueueName name of control queue
   * @param count number of messages to receive
   */
  public static void receiveSynchronizeMessages(String prefix, String controlQueueName, int count)
      throws Exception {
    QueueConnectionFactory queueConnectionFactory = null;
    QueueConnection queueConnection = null;
    QueueSession queueSession = null;
    Queue controlQueue = null;
    QueueReceiver queueReceiver = null;

    try {
      queueConnectionFactory = SampleUtilities.getQueueConnectionFactory();
      queueConnection = queueConnectionFactory.createQueueConnection();
      queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      controlQueue = getQueue(controlQueueName, queueSession);
      queueConnection.start();
    } catch (Exception e) {
      System.out.println("Connection problem: " + e.toString());
      if (queueConnection != null) {
        try {
          queueConnection.close();
        } catch (JMSException ee) {
        }
      }
      throw e;
    }

    try {
      System.out.println(
          prefix
              + "Receiving synchronize messages from "
              + controlQueueName
              + "; count = "
              + count);
      queueReceiver = queueSession.createReceiver(controlQueue);
      while (count > 0) {
        queueReceiver.receive();
        count--;
        System.out.println(prefix + "Received synchronize message; expect " + count + " more");
      }
    } catch (JMSException e) {
      System.out.println("Exception occurred: " + e.toString());
      throw e;
    } finally {
      if (queueConnection != null) {
        try {
          queueConnection.close();
        } catch (JMSException e) {
        }
      }
    }
  }
Пример #18
0
  private void sendJmsMessage() {
    String message = "Salutation generated for MDB";
    try {
      Connection connection = queueConnectionFactory.createConnection();
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
      MessageProducer messageProducer = (MessageProducer) session.createProducer(queue);
      TextMessage textMessage = session.createTextMessage();
      textMessage.setText(message);
      messageProducer.send(textMessage);
      Logger.getLogger("SalutationLog")
          .log(Level.WARNING, "Message sent successfully", "Message sent successfully2");

    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
 @Override
 public void onMessage(Message message) {
   JMSProducer producer = context.createProducer();
   try {
     // What we need to do is find classification entries that have not been
     // filled out. When we find them, we send a message to *another* queue,
     // saying "run this classification" - with an expiry of 45 seconds.
     List<Classification> classifications = classificationService.findUnclassifiedEntries();
     for (Classification classification : classifications) {
       ObjectMessage classificationMessage = context.createObjectMessage(classification);
       classificationMessage.setJMSExpiration(45 * 1000);
       producer.send(classificationQueue, classificationMessage);
     }
   } catch (JMSException jmsException) {
     jmsException.printStackTrace();
   }
 }
Пример #20
0
  public void onMessage(Message message) {

    try {
      boolean accepted = false;

      // Get the data from the message
      MapMessage msg = (MapMessage) message;
      double salary = msg.getDouble("Salary");
      double loanAmt = msg.getDouble("LoanAmount");

      // Determine whether to accept or decline the loan
      if (loanAmt < 200000) {
        accepted = (salary / loanAmt) > .25;
      } else {
        accepted = (salary / loanAmt) > .33;
      }
      System.out.println(
          ""
              + "Percent = "
              + (salary / loanAmt)
              + ", loan is "
              + (accepted ? "Accepted!" : "Declined"));

      // Send the results back to the borrower
      TextMessage tmsg = qSession.createTextMessage();
      tmsg.setText(accepted ? "Accepted!" : "Declined");

      // correlation
      tmsg.setJMSCorrelationID(message.getJMSMessageID());

      // Create the sender and send the message
      qSender = qSession.createSender((Queue) message.getJMSReplyTo());
      qSender.send(tmsg);

      System.out.println("\nWaiting for loan requests...");

    } catch (JMSException jmse) {
      jmse.printStackTrace();
      System.exit(1);
    } catch (Exception jmse) {
      jmse.printStackTrace();
      System.exit(1);
    }
  }
Пример #21
0
  @After
  public void tearDown() {
    try {
      if (session != null) {
        session.close();
      }

      if (connection != null) {
        connection.close();
      }

      if (hornetQConnectionFactory != null) {
        hornetQConnectionFactory.close();
      }

    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
Пример #22
0
  /**
   * Send a message to controlQueue. Called by a subscriber to notify a publisher that it is ready
   * to receive messages.
   *
   * <p>If controlQueue doesn't exist, the method throws an exception.
   *
   * @param prefix prefix (publisher or subscriber) to be displayed
   * @param controlQueueName name of control queue
   */
  public static void sendSynchronizeMessage(String prefix, String controlQueueName)
      throws Exception {
    QueueConnectionFactory queueConnectionFactory = null;
    QueueConnection queueConnection = null;
    QueueSession queueSession = null;
    Queue controlQueue = null;
    QueueSender queueSender = null;
    TextMessage message = null;

    try {
      queueConnectionFactory = SampleUtilities.getQueueConnectionFactory();
      queueConnection = queueConnectionFactory.createQueueConnection();
      queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      controlQueue = getQueue(controlQueueName, queueSession);
    } catch (Exception e) {
      System.out.println("Connection problem: " + e.toString());
      if (queueConnection != null) {
        try {
          queueConnection.close();
        } catch (JMSException ee) {
        }
      }
      throw e;
    }

    try {
      queueSender = queueSession.createSender(controlQueue);
      message = queueSession.createTextMessage();
      message.setText("synchronize");
      System.out.println(prefix + "Sending synchronize message to " + controlQueueName);
      queueSender.send(message);
    } catch (JMSException e) {
      System.out.println("Exception occurred: " + e.toString());
      throw e;
    } finally {
      if (queueConnection != null) {
        try {
          queueConnection.close();
        } catch (JMSException e) {
        }
      }
    }
  }
Пример #23
0
  public void onMessage(Message message) {

    try {
      boolean accepted = false;

      // Get the data from the message
      MapMessage msg = (MapMessage) message;
      double salary = msg.getDouble("Salary");
      double expAmt = msg.getDouble("Years’ experience");

      // Determine whether to accept or decline the loan
      if (expAmt < 200000) {
        accepted = (salary / expAmt) > .25;
      } else {
        accepted = (salary / expAmt) > .33;
      }
      if (salary <= 32000) {
        accepted = true;
      } else {
        if (expAmt == 0) accepted = false;
        else accepted = ((double) (expAmt - 32000) / expAmt) < 3000.;
      }
      System.out.println(" Salary proposal is " + (accepted ? "Accepted!" : "Declined"));

      // Send the results back to the borrower
      TextMessage tmsg = qSession.createTextMessage();
      tmsg.setText(accepted ? "Accepted!" : "Declined");
      tmsg.setJMSCorrelationID(message.getJMSMessageID());

      // Create the sender and send the message
      QueueSender qSender = qSession.createSender((Queue) message.getJMSReplyTo());
      qSender.send(tmsg);

      System.out.println("\nWaiting for salary requests...");

    } catch (JMSException jmse) {
      jmse.printStackTrace();
      System.exit(1);
    } catch (Exception jmse) {
      jmse.printStackTrace();
      System.exit(1);
    }
  }
Пример #24
0
  public static void main(String[] args) {
    try {
      System.out.println(args[0] + " " + args[2]);
      ChatPublisher publisher = new ChatPublisher(args[0], args[1], Boolean.valueOf(args[2]));
      publisher.start();
      BufferedReader cmd = new BufferedReader(new InputStreamReader(System.in));

      while (true) {
        String s = cmd.readLine();

        if (s.equalsIgnoreCase("exit")) {
          publisher.stop();
          System.exit(0);
        } else {
          publisher.writeMessage(s);
        }
      }
    } catch (JMSException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public void onMessage(Message message) {
    if (message instanceof TextMessage) {
      TextMessage msg = (TextMessage) message;

      try {
        String unitOfOrder = message.getStringProperty("JMS_BEA_UnitOfOrder");
        // Sleep for 2 seconds to demonstrate the messages are indeed
        // processes sequentially (in unit-of-order)
        Thread.sleep(2000);
        System.out.println(
            "UOOListener:: MDB=["
                + mdbId
                + "] UOO=["
                + unitOfOrder
                + "] Message=["
                + msg.getText()
                + "]");
      } catch (JMSException e) {
        e.printStackTrace();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
  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);
    }
  }
Пример #27
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);
    }
  }