10.27.03

SessionProperties Class

Session initialization properties.

Some Session Properties can also be set as environment variables. If a session property can be set as an environment variable, the API will only look for that environment variable if the property is not specified in the sesssion property list passed to CreateSession(SessionProperties, EventHandlerMessageEventArgs, EventHandlerSessionEventArgs)

The names of the environment variables are based on the native library property names.

The following environment variables are recognized:

  • SOLCLIENT_SESSION_PROP_PASSWORD Password
  • SOLCLIENT_SESSION_PROP_HOST Host
  • SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION GdReconnectFailAction The acceptable strings for this environment variable are also based on the underlying native library:
    1. "SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_AUTO_RETRY" (AUTO_RETRY)
    2. "SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_DISCONNECT" (DISCONNECT)

Definition

Namespace: SolaceSystems.Solclient.Messaging
Assembly: SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 10.27.0
C#
[SerializableAttribute]
public class SessionProperties : BaseProperties
Inheritance
Object    BaseProperties    SessionProperties

Constructors

SessionProperties Class constructor Developer Note: All properties MUST have a default even if deprecated to avoid casting null.

Properties

AckEventMode Specifies if an Acknowledgement session event acknowledges a single message (PER_MSG) or a range of messages (WINDOWED).

Setting this property to WINDOWED will not affect RejectedMessageError events, they will still be emitted on a per message basis.

Default: PER_MSG
ADPublishAckTimerInMsecs The duration of the publisher acknowledgement timer (in milliseconds). When a published message is not acknowledged within the time specified for this timer, the API automatically retransmits the message. There is no limit on the number of retransmissions for any message. However, while the API is resending, applications can become flow controlled. The flow control behavior is controlled by SessionProperties.SendBlocking and SessionProperties.BlockingWriteTimeoutInMsecs.

The valid range is 20..60000. Default: 2000

ADPublishWindowSize The publisher window size for Guaranteed messages. The Guaranteed Message Publish Window Size property limits the maximum number of messages that can be published before the API must receive an acknowledgement from the appliance. Default: 50.
AuthenticationScheme Specifies the authentication scheme to be used by the corresponding ISession. For more information about the types of authentication schemes that can be set, see AuthenticationSchemes.
Default: BASIC
BindIP (Optional) The hostname or IP address of the machine on which the application is running. On a multi-homed machine, it is strongly recommended to provide this parameter to ensure that the API uses the correct network interface at session connect time. Default: empty string
BlockingWriteTimeoutInMsecs The timeout period (in milliseconds) for blocking write operation. The valid range is > 0.
Default: 100000
BlockWhileConnecting To block the calling thread on operations such as sending a message, subscribing or unsubscribing when the session is being connected or reconnected. The operation must already be blocking (see SendBlocking). Otherwise, SOLCLIENT_NOT_READY is returned if the session is being connected. Default: true
CalculateMessageExpiration When this property is set to true and the message's TimeToLive is set (has a non-zero value), the API updates the message's Expiration property with the sum of message's Time-To-Live and the UTC timestamp value after it has been sent or received. Default: false
ClientDescription A string that describes the application instance. This string is available from SolAdmin or CLI.
ClientMode Set to true to enable client mode. Client mode uses a single TCP connection to the appliance for both publisher and subscriber channels. To use this mode, the appliance requires a Topic Routing Blade.
Obsolete.
ClientName The session client name that is used during client login (appliances running SolOS-TR only) to create a unique session. An empty string causes a unique client name to be generated automatically. If specified, it must be a valid Topic name and a maximum of 160 bytes in length. For all appliances (SolOS-TR) the ClientName is also used to uniquely identify the sender in a message's senderId field if IncludeSenderId is set to true. Default: empty string
CompressionLevel Enables messages to be compressed with ZLIB before transmission and decompressed on receive. The valid range is 0 (off), or 1..9, where 1 is less compression (fastest) and 9 is most compression (slowest). Compression is only supported when the session is connected to an appliance running SolOS-TR. Default: 0 (no compression)
ConnectBlocking Use true to enable blocking connection operation. Default: true
ConnectRetries How many times to try to connect to the host appliance (or list of appliances) during connection setup. Zero means no automatic connection retries (that is, try once and give up). -1 means try to connect forever. The default valid range is >= -1.

