Your client application can take programmatic control of WS-ReliableMessaging sequences. Use these code fragments as guidance for coding your reliable messaging client application to close a sequence.
For your client application to gain programmatic control over reliable messaging sequences, it needs access to a WSRMSequenceManager instance. For information and example code explaining how to achieve this, see Controlling WS-ReliableMessaging sequences programmatically.
For a more complete specification of closing a sequence, see the WS-ReliableMessaging: supported specifications and standards.
By closing sequences programmatically, you limit the number of open sequences a single client has to support in a single JVM at one time. This helps avoid the problem described in the following troubleshooting tip: A client receives an out of memory exception message when working with large numbers of open sequences.
To close a WS-ReliableMessaging sequence use the following method on the WSRMSequenceManager:
/** * Closes the Web services reliable messaging session from this application to * the endpoint url specified. * * Throws a WSRMSequenceTerminatedException if the session between this application * and the target endpoint url is already closed * * Throws a WSRMSequenceTerminatedException when the session between this application * and the target endpoint has already been terminated. * * Throws WSRMSequenceUnknownException exception when either reliable messaging is not engaged to * the specified endpoint url or the sequence has previously been terminated and removed. * * @param clientObject The JAX-WS Dispatch instance, or the Dynamic Proxy client instance. * @param endPointUri The target endpoint url * * @throws WSRMNotEnabledException * @throws WSRMSequenceUnknownException * @throws WSRMSequenceClosedException * @throws WSRMSequenceTerminatedException */ public void closeSequence(Object clientObject, QName portQName, String endPointUri) throws WSRMNotEnabledException, WSRMSequenceUnknownException, WSRMSequenceClosedException, WSRMSequenceTerminatedException;