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
Fields Modifier and Type Field Description protected UimacppServiceManagementmbeanprotected java.net.ServerSocketserverprotected java.lang.ProcessuimacppProcess-
Fields inherited from interface org.apache.uima.aae.controller.AnalysisEngineController
AEInstanceCount, CasPoolSize
-
-
Constructor Summary
Constructors Constructor Description UimacppServiceController(java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String brokerURL, int numInstances, int prefetchSize, java.util.Map<java.lang.String,java.lang.String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError)UimacppServiceController(java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String brokerURL, int numInstances, int prefetchSize, java.util.Map<java.lang.String,java.lang.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, java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String mqHostName, int mqPort, java.lang.String mqChannel, java.lang.String mqQueueMgr, int numInstances, java.util.Map<java.lang.String,java.lang.String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement)UimacppServiceController(org.apache.uima.util.Logger uimaLogger, java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String mqHostName, int mqPort, java.lang.String mqChannel, java.lang.String mqQueueMgr, int numInstances, java.util.Map<java.lang.String,java.lang.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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddControllerCallbackListener(ControllerCallbackListener aListener)Register one or more listeners through which the controller can send notification of events.voiddestroy()Runs when spring undeploys this bean.voiddumpState(java.lang.StringBuffer buffer, java.lang.String lbl1)java.util.ArrayList<ControllerCallbackListener>getCallbackListeners()java.lang.StringgetKey()java.lang.StringgetStatistics()protected voidhandleConnection(java.net.Socket inSock)booleanisStopped()Returns true if the AnalysisEngineController has been (or is in the process of) shutdown.static voidmain(java.lang.String[] args)testvoidquiesceAndStop()voidremoveControllerCallbackListener(ControllerCallbackListener aListener)Removes named application listener.voidresetStatistics()voidsetStopped()Called to set the state of the AnalysisEngineController to STOPPED.voidshutdown()Shuts down the UIMA C++ service process.voidterminate()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 Detail
-
server
protected java.net.ServerSocket server
-
uimacppProcess
protected java.lang.Process uimacppProcess
-
mbean
protected UimacppServiceManagement mbean
-
-
Constructor Detail
-
UimacppServiceController
public UimacppServiceController(java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String brokerURL, int numInstances, int prefetchSize, java.util.Map<java.lang.String,java.lang.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(java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String brokerURL, int numInstances, int prefetchSize, java.util.Map<java.lang.String,java.lang.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, java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String mqHostName, int mqPort, java.lang.String mqChannel, java.lang.String mqQueueMgr, int numInstances, java.util.Map<java.lang.String,java.lang.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, java.lang.String aeDescriptorFileName, java.lang.String queueName, java.lang.String mqHostName, int mqPort, java.lang.String mqChannel, java.lang.String mqQueueMgr, int numInstances, java.util.Map<java.lang.String,java.lang.String> envVarMap, int processCasErrorThreshhold, int processCasErrorWindow, boolean terminateOnCPCError, JmxManagement jmxManagement) throws org.apache.uima.resource.ResourceInitializationException- Throws:
org.apache.uima.resource.ResourceInitializationException
-
-
Method Detail
-
shutdown
public void shutdown() throws java.io.IOException, java.lang.InterruptedExceptionShuts down the UIMA C++ service process.- Parameters:
force- - force or allow service to shutdown gracefully.- Throws:
java.io.IOExceptionjava.lang.InterruptedException
-
getStatistics
public java.lang.String getStatistics() throws java.io.IOException- Throws:
java.io.IOException
-
resetStatistics
public void resetStatistics() throws java.io.IOException- Throws:
java.io.IOException
-
handleConnection
protected void handleConnection(java.net.Socket inSock) throws java.io.IOException- Throws:
java.io.IOException
-
main
public static void main(java.lang.String[] args)
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
public void addControllerCallbackListener(ControllerCallbackListener aListener)
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
public void removeControllerCallbackListener(ControllerCallbackListener aListener)
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
public java.util.ArrayList<ControllerCallbackListener> getCallbackListeners()
-
getKey
public java.lang.String getKey()
- Specified by:
getKeyin interfaceAnalysisEngineController
-
dumpState
public void dumpState(java.lang.StringBuffer buffer, java.lang.String lbl1)- Specified by:
dumpStatein interfaceAnalysisEngineController
-
-