API reattempts a connection retry, it begins with the first host listed. For example, if a SOLCLIENT_SESSION_PROP_CONNECT_RETRIES value of two is used, the API could possibly work through all of the listed hosts without connecting to them three times: one time through for the initial connect attempt, and then two times through for connect retries.

After each unsuccessful attempt to connect to a host, the API waits for the amount of time set for ReconnectRetriesWaitInMsecs before attempting another connection to a host, and the number times to attempt to connect to one host before moving on to the next listed host is determined by the value set for ConnectRetriesPerHost.

See Host for more details on the reconnect logic.

Zero means no automatic connection retries (that is, try once and give up). -1 means retry forever. The valid range is >= -1. Default: 0

ConnectRetriesPerHost When using a host list for the Host, this property defines how many times to try to connect or reconnect to a single host before moving to the next host in the list.

A value of 0 (the default) means make a single connection attempt (that is, 0 retries). A value of -1 means attempt an infinite number of reconnect retries (that is, the API only tries to connect or reconnect to first host listed.) Default: 0

NOTE: This property works in conjunction with the connect and reconnect retries settings; It does not replace them.

ConnectTimeoutInMsecs The timeout period (in milliseconds) for a connect operation. The valid range is > 0.
Default: 30000
Count Returns the count of properties.
(Inherited from BaseProperties)
GdReconnectFailAction Specify the behavior when the CCSMP API is unable to reconnect guaranteed delivery after reconnecting the session. This may occur if the session is configured with a host list where each Solace router in the host list is unaware of the state on the previous router. It can also occur if the time to reconnect to the same router exceeds the publisher flow timeout on the router.

May be set as an environment variable. (see SessionProperties)

Default: AUTO_RETRY
GdWithWebTransport Enables guaranteed messaging with web transport Default: false
GenerateReceiveTimestamps When enabled, a receive timestamp is recorded for each message and passed back as a property of IMessage. Default: false
GenerateSendTimestamps When enabled, a send timestamp is automatically generated as a message property for each message sent. Default: false
GenerateSequenceNumber When enabled, a sequence number is automatically included in the Solace-defined fields for each message sent. Default: false
Host The IPv4 or IPv6 address or host name to connect to. Multiple host entries separated by commas (up to sixteen) are allowed. With multiple entries, each is tried in turn until one succeeds.

Host entry

Host contains one or more host entries (up to sixteen). The host entry may also include an optional ProxyHost configuration, separated from the message router configuration by a percent (%) sign. A host entry has the following form:

[Protocol:]Host[:Port][%ProxyService]

Protocol is the protocol used for the transport channel. The valid values are:

  • tcp - use a TCP channel for communications between the application and its peers. If no protocol is set, tcp is used as a default.
  • tcps - use a SSL channel over TCP for communications between the application and its peers. The encryption with compression is not supported.
  • http - use HTTP channels or a WebSocket channel over TCP for communications between the application and its peers. Web Messaging with compression is not supported.
  • https - use HTTP channels or a WebSocket channel over SSL for communications between the application and its peers. Web Messaging with compression is not supported.

Host is the IPv4 or IPv6 address or host name to connect to for a connection. IPv6 addresses must be enclosed in brackets ([])

Port is the port to connect to for a connection. A value is only required when using a port other than the automatically assigned default port number. The default port for TCP is 55555 when compression is not in use, or 55003 when compression is in use. The default port for SSL is 55443.



ProxyService is a description of the non-transparent proxy. If it is necessary to configure the proxy server that is used to connect to the message router, then the proxy server is configured in the ProxyService string. The ProxyService string format is specified as:

[ProxyProtocol]://[username:password@]proxyHost[:proxyPort]
ProxyProtocol is the protocol used to communication with the proxy server. The valid values are:

  • socks5 - Connect to the server with the SOCKS Protocol Version 5, RFC 1928 (IETF Standards Track Document)
  • httpc - Connect to the server with the HTTP Connect Protocol, RFC 2817 (IETF Standards Track Document)

If authentication is required for the proxy server, the username and password may be optionally specified before the proxy host.

proxyHost is the IPv4 or IPv6 address or host name of the proxy server.

proxyPort is the port to connect to for a connection. If the port number is not specified, the default for SOCKS5 is port 1080, and the default for Http-Connect is port 3128.

