Author: cwiklik
Date: Mon May  7 21:19:00 2012
New Revision: 1335264

URL: http://svn.apache.org/viewvc?rev=1335264&view=rev
Log:
UIMA-2399 Modified uima-as client error handling to recover from GetMeta ping 
timeout

Modified:
    
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
    
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController.java
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/delegate/Delegate.java
    
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/MetadataResponseHandler_impl.java
    
uima/uima-as/trunk/uimaj-as-core/src/main/resources/uimaee_messages.properties
    
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
    
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
    
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/ClientServiceDelegate.java
    
uima/uima-as/trunk/uimaj-as-jms/src/main/resources/jms_adapter_messages.properties

Modified: 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsEndpointConnection_impl.java
 Mon May  7 21:19:00 2012
@@ -60,6 +60,7 @@ import org.apache.uima.aae.error.Service
 import org.apache.uima.aae.message.AsynchAEMessage;
 import org.apache.uima.adapter.jms.JmsConstants;
 import 
org.apache.uima.adapter.jms.activemq.JmsOutputChannel.BrokerConnectionEntry;
+import org.apache.uima.cas.CAS;
 import org.apache.uima.util.Level;
 
 
@@ -493,10 +494,12 @@ public class JmsEndpointConnection_impl 
           // changed to TIMEOUT when a previous CAS timed out.
           if (msgType != AsynchAEMessage.Request && command == 
AsynchAEMessage.Process) {
             String casReferenceId = 
aMessage.getStringProperty(AsynchAEMessage.CasReference);
-            if (casReferenceId != null
-                    && ((AggregateAnalysisEngineController) controller)
-                            .delayCasIfDelegateInTimedOutState(casReferenceId, 
endpointName)) {
-              return true;
+            if (casReferenceId != null ) {
+              CAS cas = ((AggregateAnalysisEngineController) 
controller).getInProcessCache().getCasByReference(casReferenceId);
+              if ( cas != null && ((AggregateAnalysisEngineController) 
controller)
+                            .delayCasIfDelegateInTimedOutState(casReferenceId, 
endpointName, cas.hashCode())) {
+                      return true;
+               }
             }
           }
         }

Modified: 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
 Mon May  7 21:19:00 2012
@@ -680,7 +680,7 @@ public class JmsOutputChannel implements
       throw e;
     } catch (Exception e) {
       if (delegate != null && aCommand == AsynchAEMessage.GetMeta) {
-        delegate.cancelDelegateTimer();
+        delegate.cancelDelegateGetMetaTimer();
       }
       // Handle the error
       ErrorContext errorContext = new ErrorContext();
@@ -1644,7 +1644,7 @@ public class JmsOutputChannel implements
   private void addCasToOutstandingList(CacheEntry entry, boolean isRequest, 
String aDelegateKey) {
     Delegate delegate = null;
     if (isRequest && (delegate = lookupDelegate(aDelegateKey)) != null) {
-      delegate.addCasToOutstandingList(entry.getCasReferenceId());
+      delegate.addCasToOutstandingList(entry.getCasReferenceId(), 
entry.getCas().hashCode());
     }
   }
 

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController.java
 Mon May  7 21:19:00 2012
@@ -119,7 +119,7 @@ public interface AggregateAnalysisEngine
 
   public Delegate lookupDelegate(String aDelegateKey);
 
-  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId, 
String aDelegateKey)
+  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId, 
String aDelegateKey, long casHashcode)
           throws AsynchAEException;
 
   public List getChildControllerList();

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
 Mon May  7 21:19:00 2012
@@ -1276,7 +1276,7 @@ public class AggregateAnalysisEngineCont
           // Record the outgoing CAS. CASes destined for remote CM are recorded
           // in JmsOutputchannel.
           if (!endpoint.isRemote()) {
-            delegate.addNewCasToOutstandingList(aCasReferenceId, true);
+            delegate.addNewCasToOutstandingList(aCasReferenceId, 
true,cacheEntry.getCas().hashCode());
           }
         }
 
@@ -2401,7 +2401,7 @@ public class AggregateAnalysisEngineCont
       // is in this state, delay CASes by placing them on a list of
       // CASes pending dispatch. Once the ping reply is received all
       // delayed CASes will be dispatched to the delegate.
