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}