Hi Sarah, Sorry it didn't solve your issue. Do all resources get reloaded or just specific ones ? DKPro's components usually perform a check on the JCas typesystem and reload the resource if the TS changed. This happen as a prolog in every call to process(). Thus if the components "feels" that the typesystem has changed for some reason, this will trigger a reload of the corresponding resource. Do you use standard DKPro resource management (through language/variant) or use an explicit location for your resource (PARAM_RESOURCE_LOCATION, ...) ?
Best, Hugues de Mazancourt P: 06.72.78.70.33 (tel:06.72.78.70.33) W: http://www.mazancourt.com On févr. 19 2019, at 3:25 pm, Sarah <[email protected]> wrote: > Hi all, > > Thanks for the advice! > I have created a JCasPool with - for now - only one JCas instance. I run my > analysis engines on it, use the results, reset the JCas and release it back > into the pool. Then I start the same process on the same JCas. > However, the resources still get produced every single time I call “process” > on my aggregate engine. I assumed that the resource management would be taken > care of during JCas creation. But that is not the case. > > Does anyone know where exactly the “initialize” method of JCasAnnotator is > called? > Sarah > > On 18. Feb 2019, at 17:04, Marshall Schor <[email protected]> wrote: > > Hi Sarah, > > I don't have knowledge of DKPro or Spring, but here's some general guidance, > > which may (or may not) be of use :-). > > > > External Resources are associated with a Resource Manager instance. > > Try figuring out how to have one Resource Manager instance be reused for > > multiple JCas instances. > > > > Also, try to not have multiple JCas instances, beyond what you need to keep > > all > > the cpu "cores" in your host busy. > > Instead of one new JCas instance per piece of work, reusing existing > > instances, > > by calling myJCasInstance.reset() and then using it again. > > > > Hopefully others with specific knowledge may comment also. > > -Marshall > > On 2/18/2019 6:48 AM, Sarah wrote: > > > Hi, > > > > > > I am using uimafit annotators in a spring component. These annotators use > > > external resources. These resources are currently produced for every JCas > > > even though the Aggregate Engine is created inside of the Spring > > > component's init and merely the process method is called on the > > > individual JCas objects. This slows my system down. > > > How do I handle external resources appropriately in a spring component. I > > > found the SpringContextResourceManager but I don’t know how to use it. > > > Can you point me to an example where e.g. the DKPro CoreNLP Annotators > > > are used in a spring context? > > > > > > All the best, > > > Sarah > > > >