-      if (!delayCasIfDelegateInTimedOutState(entry.getCasReferenceId(), 
anEndpoint.getDelegateKey())) {
+      if (!delayCasIfDelegateInTimedOutState(entry.getCasReferenceId(), 
anEndpoint.getDelegateKey(), entry.getCas().hashCode())) {
         // The delegate is in the normal state so send it this CAS
         getOutputChannel().sendRequest(AsynchAEMessage.Process, 
entry.getCasReferenceId(), anEndpoint);
       }
@@ -2414,12 +2414,12 @@ public class AggregateAnalysisEngineCont
    * sends a ping message to check delegate's availability. If the delegate 
responds to the ping,
    * all CASes in the pending dispatch list will be immediately dispatched.
    **/
-  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId, 
String aDelegateKey)
+  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId, 
String aDelegateKey, long casHashcode)
           throws AsynchAEException {
     Delegate delegate = lookupDelegate(aDelegateKey);
     if (delegate != null && delegate.getState() == Delegate.TIMEOUT_STATE) {
       // Add CAS id to the list of delayed CASes.
-      int listSize = delegate.addCasToPendingDispatchList(aCasReferenceId);
+      int listSize = delegate.addCasToPendingDispatchList(aCasReferenceId, 
casHashcode);
       // If the list was empty (before the add), send the GetMeta request
       // as a PING to see if the delegate service is alive.
       if (listSize == 1) {
@@ -2482,7 +2482,7 @@ public class AggregateAnalysisEngineCont
       // Check if the delegate previously timed out. If so, add the CAS
       // Id to the list pending dispatch. This list holds CASes that are
       // delayed until the service responds to a Ping.
-      if (delayCasIfDelegateInTimedOutState(entry.getCasReferenceId(), 
anEndpointList[i].getEndpoint())) {
+      if (delayCasIfDelegateInTimedOutState(entry.getCasReferenceId(), 
anEndpointList[i].getEndpoint(), entry.getCas().hashCode())) {
         // The CAS was delayed until the delegate responds to a Ping
         continue;
       } else {

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/delegate/Delegate.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/delegate/Delegate.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/delegate/Delegate.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/delegate/Delegate.java
 Mon May  7 21:19:00 2012
@@ -58,8 +58,14 @@ public abstract class Delegate {
   // Timer object to time replies
   private DelegateTimer timer;
   
+  // Timer object to time replies
+  private DelegateTimer getMetaTimer;
+  
   private Object timerLock = new Object();
 
+  private Object getMetaTimerLock = new Object();
+  
+  
   // Process Timeout value for this delegate
   private long casProcessTimeout = 0;
 
@@ -74,7 +80,7 @@ public abstract class Delegate {
 
   // List holding CASes that have been delayed due to a delegate timeout. These
   // CASes should be send to the delegate as soon as the getMeta (Ping) is 
received.
-  private List<DelegateEntry> pendingDispatchList = new 
ArrayList<DelegateEntry>();
+  protected List<DelegateEntry> pendingDispatchList = new 
ArrayList<DelegateEntry>();
 
   // Flag that is set when getMeta reply is received
   private volatile boolean awaitingPingReply;
@@ -187,6 +193,7 @@ public abstract class Delegate {
                 new Object[] { getComponentName(), delegateKey, 
entry.getCasReferenceId(),
                     getCasProcessTimeout() });
       }
+      dumpPendingReplyList();
     }
   }
 
@@ -199,14 +206,15 @@ public abstract class Delegate {
   }
 
   public void addNewCasToOutstandingList(String aCasReferenceId) {
-    addNewCasToOutstandingList(aCasReferenceId, false);
+    addNewCasToOutstandingList(aCasReferenceId, false,0);
   }
 
-  public void addNewCasToOutstandingList(String aCasReferenceId, boolean 
isCasGeneratingChildren) {
+  public void addNewCasToOutstandingList(String aCasReferenceId, boolean 
isCasGeneratingChildren, int casHashCode) {
     synchronized (outstandingCasList) {
       DelegateEntry entry = null;
       if ((entry = lookupEntry(aCasReferenceId, outstandingCasList)) == null) {
         entry = new DelegateEntry(aCasReferenceId);
+        entry.setCasHashCode(String.valueOf(casHashCode));
         // Remember the command
         entry.setCommand(AsynchAEMessage.Process);
         if (isCasGeneratingChildren) {
@@ -226,7 +234,7 @@ public abstract class Delegate {
    *          - CAS ID to add to pending list if not already there
    * 
    */
-  public void addCasToOutstandingList(String aCasReferenceId) {
+  public void addCasToOutstandingList(String aCasReferenceId, int casHashcode) 
{
     synchronized (outstandingCasList) {
       DelegateEntry entry = null;
       // Check if the outstanding list already contains entry for the Cas Id. 
If it does, retry
@@ -240,6 +248,7 @@ public abstract class Delegate {
         entry = new DelegateEntry(aCasReferenceId);
         // Remember the command
         entry.setCommand(AsynchAEMessage.Process);
+        entry.setCasHashCode(String.valueOf(casHashcode));
         // Start delegate timer if the pending list is empty
         if (outstandingCasList.isEmpty() && getCasProcessTimeout() > 0) {
           startDelegateTimer(aCasReferenceId, AsynchAEMessage.Process);
@@ -269,6 +278,7 @@ public abstract class Delegate {
         //System.out.println("\n\n\t++++++++++++++++++++++++ :::::: Added New 
CAS to Outstanding 
List:"+entry.getCasReferenceId()+"\n\tOutstanding:"+toString());
       }
     }
+    dumpPendingReplyList();
   }
 
   /**
@@ -281,27 +291,27 @@ public abstract class Delegate {
    * @param aCasReferenceId
    *          - CAS ID to add to the delayed list
    */
-  public int addCasToPendingDispatchList(String aCasReferenceId) {
+  public int addCasToPendingDispatchList(String aCasReferenceId, long 
casHashCode) {
     synchronized (pendingDispatchList) {
+      
       DelegateEntry entry = null;
       // Create a new entry to be stored in the list of CASes pending
       // dispatch
       entry = new DelegateEntry(aCasReferenceId);
+      entry.setCasHashCode(String.valueOf(casHashCode));
       // Remember the command
       entry.setCommand(AsynchAEMessage.Process);
+      UIMAFramework.getLogger(CLASS_NAME).logrb(
+              Level.WARNING,
+              this.getClass().getName(),
+              "addCasToPendingDispatchList",
+              UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+              "UIMAEE_add_cas_to_delegate_pending_dispatch_WARNING",
+              new Object[] { getComponentName(), aCasReferenceId, 
String.valueOf(casHashCode), 
+                  delegateKey, pendingDispatchList.size() });
       // Append Cas Entry to the end of the list
       pendingDispatchList.add(entry);
-      if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) {
-        dumpDelayedList();
-        UIMAFramework.getLogger(CLASS_NAME).logrb(
-                Level.FINE,
-                this.getClass().getName(),
-                "addCasToPendingDispatchList",
-                UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
-                "UIMAEE_add_cas_to_delegate_pending_dispatch_FINE",
-                new Object[] { getComponentName(), delegateKey, 
aCasReferenceId,
-                    pendingDispatchList.size() });
-      }
+      dumpDelayedList();
       return pendingDispatchList.size();
     }
   }
@@ -311,28 +321,52 @@ public abstract class Delegate {
    * state of the delegate.
    */
   protected void dumpDelayedList() {
-    if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) {
+    StringBuffer sb = new StringBuffer();
+    
+    if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+      sb.append("Current Pending Dispatch List. Delegate:"+delegateKey);
+      
       for (DelegateEntry entry : pendingDispatchList) {
-        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.FINE, 
this.getClass().getName(),
-                "dumpDelayedList", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
-                "UIMAEE_dump_cas_pending_dispatch__FINE",
-                new Object[] { getComponentName(), entry.getCasReferenceId(), 
delegateKey });
+        sb.append("\n\t----- CAS:"+entry.getCasReferenceId()).
+           append(" CAS hashCode:"+entry.getCasHashCode());
       }
-    }
+      sb.append("\n");
+      UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
this.getClass().getName(),
+              "dumpDelayedList", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+              "UIMAEE_dump_cas_pending_dispatch__INFO",
+              new Object[] { sb.toString() });
+    } 
   }
 
   /**
    * Logs CASes sitting in the list of CASes pending reply.
    */
   private void dumpPendingReplyList() {
+    StringBuffer sb = new StringBuffer();
+
     if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) {
+      sb.append("Current Pending Reply List. Delegate:"+delegateKey);
+      
       for (DelegateEntry entry : outstandingCasList) {
-        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.FINE, 
this.getClass().getName(),
-                "dumpPendingReplyList", 
UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
-                "UIMAEE_dump_cas_pending_reply__FINE",
-                new Object[] { getComponentName(), entry.getCasReferenceId(), 
delegateKey });
+        sb.append("\n\t----- CAS:"+entry.getCasReferenceId()).
+           append(" CAS hashCode:"+entry.getCasHashCode());
       }
-    }
+      sb.append("\n");
+      UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
this.getClass().getName(),
+              "dumpDelayedList", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+              "UIMAEE_dump_cas_pending_reply__INFO",
+              new Object[] { sb.toString() });
+    } 
+
+    
+//    if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+//      for (DelegateEntry entry : outstandingCasList) {
+//        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
this.getClass().getName(),
+//                "dumpPendingReplyList", 
UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+//                "UIMAEE_dump_cas_pending_reply__INFO",
+//                new Object[] { getComponentName(), 
entry.getCasReferenceId(), delegateKey });
+//      }
+//    }
   }
 
   /**
@@ -529,6 +563,7 @@ public abstract class Delegate {
    */
   public void cleanup() {
     cancelDelegateTimer();
+    cancelDelegateGetMetaTimer();
     synchronized (outstandingCasList) {
       outstandingCasList.clear();
     }
@@ -562,6 +597,17 @@ public abstract class Delegate {
   }
 
   /**
+   * Cancels current timer
+   */
+  public void cancelDelegateGetMetaTimer() {
+   synchronized( getMetaTimerLock ) {
+     if (getMetaTimer != null) {
+       getMetaTimer.cancel();
+       getMetaTimer.purge();
+     }
+   }
+  }
+  /**
    * Returns a timeout value for a given command type. The values are defined 
in the deployment
    * descriptor
    * 
@@ -587,13 +633,13 @@ public abstract class Delegate {
    * Starts GetMeta Request timer
    */
   public void startGetMetaRequestTimer() {
-    startDelegateTimer(null, AsynchAEMessage.GetMeta);
+    startDelegateGetMetaTimer(null, AsynchAEMessage.GetMeta);
   }
   /**
    * Starts GetMeta Request timer
    */
   public void startGetMetaRequestTimer(String casReferenceId) {
-    startDelegateTimer(casReferenceId, AsynchAEMessage.GetMeta);
+    startDelegateGetMetaTimer(casReferenceId, AsynchAEMessage.GetMeta);
   }
 
   /**
@@ -627,6 +673,7 @@ public abstract class Delegate {
             }
             errorContext.add(AsynchAEMessage.CasReference, aCasReferenceId);
             errorContext.add(ErrorContext.THROWABLE_ERROR, cause);
+/*  4/24/ Commented out. There is a dedicated timer for Ping timeouts
             //  Check if this is a Ping timeout and associate this with
             //  the oldest CAS from the list of CASes pending reply.
             if (isAwaitingPingReply() && getCasPendingReplyListSize() > 0) {
@@ -637,10 +684,11 @@ public abstract class Delegate {
               errorContext.add(AsynchAEMessage.Command, 
AsynchAEMessage.Process);
               errorContext.add(AsynchAEMessage.ErrorCause, 
AsynchAEMessage.PingTimeout);
             }
+*/            
           } else if (AsynchAEMessage.GetMeta == aCommand) {
             if ( aCasReferenceId != null ) {  // true on GetMeta Ping timeout
                 errorContext.add(AsynchAEMessage.CasReference, 
aCasReferenceId);
-                  errorContext.add(AsynchAEMessage.ErrorCause, 
AsynchAEMessage.PingTimeout);
+                errorContext.add(AsynchAEMessage.ErrorCause, 
AsynchAEMessage.PingTimeout);
             }
             if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) 
{
               UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, 
this.getClass().getName(),
@@ -663,6 +711,44 @@ public abstract class Delegate {
       }, timeToRun);
     }
   }
+  /**
+   * Starts a timer for a given command
+   * 
+   * @param aCasReferenceId
+   *          - id of a CAS if command = Process, null otherwise
+   * @param aCommand
+   *          - command for which the timer is started
+   */
+  private void startDelegateGetMetaTimer(final String aCasReferenceId, final 
int aCommand) {
+    synchronized( getMetaTimerLock ) {
+      final long timeToWait = getTimeoutValueForCommand(aCommand);
+      Date timeToRun = new Date(System.currentTimeMillis() + timeToWait);
+      getMetaTimer = new DelegateTimer("Controller:" + getComponentName() + 
":GetMeta TimerThread-Endpoint_impl:"
+              + endpoint + ":" + System.nanoTime() + ":Cmd:" + aCommand, true, 
"",this);
+      final Delegate delegate = this;
+      getMetaTimer.schedule(new TimerTask() {
+        public void run() {
+          delegate.setState(TIMEOUT_STATE);
+          ErrorContext errorContext = new ErrorContext();
+          errorContext.add(AsynchAEMessage.Command, aCommand);
+          String enrichedMessage = enrichProcessCASTimeoutMessage(aCommand, 
aCasReferenceId,timeToWait,"Delegate Service:"+delegateKey+" Has Timed Out 
While Processing CAS:"+aCasReferenceId );
+          Exception cause = new MessageTimeoutException(enrichedMessage);
+          if ( aCasReferenceId != null ) {  // true on GetMeta Ping timeout
+                errorContext.add(AsynchAEMessage.CasReference, 
aCasReferenceId);
+                  errorContext.add(AsynchAEMessage.ErrorCause, 
AsynchAEMessage.PingTimeout);
+          }
+          if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
+              UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, 
this.getClass().getName(),
+                      "Delegate.TimerTask.run", 
UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
+                      "UIMAEE_meta_timeout_no_reply__WARNING",
+                      new Object[] { delegate.getKey(), timeToWait });
+          }
+          errorContext.add(AsynchAEMessage.Endpoint, getEndpoint());
+          handleError(cause, errorContext);
+        }
+      }, timeToRun);
+    }
+  }
 
   public long getCasProcessTimeout() {
     return casProcessTimeout;
@@ -751,6 +837,16 @@ public abstract class Delegate {
 
     private volatile boolean generatingChildren = false;
 
+    private String casHashCode;
+    
+    public String getCasHashCode() {
+      return casHashCode;
+    }
+
+    public void setCasHashCode(String casHashCode) {
+      this.casHashCode = casHashCode;
+    }
+
     public DelegateEntry(String aCasReferenceId) {
       casReferenceId = aCasReferenceId;
     }

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/MetadataResponseHandler_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/MetadataResponseHandler_impl.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/MetadataResponseHandler_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/handler/input/MetadataResponseHandler_impl.java
 Mon May  7 21:19:00 2012
@@ -86,7 +86,7 @@ public class MetadataResponseHandler_imp
             Delegate delegate = ((AggregateAnalysisEngineController) 
getController())
                     .lookupDelegate(delegateKey);
             if (delegate.getEndpoint().isRemote()) {
-              delegate.cancelDelegateTimer();
+              delegate.cancelDelegateGetMetaTimer();
               delegate.setState(Delegate.OK_STATE);
               delegate.setNotificationEndpoint(((MessageContext) 
anObjectToHandle).getEndpoint());
 

Modified: 
uima/uima-as/trunk/uimaj-as-core/src/main/resources/uimaee_messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/resources/uimaee_messages.properties?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-core/src/main/resources/uimaee_messages.properties 
(original)
+++ 
uima/uima-as/trunk/uimaj-as-core/src/main/resources/uimaee_messages.properties 
Mon May  7 21:19:00 2012
@@ -193,12 +193,14 @@ UIMAEE_start_timer_FINE = Controller: {0
 UIMAEE_restart_timer_FINE = Controller: {0} Restarted Timer For Delegate: {1} 
Cas Id: {2} Expecting Reply In {3} ms
 UIMAEE_increment_retry_count_FINE = Controller: {0} Incremented Retry Count 
For Delegate: {1} Cas Id: {2} Current Retry Count: {3}
 UIMAEE_cancelled_timer_FINE = Controller: {0} Received GetMeta Reply From 
Delegate: {1} Cancelling Timer
-UIMAEE_add_cas_to_delegate_pending_dispatch_FINE = Controller: {0} Added CAS 
To Delegates List Of CASes Pending Dispatch. Delegate: {1} Cas Id: {2} List 
Size After Add: {3}
+UIMAEE_add_cas_to_delegate_pending_dispatch_WARNING = Controller: {0} Added 
CAS {1} (Hashcode: {2}) To a List Of CASes Pending Dispatch. The Controller Has 
Previously Timed-out Waiting For a Reply From {3} Service. The Submitted CAS 
Will Remain in Pending Dispatch List Until GetMeta Ping Succeeds or GetMet Ping 
Times out. List Size Before Add: {4}
 UIMAEE_removed_cas_from_delegate_pending_dispatch_list__FINE = Controller: {0} 
Removed CAS Entry From Delegates List Of CASes Pending Dispatch. Delegate: {1} 
Cas Id: {2} List Size After Remove: {3}
 UIMAEE_aggregate_sending_ping__INFO = Controller: {0} Sending Ping Message 
(GetMeta) To Check Delegate: {1} Availability.
 UIMAEE_aggregate_rcvd_ping_reply__FINE = Controller: {0} Received Ping Message 
(GetMeta) Reply From Delegate: {1}.
 UIMAEE_dump_cas_pending_dispatch__FINE = Controller: {0} Cas Id: {1} Pending 
Dispatch To Delegate: {2}
+UIMAEE_dump_cas_pending_dispatch__INFO = {0}
 UIMAEE_dump_cas_pending_reply__FINE = Controller: {0} Cas Id: {1} Pending 
Reply From Delegate: {2}
+UIMAEE_dump_cas_pending_reply__INFO = {0}
 UIMAEE_force_cas_timeout__INFO = Controller: {0} Disabled Delegate: {1}. 
Forcing Timeout Of CAS: {2} Found In : {3}  
 UIMAEE_override_serialization__WARNING = \n\t***** WARNING: Controller: {0} 
Overriding Delegate: {1} Serialization. Binary Serialization Not Supported. 
Defaulting to xmi\n
 UIMAEE_stopping_collocated_cm_INFO =  Service: {0} Requesting Collocated 
Delegate Cas Multiplier: {1} To Stop Producing CASes from Input CAS: {2} 

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java
 Mon May  7 21:19:00 2012
@@ -372,7 +372,7 @@ public abstract class BaseMessageSender 
              if( casProcessRequest ) { 
                 CAS cas = cacheEntry.getCAS();
                // Add the cas to a list of CASes pending reply. Also start the 
timer if necessary
-               
engine.serviceDelegate.addCasToOutstandingList(cacheEntry.getCasReferenceId());
+               
engine.serviceDelegate.addCasToOutstandingList(cacheEntry.getCasReferenceId(), 
cas.hashCode());
                if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) 
{
                   UIMAFramework.getLogger(CLASS_NAME).logrb(Level.FINE, 
CLASS_NAME.getName(),
                         "sendCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
 Mon May  7 21:19:00 2012
@@ -475,6 +475,7 @@ public abstract class BaseUIMAAsynchrono
       casQueueProducerReady = false;
       if (serviceDelegate != null) {
         serviceDelegate.cancelDelegateTimer();
+        serviceDelegate.cancelDelegateGetMetaTimer();
       }
       try {
         try {
@@ -845,7 +846,7 @@ public abstract class BaseUIMAAsynchrono
         // The sendCAS() method is synchronized no need to synchronize the 
code below
         if (serviceDelegate.getState() == Delegate.TIMEOUT_STATE ) {
           SharedConnection sharedConnection = lookupConnection(getBrokerURI());
-
+          
           //  Send Ping to service as getMeta request
           if ( !serviceDelegate.isAwaitingPingReply() && 
sharedConnection.isOpen() ) {
             serviceDelegate.setAwaitingPingReply();
@@ -855,14 +856,14 @@ public abstract class BaseUIMAAsynchrono
                  // since the service is in time out state, we dont send CASes 
to it just yet. Instead, place
                  // a CAS in a pending dispatch list. CASes from this list 
will be sent once a response to PING
                  // arrives.
-            
serviceDelegate.addCasToPendingDispatchList(requestToCache.getCasReferenceId());
+            
serviceDelegate.addCasToPendingDispatchList(requestToCache.getCasReferenceId(), 
aCAS.hashCode());
             if ( cpcReadySemaphore.availablePermits() > 0 ) {
               acquireCpcReadySemaphore();
             }
 
             // Send PING Request to check delegate's availability
             sendMetaRequest();
-            serviceDelegate.cancelDelegateTimer();
+            // @@@@@@@@@@@@@@@ Changed on 4/20 
serviceDelegate.cancelDelegateTimer();
             // Start a timer for GetMeta ping and associate a cas id
             // with this timer. The delegate is currently in a timed out
             // state due to a timeout on a CAS with a given casReferenceId.
@@ -876,7 +877,7 @@ public abstract class BaseUIMAAsynchrono
             }
             return casReferenceId;
           } else {
-            if ( !requestToCache.isSynchronousInvocation() ) {
+            if ( !requestToCache.isSynchronousInvocation() && 
!sharedConnection.isOpen() ) {
               Exception exception = new BrokerConnectionException("Unable To 
Deliver CAS:"+requestToCache.getCasReferenceId()+" To Destination. Connection 
To Broker "+getBrokerURI()+" Has Been Lost");
               handleException(exception, requestToCache.getCasReferenceId(), 
null, requestToCache, true);
               return casReferenceId;
@@ -886,7 +887,7 @@ public abstract class BaseUIMAAsynchrono
                  // since the service is in time out state, we dont send CASes 
to it just yet. Instead, place
                  // a CAS in a pending dispatch list. CASes from this list 
will be sent once a response to PING
                  // arrives.
-              
serviceDelegate.addCasToPendingDispatchList(requestToCache.getCasReferenceId());
+              
serviceDelegate.addCasToPendingDispatchList(requestToCache.getCasReferenceId(), 
aCAS.hashCode());
               return casReferenceId;
             }
           }
@@ -923,10 +924,10 @@ public abstract class BaseUIMAAsynchrono
    * sends a ping message to check delegate's availability. If the delegate 
responds to the ping,
    * all CASes in the pending dispatch list will be immediately dispatched.
    **/
-  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId) 
throws AsynchAEException {
+  public boolean delayCasIfDelegateInTimedOutState(String aCasReferenceId, 
long casHashcode) throws AsynchAEException {
     if (serviceDelegate != null && serviceDelegate.getState() == 
Delegate.TIMEOUT_STATE) {
       // Add CAS id to the list of delayed CASes.
-      serviceDelegate.addCasToPendingDispatchList(aCasReferenceId);
+      serviceDelegate.addCasToPendingDispatchList(aCasReferenceId, 
casHashcode);
       return true;
     }
     return false; // Cas Not Delayed
@@ -997,7 +998,7 @@ public abstract class BaseUIMAAsynchrono
    */
   protected void handleMetadataReply(Message message) throws Exception {
 
-    serviceDelegate.cancelDelegateTimer();
+    serviceDelegate.cancelDelegateGetMetaTimer();
     serviceDelegate.setState(Delegate.OK_STATE);
     // check if the reply msg contains replyTo destination. I will be
     // added by the Cas Multiplier to the getMeta reply
@@ -1006,6 +1007,17 @@ public abstract class BaseUIMAAsynchrono
     }
     // Check if this is a reply for a Ping sent in response to a timeout
     if (serviceDelegate.isAwaitingPingReply()) {
+      if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+        UIMAFramework.getLogger(CLASS_NAME).logrb(
+                Level.INFO,
+                CLASS_NAME.getName(),
+                "handleMetadataReply",
+                JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                "UIMAJMS_rcvd_ping_reply__INFO",
+                new Object[] { 
+                  message.getStringProperty(AsynchAEMessage.MessageFrom),
+                  message.getStringProperty(AsynchAEMessage.ServerIP)});
+      }
       //  reset the state of the service. The client received its ping reply  
       serviceDelegate.resetAwaitingPingReply();
       String casReferenceId = null;
@@ -1016,6 +1028,15 @@ public abstract class BaseUIMAAsynchrono
          while( (casReferenceId = 
serviceDelegate.removeOldestFromPendingDispatchList()) != null ) {
                ClientRequest cachedRequest = (ClientRequest) 
clientCache.get(casReferenceId);
                if (cachedRequest != null) {
+                 if 
(UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+                   UIMAFramework.getLogger(CLASS_NAME).logrb(
+                           Level.INFO,
+                           CLASS_NAME.getName(),
+                           "handleMetadataReply",
+                           JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                           "UIMAJMS_dispatch_delayed_cas__INFO",
+                           new Object[] { casReferenceId, 
String.valueOf(cachedRequest.cas.hashCode())});
+                 }
                  sendCAS(cachedRequest.getCAS(), cachedRequest);
                }
          }
@@ -1973,15 +1994,21 @@ public abstract class BaseUIMAAsynchrono
       } 
     }
     try {
+      if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) {
+        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
CLASS_NAME.getName(),
+                "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                "UIMAJMS_cas_submitting_FINE", new Object[] { casReferenceId, 
String.valueOf(aCAS.hashCode()), Thread.currentThread().getId()});
+      }
       // send CAS. This call does not block. Instead we will block the sending 
thread below.
       casReferenceId = sendCAS(aCAS, cachedRequest);
-       if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.FINE)) {
-            UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
CLASS_NAME.getName(),
-                    "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
-                    "UIMAJMS_cas_submitted_FINE", new Object[] { 
casReferenceId, String.valueOf(aCAS.hashCode()), 
Thread.currentThread().getName()});
-        }
 
     } catch( ResourceProcessException e) {
+      
+      if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
+        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, 
CLASS_NAME.getName(),
+                "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                "UIMAJMS_exception__WARNING", new Object[] { e });
+      }
       threadMonitor.getMonitor().release();
       removeFromCache(casReferenceId);
       throw e;
@@ -2013,6 +2040,11 @@ public abstract class BaseUIMAAsynchrono
           // list of CASes pending dispatch, remove the CAS from the list
           // and send it to the service.
           if (cachedRequest.isTimeoutException() || 
cachedRequest.isProcessException()) {
+            if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) 
{
+              UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
CLASS_NAME.getName(),
+                      "sendAndReceiveCAS", 
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                      "UIMAJMS_process_exception_handler5__WARNING", new 
Object[] { String.valueOf(aCAS.hashCode()), Thread.currentThread().getId()});
+            }
             // Handled outside of the while-loop below
             break;
           }
@@ -2027,7 +2059,11 @@ public abstract class BaseUIMAAsynchrono
                 UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, 
CLASS_NAME.getName(),
                         "sendAndReceiveCAS", 
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
                         "UIMAJMS_client_interrupted_INFO", new Object[] { 
Thread.currentThread().getId(), casReferenceId, 
String.valueOf(aCAS.hashCode())});
-            }
+          }
+               // try to remove from pending dispatch list. If not there, 
remove from pending reply list
+               if ( 
!serviceDelegate.removeCasFromPendingDispatchList(casReferenceId)) {
+            serviceDelegate.removeCasFromOutstandingList(casReferenceId);
+               }
                // cancel the timer if it is associated with a CAS this thread 
