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/07/13 22:25:28 UTC
svn commit: r793697 -
/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Author: cwiklik
Date: Mon Jul 13 20:25:28 2009
New Revision: 793697
URL: http://svn.apache.org/viewvc?rev=793697&view=rev
Log:
UIMA-1435 Added SharedConnection class
Modified:
incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=793697&r1=793696&r2=793697&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Mon Jul 13 20:25:28 2009
@@ -2369,4 +2369,45 @@
{
}
+ // This class is used to share JMS Connection by many instances of UIMA AS
+ // clients deployed in the same JVM.
+ public class SharedConnection {
+ private Connection connection;
+ private int clientCount;
+ private Object mux = new Object();
+
+ public Connection getConnection() {
+ return connection;
+ }
+
+ public void setConnection(Connection connection) {
+ this.connection = connection;
+ }
+
+ public void incrementClientCount() {
+ synchronized(mux) {
+ clientCount++;
+ }
+ }
+ public void decrementClientCount() {
+ synchronized(mux) {
+ clientCount--;
+ }
+ }
+ public int getClientCount() {
+ synchronized(mux) {
+ return clientCount;
+ }
+ }
+ public synchronized void destroy() {
+ if ( getClientCount() == 0 && connection != null ) {
+ try {
+ System.out.println("UIMA AS Client - Shared JMS Connection Closed");
+ connection.close();
+ } catch (Exception e) { /*ignore*/ }
+ } else {
+ System.out.println("UIMA AS Client - Shared JMS Connection Not Closed. Current Client Instance Count"+getClientCount());
+ }
+ }
+ }
}