Adrian,

Thanks I'll take an update and try it out.

Brett
On Aug 7, 2012 4:23 PM, "Adrian Crum" <adrian.c...@sandglass-software.com>
wrote:

> Brett,
>
> I think I solved your problems with my recent commits, ending with rev
> 1370566. Let me know if it helps.
>
> -Adrian
>
> On 8/5/2012 4:53 PM, Brett Palmer wrote:
>
>> Adrian,
>>
>> Thanks for the update.  Here are some feedback points on your listed
>> items:
>>
>> 1. JobPoller get out-of-memor error.  We've seen this a lot in production
>> servers when the JobSandbox table is not constantly pruned of old records.
>>   It would be nice if the poller restricted its search for only active
>> records it could process.
>>
>> 2. Queue for capturing missing records would be good.  From item 1 above
>> we
>> have had locks on table when the poller is busy doing a scan and new jobs
>> cannot be added or time out.
>>
>> Other wish items:
>>
>> - Ability to assign different service engines to process specific job
>> types.  We often multiple application servers but want to limit how many
>> concurrent jobs are run.  For example, if I had 4 app servers connected to
>> the same DB I may only want one app server to service particular jobs.  I
>> thought this feature was possible but when I tried to implement it by
>> changing some of the configuration files it never worked correctly.
>>
>> - JMS support for the service engine.  It would be nice if there was a JMS
>> interface for those that want to use JMS as their queuing mechanism for
>> jobs.
>>
>>
>> Brett
>>
>> On Sun, Aug 5, 2012 at 6:21 AM, Adrian Crum <
>> adrian.crum@sandglass-**software.com <adrian.c...@sandglass-software.com>>
>> wrote:
>>
>>  On 8/5/2012 11:02 AM, Adrian Crum wrote:
>>>
>>>  I just committed a bunch of changes to the Job Manager group of classes.
>>>> The changes help simplify the code and hopefully make the Job Manager
>>>> more
>>>> robust. On the other hand, I might have broken something. ;) I will
>>>> monitor
>>>> the mailing list for problems.
>>>>
>>>> I believe the JobPoller settings in serviceengine.xml (the <thread-pool>
>>>> element) should be changed. I think min-threads should be set to "2" and
>>>> max-threads should be set to "5". Creating lots of threads can hurt
>>>> throughput because the JVM spends more time managing them. I would be
>>>> interested in hearing what others think.
>>>>
>>>>  Thinking about this more, there are some other things that need to be
>>> fixed:
>>>
>>> 1. The JobPoller uses an unbounded queue. In a busy server, there is the
>>> potential the queue will grow in size until it causes an out-of-memory
>>> condition.
>>> 2. There is no accommodation for when a job cannot be added to the queue
>>> -
>>> it is just lost. We could add a dequeue method to the Job interface that
>>> will allow implementations to recover or reschedule the job when it can't
>>> be added to the queue.
>>> 3. There is a JobPoller instance per delegator, and each instance
>>> contains
>>> the number of threads configured in serviceengine.xml. With the current
>>> max-threads setting of 15, a multi-tenant installation with 100 tenants
>>> will create up to 1500 threads. (!!!) A smarter strategy might be to
>>> have a
>>> single JobPoller instance that services multiple JobManagers.
>>>
>>> -Adrian
>>>
>>>
>>>
>>>
>

Reply via email to