You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2009/10/27 22:59:59 UTC
svn commit: r830358 [1/2] - in
/incubator/uima/uima-as/trunk/uima-as-docbooks/src:
docbook/uima_async_scaleout/ olink/uima_async_scaleout/
Author: schor
Date: Tue Oct 27 21:59:58 2009
New Revision: 830358
URL: http://svn.apache.org/viewvc?rev=830358&view=rev
Log:
UIMA-1635 revise Client API chapter, and add short lifecycle section to the overview.
Modified:
incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.overview.xml
incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/ref.async.api.xml
incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/htmlsingle-target.db
incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/pdf-target.db
Modified: incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.overview.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.overview.xml?rev=830358&r1=830357&r2=830358&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.overview.xml (original)
+++ incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.overview.xml Tue Oct 27 21:59:58 2009
@@ -1039,7 +1039,7 @@
</parameters>
</customResourceSpecifier>]]></programlisting>
- <para>The resouceClassName must be set exactly as shown. Set the brokerURL and endpoint parameters to the
+ <para>The resourceClassName must be set exactly as shown. Set the brokerURL and endpoint parameters to the
appropriate values for the UIMA AS Service you want to call. These are the same settings you would use in a
deployment descriptor to specify the location of a remote delegate. Note that this is a synchronous adapter,
which processes one CAS at a time, so it will not take advantage of the scalability that UIMA AS provides. To
@@ -1049,6 +1049,21 @@
targetptr="ugr.ref.xml.component_descriptor.custom_resource_specifiers"></olink>. </para>
</section>
+ <section id="ugr.async.ov.concepts.lifecycle">
+ <title>Life cycle</title>
+
+ <para>Running UIMA AS applications involves deploying (starting) UIMA AS services, perhaps over a wide area
+ network, perhaps on many machines. UIMA AS as a few preliminary tools to help. These include the ability
+ of the <xref linkend="ugr.ref.async.api">Client API</xref> to deploy UIMA AS services (limited to deployment within the same
+ JVM), and scripts such as <code>deployAsyncService</code> that start up a UIMA AS Service.</para>
+
+ <para><code>deployAsyncService</code> has a facility that launches a keyboard listener after starting, which
+ listens for a "s" or "q" keystroke. The "s" stops the service immediately, and the "q" quiesces the service,
+ letting any in-process work finish before stopping.</para>
+
+ <para>JMX beans for services include a control option to stop the service.</para>
+ </section>
+
<!-- next section omitted - this is in base UIMA -->
<!--section id="ugr.async.ov.concepts.collection_reader">
<title>Collection Reader support</title>
Modified: incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/ref.async.api.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/ref.async.api.xml?rev=830358&r1=830357&r2=830358&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/ref.async.api.xml (original)
+++ incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/ref.async.api.xml Tue Oct 27 21:59:58 2009
@@ -28,40 +28,46 @@
<title>Asynchronous Scaleout Application Interface</title>
<section id="ugr.ref.async.api.organization">
- <title>Asynchronous API Overview</title>
+ <title>Asynchronous Client API Overview</title>
+ <titleabbrev>Async Client API</titleabbrev>
<para>
- The Asynchronous API provides Java applications the capability to connect to
- and to make requests UIMA-AS services. ProcessCas and CollectionProcessingComplete
+ The Asynchronous Client API provides Java applications the capability to connect to
+ and make requests to UIMA-AS services. ProcessCas and CollectionProcessingComplete
requests are supported.
</para>
+ <para>It provides four kinds of capabilities:
+ <itemizedlist>
+ <listitem><para>sending requests, receiving replies, asynchronously (or synchronously)</para></listitem>
+ <listitem><para>setting timeouts and limits on the number of simultaneous requests in process (via setting
+ the CAS Pool size)</para></listitem>
+ <listitem><para>using an optionally provided collection reader to obtain items to process</para></listitem>
+ <listitem><para>deploying services as part of the startup process</para></listitem>
+ </itemizedlist></para>
+
<para>
An application can use this API to
prepare and send each CAS to a service one at a time, or
alternately can use a UIMA collection reader to prepare the CASes to be delivered.
- The application must provide a listener class to receive asynchronous replies.
+ </para>
+
+ <para>
+ The application normally provides a listener class to receive asynchronous replies.
For individual CAS requests a synchronous sendAndReceive call is available.
- As an alternative for this case (for synchronous requests to a
- UIMA-AS service), instead of using this client API,
+ As an alternative for this synchronous call, instead of using this client API,
the standard UIMA Analysis Engine APIs
can be used with an analysis engine instantiated from a JMS Service Descriptor.
See <xref linkend="ugr.async.ov.concepts.jms_descriptor"/>.
</para>
-
- <para>
- Other options available in this API include
- specifying the maximum number of outstanding requests allowed, timeout
- values and the size of local Cas pool to create.
- </para>
<para>
- The Asynchronous API can also be used to deploy services.
+ As a convenience, the Asynchronous Client API can also be used to deploy (i.e., "start") services.
Java services deployed by the API are instantiated in the same JVM. Logging for all UIMA
components in the same JVM are merged; class names and thread IDs can be used to distinguish
log entries from different services. All services in the JVM can be monitored by a single
- JMX console. Native (org.apache.uima.cpp) services can be called from the JVM via the JNI or
+ JMX console. Native C++ UIMA services can be called from the JVM via the JNI or
optionally be launched as separate processes on the same machine. In either case logging
- and JMX monitoring for native services are integrated with the those in the JVM.
+ and JMX monitoring for native services are integrated with the other UIMA components in the JVM.
</para>
</section>
@@ -83,48 +89,50 @@
<itemizedlist>
<listitem>
- <para>void initialize( Map anApplicationContext ): Initializes asynchronous client.
- Using configuration provided in a given Map object, this method creates a connection to
+ <para><code>void initialize(Map anApplicationContext)</code>: Initializes an asynchronous client.
+ Using configuration provided in the given Map object, this method creates a connection to
the UIMA-AS Service queue, creates a response queue, and retrieves the service metadata.
This method blocks until a reply is received from the service or a timeout occurs.
If a collection reader has been specified, its typesystem is merged with that from the
service. The combined typesystem is used to create a Cas pool.
- On success the application is notified via the listener's initializationComplete() method.
+ On success the application is notified via the listener's initializationComplete() method,
+ which is called prior to the original call unblocking.
Asynchronous errors are delivered to the listener's entityProcessComplete() method.
See <xref linkend="ugr.ref.async.context.map"/> for more about the ApplicationContext map.
</para>
</listitem>
<listitem>
- <para>void addStatusCallbackListener(UimaASStatusCallbackListener aListener):
+ <para><code>void addStatusCallbackListener(UimaASStatusCallbackListener aListener)</code>:
Plugs in an application-specific listener. The application receives callbacks
via methods in this listener class. More than one listener can be added.
</para>
</listitem>
<listitem>
- <para>CAS getCAS(): Requests a new CAS instance from the CAS pool. This method blocks
+ <para><code>CAS getCAS()</code>: Requests a new CAS instance from the CAS pool. This method blocks
until a free instance of CAS is available in the CAS pool.
- Applications that use getCAS() need to call CAS.reset() as appropriate or CAS.release()
+ Applications that use <code>getCAS()</code> need to call <code>CAS.reset()</code>
+ before reusing the CAS, or <code>CAS.release()</code>
to return it to the Cas pool.
</para>
</listitem>
<listitem>
- <para>void sendCAS( CAS aCAS ): Sends a given CAS for analysis to the UIMA-AS Service.
- The application is notified of responses or timeouts via entityProcessComplete().
+ <para><code>void sendCAS(CAS aCAS)</code>: Sends a given CAS for analysis to the UIMA-AS Service.
+ The application is notified of responses or timeouts via <code>entityProcessComplete()</code> method.
</para>
</listitem>
<listitem>
- <para>void setCollectionReader( CollectionReader aCollectionReader ):
- Plugs in an instantiated CollectionReader instance to use. Must be called before initialize.
- The application calls the process() method to begin analyzing the collection.
+ <para><code>void setCollectionReader(CollectionReader aCollectionReader)</code>:
+ Plugs in an instantiated CollectionReader instance to use. This method must be called before
+ <code>initialize</code>.
</para>
</listitem>
<listitem>
- <para>void process():
+ <para><code>void process()</code>:
Starts processing a collection using a collection reader. The method will block
until the CollectionReader finishes processing the entire collection.
Throws ResourceProcessException if a CollectionReader has not been provided or initialize
@@ -133,40 +141,45 @@
</listitem>
<listitem>
- <para>void collectionProcessingComplete(): Sends a Collection Processing Complete request
- to the UIMA-AS Analysis Service. The method blocks until the service replies or a timeout occurs.
- On success the application is notified via the listener's collectionProcessComplete() method.
-
+ <para><code>void collectionProcessingComplete()</code>: Sends a Collection Processing Complete request
+ to the UIMA-AS Analysis Service. This call is cascaded down to all delegates; however, if a particular
+ delegate is scaled-out, only one of the instances of the delegate will get this call.
+ The method blocks until all of the components that received this call have returned, or a timeout occurs.
+ On success or failure, the application is
+ notified via the statusCallbackListener's collectionProcessComplete() method.
</para>
</listitem>
<listitem>
- <para>void sendAndReceiveCAS(CAS aCAS):
+ <para><code>void sendAndReceiveCAS(CAS aCAS)</code>:
Send a CAS, wait for response. On success aCAS contains the analysis results.
Throws an exception on error.
</para>
</listitem>
<listitem>
- <para>String deploy( String aDeploymentDescriptor, Map anApplicationContext): Deploys the UIMA-AS
- service specified by the given deployment descriptor in this JVM, and returns a handle to the Spring
- container for this service. The application context map must contain DD2SpringXsltFilePath and
+ <para><code>String aHandle deploy( String aDeploymentDescriptor, Map anApplicationContext)</code>:
+ Deploys the UIMA-AS
+ service specified by the given deployment descriptor in this JVM, and returns a handle
+ for this service. The application context map must contain DD2SpringXsltFilePath and
SaxonClasspath entries. This call blocks until the service is ready to process requests, or an
- exception occurs during deployment. </para>
+ exception occurs during deployment. If an exception occurs, the callback listener's </para>
</listitem>
<listitem>
- <para>void undeploy( String aSpringContainerId ):
- Tells the specified service to terminate and removes the Spring container.
+ <para><code>void undeploy(String aHandle)</code>:
+ Tells the specified service to terminate. The handle is the same handle that is returned
+ by the corresponding <code>deploy(...)</code> method.
</para>
</listitem>
<listitem>
- <para>void stop():
+ <para><code>void stop()</code>:
Stops the asynchronous client. Removes the Cas pool, drops the connection to the UIMA-AS
service queue and stops listening on its response queue.
Terminates and undeploys any services which have been started with this client.
</para>
+ <para>This is an asynchronous call, and can be called at any time.</para>
</listitem>
</itemizedlist></para>
@@ -208,7 +221,7 @@
</listitem>
<listitem>
- <para>CAS_INITIAL_HEAPSIZE: (Optional) the initial CAS heapsize.</para>
+ <para>CAS_INITIAL_HEAPSIZE: (Optional) the initial CAS heapsize, in 4-byte words. Default = 500,000.</para>
</listitem>
<listitem>
@@ -241,26 +254,27 @@
<!--======================================================-->
<section id="ugr.ref.async.callback.listener">
<title>Status Callback Listener</title>
- <para>Asynchronous events are delivered to applications via methods in classes registered
- to the API object with addStatusCallbackListener(). These classes must extend the
+ <para>Asynchronous events are returned to applications via methods in classes registered
+ to the Client API object with addStatusCallbackListener(). These classes must extend the
class org.apache.uima.aae.client.UimaAsBaseCallbackListener.
<!-- These classes must implement the
interface org.apache.uima.aae.client.UimaASStatusCallbackListener.-->
<itemizedlist>
<listitem>
- <para>initializationComplete(EntityProcessStatus aStatus): The callback used to inform the
+ <para><code>initializationComplete(EntityProcessStatus aStatus)</code>: The callback used to inform the
application that the initialization request has completed. On success aStatus will be
null; on failure use the UimaASProcessStatus class to get the details.</para>
</listitem>
<listitem>
- <para>entityProcessComplete(CAS aCas, EntityProcessStatus aStatus): The callback used to
+ <para><code>entityProcessComplete(CAS aCas, EntityProcessStatus aStatus)</code>: The callback used to
inform the application that a processCas request has completed. On success aCAS object
will contain result of analysis; on failure the CAS will be in the same state as
before it was sent to a service and aStatus will contain the cause of failure. When calling
- this method, the Uima AS passes an object of type UimaASProcessStatus as a second argument.
- It extends EntityProcessStatus and provides getCasReferenceId() method to retrieve a unique
+ this method, the UIMA AS passes an object of type <code>UimaASProcessStatus</code> as a second argument.
+ It extends <code>EntityProcessStatus</code> and provides <code>getCasReferenceId()</code>
+ method to retrieve a unique
id assigned to a CAS. To access this method the user code should implement the following
<programlisting>
if ( aStatus instanceof UimaASProcessStatus ) {
@@ -272,15 +286,17 @@
</listitem>
<listitem>
- <para>collectionProcessComplete(EntityProcessStatus aStatus): The callback used to inform the
+ <para><code>collectionProcessComplete(EntityProcessStatus aStatus)</code>: The callback used to inform the
application that the CPC request has completed. On success aStatus will be
- null; on failure use the UimaASProcessStatus class to get the details.</para>
+ null; on failure use the <code>UimaASProcessStatus</code> class to get the details.</para>
</listitem>
<listitem>
- <para>onBeforeMessageSend(UimaASProcessStatus status): The callback used to inform the
+ <para><code>onBeforeMessageSend(UimaASProcessStatus status)</code>: The callback used to inform the
application that a CAS is about to be sent to a service. The status object has
- getCasReferenceId() method that returns a unique CAS id assigned by Uima AS.</para>
+ <code>getCasReferenceId()</code> method that returns a unique CAS id assigned by UIMA AS.
+ This reference id may be used to associate arbirary information with a CAS, and is also
+ returned in the callback listener as part of the status object.</para>
</listitem>
</itemizedlist>
@@ -293,19 +309,16 @@
<!--======================================================-->
<section id="ugr.ref.async.error.status">
<title>Error Results</title>
- <para>Errors are delivered to the callback listeners as an EntityProcessStatus object.
-
- <note><para>The use of EntityProcessStatus is temporary. This will be replaced shortly.
- </para></note>
-
+ <para>Errors are delivered to the callback listeners as an
+ <code>EntityProcessStatus</code> or <code>UimaASProcessStatus</code> object.
+ These objects provide the methods:
<itemizedlist>
<listitem>
- <para>isException(): Indicates the error returned is in the form of exception messages.
+ <para><code>isException()</code>: Indicates the error returned is in the form of exception messages.
</para>
</listitem>
-
<listitem>
- <para>getExceptions(): Returns a List of exceptions.
+ <para><code>getExceptions()</code>: Returns a List of exceptions.
</para>
</listitem>
</itemizedlist>
@@ -313,7 +326,7 @@
</section>
<section id="ugr.ref.async.api.usage">
- <title>Asynchronous API Usage Scenarios</title>
+ <title>Asynchronous Client API Usage Scenarios</title>
<section id="ugr.ref.async.api.usage_initialize">
<title>Instantiating a Client API Object</title>
Modified: incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/htmlsingle-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/htmlsingle-target.db?rev=830358&r1=830357&r2=830358&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/htmlsingle-target.db (original)
+++ incubator/uima/uima-as/trunk/uima-as-docbooks/src/olink/uima_async_scaleout/htmlsingle-target.db Tue Oct 27 21:59:58 2009
@@ -1 +1 @@
-<div element="book" href="#d0e2" number="" lang="en"><ttl>UIMA Asynchronous Scaleout</ttl><xreftext>UIMA Asynchronous Scaleout</xreftext><div element="chapter" href="#ugr.async.ov" number="1" targetptr="ugr.async.ov"><ttl>Overview - Asynchronous Scaleout</ttl><xreftext>Chapter 1, <i xmlns:xlink="http://www.w3.org/1999/xlink">Overview - Asynchronous Scaleout</i></xreftext><div element="section" href="#ugr.async.ov.terminology" number="1.1" targetptr="ugr.async.ov.terminology"><ttl>Terminology</ttl><xreftext>Section 1.1, âTerminologyâ</xreftext></div><div element="section" href="#ugr.async.ov.as_vs_cpm" number="1.2" targetptr="ugr.async.ov.as_vs_cpm"><ttl>AS versus CPM</ttl><xreftext>Section 1.2, âAS versus CPMâ</xreftext></div><div element="section" href="#ugr.async.ov.design_goals" number="1.3" targetptr="ugr.async.ov.design_goals"><ttl>Design goals for Asynchronous Scaleout</ttl><xreftext>Section 1.3, âDesign goals for Asynchronous Scale
outâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts" number="1.4" targetptr="ugr.async.ov.concepts"><ttl>AS Concepts</ttl><xreftext>Section 1.4, âAS Conceptsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.threading" number="1.4.1" targetptr="ugr.async.ov.concepts.threading"><ttl>User written components and multi-threading</ttl><xreftext>Section 1.4.1, âThreadingâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.wrapping" number="1.4.2" targetptr="ugr.async.ov.concepts.wrapping"><ttl>AS Component wrapping</ttl><xreftext>Section 1.4.2, âAS Component wrappingâ</xreftext><obj element="figure" href="#ugr.async.ov.fig.wrapAE" number="1.1" targetptr="ugr.async.ov.fig.wrapAE"><ttl>AS Primitive Wrapper</ttl><xreftext>Figure 1.1, âAS Primitive Wrapperâ</xreftext></obj><obj element="figure" href="#ugr.async.ov.fig.wrapAAE" number="1.2" targetptr="ugr.async.ov.fig.wrapAAE"><t
tl>AS Aggregate wrapper</ttl><xreftext>Figure 1.2, âAS Aggregate wrapperâ</xreftext></obj></div><div element="section" href="#ugr.async.ov.concepts.deploying" number="1.4.3" targetptr="ugr.async.ov.concepts.deploying"><ttl>Deployment alternatives</ttl><xreftext>Section 1.4.3, âDeployment alternativesâ</xreftext><div element="section" href="#ugr.async.ov.concepts.deploying.multiples" number="1.4.3.1" targetptr="ugr.async.ov.concepts.deploying.multiples"><ttl>Configuring multiple instances of components</ttl><xreftext>Section 1.4.3.1, âMultiple Instancesâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.deploying.queues" number="1.4.3.2" targetptr="ugr.async.ov.concepts.deploying.queues"><ttl>Queues</ttl><xreftext>Section 1.4.3.2, âQueuesâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.deployment_descriptors" number="1.4.3.3" targetptr="ugr.async.ov.concepts.deployment_descriptors"><ttl
>Deployment Descriptors</ttl><xreftext>Section 1.4.3.3, âDeployment Descriptorsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.deployment_descriptors.aggregate" number="" targetptr="ugr.async.ov.concepts.deployment_descriptors.aggregate"><ttl>Deploying UIMA aggregates</ttl><xreftext>the section called âDeploying UIMA aggregatesâ</xreftext></div></div></div><div element="section" href="#ugr.async.ov.concepts.first_limits" number="1.4.4" targetptr="ugr.async.ov.concepts.first_limits"><ttl>Current design limitations</ttl><xreftext>Section 1.4.4, âLimitsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.first_limits.sofa_mapping" number="1.4.4.1" targetptr="ugr.async.ov.concepts.first_limits.sofa_mapping"><ttl>Sofa Mapping limits</ttl><xreftext>Section 1.4.4.1, âSofa Mapping limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.parameter_overriding" number="1.4.4.2" t
argetptr="ugr.async.ov.concepts.first_limits.parameter_overriding"><ttl>Parameter Overriding limits</ttl><xreftext>Section 1.4.4.2, âParameter Overriding limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.resource_sharing" number="1.4.4.3" targetptr="ugr.async.ov.concepts.first_limits.resource_sharing"><ttl>Resource Sharing limits</ttl><xreftext>Section 1.4.4.3, âResource Sharing limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.service_descriptors" number="1.4.4.4" targetptr="ugr.async.ov.concepts.first_limits.service_descriptors"><ttl>Use of service descriptors inside AS Aggregates</ttl><xreftext>Section 1.4.4.4, âUse of service descriptors inside AS Aggregatesâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.first_limits.compatibility" number="1.4.5" targetptr="ugr.async.ov.concepts.first_limits.compatibility"><ttl>Compatibility wit
h earlier version of remoting and scaleout</ttl><xreftext>Section 1.4.5, âCompatibilityâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.application" number="1.5" targetptr="ugr.async.ov.concepts.application"><ttl>Application Concepts</ttl><xreftext>Section 1.5, âApplication Conceptsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.application.api" number="1.5.1" targetptr="ugr.async.ov.concepts.application.api"><ttl>Application API</ttl><xreftext>Section 1.5.1, âApplication APIâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.collection_process_complete" number="1.5.2" targetptr="ugr.async.ov.concepts.collection_process_complete"><ttl>Collection Process Complete</ttl><xreftext>Section 1.5.2, âCollection Process Completeâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.mc" number="1.6" targetptr="ugr.async.ov.concepts.mc"><ttl>Monitoring a
nd Controlling an AS application</ttl><xreftext>Section 1.6, âMonitoring & Controllingâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.jms_descriptor" number="1.7" targetptr="ugr.async.ov.concepts.jms_descriptor"><ttl>JMS Service Descriptor</ttl><xreftext>Section 1.7, âJMS Service Descriptorâ</xreftext></div></div><div element="chapter" href="#ugr.async.eh" number="2" targetptr="ugr.async.eh"><ttl>Error Handling for Asynchronous Scaleout</ttl><xreftext>Chapter 2, <i xmlns:xlink="http://www.w3.org/1999/xlink">Error Handling for Asynchronous Scaleout</i></xreftext><div element="section" href="#ugr.async.eh.basic" number="2.1" targetptr="ugr.async.eh.basic"><ttl>Basic concepts</ttl><xreftext>Section 2.1, âBasic conceptsâ</xreftext></div><div element="section" href="#ugr.async.eh.incoming_commands" number="2.2" targetptr="ugr.async.eh.incoming_commands"><ttl>Associating Errors with incoming commands</ttl><xreftex
t>Section 2.2, âAssociating Errors with incoming commandsâ</xreftext><div element="section" href="#ugr.asynch.eh.cas_multipliers" number="2.2.1" targetptr="ugr.asynch.eh.cas_multipliers"><ttl>Error handling for CASes generated in an Aggregate by CAS Multipliers</ttl><xreftext>Section 2.2.1, âError handling - CAS Multipliersâ</xreftext></div></div><div element="section" href="#ugr.async.eh.error_handling_overview" number="2.3" targetptr="ugr.async.eh.error_handling_overview"><ttl>Error handling overview</ttl><xreftext>Section 2.3, âError handling overviewâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.basic_eh_chain" number="2.1" targetptr="ugr.async.eh.fig.basic_eh_chain"><ttl>Basic error handling chain for AS Aggregates for errors from delegates</ttl><xreftext>Figure 2.1, âBasic error handling chain for AS Aggregates for errors from delegatesâ</xreftext></obj><obj element="figure" href="#ugr.async.eh.fig.basic_eh
_chain_prim" number="2.2" targetptr="ugr.async.eh.fig.basic_eh_chain_prim"><ttl>Basic error handling chain for AS Primitives</ttl><xreftext>Figure 2.2, âBasic error handling chain for AS Primitivesâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.error_results" number="2.4" targetptr="ugr.async.eh.error_results"><ttl>Error results</ttl><xreftext>Section 2.4, âError resultsâ</xreftext></div><div element="section" href="#ugr.async.eh.aggregate_managed" number="2.5" targetptr="ugr.async.eh.aggregate_managed"><ttl>Error Recovery actions</ttl><xreftext>Section 2.5, âError Recovery actionsâ</xreftext><div element="section" href="#ugr.async.eh.aggregate_managed.actions" number="2.5.1" targetptr="ugr.async.eh.aggregate_managed.actions"><ttl>Aggregate Error Actions</ttl><xreftext>Section 2.5.1, âAggregate Error Actionsâ</xreftext><div element="section" href="#ugr.async.eh.aggregate_managed.actions.retry" number="2.5
.1.1" targetptr="ugr.async.eh.aggregate_managed.actions.retry"><ttl>Retry</ttl><xreftext>Section 2.5.1.1, âRetryâ</xreftext></div><div element="section" href="#ugr.async.eh.aggregate_disable" number="2.5.1.2" targetptr="ugr.async.eh.aggregate_disable"><ttl>Disable Action</ttl><xreftext>Section 2.5.1.2, âDisable Actionâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.disable" number="2.3" targetptr="ugr.async.eh.fig.disable"><ttl>Disable action</ttl><xreftext>Figure 2.3, âDisable actionâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.aggregate_managed.actions.continue" number="2.5.1.3" targetptr="ugr.async.eh.aggregate_managed.actions.continue"><ttl>Continue Option on Delegate Process CAS Failures</ttl><xreftext>Section 2.5.1.3, âContinue Option on Delegate Process CAS Failuresâ</xreftext></div></div></div><div element="section" href="#ugr.async.eh.errors_passed_up.thresholds" number="2.6" targetptr
="ugr.async.eh.errors_passed_up.thresholds"><ttl>Thresholds for Terminate and Disable</ttl><xreftext>Section 2.6, âThresholds for Terminate and Disableâ</xreftext></div><div element="section" href="#ugr.async.eh.terminate" number="2.7" targetptr="ugr.async.eh.terminate"><ttl>Terminate Action</ttl><xreftext>Section 2.7, âTerminate Actionâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.terminate" number="2.4" targetptr="ugr.async.eh.fig.terminate"><ttl>Terminate action</ttl><xreftext>Figure 2.4, âTerminate actionâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.commands_allowed_actions" number="2.8" targetptr="ugr.async.eh.commands_allowed_actions"><ttl>Commands and allowed actions</ttl><xreftext>Section 2.8, âCommands and allowed actionsâ</xreftext><obj element="table" href="#ugr.async.eh.table.error_actions_by_command" number="2.1" targetptr="ugr.async.eh.table.error_actions_by_command"><ttl>Error
actions by command type</ttl><xreftext>Table 2.1, âError actions by command typeâ</xreftext></obj></div></div><div element="chapter" href="#ugr.ref.async.deploy" number="3" targetptr="ugr.ref.async.deploy"><ttl>Asynchronous Scaleout Deployment Descriptor</ttl><xreftext>Chapter 3, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Deployment Descriptor</i></xreftext><div element="section" href="#ugr.ref.async.deploy.descriptor_organization" number="3.1" targetptr="ugr.ref.async.deploy.descriptor_organization"><ttl>Descriptor Organization</ttl><xreftext>Section 3.1, âDescriptor Organizationâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor" number="3.2" targetptr="ugr.ref.async.deploy.descriptor"><ttl>Deployment Descriptor</ttl><xreftext>Section 3.2, âDeployment Descriptorâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.caspool" number="3.3" targetptr="ugr.ref
.async.deploy.descriptor.caspool"><ttl>CAS Pool</ttl><xreftext>Section 3.3, âCAS Poolâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.service" number="3.4" targetptr="ugr.ref.async.deploy.descriptor.service"><ttl>Service</ttl><xreftext>Section 3.4, âServiceâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.custom" number="3.5" targetptr="ugr.ref.async.deploy.descriptor.custom"><ttl>Customizing the deployment</ttl><xreftext>Section 3.5, âCustomizing the deploymentâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.input_queue" number="3.6" targetptr="ugr.ref.async.deploy.descriptor.input_queue"><ttl>Input Queue</ttl><xreftext>Section 3.6, âInput Queueâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.top_descriptor" number="3.7" targetptr="ugr.ref.async.deploy.descriptor.top_descriptor"><ttl>Top level Analysis
Engine descriptor</ttl><xreftext>Section 3.7, âTop Level AE Descriptorâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.environment_variables" number="3.8" targetptr="ugr.ref.async.deploy.descriptor.environment_variables"><ttl>Setting Environment Variables</ttl><xreftext>Section 3.8, âSetting Environment Variablesâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.ae" number="3.9" targetptr="ugr.ref.async.deploy.descriptor.ae"><ttl>Analysis Engine</ttl><xreftext>Section 3.9, âAnalysis Engineâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.errorconfig" number="3.10" targetptr="ugr.ref.async.deploy.descriptor.errorconfig"><ttl>Error Configuration descriptors</ttl><xreftext>Section 3.10, âError Configuration descriptorsâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.errorconfig.defaults" number="3.11" targe
tptr="ugr.ref.async.deploy.descriptor.errorconfig.defaults"><ttl>Error Configuration defaults</ttl><xreftext>Section 3.11, âError Configuration defaultsâ</xreftext></div></div><div element="chapter" href="#ugr.ref.async.api" number="4" targetptr="ugr.ref.async.api"><ttl>Asynchronous Scaleout Application Interface</ttl><xreftext>Chapter 4, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Application Interface</i></xreftext><div element="section" href="#ugr.ref.async.api.organization" number="4.1" targetptr="ugr.ref.async.api.organization"><ttl>Asynchronous API Overview</ttl><xreftext>Section 4.1, âAsynchronous API Overviewâ</xreftext></div><div element="section" href="#ugr.ref.async.api.descriptor" number="4.2" targetptr="ugr.ref.async.api.descriptor"><ttl>The UimaAsynchronousEngine Interface</ttl><xreftext>Section 4.2, âThe UimaAsynchronousEngine Interfaceâ</xreftext></div><div element="section" href="#ugr.ref.asyn
c.context.map" number="4.3" targetptr="ugr.ref.async.context.map"><ttl>Application Context Map</ttl><xreftext>Section 4.3, âApplication Context Mapâ</xreftext></div><div element="section" href="#ugr.ref.async.callback.listener" number="4.4" targetptr="ugr.ref.async.callback.listener"><ttl>Status Callback Listener</ttl><xreftext>Section 4.4, âStatus Callback Listenerâ</xreftext></div><div element="section" href="#ugr.ref.async.error.status" number="4.5" targetptr="ugr.ref.async.error.status"><ttl>Error Results</ttl><xreftext>Section 4.5, âError Resultsâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage" number="4.6" targetptr="ugr.ref.async.api.usage"><ttl>Asynchronous API Usage Scenarios</ttl><xreftext>Section 4.6, âAsynchronous API Usage Scenariosâ</xreftext><div element="section" href="#ugr.ref.async.api.usage_initialize" number="4.6.1" targetptr="ugr.ref.async.api.usage_initialize"><ttl>Instantiating
a Client API Object</ttl><xreftext>Section 4.6.1, âInstantiating a Client API Objectâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_callservice" number="4.6.2" targetptr="ugr.ref.async.api.usage_callservice"><ttl>Calling an Existing Service</ttl><xreftext>Section 4.6.2, âCalling an Existing Serviceâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_getresults" number="4.6.3" targetptr="ugr.ref.async.api.usage_getresults"><ttl>Retrieving Asynchronous Results</ttl><xreftext>Section 4.6.3, âRetrieving Asynchronous Resultsâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_deployservice" number="4.6.4" targetptr="ugr.ref.async.api.usage_deployservice"><ttl>Deploying a Service with the Client API</ttl><xreftext>Section 4.6.4, âDeploying a Service with the Client APIâ</xreftext></div></div><div element="section" href="#ugr.ref.async.api.usage_undeployservice" number=
"4.7" targetptr="ugr.ref.async.api.usage_undeployservice"><ttl>Undeploying a Service with the Client API</ttl><xreftext>Section 4.7, âUndeploying a Service with the Client APIâ</xreftext></div><div element="section" href="#ugr.ref.async.api.sample.code" number="4.8" targetptr="ugr.ref.async.api.sample.code"><ttl>Sample Code</ttl><xreftext>Section 4.8, âSample Codeâ</xreftext></div></div><div element="chapter" href="#ugr.async.mt" number="5" targetptr="ugr.async.mt"><ttl>Monitoring and Tuning</ttl><xreftext>Chapter 5, <i xmlns:xlink="http://www.w3.org/1999/xlink">Monitoring and Tuning</i></xreftext><div element="section" href="#ugr.async.mt.monitoring" number="5.1" targetptr="ugr.async.mt.monitoring"><ttl>Monitoring</ttl><xreftext>Section 5.1, âMonitoringâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring" number="5.1.1" targetptr="ugr.async.mt.jmx_monitoring"><ttl>JMX Information from UIMA AS</ttl><xreftext>Section�
� 5.1.1, âJMX Information from UIMA ASâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.service" number="5.1.1.1" targetptr="ugr.async.mt.jmx_monitoring.service"><ttl>UIMA AS Services JMX measures</ttl><xreftext>Section 5.1.1.1, âUIMA AS Services JMX measuresâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.constant.service" number="" targetptr="ugr.async.mt.jmx_monitoring.constant.service"><ttl>Service information</ttl><xreftext>the section called âService informationâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.performance" number="" targetptr="ugr.async.mt.jmx_monitoring.service.performance"><ttl>Service Performance Measurements</ttl><xreftext>the section called âService Performance Measurementsâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.internal.queues" number="" targetptr="ugr.async.mt.jmx_monitoring.service.in
ternal.queues"><ttl>Co-located Service Queues</ttl><xreftext>the section called âCo-located Service Queuesâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.error" number="" targetptr="ugr.async.mt.jmx_monitoring.service.error"><ttl>Service Error Measurements</ttl><xreftext>the section called âService Error Measurementsâ</xreftext></div></div><div element="section" href="#ugr.async.mt.jmx_monitoring.client" number="5.1.1.2" targetptr="ugr.async.mt.jmx_monitoring.client"><ttl>Application Client information</ttl><xreftext>Section 5.1.1.2, âApplication Client informationâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.client.measures" number="" targetptr="ugr.async.mt.jmx_monitoring.client.measures"><ttl/><xreftext>the section called ââ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.client.error" number="" targetptr="ugr.async.mt.jmx_monitoring.client.erro
r"><ttl>Client Error Measurements</ttl><xreftext>the section called âClient Error Measurementsâ</xreftext></div></div></div><div element="section" href="#ugr.async.mt.jmx_sampling" number="5.1.2" targetptr="ugr.async.mt.jmx_sampling"><ttl>Logging Sampled JMX information at intervals</ttl><xreftext>Section 5.1.2, âLogging Sampled JMX information at intervalsâ</xreftext><div element="section" href="#ugr.async.mt.jmx_sampling.configuring" number="5.1.2.1" targetptr="ugr.async.mt.jmx_sampling.configuring"><ttl>Configuring JVM to run the monitor</ttl><xreftext>Section 5.1.2.1, âConfiguring JVM to run the monitorâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_sampling.standalone" number="5.1.2.2" targetptr="ugr.async.mt.jmx_sampling.standalone"><ttl>Running the Monitor program standalone</ttl><xreftext>Section 5.1.2.2, âRunning the Monitor program standaloneâ</xreftext></div><div element="section" href="#ugr.async.m
t.jmx_sampling.output" number="5.1.2.3" targetptr="ugr.async.mt.jmx_sampling.output"><ttl>Monitoring output</ttl><xreftext>Section 5.1.2.3, âMonitoring outputâ</xreftext></div></div></div><div element="section" href="#ugr.async.mt.tuning" number="5.2" targetptr="ugr.async.mt.tuning"><ttl>Tuning</ttl><xreftext>Section 5.2, âTuningâ</xreftext><div element="section" href="#ugr.async.mt.tuning.approach" number="5.2.1" targetptr="ugr.async.mt.tuning.approach"><ttl>Tuning procedure</ttl><xreftext>Section 5.2.1, âTuning procedureâ</xreftext></div><div element="section" href="#ugr.async.mt.tuning.settings" number="5.2.2" targetptr="ugr.async.mt.tuning.settings"><ttl>Tuning Settings</ttl><xreftext>Section 5.2.2, âTuning Settingsâ</xreftext></div></div><div element="section" href="#ugr.async.mt.limits" number="5.3" targetptr="ugr.async.mt.limits"><ttl>Limitations</ttl><xreftext>Section 5.3, âLimitationsâ</xreftext></div>
</div><div element="chapter" href="#ugr.async.camel.driver" number="6" targetptr="ugr.async.camel.driver"><ttl>Asynchronous Scaleout Camel Driver</ttl><xreftext>Chapter 6, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Camel Driver</i></xreftext><div element="section" href="#ugr.async.camel.driver.component.overview" number="6.1" targetptr="ugr.async.camel.driver.component.overview"><ttl>Overview</ttl><xreftext>Section 6.1, âOverviewâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.component" number="6.2" targetptr="ugr.async.camel.driver.component"><ttl>How does it work?</ttl><xreftext>Section 6.2, âHow does it work?â</xreftext></div><div element="section" href="#ugr.async.camel.driver.uri.format" number="6.3" targetptr="ugr.async.camel.driver.uri.format"><ttl>URI Format</ttl><xreftext>Section 6.3, âURI Formatâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.sample" numb
er="6.4" targetptr="ugr.async.camel.driver.sample"><ttl>Sample</ttl><xreftext>Section 6.4, âSampleâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.implementation" number="6.5" targetptr="ugr.async.camel.driver.implementation"><ttl>Implementation</ttl><xreftext>Section 6.5, âImplementationâ</xreftext></div></div></div>
\ No newline at end of file
+<div element="book" href="#d0e2" number="" lang="en"><ttl>UIMA Asynchronous Scaleout</ttl><xreftext>UIMA Asynchronous Scaleout</xreftext><div element="chapter" href="#ugr.async.ov" number="1" targetptr="ugr.async.ov"><ttl>Overview - Asynchronous Scaleout</ttl><xreftext>Chapter 1, <i xmlns:xlink="http://www.w3.org/1999/xlink">Overview - Asynchronous Scaleout</i></xreftext><div element="section" href="#ugr.async.ov.terminology" number="1.1" targetptr="ugr.async.ov.terminology"><ttl>Terminology</ttl><xreftext>Section 1.1, âTerminologyâ</xreftext></div><div element="section" href="#ugr.async.ov.as_vs_cpm" number="1.2" targetptr="ugr.async.ov.as_vs_cpm"><ttl>AS versus CPM</ttl><xreftext>Section 1.2, âAS versus CPMâ</xreftext></div><div element="section" href="#ugr.async.ov.design_goals" number="1.3" targetptr="ugr.async.ov.design_goals"><ttl>Design goals for Asynchronous Scaleout</ttl><xreftext>Section 1.3, âDesign goals for Asynchronous Scale
outâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts" number="1.4" targetptr="ugr.async.ov.concepts"><ttl>AS Concepts</ttl><xreftext>Section 1.4, âAS Conceptsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.threading" number="1.4.1" targetptr="ugr.async.ov.concepts.threading"><ttl>User written components and multi-threading</ttl><xreftext>Section 1.4.1, âThreadingâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.wrapping" number="1.4.2" targetptr="ugr.async.ov.concepts.wrapping"><ttl>AS Component wrapping</ttl><xreftext>Section 1.4.2, âAS Component wrappingâ</xreftext><obj element="figure" href="#ugr.async.ov.fig.wrapAE" number="1.1" targetptr="ugr.async.ov.fig.wrapAE"><ttl>AS Primitive Wrapper</ttl><xreftext>Figure 1.1, âAS Primitive Wrapperâ</xreftext></obj><obj element="figure" href="#ugr.async.ov.fig.wrapAAE" number="1.2" targetptr="ugr.async.ov.fig.wrapAAE"><t
tl>AS Aggregate wrapper</ttl><xreftext>Figure 1.2, âAS Aggregate wrapperâ</xreftext></obj></div><div element="section" href="#ugr.async.ov.concepts.deploying" number="1.4.3" targetptr="ugr.async.ov.concepts.deploying"><ttl>Deployment alternatives</ttl><xreftext>Section 1.4.3, âDeployment alternativesâ</xreftext><div element="section" href="#ugr.async.ov.concepts.deploying.multiples" number="1.4.3.1" targetptr="ugr.async.ov.concepts.deploying.multiples"><ttl>Configuring multiple instances of components</ttl><xreftext>Section 1.4.3.1, âMultiple Instancesâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.deploying.queues" number="1.4.3.2" targetptr="ugr.async.ov.concepts.deploying.queues"><ttl>Queues</ttl><xreftext>Section 1.4.3.2, âQueuesâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.deployment_descriptors" number="1.4.3.3" targetptr="ugr.async.ov.concepts.deployment_descriptors"><ttl
>Deployment Descriptors</ttl><xreftext>Section 1.4.3.3, âDeployment Descriptorsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.deployment_descriptors.aggregate" number="" targetptr="ugr.async.ov.concepts.deployment_descriptors.aggregate"><ttl>Deploying UIMA aggregates</ttl><xreftext>the section called âDeploying UIMA aggregatesâ</xreftext></div></div></div><div element="section" href="#ugr.async.ov.concepts.first_limits" number="1.4.4" targetptr="ugr.async.ov.concepts.first_limits"><ttl>Current design limitations</ttl><xreftext>Section 1.4.4, âLimitsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.first_limits.sofa_mapping" number="1.4.4.1" targetptr="ugr.async.ov.concepts.first_limits.sofa_mapping"><ttl>Sofa Mapping limits</ttl><xreftext>Section 1.4.4.1, âSofa Mapping limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.parameter_overriding" number="1.4.4.2" t
argetptr="ugr.async.ov.concepts.first_limits.parameter_overriding"><ttl>Parameter Overriding limits</ttl><xreftext>Section 1.4.4.2, âParameter Overriding limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.resource_sharing" number="1.4.4.3" targetptr="ugr.async.ov.concepts.first_limits.resource_sharing"><ttl>Resource Sharing limits</ttl><xreftext>Section 1.4.4.3, âResource Sharing limitsâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.first_limits.service_descriptors" number="1.4.4.4" targetptr="ugr.async.ov.concepts.first_limits.service_descriptors"><ttl>Use of service descriptors inside AS Aggregates</ttl><xreftext>Section 1.4.4.4, âUse of service descriptors inside AS Aggregatesâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.first_limits.compatibility" number="1.4.5" targetptr="ugr.async.ov.concepts.first_limits.compatibility"><ttl>Compatibility wit
h earlier version of remoting and scaleout</ttl><xreftext>Section 1.4.5, âCompatibilityâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.application" number="1.5" targetptr="ugr.async.ov.concepts.application"><ttl>Application Concepts</ttl><xreftext>Section 1.5, âApplication Conceptsâ</xreftext><div element="section" href="#ugr.async.ov.concepts.application.api" number="1.5.1" targetptr="ugr.async.ov.concepts.application.api"><ttl>Application API</ttl><xreftext>Section 1.5.1, âApplication APIâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.collection_process_complete" number="1.5.2" targetptr="ugr.async.ov.concepts.collection_process_complete"><ttl>Collection Process Complete</ttl><xreftext>Section 1.5.2, âCollection Process Completeâ</xreftext></div></div><div element="section" href="#ugr.async.ov.concepts.mc" number="1.6" targetptr="ugr.async.ov.concepts.mc"><ttl>Monitoring a
nd Controlling an AS application</ttl><xreftext>Section 1.6, âMonitoring & Controllingâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.jms_descriptor" number="1.7" targetptr="ugr.async.ov.concepts.jms_descriptor"><ttl>JMS Service Descriptor</ttl><xreftext>Section 1.7, âJMS Service Descriptorâ</xreftext></div><div element="section" href="#ugr.async.ov.concepts.lifecycle" number="1.8" targetptr="ugr.async.ov.concepts.lifecycle"><ttl>Life cycle</ttl><xreftext>Section 1.8, âLife cycleâ</xreftext></div></div><div element="chapter" href="#ugr.async.eh" number="2" targetptr="ugr.async.eh"><ttl>Error Handling for Asynchronous Scaleout</ttl><xreftext>Chapter 2, <i xmlns:xlink="http://www.w3.org/1999/xlink">Error Handling for Asynchronous Scaleout</i></xreftext><div element="section" href="#ugr.async.eh.basic" number="2.1" targetptr="ugr.async.eh.basic"><ttl>Basic concepts</ttl><xreftext>Section 2.1, âBasic con
ceptsâ</xreftext></div><div element="section" href="#ugr.async.eh.incoming_commands" number="2.2" targetptr="ugr.async.eh.incoming_commands"><ttl>Associating Errors with incoming commands</ttl><xreftext>Section 2.2, âAssociating Errors with incoming commandsâ</xreftext><div element="section" href="#ugr.asynch.eh.cas_multipliers" number="2.2.1" targetptr="ugr.asynch.eh.cas_multipliers"><ttl>Error handling for CASes generated in an Aggregate by CAS Multipliers</ttl><xreftext>Section 2.2.1, âError handling - CAS Multipliersâ</xreftext></div></div><div element="section" href="#ugr.async.eh.error_handling_overview" number="2.3" targetptr="ugr.async.eh.error_handling_overview"><ttl>Error handling overview</ttl><xreftext>Section 2.3, âError handling overviewâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.basic_eh_chain" number="2.1" targetptr="ugr.async.eh.fig.basic_eh_chain"><ttl>Basic error handling chain for AS Aggregates for
errors from delegates</ttl><xreftext>Figure 2.1, âBasic error handling chain for AS Aggregates for errors from delegatesâ</xreftext></obj><obj element="figure" href="#ugr.async.eh.fig.basic_eh_chain_prim" number="2.2" targetptr="ugr.async.eh.fig.basic_eh_chain_prim"><ttl>Basic error handling chain for AS Primitives</ttl><xreftext>Figure 2.2, âBasic error handling chain for AS Primitivesâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.error_results" number="2.4" targetptr="ugr.async.eh.error_results"><ttl>Error results</ttl><xreftext>Section 2.4, âError resultsâ</xreftext></div><div element="section" href="#ugr.async.eh.aggregate_managed" number="2.5" targetptr="ugr.async.eh.aggregate_managed"><ttl>Error Recovery actions</ttl><xreftext>Section 2.5, âError Recovery actionsâ</xreftext><div element="section" href="#ugr.async.eh.aggregate_managed.actions" number="2.5.1" targetptr="ugr.async.eh.aggregate_manage
d.actions"><ttl>Aggregate Error Actions</ttl><xreftext>Section 2.5.1, âAggregate Error Actionsâ</xreftext><div element="section" href="#ugr.async.eh.aggregate_managed.actions.retry" number="2.5.1.1" targetptr="ugr.async.eh.aggregate_managed.actions.retry"><ttl>Retry</ttl><xreftext>Section 2.5.1.1, âRetryâ</xreftext></div><div element="section" href="#ugr.async.eh.aggregate_disable" number="2.5.1.2" targetptr="ugr.async.eh.aggregate_disable"><ttl>Disable Action</ttl><xreftext>Section 2.5.1.2, âDisable Actionâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.disable" number="2.3" targetptr="ugr.async.eh.fig.disable"><ttl>Disable action</ttl><xreftext>Figure 2.3, âDisable actionâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.aggregate_managed.actions.continue" number="2.5.1.3" targetptr="ugr.async.eh.aggregate_managed.actions.continue"><ttl>Continue Option on Delegate Process CAS Failures</ttl><xrefte
xt>Section 2.5.1.3, âContinue Option on Delegate Process CAS Failuresâ</xreftext></div></div></div><div element="section" href="#ugr.async.eh.errors_passed_up.thresholds" number="2.6" targetptr="ugr.async.eh.errors_passed_up.thresholds"><ttl>Thresholds for Terminate and Disable</ttl><xreftext>Section 2.6, âThresholds for Terminate and Disableâ</xreftext></div><div element="section" href="#ugr.async.eh.terminate" number="2.7" targetptr="ugr.async.eh.terminate"><ttl>Terminate Action</ttl><xreftext>Section 2.7, âTerminate Actionâ</xreftext><obj element="figure" href="#ugr.async.eh.fig.terminate" number="2.4" targetptr="ugr.async.eh.fig.terminate"><ttl>Terminate action</ttl><xreftext>Figure 2.4, âTerminate actionâ</xreftext></obj></div><div element="section" href="#ugr.async.eh.commands_allowed_actions" number="2.8" targetptr="ugr.async.eh.commands_allowed_actions"><ttl>Commands and allowed actions</ttl><xreftext>Section 2.8
, âCommands and allowed actionsâ</xreftext><obj element="table" href="#ugr.async.eh.table.error_actions_by_command" number="2.1" targetptr="ugr.async.eh.table.error_actions_by_command"><ttl>Error actions by command type</ttl><xreftext>Table 2.1, âError actions by command typeâ</xreftext></obj></div></div><div element="chapter" href="#ugr.ref.async.deploy" number="3" targetptr="ugr.ref.async.deploy"><ttl>Asynchronous Scaleout Deployment Descriptor</ttl><xreftext>Chapter 3, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Deployment Descriptor</i></xreftext><div element="section" href="#ugr.ref.async.deploy.descriptor_organization" number="3.1" targetptr="ugr.ref.async.deploy.descriptor_organization"><ttl>Descriptor Organization</ttl><xreftext>Section 3.1, âDescriptor Organizationâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor" number="3.2" targetptr="ugr.ref.async.deploy.descriptor"><ttl
>Deployment Descriptor</ttl><xreftext>Section 3.2, âDeployment Descriptorâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.caspool" number="3.3" targetptr="ugr.ref.async.deploy.descriptor.caspool"><ttl>CAS Pool</ttl><xreftext>Section 3.3, âCAS Poolâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.service" number="3.4" targetptr="ugr.ref.async.deploy.descriptor.service"><ttl>Service</ttl><xreftext>Section 3.4, âServiceâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.custom" number="3.5" targetptr="ugr.ref.async.deploy.descriptor.custom"><ttl>Customizing the deployment</ttl><xreftext>Section 3.5, âCustomizing the deploymentâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.input_queue" number="3.6" targetptr="ugr.ref.async.deploy.descriptor.input_queue"><ttl>Input Queue</ttl><xreftext>Section 3.6, âI
nput Queueâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.top_descriptor" number="3.7" targetptr="ugr.ref.async.deploy.descriptor.top_descriptor"><ttl>Top level Analysis Engine descriptor</ttl><xreftext>Section 3.7, âTop Level AE Descriptorâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.environment_variables" number="3.8" targetptr="ugr.ref.async.deploy.descriptor.environment_variables"><ttl>Setting Environment Variables</ttl><xreftext>Section 3.8, âSetting Environment Variablesâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.ae" number="3.9" targetptr="ugr.ref.async.deploy.descriptor.ae"><ttl>Analysis Engine</ttl><xreftext>Section 3.9, âAnalysis Engineâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.errorconfig" number="3.10" targetptr="ugr.ref.async.deploy.descriptor.errorconfig"><ttl>Error Configuration d
escriptors</ttl><xreftext>Section 3.10, âError Configuration descriptorsâ</xreftext></div><div element="section" href="#ugr.ref.async.deploy.descriptor.errorconfig.defaults" number="3.11" targetptr="ugr.ref.async.deploy.descriptor.errorconfig.defaults"><ttl>Error Configuration defaults</ttl><xreftext>Section 3.11, âError Configuration defaultsâ</xreftext></div></div><div element="chapter" href="#ugr.ref.async.api" number="4" targetptr="ugr.ref.async.api"><ttl>Asynchronous Scaleout Application Interface</ttl><xreftext>Chapter 4, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Application Interface</i></xreftext><div element="section" href="#ugr.ref.async.api.organization" number="4.1" targetptr="ugr.ref.async.api.organization"><ttl>Asynchronous Client API Overview</ttl><xreftext>Section 4.1, âAsync Client APIâ</xreftext></div><div element="section" href="#ugr.ref.async.api.descriptor" number="4.2" targetptr="ugr.re
f.async.api.descriptor"><ttl>The UimaAsynchronousEngine Interface</ttl><xreftext>Section 4.2, âThe UimaAsynchronousEngine Interfaceâ</xreftext></div><div element="section" href="#ugr.ref.async.context.map" number="4.3" targetptr="ugr.ref.async.context.map"><ttl>Application Context Map</ttl><xreftext>Section 4.3, âApplication Context Mapâ</xreftext></div><div element="section" href="#ugr.ref.async.callback.listener" number="4.4" targetptr="ugr.ref.async.callback.listener"><ttl>Status Callback Listener</ttl><xreftext>Section 4.4, âStatus Callback Listenerâ</xreftext></div><div element="section" href="#ugr.ref.async.error.status" number="4.5" targetptr="ugr.ref.async.error.status"><ttl>Error Results</ttl><xreftext>Section 4.5, âError Resultsâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage" number="4.6" targetptr="ugr.ref.async.api.usage"><ttl>Asynchronous Client API Usage Scenarios</ttl><xreftext>Section
 4.6, âAsynchronous Client API Usage Scenariosâ</xreftext><div element="section" href="#ugr.ref.async.api.usage_initialize" number="4.6.1" targetptr="ugr.ref.async.api.usage_initialize"><ttl>Instantiating a Client API Object</ttl><xreftext>Section 4.6.1, âInstantiating a Client API Objectâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_callservice" number="4.6.2" targetptr="ugr.ref.async.api.usage_callservice"><ttl>Calling an Existing Service</ttl><xreftext>Section 4.6.2, âCalling an Existing Serviceâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_getresults" number="4.6.3" targetptr="ugr.ref.async.api.usage_getresults"><ttl>Retrieving Asynchronous Results</ttl><xreftext>Section 4.6.3, âRetrieving Asynchronous Resultsâ</xreftext></div><div element="section" href="#ugr.ref.async.api.usage_deployservice" number="4.6.4" targetptr="ugr.ref.async.api.usage_deployservice"><ttl>Deployi
ng a Service with the Client API</ttl><xreftext>Section 4.6.4, âDeploying a Service with the Client APIâ</xreftext></div></div><div element="section" href="#ugr.ref.async.api.usage_undeployservice" number="4.7" targetptr="ugr.ref.async.api.usage_undeployservice"><ttl>Undeploying a Service with the Client API</ttl><xreftext>Section 4.7, âUndeploying a Service with the Client APIâ</xreftext></div><div element="section" href="#ugr.ref.async.api.sample.code" number="4.8" targetptr="ugr.ref.async.api.sample.code"><ttl>Sample Code</ttl><xreftext>Section 4.8, âSample Codeâ</xreftext></div></div><div element="chapter" href="#ugr.async.mt" number="5" targetptr="ugr.async.mt"><ttl>Monitoring and Tuning</ttl><xreftext>Chapter 5, <i xmlns:xlink="http://www.w3.org/1999/xlink">Monitoring and Tuning</i></xreftext><div element="section" href="#ugr.async.mt.monitoring" number="5.1" targetptr="ugr.async.mt.monitoring"><ttl>Monitoring</ttl><xreftext>Se
ction 5.1, âMonitoringâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring" number="5.1.1" targetptr="ugr.async.mt.jmx_monitoring"><ttl>JMX Information from UIMA AS</ttl><xreftext>Section 5.1.1, âJMX Information from UIMA ASâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.service" number="5.1.1.1" targetptr="ugr.async.mt.jmx_monitoring.service"><ttl>UIMA AS Services JMX measures</ttl><xreftext>Section 5.1.1.1, âUIMA AS Services JMX measuresâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.constant.service" number="" targetptr="ugr.async.mt.jmx_monitoring.constant.service"><ttl>Service information</ttl><xreftext>the section called âService informationâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.performance" number="" targetptr="ugr.async.mt.jmx_monitoring.service.performance"><ttl>Service Performance Measurements</ttl><xreftext>the
section called âService Performance Measurementsâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.internal.queues" number="" targetptr="ugr.async.mt.jmx_monitoring.service.internal.queues"><ttl>Co-located Service Queues</ttl><xreftext>the section called âCo-located Service Queuesâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.service.error" number="" targetptr="ugr.async.mt.jmx_monitoring.service.error"><ttl>Service Error Measurements</ttl><xreftext>the section called âService Error Measurementsâ</xreftext></div></div><div element="section" href="#ugr.async.mt.jmx_monitoring.client" number="5.1.1.2" targetptr="ugr.async.mt.jmx_monitoring.client"><ttl>Application Client information</ttl><xreftext>Section 5.1.1.2, âApplication Client informationâ</xreftext><div element="section" href="#ugr.async.mt.jmx_monitoring.client.measures" number="" targetptr="ugr.async.mt.jmx_monito
ring.client.measures"><ttl/><xreftext>the section called ââ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_monitoring.client.error" number="" targetptr="ugr.async.mt.jmx_monitoring.client.error"><ttl>Client Error Measurements</ttl><xreftext>the section called âClient Error Measurementsâ</xreftext></div></div></div><div element="section" href="#ugr.async.mt.jmx_sampling" number="5.1.2" targetptr="ugr.async.mt.jmx_sampling"><ttl>Logging Sampled JMX information at intervals</ttl><xreftext>Section 5.1.2, âLogging Sampled JMX information at intervalsâ</xreftext><div element="section" href="#ugr.async.mt.jmx_sampling.configuring" number="5.1.2.1" targetptr="ugr.async.mt.jmx_sampling.configuring"><ttl>Configuring JVM to run the monitor</ttl><xreftext>Section 5.1.2.1, âConfiguring JVM to run the monitorâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_sampling.standalone" number="5.1.2.2" targetptr="ugr.asy
nc.mt.jmx_sampling.standalone"><ttl>Running the Monitor program standalone</ttl><xreftext>Section 5.1.2.2, âRunning the Monitor program standaloneâ</xreftext></div><div element="section" href="#ugr.async.mt.jmx_sampling.output" number="5.1.2.3" targetptr="ugr.async.mt.jmx_sampling.output"><ttl>Monitoring output</ttl><xreftext>Section 5.1.2.3, âMonitoring outputâ</xreftext></div></div></div><div element="section" href="#ugr.async.mt.tuning" number="5.2" targetptr="ugr.async.mt.tuning"><ttl>Tuning</ttl><xreftext>Section 5.2, âTuningâ</xreftext><div element="section" href="#ugr.async.mt.tuning.approach" number="5.2.1" targetptr="ugr.async.mt.tuning.approach"><ttl>Tuning procedure</ttl><xreftext>Section 5.2.1, âTuning procedureâ</xreftext></div><div element="section" href="#ugr.async.mt.tuning.settings" number="5.2.2" targetptr="ugr.async.mt.tuning.settings"><ttl>Tuning Settings</ttl><xreftext>Section 5.2.2, âTuning Set
tingsâ</xreftext></div></div><div element="section" href="#ugr.async.mt.limits" number="5.3" targetptr="ugr.async.mt.limits"><ttl>Limitations</ttl><xreftext>Section 5.3, âLimitationsâ</xreftext></div></div><div element="chapter" href="#ugr.async.camel.driver" number="6" targetptr="ugr.async.camel.driver"><ttl>Asynchronous Scaleout Camel Driver</ttl><xreftext>Chapter 6, <i xmlns:xlink="http://www.w3.org/1999/xlink">Asynchronous Scaleout Camel Driver</i></xreftext><div element="section" href="#ugr.async.camel.driver.component.overview" number="6.1" targetptr="ugr.async.camel.driver.component.overview"><ttl>Overview</ttl><xreftext>Section 6.1, âOverviewâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.component" number="6.2" targetptr="ugr.async.camel.driver.component"><ttl>How does it work?</ttl><xreftext>Section 6.2, âHow does it work?â</xreftext></div><div element="section" href="#ugr.async.camel.driver.uri.
format" number="6.3" targetptr="ugr.async.camel.driver.uri.format"><ttl>URI Format</ttl><xreftext>Section 6.3, âURI Formatâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.sample" number="6.4" targetptr="ugr.async.camel.driver.sample"><ttl>Sample</ttl><xreftext>Section 6.4, âSampleâ</xreftext></div><div element="section" href="#ugr.async.camel.driver.implementation" number="6.5" targetptr="ugr.async.camel.driver.implementation"><ttl>Implementation</ttl><xreftext>Section 6.5, âImplementationâ</xreftext></div></div></div>
\ No newline at end of file