You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2009/12/13 20:43:38 UTC

svn commit: r890103 - /incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java

Author: cwiklik
Date: Sun Dec 13 19:43:38 2009
New Revision: 890103

URL: http://svn.apache.org/viewvc?rev=890103&view=rev
Log:
UIMA-1705 Create a new Session and MessageProducer when connection to broker is lost and subsequently recovered.

Modified:
    incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java

Modified: incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java?rev=890103&r1=890102&r2=890103&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java Sun Dec 13 19:43:38 2009
@@ -30,6 +30,8 @@
 import javax.jms.TextMessage;
 
 import org.apache.activemq.ActiveMQConnection;
+import org.apache.activemq.ActiveMQMessageProducer;
+import org.apache.activemq.ActiveMQSession;
 import org.apache.activemq.command.ActiveMQDestination;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.aae.UIMAEE_Constants;
@@ -47,7 +49,7 @@
 public class ActiveMQMessageSender extends BaseMessageSender {
   private static final Class CLASS_NAME = ActiveMQMessageSender.class;
 
-  private Connection connection = null;
+  private volatile Connection connection = null;
 
   private Session session = null;
 
@@ -102,7 +104,7 @@
   private void createSession() throws Exception {
     String broker = getBrokerURL();
     try {
-      if (session == null) {
+      if (session == null || engine.producerInitialized == false) {
         session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
       }
     } catch (JMSException e) {
@@ -154,6 +156,20 @@
    * Returns jsm MessageProducer
    */
   public MessageProducer getMessageProducer() {
+    if ( engine.producerInitialized == false ) {
+      try {
+        setConnection(engine.sharedConnection.getConnection());
+        initializeProducer();
+        engine.producerInitialized = true;
+      } catch( Exception e) {
+        e.printStackTrace();
+        if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
+        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, getClass().getName(),
+                "getMessageProducer", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+                "UIMAEE_exception__WARNING", new Object[] { e });
+        }
+      }
+    } 
     return producer;
   }