The following examples show how to specify transport channel types. Unless it is otherwise specified, the default port 55555 is used.

  1. 192.168.160.28 - connect to IP address 192.168.160.28 over TCP.
  2. [fe80::1] - connect to IPV6 address fe80::1 and the default port 55555 over TCP.
  3. tcp:192.168.160.28 - connect to IP address 192.168.160.28 over TCP.
  4. tcps:192.168.160.28 - connect to IP address 192.168.160.28 and port 55443 over SSL over TCP.
  5. tcps:[fe80::1] - connect to IPV6 address fe80::1 and the default port 55443 over SSL over TCP.
  6. tcp:192.168.160.28:44444 - connect to IP address 192.168.160.28 and port 44444 over TCP.
  7. tcp:[fe80::1]:44444 - connect to IPV6 address fe80::1 and port 44444 over TCP.
  8. http://192.168.160.28 - connect to IP address 192.168.160.28 and the default port 80 over HTTP or WebSocket over TCP.
  9. https://192.168.160.28 - connect to IP address 192.168.160.28 and the default port 443 over HTTP or WebSocket over SSL over TCP

The following examples show how to connect to a message router through a proxy server.

  1. 192.168.160.28%socks5://192.168.1.1 - connect to message router at 192.168.160.28 through a SOCKS5 proxy server at 192.168.1.1.
  2. 192.168.160.28%httpc://192.168.1.1 - connect to message router at 192.168.160.28 through a HTTP-Connect proxy server at 192.168.1.1.
  3. tcps:solace.company.com%socks5://User:PassWord@proxy.company.com:13128 - connect to message router at solace.company.com using SSL over TCP through a SOCKS5 proxy server at proxy.company.com, port 13128. Authenticate with the proxy server using username User and password PassWord.
  4. tcp://192.168.160.27:44444%httpc://proxy.company.com:11080 - connect to the message router at 192.168.160.28, port 44444, using HTTP Connect through the proxy server at proxy.company.com, port 11080.
  5. [fe80::1]\%socks5://[fe80::2] - connect message router at [fe80::1] through a SOCKS5 proxy server at [fe80::2].

Configuring Multiple Hosts for Redundancy and Failover

Some applications might want to have a list of appliances available for connection. Typically these appliances will be in separate geographic locations and use of a host list allows applications to fail over to the alternate connections if the first appliance is unavailable. The host list is configured in the Host property of SessionProperties as a comma separated list of hosts. Each host can optionally include a port number as well. For example, if there are two appliances at 192.168.160.128 and 192.168.160.129, but the second is using the non-default port 50005 for the message bus, the SessionProperties.Host would be configured as:

SessionProperties.Host = "192.168.160.128,192.168.160.129:50005"


In this case, when Connect is called, the API attempts to connect, first to 192.168.160.128, if that connection fails for any reason it attempts to connect to 192.168.160.129:50005. This process is repeated until all entries in the host list are attempted. After each entry has been attempted, if all fail, the session properties ConnectRetries and ReconnectRetriesWaitInMsecs determine the behavior of the API. If ConnectRetries is non-zero, SolClient waits for ReconnectRetriesWaitInMsecs milliseconds then starts connection attempts again from the beginning of the list.

If an established session fails, to any host in the list, when ReconnectRetries is non-zero, then API automatically attempts to reconnect, starting at the beginning of the list. Note that the session connect timer, ConnectTimeoutInMsecs, runs separately for each connection attempt. So an application waiting for a connection established UpNotice or connection failure ConnectFailedError could have to wait up to ( (number of hosts in the hosts list) times (ConnectTimeoutInMsecs) ) for the event.

Multiple Hosts and Guaranteed Messaging

If a client application publishes Guaranteed messages ( NonPersistent or Persistent ) and then a disconnect occurs, the API will automatically reconnect to other listed hosts. However, because another host will not know the state of the publisher flow to the original host, the API must reset publisher flow state. Unacknowledged messages are renumbered and resent by the API. If the alternate router is configured as a replication site this may lead to duplicate messages in the system. It is up to the application to resolve this duplication in what ever way is appropriate to the application.

Applications may wish to configure the session so that auto-reconnect only occurs if no guaranteed messages have been published. This is the legacy behaviour of the API. If this is desired the set the session property GdReconnectFailAction to the value DISCONNECT. This session property can also be set as environment variable which then allows legacy applications to run without modification or recompile.

May be set as an environment variable. (see SessionProperties)



