Top Description Fields Methods
javax.resource.spi.work

public Interface WorkManager

Known Direct Subinterfaces
javax.resource.spi.work.DistributableWorkManager
Imports
java.lang.Object, .Runnable, .Exception, .Throwable

This interface models a WorkManager which provides a facility to submit Work instances for execution. This frees the user from having to create Java threads directly to do work. Further, this allows efficient pooling of thread resources and more control over thread usage. The various stages in Work processing are:
Author
Ram Jeyaraman
Version
1.0

Field Summary

Modifier and TypeField and Description
public static final long
IMMEDIATE

A constant to indicate timeout duration.

public static final long
INDEFINITE

A constant to indicate timeout duration.

public static final long
UNKNOWN

A constant to indicate an unknown start delay duration or other unknown values.

Method Summary

Modifier and TypeMethod and Description
public void
doWork(Work
The unit of work to be done. Could be long or short-lived.
work
)

Accepts a Work instance for processing.

public void
doWork(Work
The unit of work to be done. Could be long or short-lived.
work
,
long
a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.
startTimeout
,
ExecutionContext
an object containing the execution context with which the submitted Work instance must be executed.
execContext
,
WorkListener
an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.
workListener
)

Accepts a Work instance for processing.

public void
scheduleWork(Work
The unit of work to be done. Could be long or short-lived.
work
)

Accepts a Work instance for processing.

public void
scheduleWork(Work
The unit of work to be done. Could be long or short-lived.
work
,
long
a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.
startTimeout
,
ExecutionContext
an object containing the execution context with which the submitted Work instance must be executed.
execContext
,
WorkListener
an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.
workListener
)

Accepts a Work instance for processing.

public long

Returns:

the time elapsed (in milliseconds) from Work acceptance until start of execution. Note, this does not offer real-time guarantees. It is valid to return -1, if the actual start delay duration is unknown.
startWork
(Work
The unit of work to be done. Could be long or short-lived.
work
)

Accepts a Work instance for processing.

public long

Returns:

the time elapsed (in milliseconds) from Work acceptance until start of execution. Note, this does not offer real-time guarantees. It is valid to return -1, if the actual start delay duration is unknown.
startWork
(Work
The unit of work to be done. Could be long or short-lived.
work
,
long
a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.
startTimeout
,
ExecutionContext
an object containing the execution context with which the submitted Work instance must be executed.
execContext
,
WorkListener
an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.
workListener
)

Accepts a Work instance for processing.

Field Detail

IMMEDIATEback to summary
public static final long IMMEDIATE

A constant to indicate timeout duration. A zero timeout value indicates an action be performed immediately. The WorkManager implementation must timeout the action as soon as possible.

INDEFINITEback to summary
public static final long INDEFINITE

A constant to indicate timeout duration. A maximum timeout value indicates that an action be performed arbitrarily without any time constraint.

UNKNOWNback to summary
public static final long UNKNOWN

A constant to indicate an unknown start delay duration or other unknown values.

Method Detail

doWorkback to summary
public void doWork(Work work) throws WorkException

Accepts a Work instance for processing. This call blocks until the Work instance completes execution. There is no guarantee on when the accepted Work instance would start execution ie., there is no time constraint to start execution. (that is, startTimeout=INDEFINITE)

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors.
WorkCompletedException:
indicates that a Work instance has completed execution with an exception.
doWorkback to summary
public void doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException

Accepts a Work instance for processing. This call blocks until the Work instance completes execution.

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

startTimeout:long

a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.

execContext:ExecutionContext

an object containing the execution context with which the submitted Work instance must be executed.

workListener:WorkListener

an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors or start timeout expiration.
WorkCompletedException:
indicates that a Work instance has completed execution with an exception.
scheduleWorkback to summary
public void scheduleWork(Work work) throws WorkException

Accepts a Work instance for processing. This call does not block and returns immediately once a Work instance has been accepted for processing. There is no guarantee on when the submitted Work instance would start execution ie., there is no time constraint to start execution. (that is, startTimeout=INDEFINITE).

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors.
scheduleWorkback to summary
public void scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException

Accepts a Work instance for processing. This call does not block and returns immediately once a Work instance has been accepted for processing.

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

startTimeout:long

a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.

execContext:ExecutionContext

an object containing the execution context with which the submitted Work instance must be executed.

workListener:WorkListener

an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors.
startWorkback to summary
public long startWork(Work work) throws WorkException

Accepts a Work instance for processing. This call blocks until the Work instance starts execution but not until its completion. There is no guarantee on when the accepted Work instance would start execution ie., there is no time constraint to start execution. (that is, startTimeout=INDEFINITE)

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

Returns:long

the time elapsed (in milliseconds) from Work acceptance until start of execution. Note, this does not offer real-time guarantees. It is valid to return -1, if the actual start delay duration is unknown.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors.
startWorkback to summary
public long startWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException

Accepts a Work instance for processing. This call blocks until the Work instance starts execution but not until its completion. There is no guarantee on when the accepted Work instance would start execution ie., there is no time constraint to start execution.

Parameters
work:Work

The unit of work to be done. Could be long or short-lived.

startTimeout:long

a time duration (in milliseconds) within which the execution of the Work instance must start. Otherwise, the Work instance is rejected with a WorkRejectedException set to an appropriate error code (WorkRejectedException.TIMED_OUT). Note, this does not offer real-time guarantees.

execContext:ExecutionContext

an object containing the execution context with which the submitted Work instance must be executed.

workListener:WorkListener

an object which would be notified when the various Work processing events (work accepted, work rejected, work started, work completed) occur.

Returns:long

the time elapsed (in milliseconds) from Work acceptance until start of execution. Note, this does not offer real-time guarantees. It is valid to return -1, if the actual start delay duration is unknown.

Exceptions
WorkRejectedException:
indicates that a Work instance has been rejected from further processing. This can occur due to internal factors or start timeout expiration.