Skip to main content

%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