When trying to scale Uima aggregate with a Cas Multiplier in the same JVM, the code fails with the following:
method CasManager.defineCasPool() was called twice by the same Analysis
This is due to the fact that the CasManager creates a single CAS pool for any given Cas Multiplier, no matter how many instances of it are created. The first instance of a particular CM creates a CAS Pool and the pool is associated with that instance using a CM's qualified name obtained from the component's uima context. The second instance of the same CM fails, since its trying to create another CAS pool with the same qualified name as the first instance.
Create and assign a unique name in the Uima context for each instance of a component. Use the unique name when calling defineCasPool() so that every instance of the CM component creates its own CAS pool.