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;
}