Default: empty string
IgnoreDuplicateSubscriptionError Set to true ignore errors for duplicate subscription/topic on subscribe or unsubscribe. Default: true
IncludeSenderId When enabled, a sender ID is automatically included in the Solace-defined fields for each message sent. Default: false
KeepAliveIntervalInMsecs Use 0 to disable keep-alive. If not zero, the minimum valid value is 50. Default: 3000.
KeepAliveIntervalsLimit The number of keep-alive intervals with no received traffic that are allowed before a session is declared down. The minimum valid value is 3.
KRBServiceName This property specifies the ServiceName of Service Principle Name (SPN) for Kerberos. It is used for all entries specified by the property Host The Service Principal Name (SPN) has the format "ServiceName/ApplianceName@REALM" where ServiceName is specified by this property, ApplianceName is the host portion of an entry specified by Host, and REALM is obtained from the Kerberos configuration. The maximum length for an SPN is 256 characters.
MaxFlowsPerSession The maximum number of flows supported on this session. Default: 100.
Obsolete.
ModifyPropertyTimeoutInMsecs Maximum amount of time (in milliseconds) to wait for session property modification. Default: 100000 (10 seconds)
NoLocal If this property is true, messages published on the session cannot be received on the same session even if the client has a subscription that matches the published topic. If this restriction is requested and the appliance does not have No Local support, the session connects fail with subcode NoLocalNotSupported. Default: false
OAuth2AccessToken The OAUTH2 access token. When authentication scheme OAUTH2 is used, at least one of OAuth2AccessToken or OidcIdToken must be set.
OAuth2IssuerIdentifier The optional Issuer identifier URI for OAUTH2 access token based authentication.
OidcIdToken The OIDC (OpenId Connect) ID token. When authentication scheme OAUTH2 is used, at least one of OAuth2AccessToken or OidcIdToken must be set.
P2PInboxInUse A read-only informational string that indicates the default reply-to destination string that is used when a sent request message does not have a reply-to destination specified. See SendRequest(IMessage, IMessage, Int32) for more details. This parameter is only valid when session is connected. Defaults to empty string, when it is not connected.
Password The password required for authentication.

May be set as an environment variable. (see SessionProperties)

Default: empty string
PayloadCompressionLevel

This property must be set to enable payload compression. Valid values for the payload compression level to be applied to the payload of a message published by a client are 0-9.

Value meanings:

  • 0 - "disable payload compression" (the default)
  • 1 - least amount of compression and fastest data throughput
  • 9 - most compression and slowest data throughput
The payload compression value should be adjusted according to particular network requirements and the performance required.

Note: Please ensure that both publishers and consumers are updated to support payload compression before enabling this property. In the case where a publisher compresses the payload and a consumer does not support payload decompression, the untouched compressed message will be received which can lead to potential issues within the consuming application. Therefore, the consumer would either need to update to a newer version of the API or the user would need to handle the decompression on the receiving side in their own application. If a publishing application is able to send a compressed message, brokers currently will discard messages on egress to other protocols such as MQTT, AMQP and HTTP (Kafka too?).

Default: 0 (disabled)

 
Port

This property is deprecated. While still supported, the port number can also now be specified as part of the host in Host (e.g. "hostname:55555"). In general, port numbers are not needed to be specified except in special situations. If this property is set, this port number is used for all entries in Host that do not explicitly specify port.

It represents the port number to connect to. Valid range is 0..65535; 0 means use default for the selected CompressionLevel.

Default: 0 (getting this property returns the appropriate default port: 55003 if compression is enabled, 55555 otherwise).


Obsolete.
ProvisionTimeoutInMsecs The timeout (in milliseconds) for an endpoint provision or deprovision confirmation. The valid range is >= 1000.
Default: 3000
ReapplySubscriptions Set to true to allow the API to remember subscriptions and reapply them upon a session reconnect.

Note: Reapply subscriptions will only apply direct topic subscriptions unpon a Session reconnect. It will not reapply topic subscriptions on durable and non-durable endpoints.

Default: false
ReconnectRetries How many times to retry to connect to the host appliance (or list of appliances) after a connected session goes down.

When using a host list, each time the API works through the host list without establishing a connection is considered a reconnect retry. If the API reattempts a reconnect retry, it begins with the first host listed. For example, if a ReconnectRetries value of two is used, the API could possibly work through all of the listed hosts without connecting to them three times: one time through for the initial connect attempt, and then two times through for reconnect retries.

