Open Exchange
Global Masters
Home > Class Reference > ENSLIB namespace > %SYS.RMSession
Private  Storage   


class %SYS.RMSession extends

Utility class to save and load session information from WS-ReliableMessaging 1.2. A session consists of a request and response sequence. This class is used by %SOAP.RM classes to do the work that must be done by a class in the %SYS package. The persistent operations in this class are used only on the service side. This class is used as a registered object for both the client and the service. This class is used internally by InterSystems IRIS. You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class."


Parameters Properties Methods Queries Indices ForeignKeys Triggers
15 15


AppliesTo Bits DeliveryAssurance DiscardFollowingFirstGap
ExpiresInSeconds InOrder InactivityTimeout MaxRetryCount
MessageNumber RequestIdentifier ResponseIdentifier RetryInterval
SCTIdentifier SSLSecurity Terminated

%%OIDGet %AddToSaveSet %BindExport %BuildObjectGraph
%ClassIsLatestVersion %ClassName %Close %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IncrementCount %IsA %IsModified
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject BitToRange CheckGap CheckSCT
Cleanup GetMessageState GetRange Load
Log MessageOK Open Remove
RemoveAll Save SetMessageState SetRange


• property AppliesTo as %xsd.anyURI;
The endpoint of the web service to which this token applies
• property Bits as %String;
Received messages bit string.
• property DeliveryAssurance as %String;
Delivery Assurance: "ExactlyOnce", "AtLeastOnce", "AtMostOnce" or "".
• property DiscardFollowingFirstGap as %Boolean;
Process no more messages after first gap
• property ExpiresInSeconds as %Integer;
UTC expiration time in seconds
• property InOrder as %Boolean [ InitialExpression = 1 ];
If InOrder true, deliver in order.
• property InactivityTimeout as %Integer;
Inactivity timeout interval in seconds Defaults to 600 if not specified.
• property MaxRetryCount as %Integer;
The maxiumum number of retries on client. Default is 4.
• property MessageNumber as %Integer [ InitialExpression = 0 ];
Last message number sent or received
• property RequestIdentifier as %xsd.anyURI;
Identifier for the request sequence
• property ResponseIdentifier as %xsd.anyURI;
Identifier for the response sequence. ResponseIndentifier="" for a one way session.
• property RetryInterval as %Float;
The time in seconds to wait before retry on client. Default is 0.
• property SCTIdentifier as %String;
Identifier of SecurityContextToken to be used to secure sequence
• property SSLSecurity as %Boolean;
If true the entire Sequence must be protected by the same SSL session. This property is client only.
• property Terminated as %Boolean [ InitialExpression = 0 ];
Session Terminated boolean


• classmethod BitToRange(bits As %String, ranges As %ListOfObjects)
Convert bit string to acknowledgement ranges for this RM session
• method CheckGap() as %Boolean
Check for gap in received messages
• method CheckSCT(soapClass As %SOAP.WebBase) as %Boolean
Check correct SCT (or no SCT) for this session
• method Cleanup()
Remove expired RMSessions
• method GetMessageState(messageNumber As %Integer) as %Boolean
Get message acknowledged state
• method GetRange(ranges As %ListOfObjects)
Get acknowledgement ranges for this RM session
• method Load() as %Boolean
Retrieve the RMSession properties for token with this identifier from system wide global. See Save method description for details.
• classmethod Log(terminal As %Boolean = 1, test As %Boolean = 0)
Log list of RMSessions
• method MessageOK()
Update range to indicate last message sent successfully
• classmethod Open(identifier As %xsd.anyURI) as %SYS.RMSession
Retrieve the RMSession with this identifier from system wide global. See Save method description for details.
• method Remove()
Remove this RMSession from session list
• classmethod RemoveAll()
Remove all RMSessions
• method Save() as %Status
Save this RMSession in a system wide global. The global format is: ^SYS("SOAPRMSession",RequestIdentifier)=$lb(type,ResponseIdentifier,ExpiresInSeconds,nextExpiresInSeconds,InactivityTimeout,AppliesTo,InOrder,DeliveryAssurance,SCTIdentifier,MessageNumber,Bits,Terminated,DiscardFollowingFirstGap) The index for cleanup is ^SYS("SOAPRMSession",0,NextExpiresInSeconds,RequestIdentifier)="" where NextExpiresInSeconds is the next expiration which is the smaller of ExpireInSeconds and InactivityTimeinSeconds and type is always = 1 for RMSession.
• method SetMessageState(messageNumber As %Integer, acknowledged As %Boolean)
Set message acknowledged state
• method SetRange(ranges As %ListOfObjects)
Set bit string from acknowledgement ranges for this RM session