is waiting for. This would be
                // the oldest CAS submitted to a queue for processing. The 
timer will be canceled and restarted
                // for the second oldest CAS in the outstanding list.
@@ -2058,9 +2094,7 @@ public abstract class BaseUIMAAsynchrono
                   "sendAndReceiveCAS", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
                   "UIMAJMS_exception__WARNING", e);
       }
-      
-      
-     // Request To Process Cas Has Timed-out.  Service 
Queue:NoOpAnnotatorQueueLongDelay. Cas Timed-out on host: 9.2.35.127
+     // Request To Process Cas Has Timed-out.  
       throw new ResourceProcessException(JmsConstants.JMS_LOG_RESOURCE_BUNDLE, 
"" +
                "UIMAJMS_process_timeout_WARNING", 
                new Object[]{qName, getBrokerURI(), 
cachedRequest.getHostIpProcessingCAS()},
@@ -2210,7 +2244,7 @@ public abstract class BaseUIMAAsynchrono
                      threadMonitor.getMonitor().release();
                      cachedRequest.setReceivedProcessCasReply(); // should not 
be needed
                    }
-                 }
+                 } 
                } else {
                  // notify the application listener with the error
                  if ( serviceDelegate.isPingTimeout()) {

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/ClientServiceDelegate.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/ClientServiceDelegate.java?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/ClientServiceDelegate.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/ClientServiceDelegate.java
 Mon May  7 21:19:00 2012
@@ -18,6 +18,8 @@
  */
 package org.apache.uima.adapter.jms.client;
 
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -29,6 +31,8 @@ import org.apache.uima.aae.controller.Lo
 import org.apache.uima.aae.delegate.Delegate;
 import org.apache.uima.aae.error.ErrorContext;
 import org.apache.uima.aae.error.MessageTimeoutException;
+import org.apache.uima.aae.error.UimaASPingTimeout;
+import org.apache.uima.aae.error.UimaASProcessCasTimeout;
 import org.apache.uima.aae.message.AsynchAEMessage;
 import org.apache.uima.adapter.jms.JmsConstants;
 import 
org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngineCommon_impl.ClientRequest;
@@ -150,12 +154,31 @@ public class ClientServiceDelegate exten
                 if 
(UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
                 UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, 
CLASS_NAME.getName(),
                         "handleError", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
-                        "UIMAJMS_client_ping_timed_out__WARNING", new Object[] 
{ clientUimaAsEngine.getEndPointName()});
+                        "UIMAJMS_client_ping_timed_out__WARNING", new Object[] 
{ 
clientUimaAsEngine.getEndPointName(),getCasPendingDispatchListSize(),getCasPendingReplyListSize()});
                 }
                 super.resetAwaitingPingReply();
