Package jakarta.ejb

Annotation Type 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
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      long value
      The semantics of the value element are as follows: A value > 0 indicates a timeout value in the units specified by the unit element.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      TimeUnit unit
      Units used for the specified value.
    • Element Detail

      • value

        long value
        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.
        Returns:
        a long.
      • unit

        TimeUnit unit
        Units used for the specified value.
        Returns:
        a TimeUnit object.
        Default:
        java.util.concurrent.TimeUnit.MILLISECONDS