org.apache.jetspeed.aggregator.impl
Class CommonjWorkerMonitorImpl

java.lang.Object
  extended by org.apache.jetspeed.aggregator.impl.CommonjWorkerMonitorImpl
All Implemented Interfaces:
commonj.work.WorkListener, WorkerMonitor

public class CommonjWorkerMonitorImpl
extends java.lang.Object
implements WorkerMonitor, commonj.work.WorkListener

The CommonjWorkerMonitorImpl is responsible for dispatching jobs to workers It wraps CommonJ WorkManager supported by IBM WebSphere and BEA WebLogic sever.

Version:
$Id: CommonjWorkerMonitorImpl.java 568339 2007-08-22 00:14:51Z ate $
Author:
Woonsan Ko

Field Summary
static java.lang.String ACCESS_CONTROL_CONTEXT_WORKER_ATTR
           
static java.lang.String COMMONJ_WORK_ITEM_ATTR
           
protected  boolean interruptOnTimeout
          If true, invoke interrupt() on the worker thread when the job is timeout.
protected  org.apache.jetspeed.aggregator.impl.CommonjWorkerMonitorImpl.CommonjWorkerRenderingJobTimeoutMonitor jobMonitor
          Renering Job Timeout monitor
protected  java.util.Map jobWorksMonitored
          Rendering job works to be monitored for timeout checking
protected  boolean jobWorksMonitorEnabled
          Enable rendering job works monitor thread for timeout checking
protected static org.apache.commons.logging.Log log
          Commons logging
static java.lang.String WORKER_THREAD_ATTR
           
protected  commonj.work.WorkManager workManager
          CommonJ Work Manamger provided by JavaEE container
 
Fields inherited from interface commonj.work.WorkListener
IMMEDIATE, INDEFINITE
 
Constructor Summary
CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager)
           
CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager, boolean jobWorksMonitorEnabled)
           
CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager, boolean jobWorksMonitorEnabled, boolean interruptOnTimeout)
           
 
Method Summary
 int getAvailableJobsCount()
          Returns a snapshot of the available jobs
 int getQueuedJobsCount()
          Retrieves a snapshot of job count in the waiting (backlogged) queue
 int getRunningJobsCount()
          Returns a snapshot count of the jobs currently running
 void process(RenderingJob job)
          Assign a job to a worker and execute it or queue the job if no worker is available.
protected  java.lang.Object removeMonitoredJobWork(commonj.work.WorkItem workItem)
           
 void start()
          Start processing the worker monitor
 void stop()
          Stop processing the worker monitor Finish all jobs
 void waitForRenderingJobs(java.util.List renderingJobs)
          Wait for all rendering jobs in the collection to finish successfully or otherwise.
 void workAccepted(commonj.work.WorkEvent we)
           
 void workCompleted(commonj.work.WorkEvent we)
           
 void workRejected(commonj.work.WorkEvent we)
           
 void workStarted(commonj.work.WorkEvent we)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACCESS_CONTROL_CONTEXT_WORKER_ATTR

public static final java.lang.String ACCESS_CONTROL_CONTEXT_WORKER_ATTR

COMMONJ_WORK_ITEM_ATTR

public static final java.lang.String COMMONJ_WORK_ITEM_ATTR

WORKER_THREAD_ATTR

public static final java.lang.String WORKER_THREAD_ATTR

workManager

protected commonj.work.WorkManager workManager
CommonJ Work Manamger provided by JavaEE container


interruptOnTimeout

protected boolean interruptOnTimeout
If true, invoke interrupt() on the worker thread when the job is timeout.


jobWorksMonitorEnabled

protected boolean jobWorksMonitorEnabled
Enable rendering job works monitor thread for timeout checking


jobWorksMonitored

protected java.util.Map jobWorksMonitored
Rendering job works to be monitored for timeout checking


log

protected static final org.apache.commons.logging.Log log
Commons logging


jobMonitor

protected org.apache.jetspeed.aggregator.impl.CommonjWorkerMonitorImpl.CommonjWorkerRenderingJobTimeoutMonitor jobMonitor
Renering Job Timeout monitor

Constructor Detail

CommonjWorkerMonitorImpl

public CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager)

CommonjWorkerMonitorImpl

public CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager,
                                boolean jobWorksMonitorEnabled)

CommonjWorkerMonitorImpl

public CommonjWorkerMonitorImpl(commonj.work.WorkManager workManager,
                                boolean jobWorksMonitorEnabled,
                                boolean interruptOnTimeout)
Method Detail

start

public void start()
Description copied from interface: WorkerMonitor
Start processing the worker monitor

Specified by:
start in interface WorkerMonitor

stop

public void stop()
Description copied from interface: WorkerMonitor
Stop processing the worker monitor Finish all jobs

Specified by:
stop in interface WorkerMonitor

process

public void process(RenderingJob job)
Assign a job to a worker and execute it or queue the job if no worker is available.

Specified by:
process in interface WorkerMonitor
Parameters:
job - the Job to process

getQueuedJobsCount

public int getQueuedJobsCount()
Description copied from interface: WorkerMonitor
Retrieves a snapshot of job count in the waiting (backlogged) queue

Specified by:
getQueuedJobsCount in interface WorkerMonitor
Returns:
snapshot count of waiting jobs

waitForRenderingJobs

public void waitForRenderingJobs(java.util.List renderingJobs)
Wait for all rendering jobs in the collection to finish successfully or otherwise.

Specified by:
waitForRenderingJobs in interface WorkerMonitor
Parameters:
renderingJobs - the Collection of rendering job objects to wait for.

getAvailableJobsCount

public int getAvailableJobsCount()
Returns a snapshot of the available jobs

Specified by:
getAvailableJobsCount in interface WorkerMonitor
Returns:
available jobs

getRunningJobsCount

public int getRunningJobsCount()
Description copied from interface: WorkerMonitor
Returns a snapshot count of the jobs currently running

Specified by:
getRunningJobsCount in interface WorkerMonitor
Returns:
snapshot count of running jobs

workAccepted

public void workAccepted(commonj.work.WorkEvent we)
Specified by:
workAccepted in interface commonj.work.WorkListener

workRejected

public void workRejected(commonj.work.WorkEvent we)
Specified by:
workRejected in interface commonj.work.WorkListener

workStarted

public void workStarted(commonj.work.WorkEvent we)
Specified by:
workStarted in interface commonj.work.WorkListener

workCompleted

public void workCompleted(commonj.work.WorkEvent we)
Specified by:
workCompleted in interface commonj.work.WorkListener

removeMonitoredJobWork

protected java.lang.Object removeMonitoredJobWork(commonj.work.WorkItem workItem)


Copyright © 1999-2010 Apache Software Foundation. All Rights Reserved.