-                // Handling a Ping timeout, treat it as if it was a Process 
timeout. 
-                clientUimaAsEngine.notifyOnTimout(cas, 
clientUimaAsEngine.getEndPointName(),
-                               
BaseUIMAAsynchronousEngineCommon_impl.ProcessTimeout, casReferenceId);
+                
+                synchronized( super.pendingDispatchList ) {
+                  //  Fail all CASes in the PendingDispatch list
+                  Iterator<Delegate.DelegateEntry> it = 
getDelegateCasesPendingDispatch().iterator();
+                  while( clientUimaAsEngine.running && it.hasNext() ) {
+                    DelegateEntry de = it.next();
+                    cachedRequest = (ClientRequest) 
(clientUimaAsEngine.getCache()).get(de.getCasReferenceId());
+                    if ( cachedRequest != null ) {
+                      if 
(UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
+                        
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, CLASS_NAME.getName(),
+                                "handleError", 
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
+                                
"UIMAJMS_client_reject_by_forced_timeout__WARNING", new Object[] { 
de.getCasReferenceId(), String.valueOf(cachedRequest.getCAS().hashCode())});
+                      }
+
+                      clientUimaAsEngine.handleException(new 
UimaASProcessCasTimeout("Service Not Responding to Ping - 
CAS:"+de.getCasReferenceId(), new UimaASPingTimeout("Forced Timeout on CAS in 
PendingDispatch list. The CAS Has Not Been Dispatched since the Service Appears 
to be Unavailable")), de.getCasReferenceId(), null,cachedRequest, 
!cachedRequest.isSynchronousInvocation(), true);
+
+                    }
+                    if ( clientUimaAsEngine.running ) {
+                      it.remove();
+                    }
+                  }
+                }
               } else {
                   if 
(UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
                       UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, 
CLASS_NAME.getName(),

Modified: 
uima/uima-as/trunk/uimaj-as-jms/src/main/resources/jms_adapter_messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/resources/jms_adapter_messages.properties?rev=1335264&r1=1335263&r2=1335264&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-jms/src/main/resources/jms_adapter_messages.properties
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-jms/src/main/resources/jms_adapter_messages.properties
 Mon May  7 21:19:00 2012
@@ -161,7 +161,7 @@ UIMAJMS_send_failed_deleted_queue_INFO =
 UIMAJMS_msg_size__FINE = Controller: {0} Sending {1} Message of Type: {2} to 
Endpoint: {3} Message Size: {4}
 UIMAJMS_client_sending_ping__FINE = Uima AS Client Sent PING Message To 
Service: {0}
 UIMAJMS_client_serialization_ovveride__WARNING = \n\t***** WARNING: Service 
Doesn''t Support Binary Serialization. Uima AS Client Defaulting to XMI 
Serialization\n
-UIMAJMS_client_ping_timed_out__WARNING = \n\t***** WARNING: Service: {0} 
Didn''t Respond To Ping.\n 
+UIMAJMS_client_ping_timed_out__WARNING = \n\t***** WARNING: Service: {0} 
Didn''t Respond To Ping. PendingDispatchList Size:{1} PendingReplyList 
size:{2}\n 
 UIMAJMS_client_process_timedout__INFO = Process Timeout. Uima AS Client 
Didn''t Receive Process Reply Within Configured Window Of:{0} millis
 UIMAJMS_listener_connection_failure__WARNING = {0} Listener Unable To Connect 
To Broker: {1} Retrying ...  
 UIMAJMS_listener_connection_recovered__WARNING = {0} Listener Established 
Connection to Broker: {1} 
@@ -219,10 +219,16 @@ UIMAJMS_completed_onBeforeMessageSend__I
 UIMAJMS_cas_dispatched__INFO= \t>>>>>>> UIMA AS Client Delivered CAS: {0} 
HashCode:{1} to Endpoint:{2}
 UIMAJMS_cas_reply_rcvd_FINE = \t<<<<<<< UIMA AS Client Received Reply For 
CAS:{0} Hashcode:{1}
 UIMAJMS_cas_added_to_pending_FINE = UIMA AS Dispatch Thread Added CAS:{0} 
Hashcode:{1} To Outstanding List. Current List:\n\n{2}\n\n
-UIMAJMS_cas_submitted_FINE=UIMA AS sendAndReceive Received CAS:{0} 
HashCode:{1} For Processing - Forwarding to sendCAS() on Thread:{2}
+UIMAJMS_cas_submitting_FINE=UIMA AS sendAndReceive Received CAS:{0} 
HashCode:{1} For Processing - Forwarding to sendCAS() on Thread:{2}
 UIMAJMS_calling_onBeforeProcessCAS_FINE = UIMA AS Client Calling 
onBeforeMessageProcess For CAS:{0} Hashcode:{1}
 UIMAJMS_completed_onBeforeProcessCAS_FINE = UIMA AS Client Completed 
onBeforeMessageProcess For CAS:{0} Hashcode:{1}
 UIMAJMS_skipping_onBeforeProcessCAS_INFO= UIMA AS Client Not Calling 
onBeforeMessageProcess For CAS:{0} Hashcode:{1}. Invalid state: Node IP: {2} 
PID: {3}
 UIMAJMS_listener_shutdown__INFO = +++++++++++++++ Controller: {0} UIMA AS 
Listener With Selector {1} shutdown() completed
 UIMAJMS_listener_jms_connection_closed__INFO = +++++++++++++++ Controller: {0} 
UIMA AS Listener With Selector {1} closed JMS connection to Broker {2}
-
+UIMAJMS_rcvd_ping_reply__INFO=UIMA AS Client Received GetMeta Ping Reply from 
Service:{0} on host: {1}
+UIMAJMS_client_reject_by_forced_timeout__WARNING=UIMA AS Client Forcing 
Timeout on CAS: {0} (Hashcode:{1}) from PendingDispatch list. Unable to 
Dispatch the CAS Due to Service Not Responding to a GetMeta ping.
+UIMAJMS_dump_cas_pending_dispatch__INFO={0}  
+UIMAJMS_no_jmx_port__WARNING= \n\n\t >>>>>>>>>>>>> UIMA AS Service Not 
Configured Correctly. It Was Configured to Start JMX Monitor but its Missing 
Critical JMX Property: -Dcom.sun.management.jmxremote.port=xxx\n\n   
+UIMAJMS_dispatch_delayed_cas__INFO=UIMA AS Dispatching CAS: {0} (Hashcode:{1}) 
from Delayed List 
+UIMAJMS_process_timeout_handler3__WARNING=UIMA AS Handling CAS Timeout. CAS 
hashcode:{0}. Invalid ThreadMonitor (NULL) for Thread ID:{1}
+UIMAJMS_process_exception_handler5__WARNING=UIMA AS Handling Exception in 
sendAndReceive(). CAS hashcode:{0}. ThreadMonitor Released Semaphore For Thread 
ID:{1}


Reply via email to