Package org.apache.uima.aae.controller
Class UimacppServiceController
java.lang.Object
org.apache.uima.aae.controller.AnalysisEngineControllerAdapter
org.apache.uima.aae.controller.UimacppServiceController
- All Implemented Interfaces:
AnalysisEngineController,ControllerLifecycle,org.springframework.beans.factory.DisposableBean
public class UimacppServiceController
extends AnalysisEngineControllerAdapter
implements ControllerLifecycle, org.springframework.beans.factory.DisposableBean
This bean functions as a proxy for a Uima C++ service. It starts the Uima C++ service given a
UIMA descriptor, the input queue name, and environment settings required for the specific
annotator and the Uima C++ runtime. On start up a socket connection is established between this
instance of the proxy and the service. This connection is used for routing log message from the
C++ service to the UIMA framework logger and to allow the proxy to send JMX and administrative
requests such as shutdown.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected UimacppServiceManagementprotected ServerSocketprotected ProcessFields inherited from interface org.apache.uima.aae.controller.AnalysisEngineController
AEInstanceCount, CasPoolSize -
Constructor Summary
ConstructorsConstructorDescriptionUimacppServiceController(String aeDescriptorFileName, String queueName, String brokerURL, int numInstances, int prefetchSize, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError) UimacppServiceController(String aeDescriptorFileName, String queueName, String brokerURL, int numInstances, int prefetchSize, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, int initialFsHeapSize) Configure and start a Uima C++ service that connects to an ActiveMQ queue broker.UimacppServiceController(org.apache.uima.util.Logger uimaLogger, String aeDescriptorFileName, String queueName, String mqHostName, int mqPort, String mqChannel, String mqQueueMgr, int numInstances, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement) UimacppServiceController(org.apache.uima.util.Logger uimaLogger, String aeDescriptorFileName, String queueName, String mqHostName, int mqPort, String mqChannel, String mqQueueMgr, int numInstances, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement, int initialFsHeapSize) Configure and start a Uima C++ service that connects to an WebSphereMQ queue broker. -
Method Summary
Modifier and TypeMethodDescriptionvoidRegister one or more listeners through which the controller can send notification of events.voiddestroy()Runs when spring undeploys this bean.voiddumpState(StringBuffer buffer, String lbl1) getKey()protected voidhandleConnection(Socket inSock) booleanReturns true if the AnalysisEngineController has been (or is in the process of) shutdown.static voidtestvoidvoidRemoves named application listener.voidvoidCalled to set the state of the AnalysisEngineController to STOPPED.voidshutdown()Shuts down the UIMA C++ service process.voidRuns when UIMA EE client API undeploys this service.Methods inherited from class org.apache.uima.aae.controller.AnalysisEngineControllerAdapter
addAbortedCasReferenceId, addEndpointToDoNotProcessList, addInputChannel, addServiceInfo, addTimeSnapshot, beginProcess, cacheClientEndpoint, changeState, collectionProcessComplete, dropCAS, dropCAS, dropStats, endProcess, evictExpiredEntries, forceTimeoutOnPendingCases, getAnalysisTime, getCasManagerWrapper, getCasStatistics, getChildUimaContext, getClientEndpoint, getComponentName, getControllerLatch, getCpuTime, getDeadClientMap, getErrorHandlerChain, getEventListener, getIdleTime, getIdleTimeBetweenProcessCalls, getIndex, getInProcessCache, getInputChannel, getInputChannel, getJmxContext, getJMXDomain, getLocalCache, getManagementInterface, getMonitor, getName, getOutputChannel, getParentController, getReplyInputChannel, getReplyTime, getServiceEndpointName, getServiceErrors, getServiceInfo, getServicePerformance, getState, getStats, getTime, getTimeSnapshot, getTransport, getTransport, getUimaEEAdminContext, getUimaMessageListener, handleDelegateLifeCycleEvent, incrementDeserializationTime, incrementSerializationTime, initialize, initializeVMTransport, isAwaitingCacheCallbackNotification, isCasMultiplier, isEndpointOnDontProcessList, isPrimitive, isTopLevelComponent, notifyListenersWithInitializationStatus, onInitialize, process, process, process, registerVmQueueWithJMX, releaseNextCas, saveReplyTime, saveTime, sendMetadata, setCasManager, setDeployDescriptor, setInputChannel, setOutputChannel, setUimaEEAdminContext, stop, takeAction
-
Field Details
-
server
-
uimacppProcess
-
mbean
-
-
Constructor Details
-
UimacppServiceController
public UimacppServiceController(String aeDescriptorFileName, String queueName, String brokerURL, int numInstances, int prefetchSize, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, int initialFsHeapSize) throws org.apache.uima.resource.ResourceInitializationExceptionConfigure and start a Uima C++ service that connects to an ActiveMQ queue broker. This class initializes the process environment and starts a process to deploy the C++ service. Communication via sockets is established between this Controller and the C++ service through which logging, JMX and administrative messages are transmitted.- Parameters:
aeDescriptorFileName- - UIMA analysis engine descriptor file.queueName- - input queue namebrokerURL- - queue broker URLnumInstances- - number of instance of AEs to start in the service.prefetchSize- - number of message to prefetchenvVarMap- - enviroment variables to be set. These settings are valid only for the new process in which C++ service will run.- Throws:
org.apache.uima.UIMAExceptionorg.apache.uima.resource.ResourceInitializationException
-
UimacppServiceController
public UimacppServiceController(String aeDescriptorFileName, String queueName, String brokerURL, int numInstances, int prefetchSize, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError) throws org.apache.uima.resource.ResourceInitializationException- Throws:
org.apache.uima.resource.ResourceInitializationException
-
UimacppServiceController
public UimacppServiceController(org.apache.uima.util.Logger uimaLogger, String aeDescriptorFileName, String queueName, String mqHostName, int mqPort, String mqChannel, String mqQueueMgr, int numInstances, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement, int initialFsHeapSize) throws org.apache.uima.resource.ResourceInitializationExceptionConfigure and start a Uima C++ service that connects to an WebSphereMQ queue broker. This class initializes the process environment and starts a process to deploy the C++ service. Communication via sockets is established between this Controller and the C++ service through which logging, JMX and administrative messages are transmitted.- Parameters:
uimaLogger-aeDescriptorFileName-mqQueueName-mqHostName-mqPort-mqChannel-mqQueueMgr-numInstances-envVarMap-processCasErrorThreshhold-processCasErrorWindow-terminateOnCPCError-mBeanServer-- Throws:
org.apache.uima.resource.ResourceInitializationException
-
UimacppServiceController
public UimacppServiceController(org.apache.uima.util.Logger uimaLogger, String aeDescriptorFileName, String queueName, String mqHostName, int mqPort, String mqChannel, String mqQueueMgr, int numInstances, Map<String, String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement) throws org.apache.uima.resource.ResourceInitializationException- Throws:
org.apache.uima.resource.ResourceInitializationException
-
-
Method Details
-
shutdown
Shuts down the UIMA C++ service process.- Parameters:
force- - force or allow service to shutdown gracefully.- Throws:
IOExceptionInterruptedException
-
getStatistics
- Throws:
IOException
-
resetStatistics
- Throws:
IOException
-
handleConnection
- Throws:
IOException
-
main
test- Parameters:
args-
-
terminate
public void terminate()Runs when UIMA EE client API undeploys this service.- Specified by:
terminatein interfaceControllerLifecycle- Overrides:
terminatein classAnalysisEngineControllerAdapter
-
destroy
public void destroy()Runs when spring undeploys this bean.- Specified by:
destroyin interfaceorg.springframework.beans.factory.DisposableBean
-
addControllerCallbackListener
Description copied from interface:ControllerLifecycleRegister one or more listeners through which the controller can send notification of events.- Specified by:
addControllerCallbackListenerin interfaceControllerLifecycle- Overrides:
addControllerCallbackListenerin classAnalysisEngineControllerAdapter- Parameters:
aListener- - application listener object to register
-
removeControllerCallbackListener
Description copied from interface:ControllerLifecycleRemoves named application listener.- Specified by:
removeControllerCallbackListenerin interfaceControllerLifecycle- Overrides:
removeControllerCallbackListenerin classAnalysisEngineControllerAdapter- Parameters:
aListener- - application listener to remove
-
quiesceAndStop
public void quiesceAndStop()- Specified by:
quiesceAndStopin interfaceAnalysisEngineController- Specified by:
quiesceAndStopin classAnalysisEngineControllerAdapter
-
isStopped
public boolean isStopped()Description copied from interface:AnalysisEngineControllerReturns true if the AnalysisEngineController has been (or is in the process of) shutdown.- Specified by:
isStoppedin interfaceAnalysisEngineController- Overrides:
isStoppedin classAnalysisEngineControllerAdapter- Returns:
- - true if stopped
-
setStopped
public void setStopped()Description copied from interface:AnalysisEngineControllerCalled to set the state of the AnalysisEngineController to STOPPED. This method does not stop input or output channels.- Specified by:
setStoppedin interfaceAnalysisEngineController- Overrides:
setStoppedin classAnalysisEngineControllerAdapter
-
getCallbackListeners
-
getKey
- Specified by:
getKeyin interfaceAnalysisEngineController
-
dumpState
- Specified by:
dumpStatein interfaceAnalysisEngineController
-