Package org.apache.uima.aae.delegate
Class Delegate
- java.lang.Object
-
- org.apache.uima.aae.delegate.Delegate
-
- Direct Known Subclasses:
ClientServiceDelegate,ControllerDelegate
public abstract class Delegate extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDelegate.DelegateEntryEntry in the list of CASes pending reply.
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringdelegateKeystatic intDISABLED_STATEstatic intOK_STATEstatic intTIMEOUT_STATE
-
Constructor Summary
Constructors Constructor Description Delegate()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddCasToOutstandingList(java.lang.String aCasReferenceId)Adds a given Cas ID to the list of CASes pending reply.intaddCasToPendingDispatchList(java.lang.String aCasReferenceId)Adds given CAS ID to the list of CASes pending dispatch.voidaddNewCasToOutstandingList(java.lang.String aCasReferenceId)voidaddNewCasToOutstandingList(java.lang.String aCasReferenceId, boolean isCasGeneratingChildren)voidcancelDelegateTimer()Cancels current timervoidcleanup()Cancels timer and clears a list of CASes pending replyintgetCasPendingDispatchListSize()intgetCasPendingReplyListSize()longgetCasProcessTimeout()abstract java.lang.StringgetComponentName()longgetCpcTimeout()java.util.List<Delegate.DelegateEntry>getDelegateCasesPendingDispatch()java.util.List<Delegate.DelegateEntry>getDelegateCasesPendingReply()EndpointgetEndpoint()Returns anEndpointobjectlonggetGetMetaTimeout()java.lang.StringgetKey()Returns delegate keyEndpointgetNotificationEndpoint()java.lang.StringgetOldestCasIdFromOutstandingList()intgetState()abstract voidhandleError(java.lang.Exception e, ErrorContext errorContext)booleanhasConcurrentConsumersOnReplyQueue()voidincrementRetryCount(java.lang.String aCasReferenceId)Increments retry countbooleanisAwaitingPingReply()booleanisGeneratingChildrenFrom(java.lang.String aCasReferenceId)booleanremoveCasFromOutstandingList(java.lang.String aCasReferenceId)RemovesDelegate.DelegateEntryfrom the list of CASes pending reply.booleanremoveCasFromPendingDispatchList(java.lang.String aCasReferenceId)Removes an entry from the list of CASes pending dispatch that matches a given CAS Id.A CAS is delayed and placed on this list when the delegate status changes to TIMED_OUT and a PING message is sent to test delegate availability.java.lang.StringremoveOldestCasFromOutstandingList()RemovesDelegate.DelegateEntryfrom the list of CASes pending reply.java.lang.StringremoveOldestFromPendingDispatchList()Removes the oldest entry from the list of CASes pending dispatch.voidresetAwaitingPingReply()voidrestartTimerForOldestCasInOutstandingList()Forces Timer restart for the oldest CAS sitting in the list of CASes pending reply.voidsetAwaitingPingReply()voidsetCasProcessTimeout(long casProcessTimeout)voidsetConcurrentConsumersOnReplyQueue()voidsetCpcTimeout(long cpcTimeout)voidsetEndpoint(Endpoint anEndpoint)Sets anEndpointobjectvoidsetGeneratingChildrenFrom(java.lang.String aCasReferenceId, boolean tOf)voidsetGetMetaTimeout(long getMetaTimeout)voidsetNotificationEndpoint(Endpoint notificationEndpoint)voidsetState(int aState)voidstartGetMetaRequestTimer()Starts GetMeta Request timerjava.lang.StringtoString()
-
-
-
Field Detail
-
OK_STATE
public static final int OK_STATE
- See Also:
- Constant Field Values
-
TIMEOUT_STATE
public static final int TIMEOUT_STATE
- See Also:
- Constant Field Values
-
DISABLED_STATE
public static final int DISABLED_STATE
- See Also:
- Constant Field Values
-
delegateKey
protected java.lang.String delegateKey
-
-
Method Detail
-
getNotificationEndpoint
public Endpoint getNotificationEndpoint()
-
setNotificationEndpoint
public void setNotificationEndpoint(Endpoint notificationEndpoint)
-
isAwaitingPingReply
public boolean isAwaitingPingReply()
-
setAwaitingPingReply
public void setAwaitingPingReply()
-
resetAwaitingPingReply
public void resetAwaitingPingReply()
-
getKey
public java.lang.String getKey()
Returns delegate key- Returns:
-
setEndpoint
public void setEndpoint(Endpoint anEndpoint)
Sets anEndpointobject- Parameters:
anEndpoint- - an endpoint object
-
restartTimerForOldestCasInOutstandingList
public void restartTimerForOldestCasInOutstandingList()
Forces Timer restart for the oldest CAS sitting in the list of CASes pending reply.
-
getDelegateCasesPendingReply
public java.util.List<Delegate.DelegateEntry> getDelegateCasesPendingReply()
-
getDelegateCasesPendingDispatch
public java.util.List<Delegate.DelegateEntry> getDelegateCasesPendingDispatch()
-
addNewCasToOutstandingList
public void addNewCasToOutstandingList(java.lang.String aCasReferenceId)
-
addNewCasToOutstandingList
public void addNewCasToOutstandingList(java.lang.String aCasReferenceId, boolean isCasGeneratingChildren)
-
addCasToOutstandingList
public void addCasToOutstandingList(java.lang.String aCasReferenceId)
Adds a given Cas ID to the list of CASes pending reply. A new timer will be started to handle delegate's timeout if either: 1) the list of CASes pending reply is empty AND delegate timeout > 0 2) the list already contains the CAS ID AND delegate timeout > 0. This is a retry logic.- Parameters:
aCasReferenceId- - CAS ID to add to pending list if not already there
-
addCasToPendingDispatchList
public int addCasToPendingDispatchList(java.lang.String aCasReferenceId)
Adds given CAS ID to the list of CASes pending dispatch. These CASes are delayed due to a questionable state of the delegate that most likely timed out on a previous CAS. When the timeout occurs, the subsequent CASes are queued (delayed) and a GetMeta request is sent to the delegate. When the delegate responds to GetMeta request, the state of the delegate is reset back to normal and the CASes queued (delayed) are immediately send to the delegate.- Parameters:
aCasReferenceId- - CAS ID to add to the delayed list
-
incrementRetryCount
public void incrementRetryCount(java.lang.String aCasReferenceId)
Increments retry count- Parameters:
aCasReferenceId-
-
removeOldestFromPendingDispatchList
public java.lang.String removeOldestFromPendingDispatchList()
Removes the oldest entry from the list of CASes pending dispatch. A CAS is delayed and placed on this list when the delegate status changes to TIMED_OUT and a PING message is sent to test delegate availability. Until the PING message is acked by the delegate OR the PING times out, all CASes are delayed. When the PING is acked by the delegate ALL delayed CASes are sent to the delegate one at a time.- Returns:
- - ID of the oldest CAS in the list
-
removeCasFromPendingDispatchList
public boolean removeCasFromPendingDispatchList(java.lang.String aCasReferenceId)
Removes an entry from the list of CASes pending dispatch that matches a given CAS Id.A CAS is delayed and placed on this list when the delegate status changes to TIMED_OUT and a PING message is sent to test delegate availability. Until the PING message is acked by the delegate OR the PING times out, all CASes are delayed. When the PING is acked by the delegate ALL delayed CASes are sent to the delegate one at a time.- Returns:
- - ID of the oldest CAS in the list
-
removeCasFromOutstandingList
public boolean removeCasFromOutstandingList(java.lang.String aCasReferenceId)
RemovesDelegate.DelegateEntryfrom the list of CASes pending reply. The entry is removed when either: 1) reply is received from the delegate before the timeout 2) the timeout occurs with no retry 3) an error occurs and the CAS is dropped as part of Error Handling- Parameters:
aCasReferenceId- - id of the CAS to remove from the list
-
removeOldestCasFromOutstandingList
public java.lang.String removeOldestCasFromOutstandingList()
RemovesDelegate.DelegateEntryfrom the list of CASes pending reply. The entry is removed when either: 1) reply is received from the delegate before the timeout 2) the timeout occurs with no retry 3) an error occurs and the CAS is dropped as part of Error Handling- Parameters:
aCasReferenceId- - id of the CAS to remove from the list
-
getOldestCasIdFromOutstandingList
public java.lang.String getOldestCasIdFromOutstandingList()
-
cleanup
public void cleanup()
Cancels timer and clears a list of CASes pending reply
-
getCasPendingReplyListSize
public int getCasPendingReplyListSize()
-
getCasPendingDispatchListSize
public int getCasPendingDispatchListSize()
-
cancelDelegateTimer
public void cancelDelegateTimer()
Cancels current timer
-
startGetMetaRequestTimer
public void startGetMetaRequestTimer()
Starts GetMeta Request timer
-
getCasProcessTimeout
public long getCasProcessTimeout()
-
setCasProcessTimeout
public void setCasProcessTimeout(long casProcessTimeout)
-
getGetMetaTimeout
public long getGetMetaTimeout()
-
setGetMetaTimeout
public void setGetMetaTimeout(long getMetaTimeout)
-
getCpcTimeout
public long getCpcTimeout()
-
setCpcTimeout
public void setCpcTimeout(long cpcTimeout)
-
getState
public int getState()
-
setState
public void setState(int aState)
-
setConcurrentConsumersOnReplyQueue
public void setConcurrentConsumersOnReplyQueue()
-
hasConcurrentConsumersOnReplyQueue
public boolean hasConcurrentConsumersOnReplyQueue()
-
isGeneratingChildrenFrom
public boolean isGeneratingChildrenFrom(java.lang.String aCasReferenceId)
-
setGeneratingChildrenFrom
public void setGeneratingChildrenFrom(java.lang.String aCasReferenceId, boolean tOf)
-
handleError
public abstract void handleError(java.lang.Exception e, ErrorContext errorContext)
-
getComponentName
public abstract java.lang.String getComponentName()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-