I am running Uima-AS 2.6.0. Please have a look on logs:

Feb 23, 2015 9:37:44 AM org.apache.uima.adapter.jms.service.UIMA_Service 
initialize(67)
INFO: UIMA-AS version 2.6.0


On 02/20/2015 08:20 PM, Jaroslaw Cwiklik wrote:
Reshu, can you confirm if you are running UIMA-AS 2.6.0 or earlier. You can
look at the log for something similar to this:

+------------------------------------------------------------------
+ Service Name:Person Title Annotator
+ Service Queue Name:PersonTitleAnnotatorQueue
+ Service Start Time:20 Feb 2015 09:25:43
*+ UIMA AS Version:2.6.0
  <-----------------------------------------------------------------------*
+ UIMA Core Version:2.6.0
+ OS Name:Linux
+ OS Version:2.6.32-279.el6.x86_64
+ OS Architecture:amd64
+ OS CPU Count:4
+ JVM Vendor:IBM Corporation
+ JVM Name:IBM J9 VM
+ JVM Version:2.6

Jerry

On Thu, Feb 19, 2015 at 11:26 PM, reshu.agarwal <[email protected]>
wrote:

Dear Cwiklik,

There is only 2 seconds delay between the last log message and
org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl
quiesceAndStop.

Please have a look on the logs:

  Process Received a Message. Is Process target for message:true. Target
PID:22640

configFactory.stop() - stopped route:mina:tcp://localhost:
52449?transferExchange=true&sync=false

Feb 19, 2015 5:39:54 PM org.apache.uima.aae.controller.
PrimitiveAnalysisEngineController_impl quiesceAndStop
INFO: Stopping Controller: ducc.jd.queue.13202
Quiescing UIMA-AS Service. Remaining Number of CASes to Process:0
Feb 19, 2015 5:39:54 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow false
Feb 19, 2015 5:39:54 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2000 OR
Command=2002.
Feb 19, 2015 5:39:54 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow false
Feb 19, 2015 5:39:54 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2001.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2000 OR
Command=2002.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2001.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow false
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2000 OR
Command=2002.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow false
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2001.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2000 OR
Command=2002.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2001.
UIMA-AS Service is Stopping, All CASes Have Been Processed
Feb 19, 2015 5:39:56 PM org.apache.uima.aae.controller.
PrimitiveAnalysisEngineController_impl stop
INFO: Stopping Controller: ducc.jd.queue.13202
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2000 OR
Command=2002.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Stopping Service JMS Transport. Service: ducc.jd.queue.13202
ShutdownNow true
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsInputChannel
stopChannel
INFO: Controller: ducc.jd.queue.13202 Stopped Listener on Endpoint:
queue://ducc.jd.queue.13202 Selector:  Selector:Command=2001.
Feb 19, 2015 5:39:56 PM org.apache.uima.adapter.jms.activemq.JmsOutputChannel
stop
INFO: Controller: ducc.jd.queue.13202 Output Channel Shutdown Completed

Thanks Reshu.



On 02/20/2015 12:40 AM, Jaroslaw Cwiklik wrote:

One possible explanation for destroy() not getting called is that a
process
(JP) may be still working on a CAS when Ducc deallocates the process. Ducc
first asks the process to quiesce and stop and allows it 1 minute to
terminate on its own. If this does not happen, Ducc kills the process via
kill -9. In such case the process will be clobbered and destroy() methods
in UIMA-AS are not called.
There should be some evidence in JP logs at the very end. Look for
something like this:

  Process Received a Message. Is Process target for message:true.
Target PID:27520
configFactory.stop() - stopped
route:mina:tcp://localhost:49338?transferExchange=true&sync=false
01:56:22.735 - 94:
org.apache.uima.aae.controller.PrimitiveAnalysisEngineControl
ler_impl.quiesceAndStop:
INFO: Stopping Controller: ducc.jd.queue.226091
Quiescing UIMA-AS Service. Remaining Number of CASes to Process:0

Look at the timestamp of >>>>>>>>> Process Received a Message. Is Process
target for message:true.
and compare it to a timestamp of the last log message. Does it look like
there is a long delay?


Jerry

On Wed, Feb 18, 2015 at 2:03 AM, reshu.agarwal <[email protected]>
wrote:

  Dear Eddie,
This problem has been resolved by using destroy method in ducc version
1.0.0 but when I upgrade my ducc version from 1.0.0 to 1.1.0 DUCC didn't
call the destroy method.

It also do not call the stop method of CollectionReader as well as
finalize method of any java class as well as destroy/
collectionProcessComplete
method of cas consumer.

