Service engine JobManager polling method has a transaction time when the number
of jobs is large 10k+; Need a way to configuration transaction time.rge Job
series; There is no way to change transaction time.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: OFBIZ-3855
URL: https://issues.apache.org/jira/browse/OFBIZ-3855
Project: OFBiz
Issue Type: Improvement
Components: ALL COMPONENTS
Affects Versions: SVN trunk
Reporter: Brett G. Palmer
Fix For: SVN trunk
Here is an example of when we see the transaction timeout for the polling
operation in the JobManager.
We are running into a problem with the service engine when trying to run an
archiving batch service. Here is how the service runs.
1. We run a service that collects a bunch of records for data warehousing.
2. The data warehouse service calls an async service call to process each
individual record.
3. The service engine them starts working on each individual record.
Here is the problem:
There are over 10K records that are submitted as async service calls in step 2
above. I'm seeing a transaction time out when the service engine tries to
process all of these records as it calls an "UPDATE JOB_SANDBOX for
job_id=XXX". I believe it is trying to update all 10k of these jobs
individually in a single transaction and times out. The jobs are then left in
a pending status and never changed but the service engine keeps timing out.
I was able to fix this problem by adding a new poll-transaction-time attribute
to the "thread-pool" definition in the serviceengine.xml. I then looked up
this value in the JobManager.poll method and set the transaction timeout at the
beginning of the transaction.
I'll submit a patch for this when I have made it for the latest revision in the
trunk.
Brett
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.