%SYS.RMSession
Class %SYS.RMSession Extends %RegisteredObject [ System = 3 ]
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."
Properties
RequestIdentifier
Property RequestIdentifier As %xsd.anyURI [ Internal ];
Identifier for the request sequence
ResponseIdentifier
Property ResponseIdentifier As %xsd.anyURI [ Internal ];
Identifier for the response sequence. ResponseIndentifier="" for a one way session.
ExpiresInSeconds
Property ExpiresInSeconds As %Integer [ Internal ];
UTC expiration time in seconds
InactivityTimeout
Property InactivityTimeout As %Integer [ Internal ];
Inactivity timeout interval in seconds Defaults to 600 if not specified.
AppliesTo
Property AppliesTo As %xsd.anyURI [ Internal ];
The endpoint of the web service to which this token applies
RetryInterval
Property RetryInterval As %Float [ Internal ];
The time in seconds to wait before retry on client. Default is 0.
MaxRetryCount
Property MaxRetryCount As %Integer [ Internal ];
The maxiumum number of retries on client. Default is 4.
InOrder
Property InOrder As %Boolean [ InitialExpression = 1, Internal ];
If InOrder true, deliver in order.
DeliveryAssurance
Property DeliveryAssurance As %String [ Internal ];
Delivery Assurance: "ExactlyOnce", "AtLeastOnce", "AtMostOnce" or "".
SCTIdentifier
Property SCTIdentifier As %String [ Internal ];
Identifier of SecurityContextToken to be used to secure sequence
MessageNumber
Property MessageNumber As %Integer [ InitialExpression = 0, Internal ];
Last message number sent or received
Bits
Property Bits As %String [ Internal ];
Received messages bit string.
Terminated
Property Terminated As %Boolean [ InitialExpression = 0, Internal ];
Session Terminated boolean
DiscardFollowingFirstGap
Property DiscardFollowingFirstGap As %Boolean [ Internal ];
Process no more messages after first gap
SSLSecurity
Property SSLSecurity As %Boolean [ Internal ];
If true the entire Sequence must be protected by the same SSL session. This property is client only.
Methods
Save
Method Save() As %Status [ Internal ]
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.
Open
ClassMethod Open(identifier As %xsd.anyURI) As %SYS.RMSession [ Internal ]
Retrieve the RMSession with this identifier from system wide global. See Save method description for details.
Load
Method Load() As %Boolean [ Internal ]
Retrieve the RMSession properties for token with this identifier from system wide global. See Save method description for details.
Log
ClassMethod Log(terminal As %Boolean = 1, test As %Boolean = 0) [ Internal ]
Log list of RMSessions
Cleanup
Method Cleanup() [ Internal ]
Remove expired RMSessions
Remove
Method Remove() [ Internal ]
Remove this RMSession from session list
RemoveAll
ClassMethod RemoveAll() [ Internal ]
Remove all RMSessions
GetRange
Method GetRange(ranges As %ListOfObjects) [ Internal ]
Get acknowledgement ranges for this RM session
BitToRange
ClassMethod BitToRange(bits As %String, ranges As %ListOfObjects) [ Internal ]
Convert bit string to acknowledgement ranges for this RM session
SetRange
Method SetRange(ranges As %ListOfObjects) [ Internal ]
Set bit string from acknowledgement ranges for this RM session
MessageOK
Method MessageOK() [ Internal ]
Update range to indicate last message sent successfully
SetMessageState
Method SetMessageState(messageNumber As %Integer, acknowledged As %Boolean) [ Internal ]
Set message acknowledged state
GetMessageState
Method GetMessageState(messageNumber As %Integer) As %Boolean [ Internal ]
Get message acknowledged state
CheckGap
Method CheckGap() As %Boolean [ Internal ]
Check for gap in received messages
CheckSCT
Method CheckSCT(soapClass As %SOAP.WebBase) As %Boolean [ Internal ]
Check correct SCT (or no SCT) for this session