After each unsuccessful attempt to reconnect to a host, the API waits for the amount of time set for ReconnectRetriesWaitInMsecs before attempting another connection to a host, and the number times to attempt to connect to one host before moving on to the next listed host is determined by the value set for ConnectRetriesPerHost.

See Host for more details on the reconnect logic.

Zero means no automatic reconnection attempts (that is, try once and give up). -1 means try to reconnect forever. The valid range is >= -1. Default: 0

ReconnectRetriesWaitInMsecs How much time (in ms) to wait between each attempt to connect or reconnect to a host. If a connect or reconnect attempt to host is not successful, the API waits for the amount of time set for ReconnectRetriesWaitInMsecs, and then makes another connect or reconnect attempt. ConnectRetriesPerHost sets how many connection or reconnection attempts can be made before moving to the next host in the list.

The valid range is >=0. Default: 3000

SdkBufferSize Controls the buffering of transmit messages. When sending small messages, the session buffer size should be set to multiple times the typical message size to improve performance. Regardless of the buffer size, the API always accepts at least one message to transmit. So even if a single message's size exceeds this value, it is accepted and transmitted, as along as the current buffered data is zero. However, no more messages are accepted until the amount of data buffered is reduced below this value.
Default: 90000
///
SendBlocking Set to true to enable blocking send operation. A blocking send operation suspends when the Session is transport flow controlled, otherwise the send operation returns SOLCLIENT_WOULD_BLOCK. Successful return from a blocking send operation only means the message has been accepted by the transport, it does not guarantee the messagehas been processed by the appliance. For the latter you must used Guaranteed Message Delivery mode and wait for the session event (Acknowledgement) that acknowledges the message.
Note: The API does not support a synchronous (send and wait for acknowledgement operation), however such an operation can be easily implemented in an application by waiting for a Acknowledgement.

Default: true
SocketReceiveBufferSizeInBytes The socket receive buffer size value. 0 indicates do not set and leave at operating system default. The valid range is 0 or >= 1024.
Default: 150000
SocketSendBufferSizeInBytes The socket send buffer size value. 0 indicates do not set and leave at operating system default. The valid range is 0 or >= 1024.
Default: 90000
SSLCipherSuites Specifies a comma separated list of the cipher suites. Allowed cipher suites are: 'ECDHE-RSA-AES256-GCM-SHA384', 'ECDHE-RSA-AES256-SHA384', 'ECDHE-RSA-AES256-SHA', 'AES256-GCM-SHA384', 'AES256-SHA256', 'AES256-SHA', 'ECDHE-RSA-DES-CBC3-SHA', 'DES-CBC3-SHA', 'ECDHE-RSA-AES128-GCM-SHA256', 'ECDHE-RSA-AES128-SHA256', 'ECDHE-RSA-AES128-SHA', 'AES128-GCM-SHA256', 'AES128-SHA256', 'AES128-SHA', 'RC4-SHA', 'RC4-MD5'.
Default: "ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-SHA,AES256-GCM-SHA384,AES256-SHA256,AES256-SHA,ECDHE-RSA-DES-CBC3-SHA,DES-CBC3-SHA,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-SHA,AES128-GCM-SHA256,AES128-SHA256,AES128-SHA,RC4-SHA,RC4-MD5"
SSLClientCertificate The client certificate object to be used by ISession objects when the session's AuthenticationScheme property is set to CLIENT_CERTIFICATE. When specified, the certificate object must have a valid PrivateKey property referring to either a RSA or a DSA private key object. This property is mutually exclusive with SSLClientCertificateFile, SSLClientPrivateKeyFile, and SSLClientPrivateKeyFilePassword. Either the certificate and private key are specified via the X509Certificate2 object, or they are specified via the aforementioned filename-based properties. If both are specified, an exception will be thrown.
This Property is restricted and has different behaviour for the following SessionProperties operation: Serialization, this Property is not serialized; FromDictionary(IDictionaryString, String), this Property can not be set from this operation; ToDictionary, this Property can not be added to the Dictionary result of this operation; ToString, this Property does not have an equivalent ToString field;

