Module jakarta.ejb
Package jakarta.ejb

Annotation Interface AccessTimeout


@Target({METHOD,TYPE}) @Retention(RUNTIME) public @interface AccessTimeout
Specifies the amount of time in a given time unit that a concurrent access attempt should block before timing out.

This annotation may be applied to a stateful session bean or to a singleton session bean that uses container managed concurrency.

By default, clients are allowed to make concurrent calls to a stateful session object and the container is required to serialize such concurrent requests. The AccessTimeout annotation is used to specify the amount of time a stateful session bean request should block in the case that the bean instance is already processing a different request. Use of the AccessTimeout annotation with a value of 0 specifies to the container that concurrent client requests to a stateful session bean are prohibited.

The AccessTimeout annotation can be specified on a business method or a bean class. If it is specified on a class, it applies to all business methods of that class. If it is specified on both a class and on a business method of the class, the method-level annotation takes precedence for the given method.

Access timeouts for a singleton session bean only apply to methods eligible for concurrency locks. The AccessTimeout annotation can be specified on the singleton session bean class or on an eligible method of the class. If AccessTimeout is specified on both a class and on a method of that class, the method-level annotation takes precedence for the given method.

The semantics of the value element are as follows:

  • A value > 0 indicates a timeout value in the units specified by the unit element.
  • A value of 0 means concurrent access is not permitted.
  • A value of -1 indicates that the client request will block indefinitely until forward progress it can proceed.
Values less than -1 are not valid.
Since:
EJB 3.1