com.sun.xml.ws.rm
Class ReliableMessagingFeature

java.lang.Object
  extended by javax.xml.ws.WebServiceFeature
      extended by com.sun.xml.ws.rm.ReliableMessagingFeature

public class ReliableMessagingFeature
extends javax.xml.ws.WebServiceFeature


Nested Class Summary
static class ReliableMessagingFeature.BackoffAlgorithm
          This enumeration defines all possible backoff algortihms that can be applied for to message retransmission.
static class ReliableMessagingFeature.DeliveryAssurance
          This enumeration defines a number of Delivery Assurance options, which can be supported by RM Sources and RM Destinations.
static class ReliableMessagingFeature.SecurityBinding
          This enumeration defines possible security binding mechanism options that can be applied to a created sequence.
 
Field Summary
static long DEFAULT_ACK_REQUESTED_INTERVAL
          A constant specifying the default value of interval between sending subsequent acknowledgement request messages.
static long DEFAULT_CLOSE_SEQUENCE_OPERATION_TIMEOUT
          A constant specifying the default value of close sequence operation timeout.
static long DEFAULT_DESTINATION_BUFFER_QUOTA
          A constant specifying the default value of destination flow control buffer quota.
static long DEFAULT_MESSAGE_RETRANSMISSION_INTERVAL
          A constant specifying the default value of base message retransmission interval.
static long DEFAULT_SEQUENCE_INACTIVITY_TIMEOUT
          A constant specifying the default value of sequence inactivity timeout.
static java.lang.String ID
           
 
Fields inherited from class javax.xml.ws.WebServiceFeature
enabled
 
Constructor Summary
ReliableMessagingFeature()
          This constructor is here to satisfy JAX-WS specification requirements
ReliableMessagingFeature(boolean enabled)
          This constructor is here to satisfy JAX-WS specification requirements
ReliableMessagingFeature(boolean enabled, RmVersion version, long inactivityTimeout, long bufferQuota, boolean orderedDelivery, ReliableMessagingFeature.DeliveryAssurance deliveryAssurance, ReliableMessagingFeature.SecurityBinding securityBinding)
           
ReliableMessagingFeature(boolean enabled, RmVersion version, long inactivityTimeout, long bufferQuota, boolean orderedDelivery, ReliableMessagingFeature.DeliveryAssurance deliveryAssurance, ReliableMessagingFeature.SecurityBinding securityBinding, long messageRetransmissionInterval, ReliableMessagingFeature.BackoffAlgorithm retransmissionBackoffAlgorithm, long ackRequestInterval, long closeSequenceOperationTimeout)
           
 
Method Summary
 long getAcknowledgementRequestInterval()
          Specifies interval between sending subsequent acknowledgement request messages by an RM Source in case of any unacknowledged messages on the sequence.
 long getCloseSequenceOperationTimeout()
          Specifies the timeout for a CloseSequenceRequest message.
 ReliableMessagingFeature.DeliveryAssurance getDeliveryAssurance()
          Specifies the message delivery quality of service between the RM and application layer.
 long getDestinationBufferQuota()
          This attribute may be used together with ordered delivery requirement.
 java.lang.String getID()
           
 long getMessageRetransmissionInterval()
          Specifies how long the RM Source will wait after transmitting a message before retransmitting the message if no acknowledgement arrives.
 ReliableMessagingFeature.BackoffAlgorithm getRetransmissionBackoffAlgorithm()
          Specifies that the retransmission interval will be adjusted using a specific backoff algorithm.
 ReliableMessagingFeature.SecurityBinding getSecurityBinding()
          Specifies whether each created RM sequence must be bound to a specific underlying security token or secured transport.
 long getSequenceInactivityTimeout()
          Specifies a period of inactivity for a Sequence in ms.
 RmVersion getVersion()
          Specifies which WS-RM version SOAP messages and SOAP message headers should be used for communication between RM source and RM destination
 boolean isOrderedDeliveryEnabled()
           Specifies a requirement that messages from each individual Sequence are to be delivered in the same order they have been sent by the Application Source.
 