Default: null
SSLClientCertificateFile The filename of the client certificate file. Required when AuthenticationScheme is set to CLIENT_CERTIFICATE. When specified, a value of "" (or empty string) will cause a ParamOutOfRange failure when connecting the session.
Default: null
SSLClientPrivateKeyFile The filename of the client's private key. Required when AuthenticationScheme is set to CLIENT_CERTIFICATE. When specified, a value of "" (or empty string) will cause a ParamOutOfRange failure when connecting the session.
Default: null
SSLClientPrivateKeyFilePassword The password to decrypt and read the SSLClientPrivateKeyFile. This property is optional. When specified, a value of "" (or empty string) will cause a ParamOutOfRange failure when connecting the session.
Default: null
SSLConnectionDowngradeTo Specifies a transport protocol that SSL connection will be downgraded to after client authentication. Allowed transport protocol is "PLAIN_TEXT"
Default: null
SSLExcludedProtocols Specifies a comma separated list of excluded SSL protocol(s). Valid protocols are 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2'.
Default: ""
SSLProtocol This property is deprecated.
Obsolete.
SSLTrustedCommonNameListNOT RECOMMENDED Per RFC-6125 section 6.4.4, the Common Name (CN) of a certificate should not be used to validate the certificate. Instead SSLValidateCertificateHost (enabled by default) indicates that the server certificate must contain a Subject Alternate Name (SAN) that matches the host name (Host).
This property is only used if SSLValidateCertificateHost is disabled. This property specifies a comma separated list of acceptable common names in certificate validation. The number of common names specified by an applications is limited to 16. Leading and trailing whitespaces are considered to be part of the common names and are not ignored. If the application does not provide any common names, there is no common name verification.

Default: empty string
SSLTrustStore The collection of all trusted root certificates to be used by ISession objects. The trusted root certificates are used in establishing trust with a PubSub+ message broker when connecting via a protocol over SSL/TLS. This occurs when specifying protocols such as tcps or https in a Host. This property is mutually exclusive with SSLTrustStoreDir. Trusted certificates may be specified with one property or the other, but not both. If both are specified, an exception will be thrown when the session is created with CreateSession(SessionProperties, EventHandlerMessageEventArgs, EventHandlerSessionEventArgs). Trusted certificate store can be invalid when there are no valid certificates in the collection. An exception will be thrown when the session is created with CreateSession(SessionProperties, EventHandlerMessageEventArgs, EventHandlerSessionEventArgs).
Default: null
SSLTrustStoreDir Specifies the directory where the trusted certificates are. The maximum depth for the certificate chain verification that shall be allowed is 3.
Default: null
SSLValidateCertificate Indicates if the certificate validation with certificates in the truststore is enabled. Default: true

Note on certificate validation: When validating certificates, the messaging APIs for C and .NET use the following validation rules, after building the chain from the server certificate to a self-signed root certificate using certificates presented by the server and certificates in the trust store :

  • Verify the root certificate is trusted.
  • Verify depth of the chain is <= 3.
Java and JMS messaging APIs use the same rules as C and .NET with the following exceptions:
  • Depth validation is not enforced in Java or JMS.
  • When the server presents an incomplete certificate chain, Java/JMS messaging APIs only require the signer of the incomplete certificate chain to be in the trust store, where this could be insufficient for C/.NET APIs.
Therefore C and .NET messaging APIs certificate validation rules are more restrictive, hence if a certificate is accepted by C or .NET, it will definitely be accepted by Java and JMS.


Default: true
SSLValidateCertificateDate Indicates if the session connection should fail when a certificate with an invalid date is received.
This property only applies when SSLValidateCertificate is enabled.

Default: true
SSLValidateCertificateHost Indicates if the sesssion connection should fail when a certificate with an invalid host is received. When enabled, and connecting to a named host, the certificate Subject Alternative Name must contain a DNS entry that matches the host string.
When enabled, and connecting to a host by IP address, the certificate Subject Alternative Name must contain an IP Address that matches.

If there is no Subject Alternate Name the certificate common name (CN) may be checked against the host string.

This property only applies when SSLValidateCertificate is enabled.

Default: true
SubscribeBlocking Set to true to enable blocking subscribe/unsubscribe operation.
Default: true
SubscribeConfirmTimeoutInMsecs The timeout (in milliseconds) for an add or remove subscription confirmation. The valid range is >= 1000. Default: 10000
SubscriberLocalPriority Subscriber priorities are used to choose a client to receive messages that are sent with the DeliverToOne property set to true. These messages are sent to the subscriber with the highest priority. Subscribers have two priorities; this priority (SubscriberLocalPriority) is for messages published locally.

The valid range is 1..4. Default: 1


