Hi Eddie, I am new to UIMA so I might have to reread the documentation. I was under the impression that I can use multiple threads as long as I use a cas pool and a multi threaded AE. This is described here:
http://uima.apache.org/d/uimaj-2.4.0/tutorials_and_users_guides.html#ugr.tug.applications.multi_threaded Did I misunderstand this part of the documentation? In my case I am running Core UIMA and I would benefit from multitasking. (many of my annotators have a lot of idle time waiting for responses from remote servers) This is my first time using UIMA and I have spent too much time trying to persist the annotations in a database because I am frequently changing my type system and experimenting with various analysis approaches. Keeping the schema and INSERT statements in synch with the type system was time consuming and error prone. I would like to automate the persistence of the annotations based on the current type system if possible. I was looking at Liquibase as an API that could be used during the initialization of my pipelines to update the database schema and then write a generic JDBC based annotator to write/insert the cas to the database. Any thoughts? Best, Shahim On Tue, May 1, 2012 at 10:54 AM, Eddie Epstein <[email protected]> wrote: > Core UIMA is a single-threaded framework. There are two multi-threaded > deployment wrappers, UIMA-AS and the older CPE. Are you using one of > these wrappers? > > Eddie > > > > On Mon, Apr 30, 2012 at 2:01 PM, Shahim Essaid <[email protected]> wrote: >> Hi All, >> >> I am trying to write a primitive analysis engine that checks, and >> creates or updates a database schema based on the type system. I need >> to synchronize the initialization of this component so that only one >> instance of the component will do this task when there are multiple >> instances being instantiated. >> >> What is the correct object to synchronize on? Is the type system >> object the correct one and does it maintain its identity throughout a >> JVM run? Is it a different object in the other aggregates even though >> they use the same type system description? >> >> I need to block all other threads in the other instances of the >> current component until the database is updated. I also need this >> object to be specific to the current aggregate so that other >> aggregates running in the same JVM can have their own synchronization >> objects and database updates independent of each other. In other >> words, I can't use a JVM wide object. >> >> Thank you, >> Shahim