Methods inherited from class javax.xml.ws.WebServiceFeature
isEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ID

public static final java.lang.String ID
See Also:
Constant Field Values

DEFAULT_SEQUENCE_INACTIVITY_TIMEOUT

public static final long DEFAULT_SEQUENCE_INACTIVITY_TIMEOUT
A constant specifying the default value of sequence inactivity timeout. Currently the default value is set to 600000.

See Also:
Constant Field Values

DEFAULT_DESTINATION_BUFFER_QUOTA

public static final long DEFAULT_DESTINATION_BUFFER_QUOTA
A constant specifying the default value of destination flow control buffer quota. Currently the default value is set to 32.

See Also:
Constant Field Values

DEFAULT_MESSAGE_RETRANSMISSION_INTERVAL

public static final long DEFAULT_MESSAGE_RETRANSMISSION_INTERVAL
A constant specifying the default value of base message retransmission interval. Currently the default value is set to 2000.

See Also:
Constant Field Values

DEFAULT_ACK_REQUESTED_INTERVAL

public static final long DEFAULT_ACK_REQUESTED_INTERVAL
A constant specifying the default value of interval between sending subsequent acknowledgement request messages. Currently the default value is set to 200.

See Also:
Constant Field Values

DEFAULT_CLOSE_SEQUENCE_OPERATION_TIMEOUT

public static final long DEFAULT_CLOSE_SEQUENCE_OPERATION_TIMEOUT
A constant specifying the default value of close sequence operation timeout. Currently the default value is set to 3000.

See Also:
Constant Field Values
Constructor Detail

ReliableMessagingFeature

public ReliableMessagingFeature()
This constructor is here to satisfy JAX-WS specification requirements


ReliableMessagingFeature

public ReliableMessagingFeature(boolean enabled)
This constructor is here to satisfy JAX-WS specification requirements


ReliableMessagingFeature

public ReliableMessagingFeature(boolean enabled,
                                RmVersion version,
                                long inactivityTimeout,
                                long bufferQuota,
                                boolean orderedDelivery,
                                ReliableMessagingFeature.DeliveryAssurance deliveryAssurance,
                                ReliableMessagingFeature.SecurityBinding securityBinding)

ReliableMessagingFeature

public ReliableMessagingFeature(boolean enabled,
                                RmVersion version,
                                long inactivityTimeout,
                                long bufferQuota,
                                boolean orderedDelivery,
                                ReliableMessagingFeature.DeliveryAssurance deliveryAssurance,
                                ReliableMessagingFeature.SecurityBinding securityBinding,
                                long messageRetransmissionInterval,
                                ReliableMessagingFeature.BackoffAlgorithm retransmissionBackoffAlgorithm,
                                long ackRequestInterval,
                                long closeSequenceOperationTimeout)
Method Detail

getID

public java.lang.String getID()
Specified by:
getID in class javax.xml.ws.WebServiceFeature

getVersion

public RmVersion getVersion()
Specifies which WS-RM version SOAP messages and SOAP message headers should be used for communication between RM source and RM destination

Returns:
version currently configured for the feature. If not set explicitly, the default value is specified by a call to RmVersion.getDefault().

getSequenceInactivityTimeout

public long getSequenceInactivityTimeout()
Specifies a period of inactivity for a Sequence in ms.

Returns:
currently configured sequence inactivity timeout. If not set explicitly, the default value is specified by DEFAULT_SEQUENCE_INACTIVITY_TIMEOUT constant.

getSecurityBinding

public ReliableMessagingFeature.SecurityBinding getSecurityBinding()
Specifies whether each created RM sequence must be bound to a specific underlying security token or secured transport.

Returns:
configured security binding requirement. If not set explicitly, the default value is specified by a call to ReliableMessagingFeature.SecurityBinding.getDefault().
See Also:
ReliableMessagingFeature.SecurityBinding