Obsolete.
SubscriberNetworkPriority Subscriber priorities are used to choose a client to receive messages that are sent with the DeliverToOne property set to true. These messages are sent to the subscriber with the highest priority. Subscribers have two priorities; this priority (SubscriberNetworkPriority) is for messages published on appliances other than the one that the client is connected to.

Valid range is 1..4. Default: 1


Obsolete.
TcpNoDelay Set to true to enable TCP No Delay on the underlying TCP connection.
Default: true
TopicDispatch Set to true to have the API dispatch messages based on topic. For more details see the IMessageDispatcher documentation. Default: false
UserIdentification A read-only informational string that provides information about the application, such as the name of operating system user that is running the application, the hostname, and the PID of the application. Returns empty string, if the session has not been connected.
UserName The username required for authentication. Default: empty string
VirtualRouterName A read-only session property that indicates the Virtual Router Name of the connected appliance. Used in building appliance endpoint and destination objects such as Queues. Appliance endpoints and destinations created with a virtual router name are valid for use with that appliance, or to address destinations on remote appliances (in a multiple-appliance network) when publishing messages.

Applications requiring the virtual router name need not poll this property every time it is needed, and may cache the name. Applications should query the name once after connecting the session, and again after a reconnect operation reports the VirtualRouterNameChanged session event.

When not connected, an empty string is returned.
VPNName The name of the Message VPN to attempt to join when connecting to an appliance running SolOS-TR. Default: empty string
VPNNameInUse A read-only session property that indicates which Message VPN the session is connected to. When not connected, or when not in client mode, an empty string is returned.

Methods

Clear Removes all properties.
(Inherited from BaseProperties)
Clone Creates a new object that is a deep copy of the current instance.
(Inherited from BaseProperties)
Equals Determines whether the specified Object is equal to the current Object.
(Inherited from BaseProperties)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
FromDictionary Creates and returns a new SessionProperties given a dictionary of key/value strings

where:

key: is a string representation of a given SessionProperties property SessionPropertiesPROPERTY.

value: is a string representation of the value of that property.

Rules:

1. Keys that are not in the SessionProperties' property set SessionPropertiesPROPERTY are ignored and a warning log is generated.

2. If a property is omitted, the default value is used.

3. Validation and type checking is performed on the provided values; a conversion exception is thrown if any of the provided values cannot be converted.

4. Read-only properties are ignored.

FromDictionaryWithPrefix Creates and returns a new SessionProperties from a dictionary of key/value strings

where:

key: is a string representation of a given SessionProperties property SessionPropertiesPROPERTY prefixed with a string "prefix".

value: is a string representation of the value of that property.

Rules:

1. Keys that are not in the SessionProperties' property set SessionPropertiesPROPERTY, are ignored and a warning log is generated.

2. If a property is omitted, the default value will be used.

3. Validation and type checking will be performed on the provided values, a conversion exception will be thrown if any of the provided values cannot be converted.

4. Read-only properties are ignored.

GetHashCode Serves as a hash function for a particular type.
(Inherited from BaseProperties)
GetPropertyValue Gets the property value associated with the given key.
(Inherited from BaseProperties)
GetTypeGets the Type of the current instance.
(Inherited from Object)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
RemoveProperty internal method to remove property from property map
(Inherited from BaseProperties)
SetCCSMPProperty Sets a property to be passed directly to CCSMP. Properties set in this manner will always override properties set using the shortcut properties, regardless of order.
(Inherited from BaseProperties)
SetPropertyValue Associates a property key with a property value.
(Inherited from BaseProperties)
SetReferencePropertyValue Associates a property key with a property value. The value will not be marked for serialization.
(Inherited from BaseProperties)
ToDictionary Returns a new IDictionary instance where:

key: is a string representation of a given SessionProperties property SessionPropertiesPROPERTY.

value: is a string representation of the value of that property, or null if the property's value is null.

Note that only readable and writable properties are returned in the dictionary. Read-only properties are ignored.
ToDictionaryWithPrefix Returns a new IDictionary instance where:

key: is a string representation of a given SessionProperties property SessionPropertiesPROPERTY prefixed with a string "prefix".

value: is a string representation of the value of that property, or null if the property's value is null.

Note that only readable and writable properties are returned in the dictionary. Read-only properties are ignored.
ToString Returns a String that represents the current Object.
(Overrides ObjectToString)

See Also