Expand my Community achievements bar.

SOLVED

where can configre index quartz job

Avatar

Level 4

Hi Guys,

Does any one know why our cq6.1(without sp1) instance always running this job at 04:00 am every day?

This Quartz Job is very consuming cpu. I printed this information by java Jstack tool as below.

Where can change the running time or where can configure it?

Thanks.

 

"pool-6-thread-3" #124 prio=5 os_prio=0 tid=0x00007f9a0c085800 nid=0x7951 runnable [0x00007f95df062000]
   java.lang.Thread.State: RUNNABLE
        at com.google.common.io.ByteStreams.read(ByteStreams.java:828)
        at com.google.common.io.ByteStreams.readFully(ByteStreams.java:695)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.loadBlob(OakDirectory.java:261)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.readBytes(OakDirectory.java:307)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.readBytes(OakDirectory.java:404)
        at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.readByte(OakDirectory.java:411)
        at org.apache.lucene.store.DataInput.readInt(DataInput.java:84)
        at org.apache.lucene.codecs.CodecUtil.checkHeader(CodecUtil.java:126)
        at org.apache.lucene.util.fst.FST.<init>(FST.java:318)
        at org.apache.lucene.util.fst.FST.<init>(FST.java:304)
        at org.apache.lucene.codecs.BlockTreeTermsReader$FieldReader.<init>(BlockTreeTermsReader.java:484)
        at org.apache.lucene.codecs.BlockTreeTermsReader.<init>(BlockTreeTermsReader.java:176)
        at org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat.fieldsProducer(Lucene41PostingsFormat.java:437)
        at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:116)
        at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:96)
        at org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:141)
        at org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:279)
        - locked <0x000000065f614798> (a org.apache.lucene.index.BufferedUpdatesStream)
        at org.apache.lucene.index.IndexWriter.applyAllDeletesAndUpdates(IndexWriter.java:3191)
        - eliminated <0x000000065f6147f0> (a org.apache.lucene.index.IndexWriter)
        at org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:3182)
        - locked <0x000000065f6147f0> (a org.apache.lucene.index.IndexWriter)
        at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3155)
        - locked <0x000000065f6147f0> (a org.apache.lucene.index.IndexWriter)
        at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3123)
        at org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:988)
        at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:932)
        - locked <0x000000065f614898> (a java.lang.Object)
        at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:894)
        at org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.closeWriter(LuceneIndexEditorContext.java:192)
        at org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.leave(LuceneIndexEditor.java:212)
        at org.apache.jackrabbit.oak.plugins.index.IndexUpdate.leave(IndexUpdate.java:221)
        at org.apache.jackrabbit.oak.spi.commit.VisibleEditor.leave(VisibleEditor.java:63)
        at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:56)
        at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.updateIndex(AsyncIndexUpdate.java:376)
        at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:318)
        - locked <0x00000004c2e36cc0> (a org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate)
        at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

1 Accepted Solution

Avatar

Correct answer by
Administrator

Hi

Adding to Tomar's answer, 

You can see some reference article to know about Scheduling with corn expression:

Link:- https://sling.apache.org/documentation/bundles/scheduler-service-commons-scheduler.html

//

Scheduling with a cron expression

To execute the job as defined above at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday, you can use the addJob() method with the following parameters:

String schedulingExpression = "0 15 10 ? * MON-FRI";this.scheduler.addJob("myJob", job, null, schedulingExpression, true);

Refer to http://www.docjar.com/docs/api/org/quartz/CronTrigger.html to define more scheduling expressions.

 

Link:- http://hashimkhan.in/aem-adobecq5-code-templates/scheduler/

// Talking about Scheduler.

 

I hope this would also help you.

Thanks and Regards

Kautuk Sahni



Kautuk Sahni

View solution in original post

9 Replies

Avatar

Level 9

Is this the QuartzScheduler you are looking for?.

org.apache.sling.commons.scheduler.impl.QuartzScheduler

You can find it in OSGI components (http://localhost:4502/system/console/components). 

--

Jitendra

Avatar

Correct answer by
Administrator

Hi

Adding to Tomar's answer, 

You can see some reference article to know about Scheduling with corn expression:

Link:- https://sling.apache.org/documentation/bundles/scheduler-service-commons-scheduler.html

//

Scheduling with a cron expression

To execute the job as defined above at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday, you can use the addJob() method with the following parameters:

String schedulingExpression = "0 15 10 ? * MON-FRI";this.scheduler.addJob("myJob", job, null, schedulingExpression, true);

Refer to http://www.docjar.com/docs/api/org/quartz/CronTrigger.html to define more scheduling expressions.

 

Link:- http://hashimkhan.in/aem-adobecq5-code-templates/scheduler/

// Talking about Scheduler.

 

I hope this would also help you.

Thanks and Regards

Kautuk Sahni



Kautuk Sahni

Avatar

Level 4

Thanks for your input.

Actually, I do not want to create cron job. I mean I would like to know where is the above job? Is it any possible to change it?

Why it always running at 04:00 am? This job is not created by me, it is already existing after cq installaction.

Best Regars.

Avatar

Level 4

Thanks for your input.

It looks there is no this job in /system/console/components. I can only see org.apache.sling.commons.scheduler.impl.QuartzScheduler in the components console, but can not change anything.
Best Regars.

Avatar

Level 9

Actually, it seems to me that the job which is running continuously is about Oak indexing. Are you using below AEM 6.1 version?. 

FYI : AEM 6.1 does not do indexing by default.

--

Jitendra

Avatar

Employee Advisor

Hi,

this is the AsyncIndexUpdate job, which is a job running every few seconds. It is a part of Oak, and you should not change it. Do you have a problem with this specific thread?

kind regards,
Jörg

Avatar

Level 4

Hi,

It has made my server cpu go up when the thread running and it looks always running at 04:00 am.

I don't want it consuming high usage of cpu.

Best regards.

Avatar

Employee Advisor

Hi,

what do you mean with "high CPU usage"? What is the system doing at 4am? Is it periodic and not only at 4am?

This async indexing process also fills the fulltext index, which can be quite expensive.

kind regards,
Jörg

Avatar

Level 4

Hi, if this runs every few seconds, how could I prevent this error, it is bringing the whole author instance down:

17.06.2016 12:51:28.702 *ERROR* [pool-7-thread-2] org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception during job execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@51e94f2b : GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded

Regards,