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 UimacppServiceManagement
protected ServerSocket
protected Process
Fields 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 TypeMethodDescriptionvoid
Register one or more listeners through which the controller can send notification of events.void
destroy()
Runs when spring undeploys this bean.void
dumpState
(StringBuffer buffer, String lbl1) getKey()
protected void
handleConnection
(Socket inSock) boolean
Returns true if the AnalysisEngineController has been (or is in the process of) shutdown.static void
testvoid
void
Removes named application listener.void
void
Called to set the state of the AnalysisEngineController to STOPPED.void
shutdown()
Shuts down the UIMA C++ service process.void
Runs 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.UIMAException
org.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:
IOException
InterruptedException
-
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:
terminate
in interfaceControllerLifecycle
- Overrides:
terminate
in classAnalysisEngineControllerAdapter
-
destroy
public void destroy()Runs when spring undeploys this bean.- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
-
addControllerCallbackListener
Description copied from interface:ControllerLifecycle
Register one or more listeners through which the controller can send notification of events.- Specified by:
addControllerCallbackListener
in interfaceControllerLifecycle
- Overrides:
addControllerCallbackListener
in classAnalysisEngineControllerAdapter
- Parameters:
aListener
- - application listener object to register
-
removeControllerCallbackListener
Description copied from interface:ControllerLifecycle
Removes named application listener.- Specified by:
removeControllerCallbackListener
in interfaceControllerLifecycle
- Overrides:
removeControllerCallbackListener
in classAnalysisEngineControllerAdapter
- Parameters:
aListener
- - application listener to remove
-
quiesceAndStop
public void quiesceAndStop()- Specified by:
quiesceAndStop
in interfaceAnalysisEngineController
- Specified by:
quiesceAndStop
in classAnalysisEngineControllerAdapter
-
isStopped
public boolean isStopped()Description copied from interface:AnalysisEngineController
Returns true if the AnalysisEngineController has been (or is in the process of) shutdown.- Specified by:
isStopped
in interfaceAnalysisEngineController
- Overrides:
isStopped
in classAnalysisEngineControllerAdapter
- Returns:
- - true if stopped
-
setStopped
public void setStopped()Description copied from interface:AnalysisEngineController
Called to set the state of the AnalysisEngineController to STOPPED. This method does not stop input or output channels.- Specified by:
setStopped
in interfaceAnalysisEngineController
- Overrides:
setStopped
in classAnalysisEngineControllerAdapter
-
getCallbackListeners
-
getKey
- Specified by:
getKey
in interfaceAnalysisEngineController
-
dumpState
- Specified by:
dumpState
in interfaceAnalysisEngineController
-