getDeliveryAssurance

public ReliableMessagingFeature.DeliveryAssurance getDeliveryAssurance()
Specifies the message delivery quality of service between the RM and application layer. It expresses the delivery assurance in effect between the RM Destination and its corresponding application destination, and it also indicates requirements on any RM Source that transmits messages to this RM destination. Conversely when used by an RM Source it expresses the delivery assurance in effect between the RM Source and its corresponding application source, as well as indicating requirements on any RM Destination that receives messages from this RM Source. In either case the delivery assurance does not affect the messages transmitted on the wire.

Returns:
currently configured delivery assurance mode. If not set explicitly, the default value is specified by a call to ReliableMessagingFeature.DeliveryAssurance.getDefault().
See Also:
ReliableMessagingFeature.DeliveryAssurance

isOrderedDeliveryEnabled

public boolean isOrderedDeliveryEnabled()

Specifies a requirement that messages from each individual Sequence are to be delivered in the same order they have been sent by the Application Source. The RM Source will ensure that the ordinal position of each message in the Sequence (as indicated by a message Sequence number) is consistent with the order in which the messages have been sent from the Application Source. The RM Destination will deliver received messages for each Sequence in the order indicated by the message numbering.

In-order delivery can be used in combination with any of the ReliableMessagingFeature.DeliveryAssurance values, and the requirements of those values will also be met. In particular if the ReliableMessagingFeature.DeliveryAssurance.AT_LEAST_ONCE or ReliableMessagingFeature.DeliveryAssurance.EXACTLY_ONCE value is applied and the RM Destination detects a gap in the Sequence then the RM Destination will not deliver any subsequent messages from that Sequence until the missing messages are received or until the Sequence is closed.

Returns:
true if the ordered delivery si required, false otherwise. If not set explicitly, the default value is false.

getDestinationBufferQuota

public long getDestinationBufferQuota()
This attribute may be used together with ordered delivery requirement. It specifies the maximum number of out-of-order unprocessed request messages that may be stored in the unprocessed request message buffer within the RM destination before the RM destination starts rejecting new request messages.

Returns:
currently configured flow control buffer on the destination. If not set explicitly, the default value is specified by DEFAULT_DESTINATION_BUFFER_QUOTA constant.

getMessageRetransmissionInterval

public long getMessageRetransmissionInterval()
Specifies how long the RM Source will wait after transmitting a message before retransmitting the message if no acknowledgement arrives.

Returns:
currently configured base retransmission interval. If not set explicitly, the default value is specified by DEFAULT_MESSAGE_RETRANSMISSION_INTERVAL constant.

getRetransmissionBackoffAlgorithm

public ReliableMessagingFeature.BackoffAlgorithm getRetransmissionBackoffAlgorithm()
Specifies that the retransmission interval will be adjusted using a specific backoff algorithm.

Returns:
currently configured retransmission back-off algorithm that should be used. If not set explicitly, the default value is specified by a call to ReliableMessagingFeature.BackoffAlgorithm.getDefault().
See Also:
ReliableMessagingFeature.BackoffAlgorithm

getAcknowledgementRequestInterval

public long getAcknowledgementRequestInterval()
Specifies interval between sending subsequent acknowledgement request messages by an RM Source in case of any unacknowledged messages on the sequence.

Returns:
currently configured acknowledgement request interval. If not set explicitly, the default value is specified by the DEFAULT_ACK_REQUESTED_INTERVAL constant.

getCloseSequenceOperationTimeout

public long getCloseSequenceOperationTimeout()
Specifies the timeout for a CloseSequenceRequest message. If no response is returned from RM destination before the timout expires, the sequence is automatically closed by the RM source and all associated resources are released.

Returns:
currently configured close sequence operation timeout. If not set explicitly, the default value is specified by the DEFAULT_CLOSE_SEQUENCE_OPERATION_TIMEOUT constant.