I want to close my connection to Database after completion of job as well
as want to use batch processing at cas consumer level like
PersonTitleDBWriterCasConsumer.

Thanks in advanced.

Reshu.




On 03/31/2014 04:14 PM, reshu.agarwal wrote:

  On 03/28/2014 05:28 PM, Eddie Epstein wrote:
  Another alternative would be to do the final flush in the Cas
consumer's
destroy method.

Another issue to be aware of, in order to balance resources between
jobs,
DUCC uses preemption of job processes scheduled in a "fair-share"
class.
This may not be acceptable for jobs which are doing incremental
commits.
The solution is to schedule the job in a non-preemptable class.


On Fri, Mar 28, 2014 at 1:22 AM, reshu.agarwal <
[email protected]

wrote:

   On 03/28/2014 01:28 AM, Eddie Epstein wrote:

   Hi Reshu,

The Job model in DUCC is for the Collection Reader to send "work item
CASes", where a work item represents a collection of work to be done
by a
Job Process. For example, a work item could be a file or a subset of
a
file
that contains many documents, where each document would be
individually
put
into a CAS by the Cas Multiplier in the Job Process.

DUCC is designed so that after processing the "mini-collection"
represented
by the work item,  the Cas Consumer should flush any data. This is
done by
routing the "work item CAS" to the Cas Consumer, after all work item
documents are completed, at which point the CC does the flush.

The sample code described in
http://uima.apache.org/d/uima-ducc-1.0.0/duccbook.html#x1-1380009
uses
the
work item CAS to flush data in exactly this way.

Note that the PersonTitleDBWriterCasConsumer is doing a flush (a
commit)
in
the process method after every 50 documents.

Regards
Eddie



On Thu, Mar 27, 2014 at 1:35 AM, reshu.agarwal <
[email protected]>
wrote:

    On 03/26/2014 11:34 PM, Eddie Epstein wrote:

     Hi Reshu,
  The collectionProcessingComplete() method in UIMA-AS has a
limitation: a
Collection Processing Complete request sent to the UIMA-AS Analysis
Service
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.

Since DUCC is using UIMA-AS to scale out the Job processes, it has
no
way
to deliver a CPC to all instances.

The applications we have been running on DUCC have used the Work
Item
CAS
as a signal to CAS consumers to do CPC level processing. That is
discussed
in the first reference above, in the paragraph "Flushing Cached
Data".

Eddie



On Wed, Mar 26, 2014 at 9:48 AM, reshu.agarwal <
[email protected]>
wrote:

     On 03/26/2014 06:43 PM, Eddie Epstein wrote:

      Are you using standard UIMA interface code to Solr? If so,
which

Cas

   Consumer?

Taking at quick look at the source code for SolrCASConsumer, the
batch
and
collection process complete methods appear to do nothing.

Thanks,
Eddie


On Wed, Mar 26, 2014 at 6:08 AM, reshu.agarwal <
[email protected]>
wrote:

      On 03/21/2014 11:42 AM, reshu.agarwal wrote:

       Hence we can not attempt batch processing in cas consumer
and
it

     increases our process timing. Is there any other option for
that or

  is
it a
bug in DUCC?

      Please reply on this problem as if I am sending document
in
solr
one by

    one by cas consumer without using batch process and
committing

  solr. It
is
not optimum way to use this. Why ducc is not calling collection
Process
Complete method of Cas Consumer? And If I want to do that then
What
is
the
way to do this?

I am not able to find any thing about this in DUCC book.

Thanks in Advanced.

--
Thanks,
Reshu Agarwal


      Hi Eddie,

    I am not using standard UIMA interface code to Solr. I
create my

  own Cas
   Consumer. I will take a look on that too. But the problem is
not

for
particularly to use solr, I can use any source to store my
output. I
want
to do batch processing and want to use collectionProcessComplete.
Why
DUCC
is not calling it? I check it with UIMA AS also and my cas
consumer
is
working fine with it and also performing batch processing.

--
Thanks,
Reshu Agarwal


     Hi Eddie,

   I am using cas consumer similar to apache uima example:

     "apache-uima/examples/src/org/apache/uima/examples/cpe/
PersonTitleDBWriterCasConsumer.java"

--
Thanks,
Reshu Agarwal


    Hi Eddie,

  You are right I know this fact. PersonTitleDBWriterCasConsumer is
doing a
flush (a commit) in the process method after every 50 documents and if
less
then 50 documents in cas it will do commit or flush by
collectionProcessComplete method. So, If it is not called then those
documents can not be committed. That is why I want ducc calls this
method.

--
Thanks,
Reshu Agarwal


   Hi,

Destroy method worked for me. It did the same what I wanted from
CollectionProcessComplete method.




Reply via email to