Not sure what db you're using but it probably wouldn't hurt to run a vacuum on 
the table to speed up processing.

By the way, I'm pretty sure the default timeout is 60 seconds so you might want 
to try something a little larger :-)

Regards
Scott

On 14/07/2011, at 2:58 PM, Josh Jacobson wrote:

> I tried 60 seconds for timeout but that didn't work. I guess Ill
> double it now and keep trying.
> 
> I have about 260,000 pending jobs, and nothing is getting done.
> 
> I know what you mean about purgeOldjobs. That service is crashed now
> and I deleted old jobs from the database by hand. I was up to 2.6
> million rows. Ofbiz was pretty much unusable.
> 
> If you have any other suggestions I'd love Yo hear them.
> 
> On Wednesday, July 13, 2011, Scott Gray <scott.g...@hotwaxmedia.com> wrote:
>> Ah okay, that is entirely dependent on the number of jobs and the speed the 
>> server can process them.  As a side note I would keep a close eye on the 
>> purgeOldJobs service, when it starts falling over (transaction timeout 
>> again) then the number of rows in the table will increase quickly which in 
>> turn will slow down polling.
>> 
>> In general the whole persisted jobs implementation is a bit fragile, 
>> especially when dealing with a large number of jobs.  I've wanted to replace 
>> it with something like quartz for a while but haven't had the time.
>> 
>> Regards
>> Scott
>> 
>> On 14/07/2011, at 2:10 PM, Josh Jacobson wrote:
>> 
>>> Thanks again. I actually meant a suggestion for the transaction
>>> timeout. In any case I am grateful for your explanation.
>>> 
>>> 
>>> On Wednesday, July 13, 2011, Scott Gray <scott.g...@hotwaxmedia.com> wrote:
>>>> As best I can tell there shouldn't be any need to increase the interval 
>>>> between polls since the interval timer doesn't actually start until the 
>>>> previous poll has completed (see JobPoller.run()) so I can't see how a 
>>>> small interval would cause any backlog problems.
>>>> 
>>>> I'm guessing if there is any lock contention then it's probably caused by 
>>>> the executing jobs trying to update their respective rows while the poller 
>>>> is holding a table lock.  So from that point of view I guess increasing 
>>>> the interval could reduce the amount of contention between the executing 
>>>> jobs and the next poll.
>>>> 
>>>> Regards
>>>> Scott
>>>> 
>>>> On 14/07/2011, at 1:02 PM, Josh Jacobson wrote:
>>>> 
>>>>> Scott,
>>>>> 
>>>>> Thanks! That is very precise advise. Do you have a suggestion on
>>>>> interval time? 60 seconds? 120?
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> On Wed, Jul 13, 2011 at 5:34 PM, Scott Gray <scott.g...@hotwaxmedia.com> 
>>>>> wrote:
>>>>>> That configuration is for the frequency of job polls.  There isn't any 
>>>>>> ability to specify the transaction timeout via configuration so you'll 
>>>>>> need to modify the code directly:
>>>>>> JobManager.java (line 148):
>>>>>> beganTransaction = TransactionUtil.begin();
>>>>>> needs to be changed to use TransactionUtil.begin(int)
>>>>>> 
>>>>>> Regards
>>>>>> Scott
>>>>>> 
>>>>>> HotWax Media
>>>>>> http://www.hotwaxmedia.com
>>>>>> 
>>>>>> On 14/07/2011, at 12:23 PM, Josh Jacobson wrote:
>>>>>> 
>>>>>>> Brett,
>>>>>>> 
>>>>>>> Before I start trying to run the jobs manually, I want to give your
>>>>>>> suggestion a try. I think I know where to configure the job polling
>>>>>>> transaction time (I believe it's the poll-db-millis="20000" value on
>>>>>>> the framework/service/config/serviceengine.xml.
>>>>>>> 
>>>>>>> However, I still don't know what to increase it to. I understand that
>>>>>>> we wouldn't want to make it bigger than the default polling interval.
>>>>>>> Do you know what the default interval between polling is?
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> 
>>>>>>> On Wed, Jul 13, 2011 at 12:31 PM, Brett Palmer <brettgpal...@gmail.com> 
>>>>>>> wrote:
>>>>>>>> I meant removing finished jobs.  If you have thousands of pending jobs 
>>>>>>>> then
>>>>>>>> you will have the same problem I mentioned in my first email.  One
>>>>>>>> resolution will be to increase the job poller transaction time.  In the
>>>>>>>> ofbiz version I was using there was not a way to configure the poller
>>>>>>>> transaction time.  It just used the default time.  I had to create a 
>>>>>>>> patch
>>>>>>>> to allow this to happen.
>>>>>>>> 
>>>>>>>> In the patch you had to be careful to not increase the transaction time
>>>>>>>> greater than the frequency of the job poller.  Otherwise you get into 
>>>>>>>> a lock
>>>>>>>> situation where one job poller is still running within a transaction 
>>>>>>>> and
>>>>>>>> another poller starts.  This didn't create a huge problem but the 
>>>>>>>> second job
>>>>>>>> poller would usually lock and then time out.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Brett
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Wed, Jul 13, 2011 at 1:15 PM, Josh Jacobson 
>>>>>>>> <josh.s.jacob...@gmail.com>wrote:
>>>>>>>> 
>>>>>>>>> Brett,
>>>>>>>>> 
>>>>>>>>> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to