PubSub+ Messaging API For C  7.29.0.6
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
solClient.h File Reference

include file for the Solace Corporation Messaging API for C More...

#include "solClientDeprecated.h"

Data Structures

struct  solClient_destination
 A data structure to represent the message destination. More...
 
struct  solClient_field
 The general solClient_field structure is returned by generic accessors to the container. More...
 
struct  solClient_uuid
 A structure used to hold a UUID (Universally Unique Identifier), as per IETF RFC 4122. More...
 
struct  solClient_errorInfo
 The structure used to record more detailed error information for a failed API call. More...
 
struct  solClient_bufInfo
 A structure used to point to a message part and indicate the size of that part (in bytes). More...
 
struct  solClient_session_eventCallbackInfo
 A structure that is returned (as a pointer) for each event in the event callback for a Session. More...
 
struct  solClient_flow_eventCallbackInfo
 A structure that is returned (as a pointer) for each event in the event callback callback for a Flow. More...
 
struct  solClient_log_callbackInfo
 
struct  solClient_context_createRegisterFdFuncInfo
 Function information for file descriptor registration and file descriptor unregistration functions. More...
 
struct  solClient_context_createFuncInfo
 Function information for Context creation. More...
 
struct  solClient_session_createRxCallbackFuncInfo
 DEPRECATED. More...
 
struct  solClient_session_createRxMsgCallbackFuncInfo
 Callback information for Session message receive callbacks. More...
 
struct  solClient_session_createEventCallbackFuncInfo
 Callback information for Session event callback. More...
 
struct  solClient_session_rxMsgDispatchFuncInfo
 Callback information for Session message receive dispatch. More...
 
struct  solClient_flow_createRxCallbackFuncInfo
 Callback information for Flow message receive callback. More...
 
struct  solClient_flow_createRxMsgCallbackFuncInfo
 Callback information for Flow message receive callback. More...
 
struct  solClient_flow_rxMsgDispatchFuncInfo
 Callback information for Flow message receive dispatch. More...
 
struct  solClient_flow_createEventCallbackFuncInfo
 Callback information for Flow event callback. More...
 
struct  solClient_session_createFuncInfo
 Function information for Session creation. More...
 
struct  solClient_flow_createFuncInfo
 Function information for Flow creation. More...
 
struct  solClient_version_info
 A structure returned from solClient_version_get that contains version information. More...
 

Macros

#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_0   "GLOBAL_DBQUANTA_SIZE_0"
 The size (in bytes) of data buffers in the pool of smallest buffers. The valid range is > 0. More...
 
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_1   "GLOBAL_DBQUANTA_SIZE_1"
 The size (in bytes) of data buffers in the second pool of buffers. The valid range is > 0. More...
 
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_2   "GLOBAL_DBQUANTA_SIZE_2"
 The size (in bytes) of data buffers in the third pool of buffers. The valid range is > 0. More...
 
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_3   "GLOBAL_DBQUANTA_SIZE_3"
 The size (in bytes) of data buffers in the fourth pool of buffers. The valid range is > 0. More...
 
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_4   "GLOBAL_DBQUANTA_SIZE_4"
 The size (in bytes) of data buffers in the fifth (last) pool of buffers. The valid range is > 0. More...
 
#define SOLCLIENT_GLOBAL_PROP_MAXPOOLMEM   "GLOBAL_MAXPOOLMEM"
 The maximum amount of memory (in bytes) the API can save in its data and message pools. Once it reaches this size, data blocks are released back to the heap and are not kept in a API pool. More...
 
#define SOLCLIENT_GLOBAL_PROP_GSS_KRB_LIB   "GLOBAL_GSS_KRB_LIB"
 The GSS Kerberos library name. Default:
More...
 
#define SOLCLIENT_GLOBAL_PROP_IBM_CODESET   "GLOBAL_IBM_CODESET"
 Only valid on the z/TPF mainframe. More...
 
#define SOLCLIENT_GLOBAL_PROP_SSL_LIB   "GLOBAL_SSL_LIB"
 The TLS (Transport Layer Security) and SSL (Secure Sockets Layer) library name. Default:
More...
 
#define SOLCLIENT_GLOBAL_PROP_CRYPTO_LIB   "GLOBAL_CRYPTO_LIB"
 The Cryptography library name, this library contains ciphers and algorithms used by ::SOLCLIENT_GLOBAL_PROP_SSL_LIB Default:
More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_0   "10240"
 The default size (10 KB) of data buffers in the pool of smallest buffers. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_1   "32768"
 The default size (32 KB) of data buffers in the second pool of buffers. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_2   "65536"
 The default size (64 KB) of data buffers in the third pool of buffers. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_3   "262144"
 The default size (256 KB) of data buffers in the 4th pool of buffers. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_4   "1048576"
 The default size (1 MB) of data buffers in the 5th (last) pool of buffers. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_MAXPOOLMEM   "1073741824"
 The default maximum memory pool size (1 GB). More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_LINUX   "libgssapi_krb5.so.2"
 The default GSS Kerberos library name for Linux. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_SOLARIS   "mech_krb5.so.1"
 The default GSS Kerberos library name for Solaris. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_WINDOWS   "secur32.dll"
 The default GSS Kerberos library name for Windows. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_AIX   "libgssapi_krb5.a(libgssapi_krb5.a.so)"
 The default GSS Kerberos library name for AIX. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_IBM_CODESET   "TPF_CCSID_IBM1047"
 The default IBM character set in use by the application. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_UNIX   "libssl.so"
 The default SSL library name for Unix (including Linux and AIX) More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_MACOSX   "libssl.1.1.dylib"
 The default SSL library name for MacOSX. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_VMS   "SSL1$LIBSSL_SHR.EXE"
 The default SSL library name for OpenVMS. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_WINDOWS   "libssl-1_1.dll"
 The default SSL library name for Windows. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_UNIX   "libcrypto.so"
 The default crypto library name for Unix (including Linux and AIX). More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_MACOSX   "libcrypto.1.1.dylib"
 The default crypto library name for MacOSX. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_VMS   "SSL1$LIBCRYPTO_SHR.EXE"
 The default crypto library name for OpenVMS. More...
 
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_WINDOWS   "libcrypto-1_1.dll"
 The default crypto library name for Windows. More...
 
#define SOLCLIENT_CONTEXT_PROP_TIME_RES_MS   "CONTEXT_TIME_RES_MS"
 The internal timer resolution (in milliseconds). More...
 
#define SOLCLIENT_CONTEXT_PROP_CREATE_THREAD   "CONTEXT_CREATE_THREAD"
 Use SOLCLIENT_PROP_ENABLE_VAL to have the Context thread created automatically (as opposed to the application creating and destroying this thread). More...
 
#define SOLCLIENT_CONTEXT_PROP_THREAD_AFFINITY   "CONTEXT_THREAD_AFFINITY"
 The desired thread affinity mask for the Context thread. More...
 
#define SOLCLIENT_CONTEXT_PROP_THREAD_AFFINITY_CPU_LIST   "CONTEXT_THREAD_AFFINITY_CPU_LIST"
 The desired thread affinity for the Context thread in the form of a comma-separated list of base-10 non-negative integers and dash-separated ranges. More...
 
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_TIME_RES_MS   "50"
 The default value for timer resolution (in milliseconds). More...
 
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_CREATE_THREAD   SOLCLIENT_PROP_DISABLE_VAL
 The default value for create Context thread. More...
 
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_THREAD_AFFINITY   "0"
 By default, the thread affinity for the auto-created Context thread is not set. More...
 
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_THREAD_AFFINITY_CPU_LIST   ""
 By default, the thread affinity for the auto-created Context thread is not set. More...
 
#define SOLCLIENT_SESSION_PROP_USERNAME   "SESSION_USERNAME"
 The username required for authentication. More...
 
#define SOLCLIENT_SESSION_PROP_PASSWORD   "SESSION_PASSWORD"
 The password required for authentication. More...
 
#define SOLCLIENT_SESSION_PROP_HOST   "SESSION_HOST"
 The IPv4 or IPv6 address or host name to connect to. More...
 
#define SOLCLIENT_SESSION_PROP_PORT   "SESSION_PORT"
 Deprecated. More...
 
#define SOLCLIENT_SESSION_PROP_BUFFER_SIZE   "SESSION_BUFFER_SIZE"
 The maximum amount of messages to buffer (in bytes) when the TCP session is flow controlled (see Message Buffer Size Configuration). More...
 
#define SOLCLIENT_SESSION_PROP_CONNECT_BLOCKING   "SESSION_CONNECT_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking connect operation. More...
 
#define SOLCLIENT_SESSION_PROP_SEND_BLOCKING   "SESSION_SEND_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking send operation. More...
 
#define SOLCLIENT_SESSION_PROP_SUBSCRIBE_BLOCKING   "SESSION_SUBSCRIBE_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking subscribe/unsubscribe operation. More...
 
#define SOLCLIENT_SESSION_PROP_BLOCK_WHILE_CONNECTING   "SESSION_BLOCK_WHILE_CONNECTING"
 Use SOLCLIENT_PROP_ENABLE_VAL to block the calling thread on operations such as sending a message, subscribing, or unsubscribing when the Session is being connected or reconnected. More...
 
#define SOLCLIENT_SESSION_PROP_BLOCKING_WRITE_TIMEOUT_MS   "SESSION_WRITE_TIMEOUT_MS"
 The timeout period (in milliseconds) for blocking write operation. More...
 
#define SOLCLIENT_SESSION_PROP_CONNECT_TIMEOUT_MS   "SESSION_CONNECT_TIMEOUT_MS"
 The timeout period (in milliseconds) for a connect operation to a given host (per host). More...
 
#define SOLCLIENT_SESSION_PROP_SUBCONFIRM_TIMEOUT_MS   "SESSION_SUBCONFIRM_TIMEOUT_MS"
 The timeout period (in milliseconds) for subscription confirm (add or remove). More...
 
#define SOLCLIENT_SESSION_PROP_IGNORE_DUP_SUBSCRIPTION_ERROR   "SESSION_IGNORE_DUP_SUBSCRIPTION_ERROR"
 Use SOLCLIENT_PROP_ENABLE_VAL to ignore errors for duplicate subscription/topic on subscribe or subscription not found errors on unsubscribe. More...
 
#define SOLCLIENT_SESSION_PROP_TCP_NODELAY   "SESSION_TCP_NODELAY"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable TCP no delay. More...
 
#define SOLCLIENT_SESSION_PROP_SOCKET_SEND_BUF_SIZE   "SESSION_SOCKET_SEND_BUF_SIZE"
 The value for the socket send buffer size (in bytes). More...
 
#define SOLCLIENT_SESSION_PROP_SOCKET_RCV_BUF_SIZE   "SESSION_SOCKET_RCV_BUF_SIZE"
 The value for socket receive buffer size (in bytes). More...
 
#define SOLCLIENT_SESSION_PROP_KEEP_ALIVE_INT_MS   "SESSION_KEEP_ALIVE_INTERVAL_MS"
 The amount of time (in milliseconds) to wait between sending out Keep-Alive messages. More...
 
#define SOLCLIENT_SESSION_PROP_KEEP_ALIVE_LIMIT   "SESSION_KEEP_ALIVE_LIMIT"
 The maximum number of consecutive Keep-Alive messages that can be sent without receiving a response before the connection is closed by the API. More...
 
#define SOLCLIENT_SESSION_PROP_APPLICATION_DESCRIPTION   "SESSION_APPLICATION_DESCRIPTION"
 A string that uniquely describes the application instance. More...
 
#define SOLCLIENT_SESSION_PROP_CLIENT_MODE   "SESSION_CLIENT_MODE"
 Deprecated. More...
 
#define SOLCLIENT_SESSION_PROP_BIND_IP   "SESSION_BIND_IP"
 (Optional) The hostname or IP address of the machine on which the application is running. More...
 
#define SOLCLIENT_SESSION_PROP_PUB_WINDOW_SIZE   "SESSION_PUB_WINDOW_SIZE"
 The publisher window size for Guaranteed messages. More...
 
#define SOLCLIENT_SESSION_PROP_PUB_ACK_TIMER   "SESSION_PUB_ACK_TIMER"
 The duration of publisher acknowledgment timer (in milliseconds). More...
 
#define SOLCLIENT_SESSION_PROP_VPN_NAME   "SESSION_VPN_NAME"
 The name of the Message VPN to attempt to join when connecting to an broker running SolOS-TR. More...
 
#define SOLCLIENT_SESSION_PROP_VPN_NAME_IN_USE   "SESSION_VPN_NAME_IN_USE"
 A read-only Session property that indicates which Message VPN the Session is connected to. More...
 
#define SOLCLIENT_SESSION_PROP_CLIENT_NAME   "SESSION_CLIENT_NAME"
 The Session client name that is used during client login to create a unique Session. More...
 
#define SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL   "SESSION_COMPRESSION_LEVEL"
 Enables messages to be compressed with ZLIB before transmission and decompressed on receive. More...
 
#define SOLCLIENT_SESSION_PROP_GENERATE_RCV_TIMESTAMPS   "SESSION_RCV_TIMESTAMP"
 When enabled, a receive timestamp is recorded for each message and passed to the application callback in the rxCallbackInfo_t structure. More...
 
#define SOLCLIENT_SESSION_PROP_GENERATE_SEND_TIMESTAMPS   "SESSION_SEND_TIMESTAMP"
 When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent. More...
 
#define SOLCLIENT_SESSION_PROP_GENERATE_SENDER_ID   "SESSION_SEND_SENDER_ID"
 When enabled, a sender ID is automatically included (if not already present) in the Solace-defined fields for each message sent. More...
 
#define SOLCLIENT_SESSION_PROP_GENERATE_SEQUENCE_NUMBER   "SESSION_SEND_SEQUENCE_NUMBER"
 When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent. More...
 
#define SOLCLIENT_SESSION_PROP_CONNECT_RETRIES_PER_HOST   "SESSION_CONNECT_RETRIES_PER_HOST"
 When using a host list, 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. More...
 
#define SOLCLIENT_SESSION_PROP_CONNECT_RETRIES   "SESSION_CONNECT_RETRIES"
 How many times to try to connect to the host broker (or list of broker) during connection setup. More...
 
#define SOLCLIENT_SESSION_PROP_RECONNECT_RETRIES   "SESSION_RECONNECT_RETRIES"
 How many times to retry to reconnect to the host broker (or list of broker) after a connected Session goes down. More...
 
#define SOLCLIENT_SESSION_PROP_RECONNECT_RETRY_WAIT_MS   "SESSION_RECONNECT_RETRY_WAIT_MS"
 How much time (in ms) to wait between each attempt to connect or reconnect to a host. More...
 
#define SOLCLIENT_SESSION_PROP_USER_ID   "SESSION_USER_ID"
 A read-only informational string providing 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. More...
 
#define SOLCLIENT_SESSION_PROP_P2PINBOX_IN_USE   "SESSION_REPLY_TO_DEFAULT_DEST"
 A read-only informational string that indicates the default reply-to destination that is used when a request message is sent that does not have a reply-to destination specified. More...
 
#define SOLCLIENT_SESSION_PROP_REPLY_TO_DEFAULT_DEST   SOLCLIENT_SESSION_PROP_P2PINBOX_IN_USE
 Deprecated: see SOLCLIENT_SESSION_PROP_P2PINBOX_IN_USE. More...
 
#define SOLCLIENT_SESSION_PROP_REAPPLY_SUBSCRIPTIONS   "SESSION_REAPPLY_SUBSCRIPTIONS"
 Use SOLCLIENT_PROP_ENABLE_VAL to have the API remember subscriptions and reapply them upon a Session reconnect. More...
 
#define SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH   "SESSION_TOPIC_DISPATCH"
 Use SOLCLIENT_PROP_ENABLE_VAL to have the API dispatch messages based on Topic (see Dispatching Messages Based on a Topic). More...
 
#define SOLCLIENT_SESSION_PROP_PROVISION_TIMEOUT_MS   "SESSION_PROVISION_TIMEOUT_MS"
 Maximum amount of time (in milliseconds) to wait for a provision command (create or delete an endpoint) More...
 
#define SOLCLIENT_SESSION_PROP_CALCULATE_MESSAGE_EXPIRATION   "SESSION_CALCULATE_MESSAGE_EXPIRATION"
 If this property is true and time-to-live (solClient_msg_setTimeToLive()) has a positive value in a message, the expiration time is calculated when the message is sent or received and can be retrieved with solClient_msg_getExpiration. More...
 
#define SOLCLIENT_SESSION_PROP_VIRTUAL_ROUTER_NAME   "SESSION_VIRTUAL_ROUTER_NAME"
 A read-only property that indicates the connected broker's virtual router name. More...
 
#define SOLCLIENT_SESSION_PROP_NO_LOCAL   "SESSION_NO_LOCAL"
 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. More...
 
#define SOLCLIENT_SESSION_PROP_AD_PUB_ROUTER_WINDOWED_ACK   "SESSION_AD_PUB_ROUTER_WINDOWED_ACK"
 When disabled, initiate a window size of 1 to broker, but do not wait for acknowledgments before transmitting up to the actual window size. More...
 
#define SOLCLIENT_SESSION_PROP_MODIFYPROP_TIMEOUT_MS   "SESSION_MODIFYPROP_TIMEOUT_MS"
 Maximum amount of time (in milliseconds) to wait for session property modification. More...
 
#define SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE   "SESSION_ACK_EVENT_MODE"
 This property specifies if a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT acknowledges a single message (see SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_PER_MSG) or a range of messages (see SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_WINDOWED). More...
 
#define SOLCLIENT_SESSION_PROP_SSL_EXCLUDED_PROTOCOLS   "SESSION_SSL_EXCLUDED_PROTOCOLS"
 This property specifies a comma separated list of excluded SSL protocol(s). More...
 
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE   "SESSION_SSL_VALIDATE_CERTIFICATE"
 This is used to specify whether the API should validate server certificates with certificates in the truststore. More...
 
#define SOLCLIENT_SESSION_PROP_OPENSSL_SECURITY_LEVEL   "SESSION_OPENSSL_SECURITY_LEVEL"
 A number from 0-5 passed to the openSsl library as the security level. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CLIENT_CERTIFICATE_FILE   "SESSION_SSL_CLIENT_CERTIFICATE_FILE"
 This property specifies the client certificate file name. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CLIENT_PRIVATE_KEY_FILE   "SESSION_SSL_CLIENT_PRIVATE_KEY_FILE"
 This property specifies the client private key file name. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CLIENT_PRIVATE_KEY_FILE_PASSWORD   "SESSION_SSL_CLIENT_PRIVATE_KEY_FILE_PASSWORD"
 This property specifies the password used to encrypt the client private key file. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CONNECTION_DOWNGRADE_TO   "SESSION_SSL_CONNECTION_DOWNGRADE_TO"
 This property specifies a transport protocol that SSL connection will be downgraded to after client authentication. More...
 
#define SOLCLIENT_SESSION_PROP_INITIAL_RECEIVE_BUFFER_SIZE   "SESSION_INITIAL_RECEIVE_BUFFER_SIZE"
 If not zero, the minimum starting size for the API receive buffer. More...
 
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME   "SESSION_AUTHENTICATION_SCHEME"
 This property specifies the authentication scheme. More...
 
#define SOLCLIENT_SESSION_PROP_KRB_SERVICE_NAME   "SESSION_KRB_SERVICE_NAME"
 This property specifies the first part of Kerberos Service Principal Name (SPN) of the form ServiceName/Hostname@REALM (for Windows) or Host Based Service of the form ServiceName@Hostname (for Linux and SunOS). More...
 
#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION   "SESSION_UNBIND_FAIL_ACTION"
 A property to define the behavior if an unbind-response is not received after an unbind-request (solClient_flow_destroy()) is sent to the Solace Appliance. More...
 
#define SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL   ("SESSION_WEB_TRANSPORT_PROTOCOL")
 This property specifies a WEB Transport Protocol in the default WEB Transport Protocol downgrade list to use for the session connection. More...
 
#define SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL_IN_USE   ("SESSION_WEB_TRANSPORT_PROTOCOL_IN_USE")
 Read-only property which returns the WEB Transport Protocol currently in use for web messaging. More...
 
#define SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL_LIST   ("SESSION_WEB_TRANSPORT_PROTOCOL_LIST")
 This property specifies a comma separated list of WEB Transport Protocols to use for session connection. More...
 
#define SOLCLIENT_SESSION_PROP_TRANSPORT_PROTOCOL_DOWNGRADE_TIMEOUT_MS   ("SESSION_TRANSPORT_PROTOCOL_DOWNGRADE_TIMEOUT_MS")
 Specifies how long to wait (in milliseconds) for a login response before moving to the next available protocol in a user specified or the default WEB Transport Protocol downgradelist. More...
 
#define SOLCLIENT_SESSION_PROP_GUARANTEED_WITH_WEB_TRANSPORT   ("SESSION_GUARANTEED_WITH_WEB_TRANSPORT")
 Enables guaranteed messaging with web transport protocols. More...
 
#define SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION   "SESSION_GD_RECONNECT_FAIL_ACTION"
 A property to define the behavior when the CCSMP API is unable to reconnect guaranteed delivery after reconnecting the session. More...
 
#define SOLCLIENT_SESSION_PROP_OAUTH2_ACCESS_TOKEN   "SESSION_OAUTH2_ACCESS_TOKEN"
 The OAUTH2 access token. More...
 
#define SOLCLIENT_SESSION_PROP_OAUTH2_ISSUER_IDENTIFIER   "SESSION_OAUTH2_ISSUER_IDENTIFIER"
 The optional Issuer identifier URI for OAUTH2 access token based authentication. More...
 
#define SOLCLIENT_SESSION_PROP_OIDC_ID_TOKEN   "SESSION_OIDC_ID_TOKEN"
 The OIDC (OpenId Connect) ID Token. More...
 
#define SOLCLIENT_TRANSPORT_PROTOCOL_NULL   ("")
 An empty value for SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL means "use best available". More...
 
#define SOLCLIENT_TRANSPORT_PROTOCOL_WS_BINARY   ("WS_BINARY")
 Binary-encoded, using the WebSocket protocol, supports guaranteed web transport. More...
 
#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY_STREAMING   ("HTTP_BINARY_STREAMING")
 Binary encoded, responses are received in streaming mode for higher efficiency. More...
 
#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY   ("HTTP_BINARY")
 Binary-encoded, responses are received in COMET style. More...
 
#define SOLCLIENT_TRANSPORT_PROTOCOL_PLAIN_TEXT   ("PLAIN_TEXT")
 
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_BASIC   "AUTHENTICATION_SCHEME_BASIC"
 
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE   "AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE"
 
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_GSS_KRB   "AUTHENTICATION_SCHEME_GSS_KRB"
 
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_OAUTH2   "AUTHENTICATION_SCHEME_OAUTH2"
 OAUTH 2.0 authentication with a token. More...
 
#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_RETRY   "UNBIND_FAIL_ACTION_RETRY"
 
#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_DISCONNECT   "UNBIND_FAIL_ACTION_DISCONNECT"
 
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_DATE   "SESSION_SSL_VALIDATE_CERTIFICATE_DATE"
 This property indicates if the session connection should fail when a certificate with an invalid date (current date before valid date, or current date after expiry) is received. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST   "SESSION_SSL_VALIDATE_CERTIFICATE_HOST"
 This property indicates if the session connection should fail when a certificate with an invalid host is received. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SUITES   "SESSION_SSL_CIPHER_SUITES"
 This property specifies a comma separated list of the cipher suites. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_TRUST_STORE_DIR   "SESSION_SSL_TRUST_STORE_DIR"
 This property specifies the directory where the trusted certificates are. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_TRUSTED_COMMON_NAME_LIST   "SESSION_SSL_TRUSTED_COMMON_NAME_LIST"
 NOT RECOMMENDED. More...
 
#define SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_AUTO_RETRY   ("GD_RECONNECT_FAIL_ACTION_AUTO_RETRY")
 Clear the publisher state and reconnect the publisher flow. More...
 
#define SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_DISCONNECT   ("GD_RECONNECT_FAIL_ACTION_DISCONNECT")
 Disconnect the session, even if SOLCLIENT_SESSION_PROP_RECONNECT_RETRIES is configured to a non-zero value. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_USERNAME   ""
 The default value for username. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PASSWORD   ""
 The default value for password. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_HOST   "127.0.0.1"
 The default value for the broker IP address. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT   "55555"
 The default value for the broker TCP port when compression is not in use (SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL of zero). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT_COMPRESSION   "55003"
 The default value for the broker TCP port when compression is in use (SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL of non-zero). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT_SSL   "55443"
 The default value for the broker SSL port over TCP regardless of compression. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_BUFFER_SIZE   "90000"
 The default size (in bytes) of internal buffer for transmit buffering. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking connect operation. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SEND_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking send operation. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBE_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking subscribe/unsubscribe operation. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_BLOCK_WHILE_CONNECTING   SOLCLIENT_PROP_ENABLE_VAL
 The default is to block operations such as sending a message, subscribing, or unsubscribing if the Session is being connected. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_BLOCKING_WRITE_TIMEOUT_MS   "100000"
 The default blocking write timeout (in milliseconds). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_TIMEOUT_MS   "30000"
 The default connect timeout (in milliseconds). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBCONFIRM_TIMEOUT_MS   "10000"
 The default subscription confirm (add or remove) timeout (in milliseconds). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_IGNORE_DUP_SUBSCRIPTION_ERROR   SOLCLIENT_PROP_ENABLE_VAL
 The default is ignore errors for duplicate subscription/topic on subscribe or unsubscribe. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_TCP_NODELAY   SOLCLIENT_PROP_ENABLE_VAL
 The default value for TCP no delay. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SOCKET_SEND_BUF_SIZE   "90000"
 Use 0 to set the socket send buffer size to the operating system default. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SOCKET_RCV_BUF_SIZE   "150000"
 Use 0 to set the socket receive buffer size to the operating system default. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_KEEP_ALIVE_INT_MS   "3000"
 The default amount of time (in milliseconds) to wait between sending out Keep-Alive messages. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_KEEP_ALIVE_LIMIT   "3"
 The default value for the number of consecutive Keep-Alive messages that can be sent without receiving a response before the connection is closed by the API. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_APPLICATION_DESCRIPTION   ""
 The default value for the application description. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CLIENT_MODE   SOLCLIENT_PROP_DISABLE_VAL
 The default value for client mode. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_BIND_IP   ""
 The default value for local IP on connect is unset (bind to any) . More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PUB_ACK_TIMER   "2000"
 The default value for publisher acknowledgment timer (in milliseconds). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PUB_WINDOW_SIZE   "50"
 The default Publisher Window size for Guaranteed messages. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_VPN_NAME   ""
 The default Message VPN name to connect this Session to. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CLIENT_NAME   ""
 The default Session Client Name is a null string to have the C API generate one. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBER_LOCAL_PRIORITY   "1"
 The default subscriber priority for locally published messages. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBER_NETWORK_PRIORITY   "1"
 The default subscriber priority for remotely published messages. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_COMPRESSION_LEVEL   "0"
 The default compression level (no compression). More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_RCV_TIMESTAMPS   SOLCLIENT_PROP_DISABLE_VAL
 The default receive message timestamps. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SEND_TIMESTAMPS   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include send message timestamps. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SENDER_ID   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include a sender id. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SEQUENCE_NUMBER   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include a sequence number. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_RETRIES_PER_HOST   "0"
 The default number of connect retries per host. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_RETRIES   "0"
 The default number of connect retries. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_RECONNECT_RETRIES   "0"
 The default number of reconnect retries. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_RECONNECT_RETRY_WAIT_MS   "3000"
 The default amount of time in (milliseconds) to wait before attempting a reconnect attempt. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_REAPPLY_SUBSCRIPTIONS   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_REAPPLY_SUBSCRIPTIONS. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_TOPIC_DISPATCH   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH (see Dispatching Messages Based on a Topic) More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_PROVISION_TIMEOUT_MS   "3000"
 The default amount of time (in milliseconds) to wait for a provision command. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_MODIFYPROP_TIMEOUT_MS   "10000"
 The default amount of time (in milliseconds) to wait for session property modification. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_CALCULATE_EXPIRATION_TIME   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_CALCULATE_MESSAGE_EXPIRATION. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_NO_LOCAL   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_NO_LOCAL. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_AD_PUB_ROUTER_WINDOWED_ACK   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_AD_PUB_ROUTER_WINDOWED_ACK. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_EXCLUDED_PROTOCOLS   ""
 The default value for SOLCLIENT_SESSION_PROP_SSL_EXCLUDED_PROTOCOLS. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_DATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_DATE. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_HOST   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_CIPHER_SUITES   ("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")
 The default value for SOLCLIENT_SESSION_PROP_SSL_CIPHER_SUITES. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_INITIAL_RECEIVE_BUFFER_SIZE   "0"
 The default value for SOLCLIENT_SESSION_PROP_INITIAL_RECEIVE_BUFFER_SIZE. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_AUTHENTICATION_SCHEME   SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_BASIC
 The default value for SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_KRB_SERVICE_NAME   "solace"
 The default for SOLCLIENT_SESSION_PROP_KRB_SERVICE_NAME. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_UNBIND_FAIL_ACTION   SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_RETRY
 The default value for SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_WEB_TRANSPORT_PROTOCOL   SOLCLIENT_TRANSPORT_PROTOCOL_NULL
 The default value for web messaging Transport Protocol. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_TRANSPORT_PROTOCOL_DOWNGRADE_TIMEOUT_MS   ("3000")
 The default value for the Transport Protocol downgrade timeout in milliseconds. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GUARANTEED_WITH_WEB_TRANSPORT   SOLCLIENT_PROP_DISABLE_VAL
 The default for enabling guaranteed messaging with web transports. More...
 
#define SOLCLIENT_SESSION_PROP_DEFAULT_GD_RECONNECT_FAIL_ACTION   SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_AUTO_RETRY
 The default action when the CCSMP API is unable to reestablish the publisher flow is to complete the reconnect on the session. More...
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_GCM_SHA384   ("ECDHE-RSA-AES256-GCM-SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384   ("TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_SHA384   ("ECDHE-RSA-AES256-SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384   ("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_SHA   ("ECDHE-RSA-AES256-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA   ("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_GCM_SHA384   ("AES256-GCM-SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_256_GCM_SHA384   ("TLS_RSA_WITH_AES_256_GCM_SHA384")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_SHA256   ("AES256-SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_256_CBC_SHA256   ("TLS_RSA_WITH_AES_256_CBC_SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_SHA   ("AES256-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_256_CBC_SHA   ("TLS_RSA_WITH_AES_256_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_DES_CBC3_SHA   ("ECDHE-RSA-DES-CBC3-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA   ("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_DES_CBC3_SHA   ("DES-CBC3-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SSL_RSA_WITH_3DES_EDE_CBC_SHA   ("SSL_RSA_WITH_3DES_EDE_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_GCM_SHA256   ("ECDHE-RSA-AES128-GCM-SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256   ("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_SHA256   ("ECDHE-RSA-AES128-SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256   ("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_SHA   ("ECDHE-RSA-AES128-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA   ("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_GCM_SHA256   ("AES128-GCM-SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_128_GCM_SHA256   ("TLS_RSA_WITH_AES_128_GCM_SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_SHA256   ("AES128-SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_128_CBC_SHA256   ("TLS_RSA_WITH_AES_128_CBC_SHA256")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_SHA   ("AES128-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_TLS_RSA_WITH_AES_128_CBC_SHA   ("TLS_RSA_WITH_AES_128_CBC_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_RC4_SHA   ("RC4-SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SSL_RSA_WITH_RC4_128_SHA   ("SSL_RSA_WITH_RC4_128_SHA")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_RC4_MD5   ("RC4-MD5")
 
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SSL_RSA_WITH_RC4_128_MD5   ("SSL_RSA_WITH_RC4_128_MD5")
 
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1_2   ("TLSv1.2")
 
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1_1   ("TLSv1.1")
 
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1   ("TLSv1")
 
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_SSLV3   ("SSLv3")
 
#define SOLCLIENT_SESSION_PROP_MAX_USERNAME_LEN   (189)
 The maximum length of username string (Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_PASSWORD_LEN   (128)
 The maximum length of password string (Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_HOSTS   (16)
 The maximum number of hosts that can appear in the Session host property. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_APP_DESC   (255)
 The maximum length of application (that is, the client) description string (Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_CLIENT_NAME_LEN   (160)
 The maximum length of client name string (Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_VPN_NAME_LEN   (32)
 The maximum length of a Message VPN name string (Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_SESSION_PROP_MAX_VIRTUAL_ROUTER_NAME_LEN   (52)
 The maximum length of a virtual router name (read-only Session property), not including the NULL terminator. More...
 
#define SOLCLIENT_CONTEXT_PROP_MAX_CPU_LIST_LEN   (255)
 The maximum length of the SOLCLIENT_CONTEXT_PROP_THREAD_AFFINITY_CPU_LIST string (Context property), not including the NULL terminator. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_BLOCKING   "FLOW_BIND_BLOCKING"
 This property controls whether or not to block in solClient_session_createFlow(). More...
 
#define SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS   "FLOW_BIND_TIMEOUT_MS"
 The timeout (in milliseconds) used when creating a Flow in blocking mode. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_ID   "FLOW_BIND_ENTITY_ID"
 The type of object to which this Flow is bound. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE   "FLOW_BIND_ENTITY_DURABLE"
 The durability of the object to which this Flow is bound. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_NAME   "FLOW_BIND_NAME"
 The name of the Queue or Topic Endpoint that is the target of the bind. More...
 
#define SOLCLIENT_FLOW_PROP_WINDOWSIZE   "FLOW_WINDOWSIZE"
 The Guaranteed message window size for the Flow. More...
 
#define SOLCLIENT_FLOW_PROP_AUTOACK   "FLOW_AUTOACK"
 Deprecated: When set to SOLCLIENT_PROP_ENABLE_VAL, the API generates application level acknowledgments when the receive callback function returns. More...
 
#define SOLCLIENT_FLOW_PROP_ACKMODE   "FLOW_ACKMODE"
 Controls how acknowledgments are generated for received Guaranteed messages. More...
 
#define SOLCLIENT_FLOW_PROP_TOPIC   "FLOW_TOPIC"
 When binding to a Topic endpoint, the Topic may be set in the bind. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_BIND_TRIES   "FLOW_MAX_BIND_TRIES"
 When creating a non-blocking Flow, or a Flow that is bound due to Session-connect, the maximum number of bind attempts to make. More...
 
#define SOLCLIENT_FLOW_PROP_ACK_TIMER_MS   "FLOW_ACK_TIMER_MS"
 The duration of the Flow acknowledgment timer (in milliseconds). More...
 
#define SOLCLIENT_FLOW_PROP_ACK_THRESHOLD   "FLOW_ACK_THRESHOLD"
 The threshold for sending an acknowledgement, configured as a percentage. More...
 
#define SOLCLIENT_FLOW_PROP_START_STATE   "FLOW_START_STATE"
 This property controls whether the Flow should be created in a start or stop state with respect to receiving messages. More...
 
#define SOLCLIENT_FLOW_PROP_SELECTOR   "FLOW_SELECTOR"
 A Java Message System (JMS) defined selector. More...
 
#define SOLCLIENT_FLOW_PROP_NO_LOCAL   "FLOW_NO_LOCAL"
 When a Flow has the No Local property enabled, messages published on the Session cannot appear in a Flow created in the same Session, even if the endpoint contains a subscription that matches the published message. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES   "FLOW_MAX_UNACKED_MESSAGES"
 This property may only be set when the Flow property SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT. More...
 
#define SOLCLIENT_FLOW_PROP_BROWSER   "FLOW_BROWSER"
 Set browser mode on flow and signal it is a browser flow to broker on bind. More...
 
#define SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND   "FLOW_ACTIVE_FLOW_IND"
 When a Flow has the Active Flow Indication property enabled, the application will receive flow events when the flow becomes active, or inactive. More...
 
#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION   "FLOW_REPLAY_START_LOCATION"
 When a Flow is created, the application may request replay of messages from the replay log, even messages that have been previously delivered and removed the from topic endpoint or queue. More...
 
#define SOLCLIENT_FLOW_PROP_MAX_RECONNECT_TRIES   "FLOW_MAX_RECONNECT_TRIES"
 When a flow is unbound by the message-broker due to "Replay Started" or "Service Unavailable", the API will attempt to reconnect the flow if this property is non-zero. More...
 
#define SOLCLIENT_FLOW_PROP_RECONNECT_RETRY_INTERVAL_MS   "FLOW_RECONNECT_RETRY_INTERVAL_MS"
 When a flow is reconnecting, the API will attempt to reconnect immediately, if that bind attempt fails it will wait for the retry interval before attempting to connect again. More...
 
#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_FAILED   "FLOW_REQUIRED_OUTCOME_FAILED"
 Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_FAILED. More...
 
#define SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_REJECTED   "FLOW_REQUIRED_OUTCOME_REJECTED"
 Create a flow that allows solClient_flow_settleMsg() with SOLCLIENT_OUTCOME_REJECTED. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is bind blocking. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_TIMEOUT_MS   "10000"
 The default bind timeout in milliseconds. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_ID   SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB
 The default bind target type. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_DURABLE   SOLCLIENT_PROP_ENABLE_VAL
 The default bind target durability. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_NAME   ""
 The default bind target. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_WINDOWSIZE   "255"
 The default Flow window size. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_AUTOACK   SOLCLIENT_PROP_ENABLE_VAL
 The default acknowledgment mode is AutoAcknowledgment. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_TOPIC   ""
 The default Topic for a Topic Endpoint bind. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_BIND_TRIES   "3"
 The default maximum number of bind attempts. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_TIMER_MS   "1000"
 The default Flow acknowledgment timer in milliseconds. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_THRESHOLD   "60"
 The default threshold for sending an acknowledgment, as a percentage of the Flow window size. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_START_STATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_START_STATE property. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_SELECTOR   ""
 The default selector when binding to an endpoint. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_NO_LOCAL   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_NO_LOCAL property. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_UNACKED_MESSAGES   "-1"
 The default value for SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_BROWSER   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_BROWSER property. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACTIVE_FLOW_IND   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND property. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_REPLAY_START_LOCATION   ""
 The default value for SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION is no replay requested. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_RECONNECT_TRIES   "-1"
 The default value for SOLCLIENT_FLOW_PROP_MAX_RECONNECT_TRIES. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_RECONNECT_RETRY_INTERVAL_MS   "3000"
 The default reconnect retry interval timer. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_REQUIRED_OUTCOME_FAILED   SOLCLIENT_PROP_DISABLE_VAL
 Failing messages is disabled by default. More...
 
#define SOLCLIENT_FLOW_PROP_DEFAULT_REQUIRED_OUTCOME_REJECTED   SOLCLIENT_PROP_DISABLE_VAL
 Rejecting messages is disabled by default. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB   "1"
 A bind target of subscriber. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_QUEUE   "2"
 A bind target of Queue. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE   "3"
 A bind target of Topic Endpoint. More...
 
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DTE   SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE
 Deprecated name; SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE is preferred. More...
 
#define SOLCLIENT_ENDPOINT_PROP_ID   "ENDPOINT_ID"
 The type of endpoint, the valid values are SOLCLIENT_ENDPOINT_PROP_QUEUE, SOLCLIENT_ENDPOINT_PROP_TE, and SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME. More...
 
#define SOLCLIENT_ENDPOINT_PROP_NAME   "ENDPOINT_NAME"
 The name of the Queue or Topic endpoint as a NULL-terminated UTF-8 encoded string. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DURABLE   "ENDPOINT_DURABLE"
 The durability of the endpoint to name. More...
 
#define SOLCLIENT_ENDPOINT_PROP_PERMISSION   "ENDPOINT_PERMISSION"
 The created entity's permissions, a single character string. More...
 
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE   "ENDPOINT_ACCESSTYPE"
 Sets the access type for the endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PROP_QUOTA_MB   "ENDPOINT_QUOTA_MB"
 Maximum quota (in megabytes) for the endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_SIZE   "ENDPOINT_MAXMSG_SIZE"
 Maximum size (in bytes) for any one message stored in the endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PROP_RESPECTS_MSG_TTL   "ENDPOINT_RESPECTS_MSG_TTL"
 The endpoint observes message Time-to-Live (TTL) values and can remove expired messages. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_BEHAVIOR   "ENDPOINT_DISCARD_BEHAVIOR"
 When a message cannot be added to an endpoint (for example, maximum quota (SOLCLIENT_ENDPOINT_PROP_QUOTA_MB) exceeded), this property controls the action the broker will perform towards the publisher. More...
 
#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_REDELIVERY   "ENDPOINT_MAXMSG_REDELIVERY"
 Defines how many message redelivery retries before discarding or moving the message to the DMQ. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_ID   SOLCLIENT_ENDPOINT_PROP_TE
 The endpoint type of the endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_DURABLE   SOLCLIENT_PROP_ENABLE_VAL
 Whether the endpoint is durable. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_RESPECTS_MSG_TTL   SOLCLIENT_PROP_DISABLE_VAL
 Whether the endpoint observes message Time-to-Live values and can remove expired messages. More...
 
#define SOLCLIENT_PROVISION_FLAGS_WAITFORCONFIRM   (0x01)
 The provision operation blocks until it has completed successfully on the broker or failed. More...
 
#define SOLCLIENT_PROVISION_FLAGS_IGNORE_EXIST_ERRORS   (0x02)
 When set, it is not considered an error if the endpoint already exists (create) or does not exist (delete). More...
 
#define SOLCLIENT_SESSION_CAPABILITY_PUB_GUARANTEED   "SESSION_CAPABILITY_PUB_GUARANTEED"
 Boolean - The Session allows publishing of Guaranteed messages. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_SUB_FLOW_GUARANTEED   "SESSION_CAPABILITY_SUB_FLOW_GUARANTEED"
 Boolean - The Session allows binding a Guaranteed Flow to an endpoint. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_BROWSER   "SESSION_CAPABILITY_BROWSER"
 Boolean - The Session allows binding to a Queue as a Browser. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_TEMP_ENDPOINT   "SESSION_CAPABILITY_TEMP_ENDPOINT"
 Boolean - The Session allows the creation of temporary endpoints (Queues / TopicEndpoints). More...
 
#define SOLCLIENT_SESSION_CAPABILITY_JNDI   "SESSION_CAPABILITY_JNDI"
 Boolean - The Session accepts JNDI queries. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSION   "SESSION_CAPABILITY_COMPRESSION"
 Boolean - The Session accepts compressed (DEFLATE) data. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_SELECTOR   "SESSION_CAPABILITY_SELECTOR"
 Boolean - The Session supports a selector on Flows. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_MANAGEMENT   "SESSION_CAPABILITY_ENDPOINT_MANAGEMENT"
 The Session is allowed to create/delete durable endpoints dynamically. More...
 
#define SOLCLIENT_SESSION_PEER_PLATFORM   "SESSION_PEER_PLATFORM"
 String - A broker/peer returned string that describes the hardware platform. More...
 
#define SOLCLIENT_SESSION_PEER_SOFTWARE_DATE   "SESSION_PEER_SOFTWARE_DATE"
 String - A broker/peer returned string that contains the release date for the broker software. More...
 
#define SOLCLIENT_SESSION_PEER_SOFTWARE_VERSION   "SESSION_PEER_SOFTWARE_VERSION"
 String - A broker/peer returned string that contains the version information. More...
 
#define SOLCLIENT_SESSION_PEER_PORT_SPEED   "SESSION_PEER_PORT_SPEED"
 Uint32 - The maximum rate (in Megabits/second) supported by the broker/peer port. More...
 
#define SOLCLIENT_SESSION_PEER_PORT_TYPE   "SESSION_PEER_PORT_TYPE"
 String - The broker/peer port type. More...
 
#define SOLCLIENT_SESSION_PEER_ROUTER_NAME   "SESSION_PEER_ROUTER_NAME"
 String - The broker/peer Appliance Name, typically used to direct management requests. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_MAX_GUARANTEED_MSG_SIZE   "SESSION_CAPABILITY_MAX_GUARANTEED_MSG_SIZE"
 Uint32 - The maximum size (in bytes) of a Guaranteed message, including all optional message headers and data. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_MAX_DIRECT_MSG_SIZE   "SESSION_CAPABILITY_MAX_DIRECT_MSG_SIZE"
 Uint32 - The maximum size (in bytes) of a Direct message, including all optional message headers and data. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_MESSAGE_TTL   "SESSION_CAPABILITY_ENDPOINT_MESSAGE_TTL"
 Boolean - The Session supports message Time-to-Live (TTL) (this only applies to messages that are spooled) in published messages. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_QUEUE_SUBSCRIPTIONS   "SESSION_CAPABILITY_QUEUE_SUBSCRIPTIONS"
 Boolean - The Session supports adding subscription to durable and non-durable queues on the peer. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_SUBSCRIPTION_MANAGER   "SESSION_CAPABILITY_SUBSCRIPTION_MANAGER"
 Boolean - The broker supports adding subscriptions on behalf of other client names. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_ELIDING   "SESSION_CAPABILITY_MESSAGE_ELIDING"
 Boolean - The Session supports message eliding. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_NO_LOCAL   "SESSION_CAPABILITY_NO_LOCAL"
 Boolean - The Session supports No Local. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING   "SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING"
 Boolean - The peer can insert per Topic sequence numbers. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR   "SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR"
 Boolean - The peer endpoints can be provisioned with discard behavior. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ACTIVE_FLOW_INDICATION   "SESSION_CAPABILITY_ACTIVE_FLOW_INDICATION"
 Boolean - TRUE if session supports active flow indication parameter. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_TRANSACTED_SESSION   "SESSION_CAPABILITY_TRANSACTED_SESSION"
 Boolean - The Session allows Guaranteed Data Transacted Sessions. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_OPENMAMA   "SESSION_CAPABILITY_OPENMAMA"
 Boolean - The Session allows the OpenMAMA API to be used. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_REPLAY   "SESSION_CAPABILITY_MESSAGE_REPLAY"
 Boolean - The Session allow Message Replay on flow create. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSED_SSL   "SESSION_CAPABILITY_COMPRESSED_SSL"
 Boolean - The peer can support ssl downgrade to compression. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_LONG_SELECTORS   "SESSION_CAPABILITY_LONG_SELECTORS"
 Boolean - The peer can support selectors longer than 1023 bytes. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS   "SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS"
 Boolean - The peer can support #shared and #noexport subscriptions. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_BR_REPLAY_ERRORID   "SESSION_CAPABILITY_BR_REPLAY_ERRORID"
 Boolean - The peer can support the endpoint error id parameter on the flow bind response during message replay. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_AD_APP_ACK_FAILED   "SESSION_CAPABILITY_AD_APP_ACK_FAILED"
 Boolean - The broker supports FAILED and REJECTED message settlement outcomes. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_VAR_LEN_EXT_PARAM   "SESSION_CAPABILITY_VAR_LEN_EXT_PARAM"
 Boolean - The peer can support variable length extended parameters. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_AD_APP_ACK_FAILED   "SESSION_CAPABILITY_AD_APP_ACK_FAILED"
 Boolean - The broker supports FAILED and REJECTED message settlement outcomes. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ADCTRL_VERSION_MIN   "SESSION_CAPABILITY_ADCTRL_VERSION_MIN"
 Uint32 - Lowest AdCtrl version supported by the broker. More...
 
#define SOLCLIENT_SESSION_CAPABILITY_ADCTRL_VERSION_MAX   "SESSION_CAPABILITY_ADCTRL_VERSION_MAX"
 Uint32 - Highest AdCtrl version supported by the broker. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_HAS_PUBLISHER   "TRANSACTEDSESSION_HAS_PUBLISHER"
 If it is enabled, a publisher flow is created when a Transacted Session is created successfully. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_CREATE_MESSAGE_DISPATCHER   "TRANSACTEDSESSION_CREATE_MESSAGE_DISPATCHER"
 If it is enabled, a TransactedSession-bound Message Dispatcher is lazily created for asynchronous message delivery within a Transacted Session. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_REQUESTREPLY_TIMEOUT_MS   "TRANSACTEDSESSION_REQUESTREPLY_TIMEOUT_MS"
 Timeout (in milliseconds) to wait for a response. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_PUB_WINDOW_SIZE   "TRANSACTEDSESSION_PUB_WINDOW_SIZE"
 Transacted publisher window size, if supported by broker. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_HAS_PUBLISHER   SOLCLIENT_PROP_ENABLE_VAL
 By default, a publisher flow is automatically created when a Transacted Session is created. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_CREATE_MESSAGE_DISPATCHER   SOLCLIENT_PROP_DISABLE_VAL
 By default, the default Context-bound Message Dispatcher is used for asynchronous message delivery within a transacted session. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_REQUESTREPLY_TIMEOUT_MS   "10000"
 The default Transacted Session request timer in milliseconds. More...
 
#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_PUB_WINDOW_SIZE   "255"
 The default transacted publisher window size. More...
 
#define SOLCLIENT_ERRORINFO_STR_SIZE   (256)
 The maximum size of error string including terminating NULL character. More...
 
#define SOLCLIENT_CONTEXT_CREATEFUNC_INITIALIZER   {{NULL, NULL, NULL}}
 
#define SOLCLIENT_SESSION_CREATEFUNC_INITIALIZER   {{NULL,NULL},{NULL,NULL},{NULL,NULL}}
 
#define SOLCLIENT_FLOW_CREATEFUNC_INITIALIZER   {{NULL,NULL},{NULL,NULL},{NULL,NULL}}
 
#define SOLCLIENT_SESSION_DISPATCHFUNC_INITIALIZER(type)   {type, NULL, NULL, NULL}
 
#define SOLCLIENT_FLOW_DISPATCHFUNC_INITIALIZER(type)   {type, NULL, NULL, NULL}
 
#define SOLCLIENT_TRANSACTEDSESSION_MAX_SESSION_NAME_LENGTH   64
 The maximum transacted session name length. More...
 
Default Log Filter Level

Definition of default log level that should be used for normal operation.

This default log filter level can be passed to solClient_initialize() and solClient_log_setFilterLevel().

#define SOLCLIENT_LOG_DEFAULT_FILTER   (SOLCLIENT_LOG_NOTICE)
 Default log filter level. More...
 
File Descriptor Event Types

Events that can be registered or unregistered for a file descriptor, through solClient_context_registerForFdEvents() and solClient_context_unregisterForFdEvents(), and returned when the events occur.

Events can be ORed together.

#define SOLCLIENT_FD_EVENT_READ   (0x01)
 A readable file descriptor event. More...
 
#define SOLCLIENT_FD_EVENT_WRITE   (0x02)
 A writeable file descriptor event. More...
 
#define SOLCLIENT_FD_EVENT_ALL   (0x03)
 This type represents all defined file descriptor events. More...
 
Class of Service Value Types

Values that can be used to set the class of service of a message using solClient_msg_setClassOfService()

#define SOLCLIENT_COS_1   (0x00)
 The lowest class of service value. More...
 
#define SOLCLIENT_COS_2   (0x01)
 The middle class of service value. More...
 
#define SOLCLIENT_COS_3   (0x02)
 The highest class of service value. More...
 
Delivery Mode Types

Values that can be used to set the delivery mode of a message using solClient_msg_setDeliveryMode()

#define SOLCLIENT_DELIVERY_MODE_DIRECT   (0x00)
 Send a Direct message. More...
 
#define SOLCLIENT_DELIVERY_MODE_PERSISTENT   (0x10)
 Send a Persistent message. More...
 
#define SOLCLIENT_DELIVERY_MODE_NONPERSISTENT   (0x20)
 Send a Non-Persistent message. More...
 
Subscriber Flag Types

Values that can be used as part of the flags field to solClient_session_topicSubscribeExt() and solClient_session_topicUnsubscribeExt().

#define SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM   (0x02)
 The subscribe/unsubscribe call blocks until a confirmation is received. More...
 
#define SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY   (0x08)
 For the topic dispatch feature, this flag indicates the subscription should only be added to the dispatch table and should not be added to the broker. More...
 
#define SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM   (0x10)
 Requests a confirmation for the subscribe/unsubscribe operation. More...
 
Certain session property modification Flag Types

Values that can be used as part of the flags field to solClient_session_modifyClientInfo() function.

#define SOLCLIENT_MODIFYPROP_FLAGS_WAITFORCONFIRM   (0x01)
 The modifyClientInfo API call blocks until a confirmation is received or its associated timer SOLCLIENT_SESSION_PROP_MODIFYPROP_TIMEOUT_MS expires. More...
 
UUID (Universally Unique Identifier) String Buffer Size

The size (in bytes) of the buffer required by solClient_generateUUIDString() to hold a UUID value in a string representation as per IETF RFC 4122, including the terminating NULL character.

#define SOLCLIENT_UUID_STRING_BUFFER_SIZE   (37)
 The size in bytes for string representation of UUID value. More...
 
Acknowledgment Event Mode

It specifies if a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT acknowledges a single message or a range of messages.

#define SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_PER_MSG   "SESSION_ACK_EVENT_MODE_PER_MSG"
 In this mode, a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT acknowledges a single message. More...
 
#define SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_WINDOWED   "SESSION_ACK_EVENT_MODE_WINDOWED"
 In this mode, a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT is a ranged acknowledgment. More...
 
Configuration Properties Enable/Disable

For configuration property items that are on/off in nature, the value "1" is used to enable the property, and "0" is used to disable the property.

Any non-zero value is converted to "1" for such properties.

#define SOLCLIENT_PROP_ENABLE_VAL   "1"
 The value used to enable the property. More...
 
#define SOLCLIENT_PROP_DISABLE_VAL   "0"
 The value used to disable the property. More...
 
Context properties with Context thread created automatically and all other properties at default values.

A convenience set of Context properties for use with solClient_context_create() that specify that the Context thread should be created automatically.

All other Context properties are the default values, (that is, {SOLCLIENT_CONTEXT_PROP_CREATE_THREAD, SOLCLIENT_PROP_ENABLE_VAL, NULL}).

#define SOLCLIENT_CONTEXT_PROPS_DEFAULT_WITH_CREATE_THREAD   ((solClient_propertyArray_pt )_solClient_contextPropsDefaultWithCreateThread)
 Use with solClient_context_create() to create a Context in which the automatic Context thread is automatically created and all other properties are set with default values. More...
 
flowAckMode Flow Acknowledgment Modes
#define SOLCLIENT_FLOW_PROP_ACKMODE_AUTO   "1"
 Automatic application acknowledgment of all received messages. More...
 
#define SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT   "2"
 Client must call solClient_flow_sendAck() to acknowledge the msgId specified. More...
 
Endpoint Naming Entities, used as values for ENDPOINT properties in
#define SOLCLIENT_ENDPOINT_PROP_QUEUE   "2"
 Request is for a Queue. More...
 
#define SOLCLIENT_ENDPOINT_PROP_TE   "3"
 Request is for a Topic Endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME   "4"
 Request is for a Client name (solClient_session_endpointTopicSubscribe() / solClient_session_endpointTopicUnsubscribe()) only. More...
 
Endpoint Naming Entities, used as values for ENDPOINT properties in solClient_session_endpointProvision().
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE_NONEXCLUSIVE   "0"
 A non-exclusive (shared) Queue. More...
 
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE_EXCLUSIVE   "1"
 An exclusive Queue. More...
 
Endpoint Permissions
#define SOLCLIENT_ENDPOINT_PERM_NONE   "n"
 No permissions for other clients. More...
 
#define SOLCLIENT_ENDPOINT_PERM_READ_ONLY   "r"
 Read-only permission other clients may not consume messages. More...
 
#define SOLCLIENT_ENDPOINT_PERM_CONSUME   "c"
 Consumer permission other clients may read and consume messages. More...
 
#define SOLCLIENT_ENDPOINT_PERM_MODIFY_TOPIC   "m"
 Modify Topic permission other clients may read and consume messages, and modify Topic on a Topic Endpoint. More...
 
#define SOLCLIENT_ENDPOINT_PERM_DELETE   "d"
 Delete permission other clients may read and consume messages, modify the Topic on a Topic Endpoint, and delete the endpoint. More...
 
Endpoint Discard Msg Behavior
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_NOTIFY_SENDER_ON   "1"
 Send the publisher a message reject notification SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR. More...
 
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_NOTIFY_SENDER_OFF   "2"
 Discard the message and acknowledge it. More...
 
Replay Start Location
#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING   "BEGINNING"
 Replay all messages in the replay log. More...
 
UserProps
#define SOLCLIENT_MESSAGE_USER_PROP_QUEUE_PARTITION_KEY   "JMSXGroupID"
 Key for getting or setting partition key for a queue where the message should/is published to when supported by a PubSub+ messaging broker. More...
 
Limits on sizes of message portions
#define SOLCLIENT_BUFINFO_MAX_USER_DATA_SIZE   (36)
 The maximum size allowed for the user-data portion. More...
 
#define SOLCLIENT_BUFINFO_MAX_CORRELATION_TAG_SIZE   (16)
 The maximum size allowed for the correlation tag portion. More...
 
#define SOLCLIENT_BUFINFO_MAX_TOPIC_SIZE   (250)
 The maximum size allowed for the topic portion (not including the terminating NULL). More...
 
#define SOLCLIENT_BUFINFO_MAX_QUEUENAME_SIZE   (250)
 The maximum size allowed for the Queue name portion (not including the terminating NULL). More...
 
#define SOLCLIENT_SESSION_SEND_MULTIPLE_LIMIT   50 /**> The maximum number of messages which can be sent through a single call to solClient_session_sendMultipleMsg()*/
 
Invalid Value for a Timer Identifier

This can be used to distinguish between a timer identifier value that has been allocated and one that has not.

#define SOLCLIENT_CONTEXT_TIMER_ID_INVALID   (0xffffffff)
 An invalid value for a timer identifier. More...
 
Utilities to raise logs
#define solClient_log(level,...)
 Allows the application to raise a log using the format of logs generated internally by the API. More...
 
#define solClient_log_va_list(level, format_p, ap)
 Allows the application to raise a log that is similar to solClient_log. More...
 

Typedefs

typedef void ** solClient_opaquePointer_pt
 An opaque pointer to a pointer. More...
 
typedef enum
solClient_destinationType 
solClient_destinationType_t
 
typedef struct
solClient_destination 
solClient_destination_t
 
typedef enum solClient_fieldType solClient_fieldType_t
 
typedef struct solClient_field solClient_field_t
 
typedef enum solClient_returnCode solClient_returnCode_t
 The type for API return codes. More...
 
typedef enum
solClient_rxMsgCallback_returnCode 
solClient_rxMsgCallback_returnCode_t
 
typedef enum solClient_subCode solClient_subCode_t
 Type for API sub codes. More...
 
typedef enum solClient_log_level solClient_log_level_t
 Type for log levels. More...
 
typedef enum solClient_log_category solClient_log_category_t
 Type for log filter categories. More...
 
typedef int solClient_fd_t
 Type for a file descriptor. More...
 
typedef solClient_uint32_t solClient_fdEvent_t
 A mask of events that can be requested for a file descriptor. More...
 
typedef solClient_uint32_t solClient_subscribeFlags_t
 A set of flags that can be provided to solClient_session_topicSubscribeExt() and solClient_session_topicUnsubscribeExt(). More...
 
typedef solClient_uint32_t solClient_session_responseCode_t
 An error response code that is returned with Session events. More...
 
typedef solClient_uint64_t solClient_msgId_t
 A unique msgId assigned to each Persistent and Non-Persistent message. More...
 
typedef solClient_uint32_t solClient_modifyPropFlags_t
 A set of flags that can be provided to a solClient_session_modifyClientInfo() call. More...
 
typedef struct solClient_uuid solClient_uuid_t
 
typedef struct solClient_errorInfo solClient_errorInfo_t
 
typedef struct
solClient_errorInfo
solClient_errorInfo_pt
 A pointer to a solClient_errorInfo structure returned from solClient_getLastErrorInfo() . More...
 
typedef struct solClient_bufInfo solClient_bufInfo_t
 
typedef solClient_bufInfo_tsolClient_bufInfo_pt
 A pointer to solClient_bufInfo structure used to point to a message part and to indicate the size of that part (in bytes). More...
 
typedef solClient_uint64_t solClient_stats_t
 Type of a statistics value. More...
 
typedef solClient_uint64_tsolClient_stats_pt
 Type of a pointer to a statistics value. More...
 
typedef enum solClient_stats_rx solClient_stats_rx_t
 Type that indicates which receive statistic. More...
 
typedef enum solClient_stats_tx solClient_stats_tx_t
 Type that indicates which transmit statistic. More...
 
typedef struct
solClient_session_eventCallbackInfo 
solClient_session_eventCallbackInfo_t
 
typedef struct
solClient_session_eventCallbackInfo
solClient_session_eventCallbackInfo_pt
 A pointer to solClient_session_eventCallbackInfo structure of information returned with a Session event. More...
 
typedef struct
solClient_flow_eventCallbackInfo 
solClient_flow_eventCallbackInfo_t
 
typedef struct
solClient_flow_eventCallbackInfo
solClient_flow_eventCallbackInfo_pt
 A pointer to solClient_flow_eventCallbackInfo structure of information returned with a Session event. More...
 
typedef void(* solClient_session_eventCallbackFunc_t )(solClient_opaqueSession_pt opaqueSession_p, solClient_session_eventCallbackInfo_pt eventInfo_p, void *user_p)
 A callback prototype for Session events. More...
 
typedef void(* solClient_flow_eventCallbackFunc_t )(solClient_opaqueFlow_pt opaqueFlow_p, solClient_flow_eventCallbackInfo_pt eventInfo_p, void *user_p)
 A callback prototype for Flow events. More...
 
typedef void(* solClient_context_fdCallbackFunc_t )(solClient_opaqueContext_pt opaqueContext_p, solClient_fd_t fd, solClient_fdEvent_t events, void *user_p)
 A callback prototype for file descriptor events. More...
 
typedef
solClient_rxMsgCallback_returnCode_t(* 
solClient_session_rxMsgCallbackFunc_t )(solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt msg_p, void *user_p)
 A callback prototype for received messages. More...
 
typedef
solClient_rxMsgCallback_returnCode_t(* 
solClient_flow_rxMsgCallbackFunc_t )(solClient_opaqueFlow_pt opaqueFlow_p, solClient_opaqueMsg_pt msg_p, void *user_p)
 A callback prototype for received messages on a Flow. More...
 
typedef struct
solClient_log_callbackInfo 
solClient_log_callbackInfo_t
 
typedef struct
solClient_log_callbackInfo
solClient_log_callbackInfo_pt
 A pointer to solClient_log_callbackInfo structure of information returned with logs. More...
 
typedef void(* solClient_log_callbackFunc_t )(solClient_log_callbackInfo_pt logInfo_p, void *user_p)
 A callback prototype for generated logs. More...
 
typedef void(* solClient_context_timerCallbackFunc_t )(solClient_opaqueContext_pt opaqueContext_p, void *user_p)
 A callback prototype for timer expiry. More...
 
typedef enum
solClient_context_timerMode 
solClient_context_timerMode_t
 Type of timer to start through solClient_context_startTimer(). More...
 
typedef enum solClient_dispatchType solClient_dispatchType_t
 
typedef enum solClient_msgOutcome solClient_msgOutcome_t
 
typedef solClient_returnCode_t(* solClient_context_registerFdFunc_t )(void *app_p, solClient_fd_t fd, solClient_fdEvent_t events, solClient_context_fdCallbackFunc_t callback_p, void *user_p)
 A function prototype for OPTIONAL application-supplied file descriptor registration service. More...
 
typedef solClient_returnCode_t(* solClient_context_unregisterFdFunc_t )(void *app_p, solClient_fd_t fd, solClient_fdEvent_t events)
 A function prototype for OPTIONAL application-supplied file descriptor unregistration service. More...
 
typedef struct
solClient_context_createRegisterFdFuncInfo 
solClient_context_createRegisterFdFuncInfo_t
 
typedef struct
solClient_context_createFuncInfo 
solClient_context_createFuncInfo_t
 
typedef struct
solClient_session_createRxCallbackFuncInfo 
solClient_session_createRxCallbackFuncInfo_t
 
typedef struct
solClient_session_createRxMsgCallbackFuncInfo 
solClient_session_createRxMsgCallbackFuncInfo_t
 
typedef struct
solClient_session_createEventCallbackFuncInfo 
solClient_session_createEventCallbackFuncInfo_t
 
typedef struct
solClient_session_rxMsgDispatchFuncInfo 
solClient_session_rxMsgDispatchFuncInfo_t
 
typedef struct
solClient_flow_createRxCallbackFuncInfo 
solClient_flow_createRxCallbackFuncInfo_t
 
typedef struct
solClient_flow_createRxMsgCallbackFuncInfo 
solClient_flow_createRxMsgCallbackFuncInfo_t
 
typedef struct
solClient_flow_rxMsgDispatchFuncInfo 
solClient_flow_rxMsgDispatchFuncInfo_t
 
typedef struct
solClient_flow_createEventCallbackFuncInfo 
solClient_flow_createEventCallbackFuncInfo_t
 
typedef struct
solClient_session_createFuncInfo 
solClient_session_createFuncInfo_t
 
typedef struct
solClient_flow_createFuncInfo 
solClient_flow_createFuncInfo_t
 
typedef struct
solClient_version_info 
solClient_version_info_t
 
typedef struct
solClient_version_info
solClient_version_info_pt
 A pointer to solClient_version_info structure holding version information. More...
 
Basic Data Types

Data type definitions for various types such as Boolean, unsigned 8-bit integer, signed 8-bit integer, etc.

typedef unsigned char solClient_uint8_t
 8-bit unsigned integer type. More...
 
typedef signed char solClient_int8_t
 8-bit signed integer type. More...
 
typedef unsigned short solClient_uint16_t
 16-bit unsigned integer type. More...
 
typedef short solClient_int16_t
 16-bit signed integer type. More...
 
typedef unsigned char solClient_bool_t
 Boolean type (non-zero is true, 0 is false) . More...
 
typedef wint_t solClient_wchar_t
 Wide character type (16-bit unicode character). More...
 
typedef char ** solClient_propertyArray_pt
 pointer to an array of string pointers for properties More...
 
typedef long long solClient_int64_t
 64-bit signed integer type. More...
 
typedef unsigned long long solClient_uint64_t
 64-bit unsigned integer type. More...
 
Type Definitions for Opaque Pointers

Various "objects" that are created are referred to through opaque pointers, which are passed to functions that allow access to the item.

For example, a solClient_opaqueContext_pt pointer is returned from solClient_context_create() when a Context is created, and it is passed into other APIs that operate on a Context.

typedef void * solClient_opaqueContext_pt
 An opaque pointer to a processing Context. More...
 
typedef void * solClient_opaqueSession_pt
 An opaque pointer to a Session. More...
 
typedef void * solClient_opaqueFlow_pt
 An opaque pointer to a Flow. More...
 
typedef void * solClient_opaqueMsg_pt
 An opaque pointer to a message. More...
 
typedef void * solClient_opaqueContainer_pt
 An opaque pointer to a container (such as a map or stream). More...
 
typedef void * solClient_opaqueDatablock_pt
 An opaque pointer to a data block. More...
 
typedef void * solClient_opaqueTransactedSession_pt
 An opaque pointer to a Transacted Session. More...
 
Type for a timer identifier
typedef solClient_uint32_t solClient_context_timerId_t
 Type for a timer identifier. More...
 

Enumerations

enum  solClient_destinationType {
  SOLCLIENT_NULL_DESTINATION = -1, SOLCLIENT_TOPIC_DESTINATION = 0, SOLCLIENT_QUEUE_DESTINATION = 1, SOLCLIENT_TOPIC_TEMP_DESTINATION = 2,
  SOLCLIENT_QUEUE_TEMP_DESTINATION = 3
}
 Destination Types that can appear in the ReplyTo. More...
 
enum  solClient_fieldType {
  SOLCLIENT_BOOL = 0, SOLCLIENT_UINT8 = 1, SOLCLIENT_INT8 = 2, SOLCLIENT_UINT16 = 3,
  SOLCLIENT_INT16 = 4, SOLCLIENT_UINT32 = 5, SOLCLIENT_INT32 = 6, SOLCLIENT_UINT64 = 7,
  SOLCLIENT_INT64 = 8, SOLCLIENT_WCHAR = 9, SOLCLIENT_STRING = 10, SOLCLIENT_BYTEARRAY = 11,
  SOLCLIENT_FLOAT = 12, SOLCLIENT_DOUBLE = 13, SOLCLIENT_MAP = 14, SOLCLIENT_STREAM = 15,
  SOLCLIENT_NULL = 16, SOLCLIENT_DESTINATION = 17, SOLCLIENT_SMF = 18, SOLCLIENT_UNKNOWN = -1
}
 Data types that can be transmitted by the machine-independent read and write functions. More...
 
enum  solClient_returnCode {
  SOLCLIENT_OK = 0, SOLCLIENT_WOULD_BLOCK = 1, SOLCLIENT_IN_PROGRESS = 2, SOLCLIENT_NOT_READY = 3,
  SOLCLIENT_EOS = 4, SOLCLIENT_NOT_FOUND = 5, SOLCLIENT_NOEVENT = 6, SOLCLIENT_INCOMPLETE = 7,
  SOLCLIENT_ROLLBACK = 8, SOLCLIENT_FAIL = -1
}
 Return code from API calls. More...
 
enum  solClient_rxMsgCallback_returnCode { SOLCLIENT_CALLBACK_OK = 0, SOLCLIENT_CALLBACK_TAKE_MSG = 1 }
 The return code that the application returns to the API on each received message. More...
 
enum  solClient_subCode {
  SOLCLIENT_SUBCODE_OK = 0, SOLCLIENT_SUBCODE_PARAM_OUT_OF_RANGE = 1, SOLCLIENT_SUBCODE_PARAM_NULL_PTR = 2, SOLCLIENT_SUBCODE_PARAM_CONFLICT = 3,
  SOLCLIENT_SUBCODE_INSUFFICIENT_SPACE = 4, SOLCLIENT_SUBCODE_OUT_OF_RESOURCES = 5, SOLCLIENT_SUBCODE_INTERNAL_ERROR = 6, SOLCLIENT_SUBCODE_OUT_OF_MEMORY = 7,
  SOLCLIENT_SUBCODE_PROTOCOL_ERROR = 8, SOLCLIENT_SUBCODE_INIT_NOT_CALLED = 9, SOLCLIENT_SUBCODE_TIMEOUT = 10, SOLCLIENT_SUBCODE_KEEP_ALIVE_FAILURE = 11,
  SOLCLIENT_SUBCODE_SESSION_NOT_ESTABLISHED = 12, SOLCLIENT_SUBCODE_OS_ERROR = 13, SOLCLIENT_SUBCODE_COMMUNICATION_ERROR = 14, SOLCLIENT_SUBCODE_USER_DATA_TOO_LARGE = 15,
  SOLCLIENT_SUBCODE_TOPIC_TOO_LARGE = 16, SOLCLIENT_SUBCODE_INVALID_TOPIC_SYNTAX = 17, SOLCLIENT_SUBCODE_XML_PARSE_ERROR = 18, SOLCLIENT_SUBCODE_LOGIN_FAILURE = 19,
  SOLCLIENT_SUBCODE_INVALID_VIRTUAL_ADDRESS = 20, SOLCLIENT_SUBCODE_CLIENT_DELETE_IN_PROGRESS = 21, SOLCLIENT_SUBCODE_TOO_MANY_CLIENTS = 22, SOLCLIENT_SUBCODE_SUBSCRIPTION_ALREADY_PRESENT = 23,
  SOLCLIENT_SUBCODE_SUBSCRIPTION_NOT_FOUND = 24, SOLCLIENT_SUBCODE_SUBSCRIPTION_INVALID = 25, SOLCLIENT_SUBCODE_SUBSCRIPTION_OTHER = 26, SOLCLIENT_SUBCODE_CONTROL_OTHER = 27,
  SOLCLIENT_SUBCODE_DATA_OTHER = 28, SOLCLIENT_SUBCODE_LOG_FILE_ERROR = 29, SOLCLIENT_SUBCODE_MESSAGE_TOO_LARGE = 30, SOLCLIENT_SUBCODE_SUBSCRIPTION_TOO_MANY = 31,
  SOLCLIENT_SUBCODE_INVALID_SESSION_OPERATION = 32, SOLCLIENT_SUBCODE_TOPIC_MISSING = 33, SOLCLIENT_SUBCODE_ASSURED_MESSAGING_NOT_ESTABLISHED = 34, SOLCLIENT_SUBCODE_ASSURED_MESSAGING_STATE_ERROR = 35,
  SOLCLIENT_SUBCODE_QUEUENAME_TOPIC_CONFLICT = 36, SOLCLIENT_SUBCODE_QUEUENAME_TOO_LARGE = 37, SOLCLIENT_SUBCODE_QUEUENAME_INVALID_MODE = 38, SOLCLIENT_SUBCODE_MAX_TOTAL_MSGSIZE_EXCEEDED = 39,
  SOLCLIENT_SUBCODE_DBLOCK_ALREADY_EXISTS = 40, SOLCLIENT_SUBCODE_NO_STRUCTURED_DATA = 41, SOLCLIENT_SUBCODE_CONTAINER_BUSY = 42, SOLCLIENT_SUBCODE_INVALID_DATA_CONVERSION = 43,
  SOLCLIENT_SUBCODE_CANNOT_MODIFY_WHILE_NOT_IDLE = 44, SOLCLIENT_SUBCODE_MSG_VPN_NOT_ALLOWED = 45, SOLCLIENT_SUBCODE_CLIENT_NAME_INVALID = 46, SOLCLIENT_SUBCODE_MSG_VPN_UNAVAILABLE = 47,
  SOLCLIENT_SUBCODE_CLIENT_USERNAME_IS_SHUTDOWN = 48, SOLCLIENT_SUBCODE_DYNAMIC_CLIENTS_NOT_ALLOWED = 49, SOLCLIENT_SUBCODE_CLIENT_NAME_ALREADY_IN_USE = 50, SOLCLIENT_SUBCODE_CACHE_NO_DATA = 51,
  SOLCLIENT_SUBCODE_CACHE_SUSPECT_DATA = 52, SOLCLIENT_SUBCODE_CACHE_ERROR_RESPONSE = 53, SOLCLIENT_SUBCODE_CACHE_INVALID_SESSION = 54, SOLCLIENT_SUBCODE_CACHE_TIMEOUT = 55,
  SOLCLIENT_SUBCODE_CACHE_LIVEDATA_FULFILL = 56, SOLCLIENT_SUBCODE_CACHE_ALREADY_IN_PROGRESS = 57, SOLCLIENT_SUBCODE_MISSING_REPLY_TO = 58, SOLCLIENT_SUBCODE_CANNOT_BIND_TO_QUEUE = 59,
  SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_TE = 60, SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_DTE = SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_TE, SOLCLIENT_SUBCODE_UNKNOWN_QUEUE_NAME = 61, SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME = 62,
  SOLCLIENT_SUBCODE_UNKNOWN_DTE_NAME = SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME, SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_QUEUE = 63, SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_TE = 64, SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_DTE = SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_TE,
  SOLCLIENT_SUBCODE_UNEXPECTED_UNBIND = 65, SOLCLIENT_SUBCODE_QUEUE_NOT_FOUND = 66, SOLCLIENT_SUBCODE_CLIENT_ACL_DENIED = 67, SOLCLIENT_SUBCODE_SUBSCRIPTION_ACL_DENIED = 68,
  SOLCLIENT_SUBCODE_PUBLISH_ACL_DENIED = 69, SOLCLIENT_SUBCODE_DELIVER_TO_ONE_INVALID = 70, SOLCLIENT_SUBCODE_SPOOL_OVER_QUOTA = 71, SOLCLIENT_SUBCODE_QUEUE_SHUTDOWN = 72,
  SOLCLIENT_SUBCODE_TE_SHUTDOWN = 73, SOLCLIENT_SUBCODE_NO_MORE_NON_DURABLE_QUEUE_OR_TE = 74, SOLCLIENT_SUBCODE_ENDPOINT_ALREADY_EXISTS = 75, SOLCLIENT_SUBCODE_PERMISSION_NOT_ALLOWED = 76,
  SOLCLIENT_SUBCODE_INVALID_SELECTOR = 77, SOLCLIENT_SUBCODE_MAX_MESSAGE_USAGE_EXCEEDED = 78, SOLCLIENT_SUBCODE_ENDPOINT_PROPERTY_MISMATCH = 79, SOLCLIENT_SUBCODE_SUBSCRIPTION_MANAGER_DENIED = 80,
  SOLCLIENT_SUBCODE_UNKNOWN_CLIENT_NAME = 81, SOLCLIENT_SUBCODE_QUOTA_OUT_OF_RANGE = 82, SOLCLIENT_SUBCODE_SUBSCRIPTION_ATTRIBUTES_CONFLICT = 83, SOLCLIENT_SUBCODE_INVALID_SMF_MESSAGE = 84,
  SOLCLIENT_SUBCODE_NO_LOCAL_NOT_SUPPORTED = 85, SOLCLIENT_SUBCODE_UNSUBSCRIBE_NOT_ALLOWED_CLIENTS_BOUND = 86, SOLCLIENT_SUBCODE_CANNOT_BLOCK_IN_CONTEXT = 87, SOLCLIENT_SUBCODE_FLOW_ACTIVE_FLOW_INDICATION_UNSUPPORTED = 88,
  SOLCLIENT_SUBCODE_UNRESOLVED_HOST = 89, SOLCLIENT_SUBCODE_CUT_THROUGH_UNSUPPORTED = 90, SOLCLIENT_SUBCODE_CUT_THROUGH_ALREADY_BOUND = 91, SOLCLIENT_SUBCODE_CUT_THROUGH_INCOMPATIBLE_WITH_SESSION = 92,
  SOLCLIENT_SUBCODE_INVALID_FLOW_OPERATION = 93, SOLCLIENT_SUBCODE_UNKNOWN_FLOW_NAME = 94, SOLCLIENT_SUBCODE_REPLICATION_IS_STANDBY = 95, SOLCLIENT_SUBCODE_LOW_PRIORITY_MSG_CONGESTION = 96,
  SOLCLIENT_SUBCODE_LIBRARY_NOT_LOADED = 97, SOLCLIENT_SUBCODE_FAILED_LOADING_TRUSTSTORE = 98, SOLCLIENT_SUBCODE_UNTRUSTED_CERTIFICATE = 99, SOLCLIENT_SUBCODE_UNTRUSTED_COMMONNAME = 100,
  SOLCLIENT_SUBCODE_CERTIFICATE_DATE_INVALID = 101, SOLCLIENT_SUBCODE_FAILED_LOADING_CERTIFICATE_AND_KEY = 102, SOLCLIENT_SUBCODE_BASIC_AUTHENTICATION_IS_SHUTDOWN = 103, SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_AUTHENTICATION_IS_SHUTDOWN = 104,
  SOLCLIENT_SUBCODE_UNTRUSTED_CLIENT_CERTIFICATE = 105, SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_DATE_INVALID = 106, SOLCLIENT_SUBCODE_CACHE_REQUEST_CANCELLED = 107, SOLCLIENT_SUBCODE_DELIVERY_MODE_UNSUPPORTED = 108,
  SOLCLIENT_SUBCODE_PUBLISHER_NOT_CREATED = 109, SOLCLIENT_SUBCODE_FLOW_UNBOUND = 110, SOLCLIENT_SUBCODE_INVALID_TRANSACTED_SESSION_ID = 111, SOLCLIENT_SUBCODE_INVALID_TRANSACTION_ID = 112,
  SOLCLIENT_SUBCODE_MAX_TRANSACTED_SESSIONS_EXCEEDED = 113, SOLCLIENT_SUBCODE_TRANSACTED_SESSION_NAME_IN_USE = 114, SOLCLIENT_SUBCODE_SERVICE_UNAVAILABLE = 115, SOLCLIENT_SUBCODE_NO_TRANSACTION_STARTED = 116,
  SOLCLIENT_SUBCODE_PUBLISHER_NOT_ESTABLISHED = 117, SOLCLIENT_SUBCODE_MESSAGE_PUBLISH_FAILURE = 118, SOLCLIENT_SUBCODE_TRANSACTION_FAILURE = 119, SOLCLIENT_SUBCODE_MESSAGE_CONSUME_FAILURE = 120,
  SOLCLIENT_SUBCODE_ENDPOINT_MODIFIED = 121, SOLCLIENT_SUBCODE_INVALID_CONNECTION_OWNER = 122, SOLCLIENT_SUBCODE_KERBEROS_AUTHENTICATION_IS_SHUTDOWN = 123, SOLCLIENT_SUBCODE_COMMIT_OR_ROLLBACK_IN_PROGRESS = 124,
  SOLCLIENT_SUBCODE_UNBIND_RESPONSE_LOST = 125, SOLCLIENT_SUBCODE_MAX_TRANSACTIONS_EXCEEDED = 126, SOLCLIENT_SUBCODE_COMMIT_STATUS_UNKNOWN = 127, SOLCLIENT_SUBCODE_PROXY_AUTH_REQUIRED = 128,
  SOLCLIENT_SUBCODE_PROXY_AUTH_FAILURE = 129, SOLCLIENT_SUBCODE_NO_SUBSCRIPTION_MATCH = 130, SOLCLIENT_SUBCODE_SUBSCRIPTION_MATCH_ERROR = 131, SOLCLIENT_SUBCODE_SELECTOR_MATCH_ERROR = 132,
  SOLCLIENT_SUBCODE_REPLAY_NOT_SUPPORTED = 133, SOLCLIENT_SUBCODE_REPLAY_DISABLED = 134, SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_NON_EXCLUSIVE_NOT_ALLOWED = 135, SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_INACTIVE_FLOW_NOT_ALLOWED = 136,
  SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_BROWSER_FLOW_NOT_ALLOWED = 137, SOLCLIENT_SUBCODE_REPLAY_TEMPORARY_NOT_SUPPORTED = 138, SOLCLIENT_SUBCODE_UNKNOWN_START_LOCATION_TYPE = 139, SOLCLIENT_SUBCODE_REPLAY_MESSAGE_UNAVAILABLE = 140,
  SOLCLIENT_SUBCODE_REPLAY_STARTED = 141, SOLCLIENT_SUBCODE_REPLAY_CANCELLED = 142, SOLCLIENT_SUBCODE_REPLAY_START_TIME_NOT_AVAILABLE = 143, SOLCLIENT_SUBCODE_REPLAY_MESSAGE_REJECTED = 144,
  SOLCLIENT_SUBCODE_REPLAY_LOG_MODIFIED = 145, SOLCLIENT_SUBCODE_MISMATCHED_ENDPOINT_ERROR_ID = 146, SOLCLIENT_SUBCODE_OUT_OF_REPLAY_RESOURCES = 147, SOLCLIENT_SUBCODE_TOPIC_OR_SELECTOR_MODIFIED_ON_DURABLE_TOPIC_ENDPOINT = 148,
  SOLCLIENT_SUBCODE_REPLAY_FAILED = 149, SOLCLIENT_SUBCODE_COMPRESSED_SSL_NOT_SUPPORTED = 150, SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 151, SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_ALLOWED = 152,
  SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_ENDPOINT_NOT_ALLOWED = 153, SOLCLIENT_SUBCODE_OBJECT_DESTROYED = 154, SOLCLIENT_SUBCODE_DELIVERY_COUNT_NOT_SUPPORTED = 155, SOLCLIENT_SUBCODE_REPLAY_START_MESSAGE_UNAVAILABLE = 156,
  SOLCLIENT_SUBCODE_MESSAGE_ID_NOT_COMPARABLE = 157, SOLCLIENT_SUBCODE_REPLAY_ANONYMOUS_NOT_SUPPORTED = 158, SOLCLIENT_SUBCODE_BROWSING_NOT_SUPPORTED_ON_PARTITIONED_QUEUE = 159, SOLCLIENT_SUBCODE_SELECTORS_NOT_SUPPORTED_ON_PARTITIONED_QUEUE = 160,
  SOLCLIENT_SUBCODE_SYNC_REPLICATION_INELIGIBLE = 161, SOLCLIENT_SUBCODE_ENDPOINT_SHUTDOWN = 162, SOLCLIENT_SUBCODE_AD_APP_ACK_FAILED_NOT_SUPPORTED = 163, SOLCLIENT_SUBCODE_INVALID_DURABILITY = 164
}
 A subcode that provides more detailed error information. More...
 
enum  solClient_log_level {
  SOLCLIENT_LOG_EMERGENCY = 0, SOLCLIENT_LOG_ALERT = 1, SOLCLIENT_LOG_CRITICAL = 2, SOLCLIENT_LOG_ERROR = 3,
  SOLCLIENT_LOG_WARNING = 4, SOLCLIENT_LOG_NOTICE = 5, SOLCLIENT_LOG_INFO = 6, SOLCLIENT_LOG_DEBUG = 7
}
 Definition of SolClient log levels. More...
 
enum  solClient_log_category { SOLCLIENT_LOG_CATEGORY_ALL = 0, SOLCLIENT_LOG_CATEGORY_SDK = 1, SOLCLIENT_LOG_CATEGORY_APP = 2 }
 Definition of SolClient log categories, which is used for log level filter control. More...
 
enum  solClient_stats_rx {
  SOLCLIENT_STATS_RX_DIRECT_BYTES = 0, SOLCLIENT_STATS_RX_BYTES = SOLCLIENT_STATS_RX_DIRECT_BYTES, SOLCLIENT_STATS_RX_DIRECT_MSGS = 1, SOLCLIENT_STATS_RX_MSGS = SOLCLIENT_STATS_RX_DIRECT_MSGS,
  SOLCLIENT_STATS_RX_READS = 2, SOLCLIENT_STATS_RX_DISCARD_IND = 3, SOLCLIENT_STATS_RX_DISCARD_SMF_UNKNOWN_ELEMENT = 4, SOLCLIENT_STATS_RX_DISCARD_MSG_HDR_ERROR = SOLCLIENT_STATS_RX_DISCARD_SMF_UNKNOWN_ELEMENT,
  SOLCLIENT_STATS_RX_DISCARD_MSG_TOO_BIG = 5, SOLCLIENT_STATS_RX_ACKED = 6, SOLCLIENT_STATS_RX_DISCARD_DUPLICATE = 7, SOLCLIENT_STATS_RX_DISCARD_NO_MATCHING_FLOW = 8,
  SOLCLIENT_STATS_RX_DISCARD_OUTOFORDER = 9, SOLCLIENT_STATS_RX_PERSISTENT_BYTES = 10, SOLCLIENT_STATS_RX_PERSISTENT_MSGS = 11, SOLCLIENT_STATS_RX_NONPERSISTENT_BYTES = 12,
  SOLCLIENT_STATS_RX_NONPERSISTENT_MSGS = 13, SOLCLIENT_STATS_RX_CTL_MSGS = 14, SOLCLIENT_STATS_RX_CTL_BYTES = 15, SOLCLIENT_STATS_RX_TOTAL_DATA_BYTES = 16,
  SOLCLIENT_STATS_RX_TOTAL_DATA_MSGS = 17, SOLCLIENT_STATS_RX_COMPRESSED_BYTES = 18, SOLCLIENT_STATS_RX_REPLY_MSG = 19, SOLCLIENT_STATS_RX_REPLY_MSG_DISCARD = 20,
  SOLCLIENT_STATS_RX_CACHEREQUEST_OK_RESPONSE = 21, SOLCLIENT_STATS_RX_CACHEREQUEST_FULFILL_DATA = 22, SOLCLIENT_STATS_RX_CACHEREQUEST_ERROR_RESPONSE = 23, SOLCLIENT_STATS_RX_CACHEREQUEST_DISCARD_RESPONSE = 24,
  SOLCLIENT_STATS_RX_CACHEMSG = 25, SOLCLIENT_STATS_RX_FOUND_CTSYNC = 26, SOLCLIENT_STATS_RX_LOST_CTSYNC = 27, SOLCLIENT_STATS_RX_LOST_CTSYNC_GM = 28,
  SOLCLIENT_STATS_RX_OVERFLOW_CTSYNC_BUFFER = 29, SOLCLIENT_STATS_RX_ALREADY_CUT_THROUGH = 30, SOLCLIENT_STATS_RX_DISCARD_FROM_CTSYNC = 31, SOLCLIENT_STATS_RX_DISCARD_MSG_FLOW_UNBOUND_PENDING = 32,
  SOLCLIENT_STATS_RX_DISCARD_MSG_TRANSACTION_ROLLBACK = 33, SOLCLIENT_STATS_RX_DISCARD_TRANSACTION_RESPONSE = 34, SOLCLIENT_STATS_RX_SSL_READ_EVENTS = 35, SOLCLIENT_STATS_RX_SSL_READ_CALLS = 36,
  SOLCLIENT_STATS_RX_SETTLE_ACCEPTED = 37, SOLCLIENT_STATS_RX_SETTLE_FAILED = 38, SOLCLIENT_STATS_RX_SETTLE_REJECTED = 39, SOLCLIENT_STATS_RX_NUM_STATS = 40
}
 Receive statistics (64-bit counters). More...
 
enum  solClient_stats_tx {
  SOLCLIENT_STATS_TX_TOTAL_DATA_BYTES = 0, SOLCLIENT_STATS_TX_BYTES = SOLCLIENT_STATS_TX_TOTAL_DATA_BYTES, SOLCLIENT_STATS_TX_TOTAL_DATA_MSGS = 1, SOLCLIENT_STATS_TX_MSGS = SOLCLIENT_STATS_TX_TOTAL_DATA_MSGS,
  SOLCLIENT_STATS_TX_WOULD_BLOCK = 2, SOLCLIENT_STATS_TX_SOCKET_FULL = 3, SOLCLIENT_STATS_TX_DIRECT_BYTES = 4, SOLCLIENT_STATS_TX_DIRECT_MSGS = 5,
  SOLCLIENT_STATS_TX_PERSISTENT_BYTES = 6, SOLCLIENT_STATS_TX_NONPERSISTENT_BYTES = 7, SOLCLIENT_STATS_TX_PERSISTENT_MSGS = 8, SOLCLIENT_STATS_TX_NONPERSISTENT_MSGS = 9,
  SOLCLIENT_STATS_TX_PERSISTENT_REDELIVERED = 10, SOLCLIENT_STATS_TX_NONPERSISTENT_REDELIVERED = 11, SOLCLIENT_STATS_TX_PERSISTENT_BYTES_REDELIVERED = 12, SOLCLIENT_STATS_TX_NONPERSISTENT_BYTES_REDELIVERED = 13,
  SOLCLIENT_STATS_TX_ACKS_RXED = 14, SOLCLIENT_STATS_TX_WINDOW_CLOSE = 15, SOLCLIENT_STATS_TX_ACK_TIMEOUT = 16, SOLCLIENT_STATS_TX_CTL_MSGS = 17,
  SOLCLIENT_STATS_TX_CTL_BYTES = 18, SOLCLIENT_STATS_TX_COMPRESSED_BYTES = 19, SOLCLIENT_STATS_TX_TOTAL_CONNECTION_ATTEMPTS = 20, SOLCLIENT_STATS_TX_REQUEST_SENT = 21,
  SOLCLIENT_STATS_TX_REQUEST_TIMEOUT = 22, SOLCLIENT_STATS_TX_CACHEREQUEST_SENT = 23, SOLCLIENT_STATS_TX_GUARANTEED_MSGS_SENT_CONFIRMED = 24, SOLCLIENT_STATS_TX_DISCARD_NO_MATCH = 25,
  SOLCLIENT_STATS_TX_DISCARD_CHANNEL_ERROR = 26, SOLCLIENT_STATS_TX_BLOCKED_ON_SEND = 27, SOLCLIENT_STATS_TX_NUM_STATS = 28
}
 Transmit statistics (64-bit counters). More...
 
enum  solClient_context_timerMode { SOLCLIENT_CONTEXT_TIMER_ONE_SHOT = 0, SOLCLIENT_CONTEXT_TIMER_REPEAT = 1 }
 The type of timer to start through solClient_context_startTimer(). More...
 
enum  solClient_dispatchType { SOLCLIENT_DISPATCH_TYPE_CALLBACK = 1 }
 Type of dispatch function to perform for messages received on the topic. More...
 
enum  solClient_msgOutcome { SOLCLIENT_OUTCOME_ACCEPTED = 0, SOLCLIENT_OUTCOME_FAILED = 2, SOLCLIENT_OUTCOME_REJECTED = 3 }
 The three different possible message outcomes that can be used to settle a message which was received on a flow. More...
 

Functions

solClient_dllExport
solClient_returnCode_t 
solClient_initialize (solClient_log_level_t initialLogLevel, solClient_propertyArray_pt props)
 This function must be called before any other API interface call is made, with the exception of solClient_log_setCallback(), which can be called first to intercept all logs, and solClient_log_setFile(), which can be used to change the log destination when the log callback is not in use. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_cleanup (void)
 This function may be called after use of the API is completed. More...
 
solClient_dllExport const char * solClient_returnCodeToString (solClient_returnCode_t returnCode)
 Returns a string representation of the return code passed in. More...
 
solClient_dllExport const char * solClient_subCodeToString (solClient_subCode_t subCode)
 Returns a string representation of the subcode passed in. More...
 
solClient_dllExport const char * solClient_txStatToString (solClient_stats_tx_t txStat)
 Returns a string representation of the transmit statistic name for the given statistic constant passed in. More...
 
solClient_dllExport const char * solClient_rxStatToString (solClient_stats_rx_t rxStat)
 Returns a string representation of the receive statistic name for the given statistic constant passed in. More...
 
solClient_dllExport
solClient_errorInfo_pt 
solClient_getLastErrorInfo (void)
 Returns a pointer to a solClient_errorInfo structure, which contains the last captured error information for the calling thread. More...
 
solClient_dllExport void solClient_resetLastErrorInfo (void)
 Clears the last error info, which is recorded on a per-thread basis. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_version_get (solClient_version_info_pt *version_p)
 Returns version information for the API. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_generateUUID (solClient_uuid_t *uuid_p)
 Returns a Universally Unique Identifier (UUID) as a 128-bit value, as per IETF RFC 4122. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_generateUUIDString (char *uuid_p, size_t bufferSize)
 Returns a Universally Unique Identifier (UUID) as a NULL-terminated string, as per IETF RFC 4122. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_appendUUIDString (const char *inputStr, char *uuid_p, size_t bufferSize)
 Appends (after a '/' delimeter') a Universally Unique Identifier (UUID) as a NULL-terminated string to a given input string. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_log_setFilterLevel (solClient_log_category_t category, solClient_log_level_t level)
 Allows the log level filter to be set. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_log_setCallback (solClient_log_callbackFunc_t callback_p, void *user_p)
 Allows for the registration of an optional log callback, which is called each time a new, non-filtered, log message is emitted by the API. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_log_unsetCallback (void)
 Reset the log callback function to default log out behavior. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_log_setFile (const char *logFileName_p)
 Allows the log file, which defaults to stderr, to be changed to a file specified by the caller. More...
 
solClient_dllExport const char * solClient_log_categoryToString (solClient_log_category_t category)
 Returns a string representation (for example, "API") of the log category passed in. More...
 
solClient_dllExport const char * solClient_log_levelToString (solClient_log_level_t level)
 Returns a string representation (for example, "ERROR") of the log level passed in. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_create (solClient_propertyArray_pt props, solClient_opaqueContext_pt *opaqueContext_p, solClient_context_createFuncInfo_t *funcInfo_p, size_t funcInfoSize)
 Creates a new Context. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_destroy (solClient_opaqueContext_pt *opaqueContext_p)
 Destroys a previously created Context. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_registerForFdEvents (solClient_opaqueContext_pt opaqueContext_p, solClient_fd_t fd, solClient_fdEvent_t events, solClient_context_fdCallbackFunc_t callback_p, void *user_p)
 Allows the application to optionally register an application file descriptor for events (for example, SOLCLIENT_FD_EVENT_READ) for an application file descriptor. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_unregisterForFdEvents (solClient_opaqueContext_pt opaqueContext_p, solClient_fd_t fd, solClient_fdEvent_t events)
 Allows the application to optionally deregister an application file descriptor for events (for example, SOLCLIENT_FD_EVENT_READ) for an application file descriptor. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_processEvents (solClient_opaqueContext_pt opaqueContext_p)
 Must be called by the Context thread for a given Context to have events processed. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_processEventsWait (solClient_opaqueContext_pt opaqueContext_p, solClient_bool_t wait)
 This function must be called by the Context thread for a given Context to have events processed. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_startTimer (solClient_opaqueContext_pt opaqueContext_p, solClient_context_timerMode_t timerMode, solClient_uint32_t durationMs, solClient_context_timerCallbackFunc_t callback_p, void *user_p, solClient_context_timerId_t *timerId_p)
 Allows the application to start a timer. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_stopTimer (solClient_opaqueContext_pt opaqueContext_p, solClient_context_timerId_t *timerId_p)
 Allows the application to stop a previously started timer. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_context_timerTick (solClient_opaqueContext_pt opaqueContext_p)
 When the application takes over all file descriptor event generation, the application must also call this routine at regular intervals (specified by the Context property SOLCLIENT_CONTEXT_PROP_DEFAULT_TIME_RES_MS) to provide a timer tick for timer processing. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_create (solClient_propertyArray_pt props, solClient_opaqueContext_pt opaqueContext_p, solClient_opaqueSession_pt *opaqueSession_p, solClient_session_createFuncInfo_t *funcInfo_p, size_t funcInfoSize)
 Creates a new Session within a specified Context. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_destroy (solClient_opaqueSession_pt *opaqueSession_p)
 Destroys a previously created Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getContext (solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueContext_pt *opaqueContext_p)
 Returns the Context associated with the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_modifyProperties (solClient_opaqueSession_pt opaqueSession_p, solClient_propertyArray_pt props)
 Allows certain properties of a Session to be modified after the Session has been created. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_modifyClientInfo (solClient_opaqueSession_pt opaqueSession_p, solClient_propertyArray_pt props, solClient_modifyPropFlags_t flag, void *correlation_p)
 Allows the following client name and description properties of a Session to be modified after the Session has been created. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getProperty (solClient_opaqueSession_pt opaqueSession_p, const char *propertyName_p, char *buf_p, size_t bufSize)
 Gets the value of the specified Session property for the Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getCapability (solClient_opaqueSession_pt opaqueSession_p, const char *capabilityName_p, solClient_field_t *field_p, size_t fieldSize)
 Gets the value of the specified capability for the Session. More...
 
solClient_dllExport
solClient_bool_t 
solClient_session_isCapable (solClient_opaqueSession_pt opaqueSession_p, const char *capabilityName_p)
 Checks if the specified capability is set on the currently connected Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_connect (solClient_opaqueSession_pt opaqueSession_p)
 Connects the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_disconnect (solClient_opaqueSession_pt opaqueSession_p)
 Disconnects the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_startAssuredPublishing (solClient_opaqueSession_pt opaqueSession_p)
 This is a deprecated function. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendMsg (solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt msg_p)
 Sends a message on the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendSmf (solClient_opaqueSession_pt opaqueSession_p, solClient_bufInfo_pt smfBufInfo_p)
 Sends the given Solace Message Format (SMF) message on the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendMultipleMsg (solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt *msgArray_p, solClient_uint32_t numberOfMessages, solClient_uint32_t *numberOfMessagesWritten)
 Sends multiple messages on the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendMultipleSmf (solClient_opaqueSession_pt opaqueSession_p, solClient_bufInfo_pt smfBufInfo_p, solClient_uint32_t numberOfMessages)
 Sends multiple Solace Message Format (SMF) messages on the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicSubscribe (solClient_opaqueSession_pt opaqueSession_p, const char *topicSubscription_p)
 Adds a Topic subscription to a Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicSubscribeExt (solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p)
 Adds a Topic subscription to a Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicSubscribeWithDispatch (solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, solClient_session_rxMsgDispatchFuncInfo_t *funcInfo_p, void *correlationTag)
 Adds a Topic subscription to a Session like solClient_session_topicSubscribeExt(), but this function also allows a different message receive callback and dispatchUser_p to be specified. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicUnsubscribe (solClient_opaqueSession_pt opaqueSession_p, const char *topicSubscription_p)
 Removes a Topic subscription from a Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicUnsubscribeExt (solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p)
 Removes a Topic subscription from a Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicUnsubscribeWithDispatch (solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, solClient_session_rxMsgDispatchFuncInfo_t *funcInfo_p, void *correlationTag)
 Removes a Topic subscription from a Session like solClient_session_topicUnsubscribeExt(), but this function also allows a message receive callback and dispatchUser_p to be specified. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_validateTopic (solClient_opaqueSession_pt opaqueSession_p, const char *topicString_p)
 Check a Topic string against Topic encoding rules for the broker. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_dteUnsubscribe (solClient_opaqueSession_pt opaqueSession_p, const char *teName_p, void *correlationTag)
 Sends a Topic Endpoint unsubscribe command to the broker. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getRxStats (solClient_opaqueSession_pt opaqueSession_p, solClient_stats_pt rxStats_p, solClient_uint32_t arraySize)
 Returns an array of Session receive statistics. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getRxStat (solClient_opaqueSession_pt opaqueSession_p, solClient_stats_rx_t rxStatType, solClient_stats_pt rxStat_p)
 Returns an individual receive statistic. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getTxStats (solClient_opaqueSession_pt opaqueSession_p, solClient_stats_pt txStats_p, solClient_uint32_t arraySize)
 Returns an array of Session transmit statistics. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_getTxStat (solClient_opaqueSession_pt opaqueSession_p, solClient_stats_tx_t txStatType, solClient_stats_pt txStat_p)
 Returns an individual transmit statistic. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_clearStats (solClient_opaqueSession_pt opaqueSession_p)
 Clears all of the receive and transmit statistics for the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_logStats (solClient_opaqueSession_pt opaqueSession_p, solClient_log_level_t level)
 Outputs a log at the specified log level at this moment containing the value of all receive and transmit statistics for the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_createTemporaryTopicName (solClient_opaqueSession_pt opaqueSession_p, char *topic_p, size_t length)
 Create a temporary Topic string. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_logFlowInfo (solClient_opaqueSession_pt opaqueSession_p, solClient_log_level_t level)
 Outputs a log at the specified log level at this moment containing the Flow state information for all Flows at this moment. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendRequest (solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt msg_p, solClient_opaqueMsg_pt *replyMsg_p, solClient_uint32_t timeout)
 Send a Topic Request message. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_sendReply (solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt rxmsg_p, solClient_opaqueMsg_pt replyMsg_p)
 Send a Reply Message. More...
 
solClient_dllExport const char * solClient_session_eventToString (solClient_session_event_t sessionEvent)
 Returns a string representation of the Session event passed in. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_endpointProvision (solClient_propertyArray_pt props, solClient_opaqueSession_pt opaqueSession_p, solClient_uint32_t provisionFlags, void *correlationTag, char *queueNetworkName, size_t qnnSize)
 Provision, on the broker, a durable Queue or Topic Endpoint using the specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_endpointDeprovision (solClient_propertyArray_pt props, solClient_opaqueSession_pt opaqueSession_p, solClient_uint32_t provisionFlags, void *correlationTag)
 Remove an endpoint from the broker. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_endpointTopicSubscribe (solClient_propertyArray_pt endpointProps, solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, void *correlationTag)
 Add a Topic subscription to the endpoint defined by the endpoint properties if the operation is supported on the endpoint. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_endpointTopicUnsubscribe (solClient_propertyArray_pt endpointProps, solClient_opaqueSession_pt opaqueSession_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, void *correlationTag)
 Remove a Topic subscription from the endpoint defined by the endpoint properties if the operation is supported on the endpoint. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_createFlow (solClient_propertyArray_pt props, solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueFlow_pt *opaqueFlow_p, solClient_flow_createFuncInfo_t *funcInfo_p, size_t funcInfoSize)
 Creates a new Flow within a specified Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_destroy (solClient_opaqueFlow_pt *opaqueFlow_p)
 Destroys a previously created Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getSession (solClient_opaqueFlow_pt opaqueFlow_p, solClient_opaqueSession_pt *opaqueSession_p)
 Returns the Session associated with the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_sendAck (solClient_opaqueFlow_pt opaqueFlow_p, solClient_msgId_t msgId)
 This function is now just a convenience shorthand for calling solClient_flow_settleMsg() with the SOLCLIENT_OUTCOME_ACCEPTED outcome. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_settleMsg (solClient_opaqueFlow_pt opaqueFlow_p, solClient_msgId_t msgId, solClient_msgOutcome_t outcome)
 Sends a positive or negative acknowledgment on the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_stop (solClient_opaqueFlow_pt opaqueFlow_p)
 Closes the receiver on the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_start (solClient_opaqueFlow_pt opaqueFlow_p)
 Opens the receiver on the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_setMaxUnacked (solClient_opaqueFlow_pt opaqueFlow_p, solClient_int32_t maxUnacked)
 Changes the maximum number of unacknowledged messages that may be received on the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getRxStats (solClient_opaqueFlow_pt opaqueFlow_p, solClient_stats_pt rxStats_p, solClient_uint32_t arraySize)
 Returns an array of Flow receive statistics. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getRxStat (solClient_opaqueFlow_pt opaqueFlow_p, solClient_stats_rx_t rxStatType, solClient_stats_pt rxStat_p)
 Returns an individual receive statistic. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getDestination (solClient_opaqueFlow_pt opaqueFlow_p, solClient_destination_t *dest_p, size_t destSize)
 Retrieve the destination for the Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_clearStats (solClient_opaqueFlow_pt opaqueFlow_p)
 Clears all the statistics (rx and tx) for the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_logStats (solClient_opaqueFlow_pt opaqueFlow_p, solClient_log_level_t level)
 Outputs a log at a specified log level that contains the value at this moment of all receive and transmit statistics for the specified Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_topicSubscribeWithDispatch (solClient_opaqueFlow_pt opaqueFlow_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, solClient_flow_rxMsgDispatchFuncInfo_t *funcInfo_p, void *correlationTag)
 Allows topics to be dispatched to different message receive callbacks and with different dispatchUser_p for received messages on an endpoint Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_topicUnsubscribeWithDispatch (solClient_opaqueFlow_pt opaqueFlow_p, solClient_subscribeFlags_t flags, const char *topicSubscription_p, solClient_flow_rxMsgDispatchFuncInfo_t *funcInfo_p, void *correlationTag)
 Removes a topic dispatch from an endpoint Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getProperty (solClient_opaqueFlow_pt opaqueFlow_p, const char *propertyName_p, char *buf_p, size_t bufSize)
 Gets the value of the specified Flow property for the Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_logFlowInfo (solClient_opaqueFlow_pt opaqueFlow_p, solClient_log_level_t level)
 Outputs a log at the specified log level that contains the Flow state information for the given Flow. More...
 
solClient_dllExport const char * solClient_flow_eventToString (solClient_flow_event_t flowEvent)
 Returns a string representation of the Flow event passed in. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_session_createTransactedSession (solClient_propertyArray_pt props, solClient_opaqueSession_pt session_p, solClient_opaqueTransactedSession_pt *transactedSession_p, void *rfu_p)
 Creates a Transacted Session object that is used in subsequent transactions. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_destroy (solClient_opaqueTransactedSession_pt *transactedSession_p)
 Destroys a previous created Transacted Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_rollback (solClient_opaqueTransactedSession_pt transactedSession_p)
 Rollback the active transaction of a specified Transacted Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_commit (solClient_opaqueTransactedSession_pt transactedSession_p)
 Commit the active transaction of a specified Transacted Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_sendMsg (solClient_opaqueTransactedSession_pt transactedSession_p, solClient_opaqueMsg_pt msg_p)
 Sends an Guaranteed Delivery message on the specified Transacted Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_createFlow (solClient_propertyArray_pt props, solClient_opaqueTransactedSession_pt transactedSession_p, solClient_opaqueFlow_pt *flow_p, solClient_flow_createFuncInfo_t *funcInfo_p, size_t funcInfoSize)
 Create a transacted consumer Flow within a specified Transacted Session. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_getSessionName (solClient_opaqueTransactedSession_pt transactedSession_p, char *nameBuf_p, size_t bufSize)
 Retrieve Transacted Session name. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_receiveMsg (solClient_opaqueFlow_pt flow_p, solClient_opaqueMsg_pt *msg_p, solClient_int32_t timeout)
 Receives a message from a specified Transacted Flow. More...
 
solClient_dllExport
solClient_returnCode_t 
solClient_flow_getTransactedSession (solClient_opaqueFlow_pt flow_p, solClient_opaqueTransactedSession_pt *transactedSession_p)
 Returns the Transacted Session pointer with the specified Flow. More...
 
enum  solClient_session_event {
  SOLCLIENT_SESSION_EVENT_UP_NOTICE = 0, SOLCLIENT_SESSION_EVENT_DOWN_ERROR = 1, SOLCLIENT_SESSION_EVENT_CONNECT_FAILED_ERROR = 2, SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR = 3,
  SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR = 4, SOLCLIENT_SESSION_EVENT_RX_MSG_TOO_BIG_ERROR = 5, SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT = 6, SOLCLIENT_SESSION_EVENT_ASSURED_PUBLISHING_UP = 7,
  SOLCLIENT_SESSION_EVENT_ASSURED_CONNECT_FAILED = 8, SOLCLIENT_SESSION_EVENT_ASSURED_DELIVERY_DOWN = 8, SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_ERROR = 9, SOLCLIENT_SESSION_EVENT_DTE_UNSUBSCRIBE_ERROR = SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_ERROR,
  SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK = 10, SOLCLIENT_SESSION_EVENT_DTE_UNSUBSCRIBE_OK = SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK, SOLCLIENT_SESSION_EVENT_CAN_SEND = 11, SOLCLIENT_SESSION_EVENT_RECONNECTING_NOTICE = 12,
  SOLCLIENT_SESSION_EVENT_RECONNECTED_NOTICE = 13, SOLCLIENT_SESSION_EVENT_PROVISION_ERROR = 14, SOLCLIENT_SESSION_EVENT_PROVISION_OK = 15, SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_OK = 16,
  SOLCLIENT_SESSION_EVENT_VIRTUAL_ROUTER_NAME_CHANGED = 17, SOLCLIENT_SESSION_EVENT_MODIFYPROP_OK = 18, SOLCLIENT_SESSION_EVENT_MODIFYPROP_FAIL = 19, SOLCLIENT_SESSION_EVENT_REPUBLISH_UNACKED_MESSAGES = 20
}
 Session events that can be given to the Session event callback routine registered for a Session. More...
 
enum  solClient_flow_event {
  SOLCLIENT_FLOW_EVENT_UP_NOTICE = 0, SOLCLIENT_FLOW_EVENT_DOWN_ERROR = 1, SOLCLIENT_FLOW_EVENT_BIND_FAILED_ERROR = 2, SOLCLIENT_FLOW_EVENT_REJECTED_MSG_ERROR = 3,
  SOLCLIENT_FLOW_EVENT_SESSION_DOWN = 4, SOLCLIENT_FLOW_EVENT_ACTIVE = 5, SOLCLIENT_FLOW_EVENT_INACTIVE = 6, SOLCLIENT_FLOW_EVENT_RECONNECTING = 7,
  SOLCLIENT_FLOW_EVENT_RECONNECTED = 8
}
 Flow events that can be given to the Flow event callback routine registered for a Flow. More...
 
typedef enum
solClient_session_event 
solClient_session_event_t
 Type for Session events. More...
 
typedef enum solClient_flow_event solClient_flow_event_t
 Type for Flow events. More...
 

Detailed Description

include file for the Solace Corporation Messaging API for C

Copyright 2007-2024 Solace Corporation. All rights reserved.

This include file provides the public constants and API calls for clients connecting to a Solace messaging broker.

Macro Definition Documentation

#define SOLCLIENT_BUFINFO_MAX_CORRELATION_TAG_SIZE   (16)

The maximum size allowed for the correlation tag portion.

#define SOLCLIENT_BUFINFO_MAX_QUEUENAME_SIZE   (250)

The maximum size allowed for the Queue name portion (not including the terminating NULL).

The broker may further restrict the maximum length of the queuename, please consult the broker documentation.

Examples:
ex/flowControlQueue.c, ex/messageReplay.c, ex/queueProvision.c, ex/simpleBrowserFlow.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_BUFINFO_MAX_TOPIC_SIZE   (250)

The maximum size allowed for the topic portion (not including the terminating NULL).

Examples:
ex/common.h, ex/eventMonitor.c, ex/sempGetOverMb.c, and ex/simpleFlowToTopic.c.
#define SOLCLIENT_BUFINFO_MAX_USER_DATA_SIZE   (36)

The maximum size allowed for the user-data portion.

#define SOLCLIENT_CONTEXT_CREATEFUNC_INITIALIZER   {{NULL, NULL, NULL}}
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
#define SOLCLIENT_CONTEXT_PROPS_DEFAULT_WITH_CREATE_THREAD   ((solClient_propertyArray_pt )_solClient_contextPropsDefaultWithCreateThread)

Use with solClient_context_create() to create a Context in which the automatic Context thread is automatically created and all other properties are set with default values.

Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
#define SOLCLIENT_CONTEXT_TIMER_ID_INVALID   (0xffffffff)

An invalid value for a timer identifier.

#define SOLCLIENT_COS_1   (0x00)

The lowest class of service value.

For guaranteed messaging, it means the low priority.

#define SOLCLIENT_COS_2   (0x01)

The middle class of service value.

For guaranteed messaging, it is reserved for future use and is treated as the low priority.

#define SOLCLIENT_COS_3   (0x02)

The highest class of service value.

For guaranteed messaging, it means the high priority.

#define SOLCLIENT_DELIVERY_MODE_NONPERSISTENT   (0x20)

Send a Non-Persistent message.

Examples:
ex/messageTTLAndDeadMessageQueue.c, and ex/perfADPub.c.
#define SOLCLIENT_ENDPOINT_PERM_CONSUME   "c"

Consumer permission other clients may read and consume messages.

#define SOLCLIENT_ENDPOINT_PERM_DELETE   "d"

Delete permission other clients may read and consume messages, modify the Topic on a Topic Endpoint, and delete the endpoint.

Examples:
ex/common.c, and Intro/HelloWorldQueueSub.c.
#define SOLCLIENT_ENDPOINT_PERM_MODIFY_TOPIC   "m"

Modify Topic permission other clients may read and consume messages, and modify Topic on a Topic Endpoint.

Examples:
ex/activeFlowIndication.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/simpleFlowToQueue.c, and ex/transactions.c.
#define SOLCLIENT_ENDPOINT_PERM_NONE   "n"

No permissions for other clients.

#define SOLCLIENT_ENDPOINT_PERM_READ_ONLY   "r"

Read-only permission other clients may not consume messages.

#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE_EXCLUSIVE   "1"

An exclusive Queue.

The first client to bind receives the stored messages on the Endpoint.

Examples:
ex/activeFlowIndication.c.
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE_NONEXCLUSIVE   "0"

A non-exclusive (shared) Queue.

Each client to bind receives messages in a round robin fashion.

#define SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME   "4"
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_NOTIFY_SENDER_OFF   "2"

Discard the message and acknowledge it.

#define SOLCLIENT_ENDPOINT_PROP_DISCARD_NOTIFY_SENDER_ON   "1"

Send the publisher a message reject notification SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR.

Examples:
ex/queueProvision.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_ENDPOINT_PROP_TE   "3"

Request is for a Topic Endpoint.

Examples:
ex/perfADSub.c, ex/RRGuaranteedReplier.c, and ex/transactions.c.
#define SOLCLIENT_ERRORINFO_STR_SIZE   (256)

The maximum size of error string including terminating NULL character.

#define SOLCLIENT_FD_EVENT_ALL   (0x03)

This type represents all defined file descriptor events.

#define SOLCLIENT_FD_EVENT_READ   (0x01)

A readable file descriptor event.

#define SOLCLIENT_FD_EVENT_WRITE   (0x02)

A writeable file descriptor event.

#define SOLCLIENT_FLOW_CREATEFUNC_INITIALIZER   {{NULL,NULL},{NULL,NULL},{NULL,NULL}}
#define SOLCLIENT_FLOW_DISPATCHFUNC_INITIALIZER (   type)    {type, NULL, NULL, NULL}
#define SOLCLIENT_FLOW_PROP_ACKMODE_AUTO   "1"

Automatic application acknowledgment of all received messages.

If application calls solClient_flow_sendAck() in the SOLCLIENT_FLOW_PROP_ACKMODE_AUTO mode, a warning is generated.

#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING   "BEGINNING"

Replay all messages in the replay log.

#define solClient_log (   level,
  ... 
)
Value:
{if (level <= _solClient_log_appFilterLevel_g) { \
_solClient_log_output_detail(SOLCLIENT_LOG_CATEGORY_APP, level, \
"/" __FILE__, __LINE__, __VA_ARGS__);}}
Set log level filter for application logs.
Definition: solClient.h:1786

Allows the application to raise a log using the format of logs generated internally by the API.

An application can use this if it does not have its own logging facility. A log is only raised if the specified log level exceeds the log filter level in force for the application log category. Note that if an application has registered a log callback using solClient_SetLogCallback, then when solClient_Log is called, the log callback is invoked.

The format of this call is similar to printf, with a format string followed by a variable list of parameters.

solClient_log is only available if the applications are compiled with PROVIDE_LOG_UTILITIES defined (-DPROVIDE_LOG_UTILITIES).

example: solClient_log(SOLCLIENT_LOG_NOTICE, "Value is %d", value);

See Also
solClient_log_setFilterLevel()
solClient_log_setCallback()
Parameters
levelThe log level for the log being raised.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, and ex/transactions.c.
#define SOLCLIENT_LOG_DEFAULT_FILTER   (SOLCLIENT_LOG_NOTICE)

Default log filter level.

Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
#define solClient_log_va_list (   level,
  format_p,
  ap 
)
Value:
{if (level <= _solClient_log_appFilterLevel_g) { \
_solClient_log_output_detail_va_list(SOLCLIENT_LOG_CATEGORY_APP, level, \
"/" __FILE__, __LINE__, format_p, ap);}}
Set log level filter for application logs.
Definition: solClient.h:1786

Allows the application to raise a log that is similar to solClient_log.

This routine accepts a va_list to hold the variable list of arguments that comes after format_p. This form is useful if a wrapper routine in the application has already received a variable list of arguments and has converted them to a va_list.

solClient_log_va_list is only available if the applications are compiled with PROVIDE_LOG_UTILITIES defined (-DPROVIDE_LOG_UTILITIES).

See Also
solClient_log_setFilterLevel()
solClient_log_setCallback()
solClient_log()
Parameters
levelThe log level for the log being raised.
format_pA pointer to a format string, in the printf style.
apA va_list holding the remaining variable parameters.
#define SOLCLIENT_MESSAGE_USER_PROP_QUEUE_PARTITION_KEY   "JMSXGroupID"

Key for getting or setting partition key for a queue where the message should/is published to when supported by a PubSub+ messaging broker.

This property should be a part of User Property map. Expected value is UTF-8 encoded up to 255 bytes long string.

#define SOLCLIENT_MODIFYPROP_FLAGS_WAITFORCONFIRM   (0x01)

The modifyClientInfo API call blocks until a confirmation is received or its associated timer SOLCLIENT_SESSION_PROP_MODIFYPROP_TIMEOUT_MS expires.

See Also
Threading Effects on Blocking Modes for more information about setting session property modification flags in the Context thread.
#define SOLCLIENT_PROVISION_FLAGS_IGNORE_EXIST_ERRORS   (0x02)

When set, it is not considered an error if the endpoint already exists (create) or does not exist (delete).

Examples:
ex/common.c.
#define SOLCLIENT_PROVISION_FLAGS_WAITFORCONFIRM   (0x01)

The provision operation blocks until it has completed successfully on the broker or failed.

Provision Flags The provision operation may be modified by the use of one or more of the following flags:

Examples:
ex/activeFlowIndication.c, ex/common.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
#define SOLCLIENT_SESSION_DISPATCHFUNC_INITIALIZER (   type)    {type, NULL, NULL, NULL}
#define SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_PER_MSG   "SESSION_ACK_EVENT_MODE_PER_MSG"

In this mode, a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT acknowledges a single message.

#define SOLCLIENT_SESSION_PROP_ACK_EVENT_MODE_WINDOWED   "SESSION_ACK_EVENT_MODE_WINDOWED"

In this mode, a session event SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT is a ranged acknowledgment.

It acknowledges the message received as well as all preceding messages.

#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SUITES   "SESSION_SSL_CIPHER_SUITES"

This property 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', 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384', 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA', 'TLS_RSA_WITH_AES_256_GCM_SHA384', 'TLS_RSA_WITH_AES_256_CBC_SHA256', 'TLS_RSA_WITH_AES_256_CBC_SHA', 'TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA', 'SSL_RSA_WITH_3DES_EDE_CBC_SHA', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA', 'TLS_RSA_WITH_AES_128_GCM_SHA256', 'TLS_RSA_WITH_AES_128_CBC_SHA256', 'TLS_RSA_WITH_AES_128_CBC_SHA', 'SSL_RSA_WITH_RC4_128_SHA', 'SSL_RSA_WITH_RC4_128_MD5'. Default: SOLCLIENT_SESSION_PROP_DEFAULT_SSL_CIPHER_SUITES.

Examples:
ex/ios/examples/SecureSessionExample.m, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_SSL_TRUST_STORE_DIR   "SESSION_SSL_TRUST_STORE_DIR"

This property specifies the directory where the trusted certificates are.

The maximum depth for the certificate chain verification that shall be allowed is 3.

Examples:
ex/ios/examples/SecureSessionExample.m, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_SSL_TRUSTED_COMMON_NAME_LIST   "SESSION_SSL_TRUSTED_COMMON_NAME_LIST"

NOT RECOMMENDED.

Per RFC-6125 section 6.4.4, the Common Name (CN) of a certificate should not be used to validate the certificate. Instead SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST (enabled by default) indicates that the server certificate must contain a Subject Alternate Name (SAN) that matches the host name (SOLCLIENT_SESSION_PROP_HOST).

This property is only valid if SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST 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.

NOTE: When SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST is enabled (default), this property should be set to an empty list. Failure to do so may cause the API to reject an otherwise valid certificate.

Examples:
ex/ios/examples/SecureSessionExample.m, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_DATE   "SESSION_SSL_VALIDATE_CERTIFICATE_DATE"

This property indicates if the session connection should fail when a certificate with an invalid date (current date before valid date, or current date after expiry) is received.

This property only applies when SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE is enabled.

Default: SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_DATE.

See also OpenSSL Certificate Validation

Examples:
ex/ios/examples/SecureSessionExample.m, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST   "SESSION_SSL_VALIDATE_CERTIFICATE_HOST"

This property indicates if the session 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) must match the named host. This property only applies when SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE is enabled.

Default: SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_HOST.

See also OpenSSL Certificate Validation

#define SOLCLIENT_SESSION_SEND_MULTIPLE_LIMIT   50 /**> The maximum number of messages which can be sent through a single call to solClient_session_sendMultipleMsg()*/
#define SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY   (0x08)

For the topic dispatch feature, this flag indicates the subscription should only be added to the dispatch table and should not be added to the broker.

Examples:
ex/ios/examples/TopicDispatchExample.m, and ex/topicDispatch.c.
#define SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM   (0x10)

Requests a confirmation for the subscribe/unsubscribe operation.

This bit is implied by SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. If SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM is not set when this flag is set, then a confirmation event will be issued through the Session event callback procedure.

#define SOLCLIENT_TRANSACTEDSESSION_MAX_SESSION_NAME_LENGTH   64

The maximum transacted session name length.

#define SOLCLIENT_UUID_STRING_BUFFER_SIZE   (37)

The size in bytes for string representation of UUID value.

Typedef Documentation

typedef unsigned char solClient_bool_t

Boolean type (non-zero is true, 0 is false) .

A pointer to solClient_bufInfo structure used to point to a message part and to indicate the size of that part (in bytes).

typedef void(* solClient_context_fdCallbackFunc_t)(solClient_opaqueContext_pt opaqueContext_p, solClient_fd_t fd, solClient_fdEvent_t events, void *user_p)

A callback prototype for file descriptor events.

The callback with this prototype that is registered for a file descriptor event is called for each file descriptor event that occurs. Multiple registered file descriptor events can be returned in a single callback.

Parameters
opaqueContext_pA pointer to the Context under which the file descriptor event occurred. This pointer is never NULL.
fdThe file descriptor for which the event has occurred.
eventsA bit vector containing the file descriptor events that have occurred ORed together.
user_pA pointer to opaque user data, provided when the callback registered.
See Also
solClient_context_registerForFdEvents()Callback prototype for FD events.
typedef solClient_returnCode_t(* solClient_context_registerFdFunc_t)(void *app_p, solClient_fd_t fd, solClient_fdEvent_t events, solClient_context_fdCallbackFunc_t callback_p, void *user_p)

A function prototype for OPTIONAL application-supplied file descriptor registration service.

Parameters
app_pThe opaque pointer that was supplied when the file descriptor register function was configured. This pointer was passed in as user_p through solClient_context_registerFdFuncInfo_t.
fdThe file descriptor for which events are being registered.
eventsFile descriptor events of interest, OR'ed together. These events must be added to any existing events registered for this file descriptor.
callback_pThe event function to call when events occur on the file descriptor. This pointer is never NULL.
user_pAn opaque pointer to be supplied to the callback routine when invoked.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
See Also
solClient_context_create()A function prototype for optional application-supplied file descriptor registration service.
typedef void(* solClient_context_timerCallbackFunc_t)(solClient_opaqueContext_pt opaqueContext_p, void *user_p)

A callback prototype for timer expiry.

The callback with this prototype that is registered when a timer is started.

Parameters
opaqueContext_pA pointer to Context under which the timer was started previously. This pointer is never NULL.
user_pA pointer to opaque user data that is provided when timer started.
See Also
solClient_context_startTimer()A callback prototype for timer expiry.
typedef solClient_uint32_t solClient_context_timerId_t

Type for a timer identifier.

typedef solClient_returnCode_t(* solClient_context_unregisterFdFunc_t)(void *app_p, solClient_fd_t fd, solClient_fdEvent_t events)

A function prototype for OPTIONAL application-supplied file descriptor unregistration service.

Parameters
app_pAn opaque pointer supplied when the file descriptor unregister function was configured. This pointer was passed in as user_p through solClient_context_registerFdFuncInfo_t.
fdThe file descriptor for which events are being unregistered.
eventsEvents no longer of interest, OR'ed together.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
See Also
solClient_context_create()A function prototype for optional application-supplied file descriptor unregistration service.

A pointer to a solClient_errorInfo structure returned from solClient_getLastErrorInfo() .

typedef int solClient_fd_t

Type for a file descriptor.

typedef solClient_uint32_t solClient_fdEvent_t

A mask of events that can be requested for a file descriptor.

Type for Flow events.

typedef void(* solClient_flow_eventCallbackFunc_t)(solClient_opaqueFlow_pt opaqueFlow_p, solClient_flow_eventCallbackInfo_pt eventInfo_p, void *user_p)

A callback prototype for Flow events.

The callback with this prototype that is registered for a Flow is called for each Flow event that occurs.

When a Flow event is received that indicates an error condition (such as a bind failure), additional error information is recorded and can be retrieved through solClient_getLastErrorInfo.

SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
Parameters
opaqueFlow_pA pointer to the Flow to which the event applies. This pointer is never NULL.
eventInfo_pA pointer to information about the Flow event, such as the event type. This pointer is never NULL.
user_pA pointer to opaque user data provided when callback is registered.
See Also
solClient_session_createFlow()A callback prototype for Session events.

A pointer to solClient_flow_eventCallbackInfo structure of information returned with a Session event.

typedef solClient_rxMsgCallback_returnCode_t(* solClient_flow_rxMsgCallbackFunc_t)(solClient_opaqueFlow_pt opaqueFlow_p, solClient_opaqueMsg_pt msg_p, void *user_p)

A callback prototype for received messages on a Flow.

A callback with this prototype can be registered for a Flow. If an application registers this callback it is called for each received message. When the callback is invoked for a received message, the application can use all the structured data accessors on the received message. It may also choose to keep all or part of the received message for later use.

If the application requires a message (or some of its parts) after this callback returns, the application has several options available:

  • The application may duplicate the message (solClient_msg_dup), which creates a copy of the message but uses the same data area. The message can be used to access the data in the future.
  • The application can keep the 'msg' entirely by returning SOLCLIENT_CALLBACK_TAKE_MSG from this function.

In these cases, the application must call solClient_msg_free() to release the msg that was created by solClient_msg_dup. If the application takes control of the received msg it must later call solClient_msg_free() for that msg.

The implementation of this callback must return SOLCLIENT_CALLBACK_OK or SOLCLIENT_CALLBACK_TAKE_MSG

Parameters
opaqueFlow_pA pointer to the Flow for which the message has been received. This pointer is never NULL.
msg_pA pointer to an opaque message pointer (solClient_opaqueMsg_pt) for the received message. This pointer is never NULL.
user_pA pointer to opaque user data provided when the callback registered.
See Also
solClient_session_create()
typedef short solClient_int16_t

16-bit signed integer type.

typedef long long solClient_int64_t

64-bit signed integer type.

typedef signed char solClient_int8_t

8-bit signed integer type.

typedef void(* solClient_log_callbackFunc_t)(solClient_log_callbackInfo_pt logInfo_p, void *user_p)

A callback prototype for generated logs.

The callback with this prototype that is optionally globally registered is called for each log generated. Logs are filtered according to the log filter level set, and this routine is only called for logs that pass the level filter criteria. The log text must be used before the callback returns, as the pointer is no longer valid once the callback returns.

Parameters
logInfoA pointer to information about the log being generated, such as level and message. This pointer is never NULL.
user_pA pointer to opaque user data provided when the callback registered.
See Also
solClient_log_setFilterLevel()Callback prototype for generated logs.

A pointer to solClient_log_callbackInfo structure of information returned with logs.

Type for log filter categories.

Type for log levels.

Examples:
ex/common.c, and ex/secureSession.c.
typedef solClient_uint32_t solClient_modifyPropFlags_t

A set of flags that can be provided to a solClient_session_modifyClientInfo() call.

A unique msgId assigned to each Persistent and Non-Persistent message.

An opaque pointer to a container (such as a map or stream).

An opaque pointer to a processing Context.

An opaque pointer to a data block.

typedef void* solClient_opaqueFlow_pt

An opaque pointer to a Flow.

typedef void* solClient_opaqueMsg_pt

An opaque pointer to a message.

typedef void* * solClient_opaquePointer_pt

An opaque pointer to a pointer.

An opaque pointer to a Session.

Examples:
ex/RRGuaranteedReplier.c.

An opaque pointer to a Transacted Session.

pointer to an array of string pointers for properties

The type for API return codes.

Type for Session events.

typedef void(* solClient_session_eventCallbackFunc_t)(solClient_opaqueSession_pt opaqueSession_p, solClient_session_eventCallbackInfo_pt eventInfo_p, void *user_p)

A callback prototype for Session events.

The callback with this prototype that is registered for a Session is called for each Session event that occurs.

When a Session event is received that indicates an error condition (such as the Session going down), additional error information is recorded and can be retrieved through solClient_getLastErrorInfo.

SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
Parameters
opaqueSession_pA pointer to the Session to which the event applies. This pointer is never NULL.
eventInfo_pA pointer to information about the Session event, such as the event type. This pointer is never NULL.
user_pA pointer to opaque user data provided when the callback is registered.
See Also
solClient_session_create()A callback prototype for Session events.
Examples:
ex/common.c, ex/common.h, ex/ios/Example.h, and ex/ios/Example.m.

A pointer to solClient_session_eventCallbackInfo structure of information returned with a Session event.

typedef solClient_uint32_t solClient_session_responseCode_t

An error response code that is returned with Session events.

typedef solClient_rxMsgCallback_returnCode_t(* solClient_session_rxMsgCallbackFunc_t)(solClient_opaqueSession_pt opaqueSession_p, solClient_opaqueMsg_pt msg_p, void *user_p)

A callback prototype for received messages.

A callback with this prototype can be registered for a Session. If an application registers this callback, it is called for each received message. When the callback is invoked for a received message, the application can use all the structured data accessors on the received message. It can also choose to keep all or part of the received message for later use.

If the application requires a message (or some of its parts) after this callback returns, the application has several options available:

  • The application may duplicate the message (solClient_msg_dup), which creates a copy of the message but uses the same data area. The message can be used to access the data in the future.
  • The application may keep the 'msg' entirely by returning SOLCLIENT_CALLBACK_TAKE_MSG from this function.

In these cases, the application must call solClient_msg_free() to release the msg that was created by solClient_msg_dup. If the application takes control of the received msg it must later call solClient_msg_free() for that msg.

The implementation of this callback must return SOLCLIENT_CALLBACK_OK or SOLCLIENT_CALLBACK_TAKE_MSG

Parameters
opaqueSession_pA pointer to the Session for which the message has been received. This pointer is never NULL.
msg_pA pointer to an opaque message pointer (solClient_opaqueMsg_pt) for the received message. This pointer is never NULL.
user_pA pointer to opaque user data provided when callback registered.
See Also
solClient_session_create()
Examples:
ex/common.c, ex/common.h, ex/ios/Example.h, and ex/ios/Example.m.

Type of a pointer to a statistics value.

Type that indicates which receive statistic.

Type of a statistics value.

Type that indicates which transmit statistic.

Type for API sub codes.

typedef unsigned short solClient_uint16_t

16-bit unsigned integer type.

typedef unsigned long long solClient_uint64_t

64-bit unsigned integer type.

typedef unsigned char solClient_uint8_t

8-bit unsigned integer type.

A pointer to solClient_version_info structure holding version information.

typedef wint_t solClient_wchar_t

Wide character type (16-bit unicode character).

Enumeration Type Documentation

The type of timer to start through solClient_context_startTimer().

Enumerator
SOLCLIENT_CONTEXT_TIMER_ONE_SHOT 

The timer expires once and then is automatically stopped.

SOLCLIENT_CONTEXT_TIMER_REPEAT 

The timer is automatically rescheduled for the same duration upon expiry until stopped.

Destination Types that can appear in the ReplyTo.

Enumerator
SOLCLIENT_NULL_DESTINATION 
SOLCLIENT_TOPIC_DESTINATION 
SOLCLIENT_QUEUE_DESTINATION 
SOLCLIENT_TOPIC_TEMP_DESTINATION 
SOLCLIENT_QUEUE_TEMP_DESTINATION 

Type of dispatch function to perform for messages received on the topic.

see solClient_session_rxMsgDispatchFuncInfo and solClient_flow_rxMsgDispatchFuncInfo

Enumerator
SOLCLIENT_DISPATCH_TYPE_CALLBACK 

Callback on the dispatch function immediately when a message arrives.

Data types that can be transmitted by the machine-independent read and write functions.

Enumerator
SOLCLIENT_BOOL 

Boolean.

SOLCLIENT_UINT8 

8-bit unsigned integer.

SOLCLIENT_INT8 

8-bit signed integer.

SOLCLIENT_UINT16 

16-bit unsigned integer.

SOLCLIENT_INT16 

16-bit signed integer.

SOLCLIENT_UINT32 

32-bit unsigned integer.

SOLCLIENT_INT32 

32-bit signed integer.

SOLCLIENT_UINT64 

64-bit unsigned integer.

SOLCLIENT_INT64 

64-bit signed integer.

SOLCLIENT_WCHAR 

16-bit unicode character.

SOLCLIENT_STRING 

Null terminated string, (ASCII or UTF-8).

SOLCLIENT_BYTEARRAY 

Byte array.

SOLCLIENT_FLOAT 

32-bit floating point number.

SOLCLIENT_DOUBLE 

64-bit floating point number.

SOLCLIENT_MAP 

Solace Map (container class).

SOLCLIENT_STREAM 

Solace Stream (container class).

SOLCLIENT_NULL 

NULL field.

SOLCLIENT_DESTINATION 

Destination field.

SOLCLIENT_SMF 

A complete Solace Message Format (SMF) message is encapsulated in the container.

SOLCLIENT_UNKNOWN 

A validly formatted, but unrecognized, data type was received.

Flow events that can be given to the Flow event callback routine registered for a Flow.

The Flow event callback is registered when a Flow is created through solClient_session_createFlow() and has the prototype solClient_flow_eventCallbackFunc_t. A Flow event can be converted to a string value through solClient_flow_eventToString().

Enumerator
SOLCLIENT_FLOW_EVENT_UP_NOTICE 

The Flow is established.

SOLCLIENT_FLOW_EVENT_DOWN_ERROR 

The Flow was established and then disconnected by the broker, due to an operator action.

The Flow must be destroyed.

SOLCLIENT_FLOW_EVENT_BIND_FAILED_ERROR 

The Flow attempted to connect but was unsuccessful.

SOLCLIENT_FLOW_EVENT_REJECTED_MSG_ERROR 

This event is deprecated and will never be raised.

SOLCLIENT_FLOW_EVENT_SESSION_DOWN 

The Session for the Flow was disconnected.

The Flow will rebound automatically when the Session is reconnected.

SOLCLIENT_FLOW_EVENT_ACTIVE 

The flow has become active.

SOLCLIENT_FLOW_EVENT_INACTIVE 

The flow has become inactive.

SOLCLIENT_FLOW_EVENT_RECONNECTING 

The Flow was established and then disconnected by the broker, due to operator action, either 'Replay Started' or 'shutdown' on the queue, topic endpoint, or message spool.

The API is attempting to reconnect the flow automatically

SOLCLIENT_FLOW_EVENT_RECONNECTED 

The Flow was successfully reconnected to the broker.

Definition of SolClient log categories, which is used for log level filter control.

Each category can have its log level set independently. SOLCLIENT_LOG_CATEGORY_SDK refers to logs which are generated internally within the C API. SOLCLIENT_LOG_CATEGORY_APP refers to logs raised by the application through solClient_log(). A log category can be converted to a string through solClient_log_categoryToString().

Enumerator
SOLCLIENT_LOG_CATEGORY_ALL 

Set log level filter for all categories.

SOLCLIENT_LOG_CATEGORY_SDK 

Set log level filter for API internal logs.

SOLCLIENT_LOG_CATEGORY_APP 

Set log level filter for application logs.

Definition of SolClient log levels.

To avoid affecting performance, do not set the API log filter level to SOLCLIENT_LOG_INFO or SOLCLIENT_LOG_DEBUG unless required for debugging. A log level can be converted to a string through solClient_log_levelToString().

Enumerator
SOLCLIENT_LOG_EMERGENCY 

This level is not used by the API.

SOLCLIENT_LOG_ALERT 

This level is not used by the API.

SOLCLIENT_LOG_CRITICAL 

A serious error that can make the API unusable.

SOLCLIENT_LOG_ERROR 

An unexpected condition within the API that can affect its operation.

SOLCLIENT_LOG_WARNING 

An unexpected condition within the API that is not expected to affect its operation.

SOLCLIENT_LOG_NOTICE 

Significant informational messages about the normal operation of the API.

These messages are never output in the normal process of sending or receiving a message from the broker.

SOLCLIENT_LOG_INFO 

Informational messages about the normal operation of the API.

These might include information related to sending or receiving messages from the broker.

SOLCLIENT_LOG_DEBUG 

Debugging information generally useful to API developers (very verbose).

The three different possible message outcomes that can be used to settle a message which was received on a flow.

see solClient_flow_settleMsg , SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_FAILED , SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_REJECTED

Enumerator
SOLCLIENT_OUTCOME_ACCEPTED 

The message was successfully processed.

SOLCLIENT_OUTCOME_FAILED 

Message processing failed temporarily, attempt redelivery if configured.

SOLCLIENT_OUTCOME_REJECTED 

Message deemed permanently unprocessable, move to DMQ if configured, no redelivery.

Return code from API calls.

A return code can be converted to a string through solClient_returnCodeToString().

Enumerator
SOLCLIENT_OK 

The API call was successful.

SOLCLIENT_WOULD_BLOCK 

The API call would block, but non-blocking was requested.

SOLCLIENT_IN_PROGRESS 

An API call is in progress (non-blocking mode).

SOLCLIENT_NOT_READY 

The API could not complete as an object is not ready (for example, the Session is not connected).

SOLCLIENT_EOS 

A getNext on a structured container returned End-of-Stream.

SOLCLIENT_NOT_FOUND 

A get for a named field in a MAP was not found in the MAP.

SOLCLIENT_NOEVENT 

solClient_context_processEventsWait returns this if wait is zero and there is no event to process

SOLCLIENT_INCOMPLETE 

The API call completed some, but not all, of the requested function.

SOLCLIENT_ROLLBACK 

solClient_transactedSession_commit returns this when the transaction has been rolled back.

SOLCLIENT_FAIL 

The API call failed.

The return code that the application returns to the API on each received message.

This is used by the message received functions with the prototype of solClient_session_rxMsgCallbackFunc_t or solClient_flow_rxMsgCallbackFunc_t.

Enumerator
SOLCLIENT_CALLBACK_OK 

Normal return - the message is destroyed by the API upon return.

SOLCLIENT_CALLBACK_TAKE_MSG 

The application is keeping the rxMsg, and it must not be released or reused by the API .

Session events that can be given to the Session event callback routine registered for a Session.

The Session event callback is registered when a Session is created through solClient_session_create(), and it has the prototype solClient_session_eventCallbackFunc_t. A Session event can be converted to a string value through solClient_session_eventToString().

Enumerator
SOLCLIENT_SESSION_EVENT_UP_NOTICE 

The Session is established.

SOLCLIENT_SESSION_EVENT_DOWN_ERROR 

The Session was established and then went down.

SOLCLIENT_SESSION_EVENT_CONNECT_FAILED_ERROR 

The Session attempted to connect but was unsuccessful.

SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR 

The broker rejected a published message.

SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR 

The broker rejected a subscription (add or remove).

SOLCLIENT_SESSION_EVENT_RX_MSG_TOO_BIG_ERROR 

The API discarded a received message that exceeded the Session buffer size.

SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT 

The oldest transmitted Persistent/Non-Persistent message that has been acknowledged.

SOLCLIENT_SESSION_EVENT_ASSURED_PUBLISHING_UP 

Deprecated – see notes in solClient_session_startAssuredPublishing.

The AD Handshake (that is, Guaranteed Delivery handshake) has completed for the publisher and Guaranteed messages can be sent.

SOLCLIENT_SESSION_EVENT_ASSURED_CONNECT_FAILED 

Deprecated – see notes in solClient_session_startAssuredPublishing.

The broker rejected the AD Handshake to start Guaranteed publishing. Use SOLCLIENT_SESSION_EVENT_ASSURED_DELIVERY_DOWN instead.

SOLCLIENT_SESSION_EVENT_ASSURED_DELIVERY_DOWN 

Guaranteed Delivery publishing is not available.

The guaranteed delivery capability on the session has been disabled by some action on the broker.

SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_ERROR 

The Topic Endpoint unsubscribe command failed.

SOLCLIENT_SESSION_EVENT_DTE_UNSUBSCRIBE_ERROR 

Deprecated name; SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_ERROR is preferred.

SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK 

The Topic Endpoint unsubscribe completed.

SOLCLIENT_SESSION_EVENT_DTE_UNSUBSCRIBE_OK 

Deprecated name; SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK is preferred.

SOLCLIENT_SESSION_EVENT_CAN_SEND 

The send is no longer blocked.

SOLCLIENT_SESSION_EVENT_RECONNECTING_NOTICE 

The Session has gone down, and an automatic reconnect attempt is in progress.

SOLCLIENT_SESSION_EVENT_RECONNECTED_NOTICE 

The automatic reconnect of the Session was successful, and the Session was established again.

SOLCLIENT_SESSION_EVENT_PROVISION_ERROR 

The endpoint create/delete command failed.

SOLCLIENT_SESSION_EVENT_PROVISION_OK 

The endpoint create/delete command completed.

SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_OK 

The subscribe or unsubscribe operation has succeeded.

SOLCLIENT_SESSION_EVENT_VIRTUAL_ROUTER_NAME_CHANGED 

The broker's Virtual Router Name changed during a reconnect operation.

This could render existing queues or temporary topics invalid.

SOLCLIENT_SESSION_EVENT_MODIFYPROP_OK 

The session property modification completed.

SOLCLIENT_SESSION_EVENT_MODIFYPROP_FAIL 

The session property modification failed.

SOLCLIENT_SESSION_EVENT_REPUBLISH_UNACKED_MESSAGES 

After successfully reconnecting a disconnected session, the SDK received an unknown publisher flow name response when reconnecting the GD publisher flow.

If configured to auto-retry (See SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION.) this event is generated to indicate how many unacknowledged messages are retransmitted on success. As the publisher state has been lost on failover, receiving this event may indicate that some messages have been duplicated in the system.

Receive statistics (64-bit counters).

Index into array of receive statistics.

Enumerator
SOLCLIENT_STATS_RX_DIRECT_BYTES 

The number of bytes received.

SOLCLIENT_STATS_RX_BYTES 

Deprecated name, SOLCLIENT_STATS_RX_DIRECT_BYTES is preferred.

SOLCLIENT_STATS_RX_DIRECT_MSGS 

The number of messages received.

SOLCLIENT_STATS_RX_MSGS 

Deprecated name, SOLCLIENT_STATS_RX_DIRECT_MSGS is preferred.

SOLCLIENT_STATS_RX_READS 

The number of non-empty reads.

SOLCLIENT_STATS_RX_DISCARD_IND 

The number of receive messages with discard indication set.

SOLCLIENT_STATS_RX_DISCARD_SMF_UNKNOWN_ELEMENT 

The number of messages discarded due to the presence of an unknown element or unknown protocol in the Solace Message Format (SMF) header.

SOLCLIENT_STATS_RX_DISCARD_MSG_HDR_ERROR 

Deprecated, use the more accurately named SOLCLIENT_STATS_RX_DISCARD_SMF_UNKNOWN_ELEMENT instead.

SOLCLIENT_STATS_RX_DISCARD_MSG_TOO_BIG 

The number of messages discarded due to msg too large.

SOLCLIENT_STATS_RX_ACKED 

The number of acknowledgments sent for Guaranteed messages.

SOLCLIENT_STATS_RX_DISCARD_DUPLICATE 

The number of Guaranteed messages dropped for being duplicates.

SOLCLIENT_STATS_RX_DISCARD_NO_MATCHING_FLOW 

The number of Guaranteed messages discarded due to no match on the flowId.

SOLCLIENT_STATS_RX_DISCARD_OUTOFORDER 

The number of Guaranteed messages discarded for being received out of order.

SOLCLIENT_STATS_RX_PERSISTENT_BYTES 

The number of Persistent bytes received on the Flow.

On the Session, it is the total number of Persistent bytes received across all Flows.

SOLCLIENT_STATS_RX_PERSISTENT_MSGS 

The number of Persistent messages received on the Flow.

On the Session, it is the total number of Persistent messages received across all Flows.

SOLCLIENT_STATS_RX_NONPERSISTENT_BYTES 

The number of Persistent bytes received on the Flow.

On the Session, it is the total number of Persistent bytes received across all Flows.

SOLCLIENT_STATS_RX_NONPERSISTENT_MSGS 

The number of Persistent messages received on the Flow.

On the Session, it is the total number of Persistent messages received across all Flows.

SOLCLIENT_STATS_RX_CTL_MSGS 

The number of control (non-data) messages received.

SOLCLIENT_STATS_RX_CTL_BYTES 

The number of bytes received in control (non-data) messages.

SOLCLIENT_STATS_RX_TOTAL_DATA_BYTES 

The total number of data bytes received.

SOLCLIENT_STATS_RX_TOTAL_DATA_MSGS 

The total number of data messages received.

SOLCLIENT_STATS_RX_COMPRESSED_BYTES 

The number of bytes received before decompression.

SOLCLIENT_STATS_RX_REPLY_MSG 

The reply messages received.

SOLCLIENT_STATS_RX_REPLY_MSG_DISCARD 

The reply messages (including cache request response) discarded due to errors in response format or no outstanding request.

SOLCLIENT_STATS_RX_CACHEREQUEST_OK_RESPONSE 

Cache requests completed OK.

SOLCLIENT_STATS_RX_CACHEREQUEST_FULFILL_DATA 

Cache requests fulfilled by live data.

SOLCLIENT_STATS_RX_CACHEREQUEST_ERROR_RESPONSE 

Cache requests failed due to solCache error response.

SOLCLIENT_STATS_RX_CACHEREQUEST_DISCARD_RESPONSE 

Cache request response discarded due to errors in response format or no outstanding cache request.

SOLCLIENT_STATS_RX_CACHEMSG 

Cached messages delivered to application.

SOLCLIENT_STATS_RX_FOUND_CTSYNC 

Deprecated - Not Supported - On a cut-through Flow, the number of times the Flow entered cut-through delivery mode.

SOLCLIENT_STATS_RX_LOST_CTSYNC 

Deprecated - Not Supported - On a cut-through Flow, the number of times the Flow left cut-through delivery mode to resynchronize with the Guaranteed message storage on the broker.

SOLCLIENT_STATS_RX_LOST_CTSYNC_GM 

Deprecated - Not Supported - On a cut-through Flow, the number of times the Flow left cut-through delivery mode to resynchronize with the Guaranteed message storage due to receiving a Guaranteed message that was not previously received as Direct.

SOLCLIENT_STATS_RX_OVERFLOW_CTSYNC_BUFFER 

Deprecated - Not Supported - On a cut-through Flow, the number of times the synchronization buffer overflowed, delaying synchronization.

SOLCLIENT_STATS_RX_ALREADY_CUT_THROUGH 

Deprecated - Not Supported - On a cut-through Flow, the number of Guaranteed messages discarded because they had already been received on the cut-through Flow.

SOLCLIENT_STATS_RX_DISCARD_FROM_CTSYNC 

Deprecated - Not Supported - On a cut-through Flow, the number of messages discarded from the synchronization list other than those discarded due to overflow.

SOLCLIENT_STATS_RX_DISCARD_MSG_FLOW_UNBOUND_PENDING 

On a transacted flow, the number of messages discarded because the flow is in a UNBOUND pending state.

SOLCLIENT_STATS_RX_DISCARD_MSG_TRANSACTION_ROLLBACK 

On a transacted flow, the number of messages discarded after a transaction rollback and becomes a message comes in with prevMsgId=0.

SOLCLIENT_STATS_RX_DISCARD_TRANSACTION_RESPONSE 

On a transacted session, the number of transaction responses discarded due to reconnection.

SOLCLIENT_STATS_RX_SSL_READ_EVENTS 
SOLCLIENT_STATS_RX_SSL_READ_CALLS 
SOLCLIENT_STATS_RX_SETTLE_ACCEPTED 

Number of messages settled with "ACCEPTED" outcome.

SOLCLIENT_STATS_RX_SETTLE_FAILED 

Number of messages settled with "FAILED" outcome.

SOLCLIENT_STATS_RX_SETTLE_REJECTED 

Number of messages settled with "REJECTED" outcome.

SOLCLIENT_STATS_RX_NUM_STATS 

The size of receive stats array.

Transmit statistics (64-bit counters).

Index into array of transmit statistics.

Enumerator
SOLCLIENT_STATS_TX_TOTAL_DATA_BYTES 

The number of data bytes transmitted in total.

SOLCLIENT_STATS_TX_BYTES 

Deprecated name; SOLCLIENT_STATS_TX_TOTAL_DATA_BYTES is preferred.

SOLCLIENT_STATS_TX_TOTAL_DATA_MSGS 

The number of data messages transmitted in total.

SOLCLIENT_STATS_TX_MSGS 

Deprecated name; SOLCLIENT_STATS_TX_TOTAL_DATA_MSGS is preferred.

SOLCLIENT_STATS_TX_WOULD_BLOCK 

The number of messages not accepted due to would block (non-blocking only).

SOLCLIENT_STATS_TX_SOCKET_FULL 

The number of times the socket was full when send done (data buffered).

SOLCLIENT_STATS_TX_DIRECT_BYTES 

The number of bytes transmitted in Direct messages.

SOLCLIENT_STATS_TX_DIRECT_MSGS 

The number of Direct messages transmitted.

SOLCLIENT_STATS_TX_PERSISTENT_BYTES 

The number of bytes transmitted in Persistent messages.

SOLCLIENT_STATS_TX_NONPERSISTENT_BYTES 

The number of bytes transmitted in Non-Persistent messages.

SOLCLIENT_STATS_TX_PERSISTENT_MSGS 

The number of Persistent messages transmitted.

SOLCLIENT_STATS_TX_NONPERSISTENT_MSGS 

The number of Non-Persistent messages transmitted.

SOLCLIENT_STATS_TX_PERSISTENT_REDELIVERED 

The number of Persistent messages redelivered.

SOLCLIENT_STATS_TX_NONPERSISTENT_REDELIVERED 

The number of Non-Persistent messages redelivered.

SOLCLIENT_STATS_TX_PERSISTENT_BYTES_REDELIVERED 

The number of bytes redelivered in Persistent messages.

SOLCLIENT_STATS_TX_NONPERSISTENT_BYTES_REDELIVERED 

The number of bytes redelivered in Non-Persistent messages.

SOLCLIENT_STATS_TX_ACKS_RXED 

The number of acknowledgments received.

SOLCLIENT_STATS_TX_WINDOW_CLOSE 

The number of times the transmit window closed.

SOLCLIENT_STATS_TX_ACK_TIMEOUT 

The number of times the acknowledgment timer expired.

SOLCLIENT_STATS_TX_CTL_MSGS 

The number of control (non-data) messages transmitted.

SOLCLIENT_STATS_TX_CTL_BYTES 

The number of bytes transmitted in control (non-data) messages.

SOLCLIENT_STATS_TX_COMPRESSED_BYTES 

The number of bytes transmitted after compression.

SOLCLIENT_STATS_TX_TOTAL_CONNECTION_ATTEMPTS 

The total number of TCP connections attempted by this Session.

SOLCLIENT_STATS_TX_REQUEST_SENT 

The request messages sent.

SOLCLIENT_STATS_TX_REQUEST_TIMEOUT 

The request messages sent that did not receive a reply due to timeout.

SOLCLIENT_STATS_TX_CACHEREQUEST_SENT 

The cache requests sent.

SOLCLIENT_STATS_TX_GUARANTEED_MSGS_SENT_CONFIRMED 

Guaranteed messages (Persistent/Non-Persistent) published that have been acknowledged.

SOLCLIENT_STATS_TX_DISCARD_NO_MATCH 

When the IPC add-on is in use, the counter of messages discarded due to no subscription match with connected peers.

SOLCLIENT_STATS_TX_DISCARD_CHANNEL_ERROR 

Messages discarded due to channel failure.

SOLCLIENT_STATS_TX_BLOCKED_ON_SEND 

The number of times Session blocked on socket full (blocking only) occurred.

SOLCLIENT_STATS_TX_NUM_STATS 

The size of transmit stats array.

A subcode that provides more detailed error information.

The last subcode is stored on a per-thread basis and can be retrieved by an application thread.

NOTE: The error subCode is historic and only updated when an API does not return SOLCLIENT_OK. When an API call returns SOLCLIENT_OK the subCode is not meaningful and might not always be SOLCLIENT_SUBCODE_OK.

A subCode is always set when a API call does not return SOLCLIENT_OK.

The application must be able to accept any subcode to allow for new subcodes to be added in the future and allow for forward compatibility. When examining and acting on the subcode, the application should act on any specific subcodes it needs to take different actions on, and then must perform a default action for any other subcode value. A subcode can be converted to a string through solClient_subCodeToString().

The following subcodes can be returned from any API entry point:
SOLCLIENT_SUBCODE_INIT_NOT_CALLED (except for functions documented as being allowed to be called before solClient_initialize)
SOLCLIENT_SUBCODE_PARAM_OUT_OF_RANGE
SOLCLIENT_SUBCODE_PARAM_NULL_PTR (functions that accept pointer parameters)
SOLCLIENT_SUBCODE_PARAM_CONFLICT (functions that have interdependent parameters)
SOLCLIENT_SUBCODE_INTERNAL_ERROR
SOLCLIENT_SUBCODE_OS_ERROR
SOLCLIENT_SUBCODE_OUT_OF_MEMORY
SOLCLIENT_SUBCODE_CANNOT_BLOCK_IN_CONTEXT (functions that result in an interaction with the message router)
A complete list of SolClient subCodes, their meaning, and the broker response that caused them (when applicable) follows:

SubCode Description Appliance Error Response
SOLCLIENT_SUBCODE_OK No error. 200 OK
SOLCLIENT_SUBCODE_PARAM_OUT_OF_RANGE An API call was made with an out-of-range parameter. N/A
SOLCLIENT_SUBCODE_PARAM_NULL_PTR An API call was made with a NULL pointer parameter. N/A
SOLCLIENT_SUBCODE_PARAM_CONFLICT An API call was made with a parameter combination that is not valid. N/A
SOLCLIENT_SUBCODE_INSUFFICIENT_SPACE An API call failed due to insufficient space to accept more data. N/A
SOLCLIENT_SUBCODE_OUT_OF_RESOURCES An API call failed due to lack of resources (for example, starting a timer when all timers are in use). 400 Not Enough Space
SOLCLIENT_SUBCODE_INTERNAL_ERROR An API call had an internal error (not an application fault). N/A
SOLCLIENT_SUBCODE_OUT_OF_MEMORY An API call failed due to inability to allocate memory. N/A
SOLCLIENT_SUBCODE_PROTOCOL_ERROR An API call failed due to a protocol error with the broker (not an application fault). N/A
SOLCLIENT_SUBCODE_INIT_NOT_CALLED An API call failed due to solClient_initialize() not being called first. N/A
SOLCLIENT_SUBCODE_TIMEOUT An API call failed due to a timeout. N/A
SOLCLIENT_SUBCODE_KEEP_ALIVE_FAILURE The Session Keep-Alive detected a failed Session. N/A
SOLCLIENT_SUBCODE_SESSION_NOT_ESTABLISHED An API call failed due to the Session not being established. N/A
SOLCLIENT_SUBCODE_OS_ERROR An API call failed due to a failed operating system call. An error string can be retrieved with solClient_getLastErrorInfo(). N/A
SOLCLIENT_SUBCODE_COMMUNICATION_ERROR An API call failed due to a communication error. An error string can be retrieved with solClient_getLastErrorInfo(). N/A
SOLCLIENT_SUBCODE_USER_DATA_TOO_LARGE Attempt to send a message with user data larger than the maximum that is supported. N/A
SOLCLIENT_SUBCODE_TOPIC_TOO_LARGE An attempt to use a Topic which is longer than the maximum that is supported. N/A
SOLCLIENT_SUBCODE_INVALID_TOPIC_SYNTAX An attempt to use a Topic which has a syntax which is not supported. 400 Topic Parse Error
SOLCLIENT_SUBCODE_XML_PARSE_ERROR The broker could not parse an XML message. 400 XML Parse Error
SOLCLIENT_SUBCODE_LOGIN_FAILURE The client could not log into the broker (bad username or password, unknown parameter, etc.) All 400, 401, 403 and 404 error codes from broker
SOLCLIENT_SUBCODE_INVALID_VIRTUAL_ADDRESS An attempt to connect to the wrong IP address on the broker (must use CVRID if configured), or the broker CVRID has changed and this was detected on reconnect. 403 Invalid Virtual Router Address
SOLCLIENT_SUBCODE_CLIENT_DELETE_IN_PROGRESS The client login not currently possible as previous instance of same client still being deleted. 503 Subscriber Delete In Progress
SOLCLIENT_SUBCODE_TOO_MANY_CLIENTS The client login not currently possible due to maximum number of active clients on broker has already been reached. "503 Too Many Clients" "503 Too Many Publishers" "503 Too Many Subscribers" "400 Too Many Subscribers"
SOLCLIENT_SUBCODE_SUBSCRIPTION_ALREADY_PRESENT The client attempted to add a subscription which already exists - this subcode is only returned if the Session property SOLCLIENT_SESSION_PROP_IGNORE_DUP_SUBSCRIPTION_ERROR is not enabled. "400 already exists" "400 Subscription Already Exists"
SOLCLIENT_SUBCODE_SUBSCRIPTION_NOT_FOUND The client attempted to remove a subscription which did not exist - this subcode is only returned if the Session property SOLCLIENT_SESSION_PROP_IGNORE_DUP_SUBSCRIPTION_ERROR is not enabled. "400 not found" "400 Subscription Not Found"
SOLCLIENT_SUBCODE_SUBSCRIPTION_INVALID The client attempted to add/remove a subscription that is not valid. "400 not supported" "400 parse error" "400 Subscription Parse Error"
SOLCLIENT_SUBCODE_SUBSCRIPTION_OTHER The broker rejected a subscription add or remove request for a reason not separately enumerated.
SOLCLIENT_SUBCODE_CONTROL_OTHER The broker rejected a control message for another reason not separately enumerated. Default error subCode for broker error responses
SOLCLIENT_SUBCODE_DATA_OTHER The broker rejected a data message for another reason not separately enumerated. Default error subCode for error response to published data
SOLCLIENT_SUBCODE_LOG_FILE_ERROR Could not open the log file name specified by the application for writing (Deprecated - SOLCLIENT_SUBCODE_OS_ERROR is used). N/A
SOLCLIENT_SUBCODE_MESSAGE_TOO_LARGE The client attempted to send a message larger than that supported by the broker. "400 Document Is Too Large" "400 Message Too Long"
SOLCLIENT_SUBCODE_SUBSCRIPTION_TOO_MANY The client attempted to add a subscription that exceeded the maximum number allowed. "400 Max Num Subscriptions Exceeded"
SOLCLIENT_SUBCODE_INVALID_SESSION_OPERATION An API call failed due to the attempted operation not being valid for the Session. N/A
SOLCLIENT_SUBCODE_TOPIC_MISSING A send call was made that did not have a Topic in a mode where one is required (for example, client mode). N/A
SOLCLIENT_SUBCODE_ASSURED_MESSAGING_NOT_ESTABLISHED A send call was made to send a Guaranteed message before Guaranteed Mesaging is established (Deprecated). N/A
SOLCLIENT_SUBCODE_ASSURED_MESSAGING_STATE_ERROR An attempt was made to start Guaranteed Messaging when it is already started. N/A
SOLCLIENT_SUBCODE_QUEUENAME_TOPIC_CONFLICT Both Queue name and Topic are specified in solClient_session_send. N/A
SOLCLIENT_SUBCODE_QUEUENAME_TOO_LARGE An attempt was made to use a Queue name which is longer than the maximum supported length. N/A
SOLCLIENT_SUBCODE_QUEUENAME_INVALID_MODE An attempt was made to use a Queue name on a non-Guaranteed (that is, Direct) message. N/A
SOLCLIENT_SUBCODE_MAX_TOTAL_MSGSIZE_EXCEEDED An attempt was made to send a message with a total size greater than that supported by the protocol. N/A
SOLCLIENT_SUBCODE_DBLOCK_ALREADY_EXISTS An attempt was made to allocate a datablock for a msg element when one already exists. N/A
SOLCLIENT_SUBCODE_NO_STRUCTURED_DATA An attempt was made to create a container to read structured data where none exists. N/A
SOLCLIENT_SUBCODE_CONTAINER_BUSY An attempt was made to add a field to a map or stream while a submap or substream is being built. N/A
SOLCLIENT_SUBCODE_INVALID_DATA_CONVERSION An attempt was made to retrieve structured data with the wrong type. N/A
SOLCLIENT_SUBCODE_CANNOT_MODIFY_WHILE_NOT_IDLE An attempt was made to modify a property that cannot be modified while Session is not idle. N/A
SOLCLIENT_SUBCODE_MSG_VPN_NOT_ALLOWED The Message VPN name configured for the session does not exist. 403 Message VPN Not Allowed
SOLCLIENT_SUBCODE_CLIENT_NAME_INVALID The client name chosen has been rejected as invalid by the broker. 400 Client Name Parse Error
SOLCLIENT_SUBCODE_MSG_VPN_UNAVAILABLE The Message VPN name set for the Session (or the default VPN if none was set) is currently shutdown on the broker. 503 Message VPN Unavailable
SOLCLIENT_SUBCODE_CLIENT_USERNAME_IS_SHUTDOWN The username for the client is administratively shutdown on the broker. 403 Client Username Is Shutdown
SOLCLIENT_SUBCODE_DYNAMIC_CLIENTS_NOT_ALLOWED The username for the Session has not been set and dynamic clients are not allowed. 403 Dynamic Clients Not Allowed
SOLCLIENT_SUBCODE_CLIENT_NAME_ALREADY_IN_USE The Session is attempting to use a client, publisher, or subscriber name that is in use by another client, publisher or subscriber and the broker is configured to reject the new Session. When Message VPNs are in use, the conflicting client name must be in the same Message VPN. "403 Client Name Already In Use" "403 Publisher Name Already In Use" "403 Subscriber Name Already In Use"
SOLCLIENT_SUBCODE_CACHE_NO_DATA When the cache request returns SOLCLIENT_INCOMPLETE, this subcode indicates there is no cached data in the designated cache. N/A
SOLCLIENT_SUBCODE_CACHE_SUSPECT_DATA When the designated cache responds to a cache request with suspect data the API returns SOLCLIENT_INCOMPLETE with this subcode. N/A
SOLCLIENT_SUBCODE_CACHE_ERROR_RESPONSE The cache instance has returned an error response to the request. N/A
SOLCLIENT_SUBCODE_CACHE_INVALID_SESSION The cache session operation failed because the Session has been destroyed. N/A
SOLCLIENT_SUBCODE_CACHE_TIMEOUT The cache session operation failed because the request timeout expired. N/A
SOLCLIENT_SUBCODE_CACHE_LIVEDATA_FULFILL The cache session operation completed when live data arrived on the requested topic. N/A
SOLCLIENT_SUBCODE_CACHE_ALREADY_IN_PROGRESS A cache request has been made when there is already a cache request outstanding on the same Topic and SOLCLIENT_CACHEREQUEST_FLAGS_LIVEDATA_FLOWTHRU was not set. N/A
SOLCLIENT_SUBCODE_MISSING_REPLY_TO A message does not have a required reply-to field. N/A
SOLCLIENT_SUBCODE_CANNOT_BIND_TO_QUEUE Already bound to the Queue or not authorized to bind to the Queue. "400 Cannot bind to another subscriber's topic queue" "400 Already Bound"
SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_TE An attempt was made to bind to a Guaranteed Delivery Topic Endpoint with an invalid topic. 400 Invalid Topic Name
SOLCLIENT_SUBCODE_UNKNOWN_QUEUE_NAME An attempt was made to bind to an unknown Queue name (for example, not configured on broker). 503 Unknown Queue
SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME An attempt was made to bind to an unknown Guaranteed Delivery Topic Endpoint name (for example, not configured on broker). "503 Unknown Durable Topic Endpoint"
SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_QUEUE An attempt was made to bind to a Guaranteed Delivery Queue which already has a maximum number of clients. 503 Max clients exceeded for Queue
SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_TE An attempt was made to bind to a Guaranteed Delivery Topic Endpoint that already has a maximum number of clients. 503 Max clients exceeded for durable Topic Endpoint
SOLCLIENT_SUBCODE_UNEXPECTED_UNBIND An unexpected unbind response was received for a Guaranteed Delivery Queue or Topic Endpoint (for example, Queue or Topic Endpoint was deleted from the broker). N/A
SOLCLIENT_SUBCODE_QUEUE_NOT_FOUND The specified Guaranteed Delivery Queue was not found when publishing a message. 400 Queue Not Found
SOLCLIENT_SUBCODE_CLIENT_ACL_DENIED The client login to the broker was denied because the IP address/netmask combination used for the client is designated in the ACL (Access Control List) as a deny connection for the given Message VPN and username. 403 Forbidden
SOLCLIENT_SUBCODE_SUBSCRIPTION_ACL_DENIED The adding of a subscription was denied because it matched a subscription that was defined on the ACL (Access Control List). 403 Subscription ACL Denied
SOLCLIENT_SUBCODE_PUBLISH_ACL_DENIED A message could not be published because its Topic matched that of a Topic defined on the ACL (Access Control List). 403 Publish ACL Denied
SOLCLIENT_SUBCODE_DELIVER_TO_ONE_INVALID An attempt was made to set both Deliver-To-One and Guaranteed Delivery in the same message. (Deprecated: DTO will be applied to the corresponding demoted direct message) N/A
SOLCLIENT_SUBCODE_SPOOL_OVER_QUOTA Message was not delivered because the Guaranteed Message spool is over its allotted space quota. 503 Spool Over Quota
SOLCLIENT_SUBCODE_QUEUE_SHUTDOWN An attempt was made to operate on a shutdown Guaranteed Delivery queue. 503 Queue Shutdown
SOLCLIENT_SUBCODE_TE_SHUTDOWN An attempt was made to operate on a shutdown Guaranteed Delivery Topic Endpoint. 503 Durable Topic Endpoint Shutdown, 503 TE Shutdown
SOLCLIENT_SUBCODE_NO_MORE_NON_DURABLE_QUEUE_OR_TE An attempt was made to bind to a non-durable Guaranteed Delivery Queue or Topic Endpoint, and the broker is out of resources. 503 No More Non-Durable Queue or Topic Endpoint
SOLCLIENT_SUBCODE_ENDPOINT_ALREADY_EXISTS An attempt was made to create a Queue or Topic Endpoint that already exists. This subcode is only returned if the provision flag SOLCLIENT_PROVISION_FLAGS_IGNORE_EXIST_ERRORS is not set in solClient_session_endpointProvision. 400 Endpoint Already Exists
SOLCLIENT_SUBCODE_PERMISSION_NOT_ALLOWED An attempt was made to delete or create a Queue or Topic Endpoint when the Session does not have authorization for the action. This subcode is also returned when an attempt is made to remove a message from an endpoint when the Session does not have 'consume' authorization, or when an attempt is made to add or remove a Topic subscription from a Queue when the Session does not have 'modify-topic' authorization. 403 Permission Denied
SOLCLIENT_SUBCODE_INVALID_SELECTOR An attempt was made to bind to a Queue or Topic Endpoint with an invalid selector. 406 Invalid Selector
SOLCLIENT_SUBCODE_MAX_MESSAGE_USAGE_EXCEEDED Publishing the message was denied due to exceeding the maximum spooled message count. 503 Max message usage exceeded
SOLCLIENT_SUBCODE_ENDPOINT_PROPERTY_MISMATCH An attempt was made to create a dynamic durable endpoint, and it was found to exist with different properties. 401 Endpoint Property Mismatch
SOLCLIENT_SUBCODE_SUBSCRIPTION_MANAGER_DENIED An attempt was made to add a subscription to another client when the Session does not have subscription manager privileges. 403 Subscription Manager Denied
SOLCLIENT_SUBCODE_UNKNOWN_CLIENT_NAME An attempt was made to add a subscription to another client that is unknown on the broker. 403 Unknown Client Name
SOLCLIENT_SUBCODE_QUOTA_OUT_OF_RANGE An attempt was made to provision an endpoint with a quota that is out of range. 400 Quota Out Of Range
SOLCLIENT_SUBCODE_SUBSCRIPTION_ATTRIBUTES_CONFLICT The client attempted to add a subscription which already exists but it has different properties. 400 Subscription Attributes Conflict With Existing Subscription
SOLCLIENT_SUBCODE_INVALID_SMF_MESSAGE The client attempted to send a Solace Message Format (SMF) message using solClient_session_sendSmf() or solClient_session_sendMultipleSmf(), but the buffer did not contain a Direct message. N/A
SOLCLIENT_SUBCODE_NO_LOCAL_NOT_SUPPORTED The client attempted to establish a Session or Flow with No Local enabled and the capability is not supported by the broker. N/A
SOLCLIENT_SUBCODE_UNSUBSCRIBE_NOT_ALLOWED_CLIENTS_BOUND The client attempted to unsubscribe a Topic from a Topic Endpoint while there were still Flows bound to the endpoint. 400 Unsubscribe not allowed, client(s) bound to DTE.
SOLCLIENT_SUBCODE_CANNOT_BLOCK_IN_CONTEXT An API function was invoked in the Context thread that would have blocked otherwise. For example, a call was made to send a message when the Session is configured with SOLCLIENT_SESSION_PROP_SEND_BLOCKING enabled and the transport (socket or IPC) channel is full. All application callback functions are executed in the Context thread. N/A.
SOLCLIENT_SUBCODE_FLOW_ACTIVE_FLOW_INDICATION_UNSUPPORTED Reserved For Future Use. N/A.
SOLCLIENT_SUBCODE_UNRESOLVED_HOST The client failed to connect because the host name could not be resolved. N/A.
SOLCLIENT_SUBCODE_CUT_THROUGH_UNSUPPORTED An attempt was made to create a 'cut-through' Flow on a Session that does not support this capability. N/A.
SOLCLIENT_SUBCODE_CUT_THROUGH_ALREADY_BOUND An attempt was made to create a 'cut-through' Flow on a Session that already has one 'cut-through' Flow. N/A.
SOLCLIENT_SUBCODE_CUT_THROUGH_INCOMPATIBLE_WITH_SESSION An attempt was made to create a 'cut-through' Flow on a Session with incompatible Session properties. Cut-through may not be enabled on Sessions with SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH enabled. N/A.
SOLCLIENT_SUBCODE_INVALID_FLOW_OPERATION An API call failed due to the attempted operation not being valid for the Flow. N/A.
SOLCLIENT_SUBCODE_UNKNOWN_FLOW_NAME The session was disconnected due to loss of the publisher flow state. All (unacked and unsent) messages held by the API were deleted. To connect the session, applications need to call solClient_session_connect again. 400 Unknown Flow Name
SOLCLIENT_SUBCODE_REPLICATION_IS_STANDBY An attempt to perform an operation using a VPN that is configured to be STANDBY for replication. 403 Replication Is Standby
SOLCLIENT_SUBCODE_LOW_PRIORITY_MSG_CONGESTION The message was rejected by the broker as one or more matching endpoints exceeded the reject-low-priority-msg-limit. 503 Low Priority Msg Congestion
SOLCLIENT_SUBCODE_FAILED_LOADING_TRUSTSTORE The client failed to load the trust store. N/A.
SOLCLIENT_SUBCODE_UNTRUSTED_CERTIFICATE The client attempted to connect to an broker that has a suspect certficate. N/A.
SOLCLIENT_SUBCODE_CERTIFICATE_DATE_INVALID The client attempted to connect to an broker that does not have a valid certificate date. N/A.
SOLCLIENT_SUBCODE_LIBRARY_NOT_LOADED The client failed to find the library or symbol. N/A.
SOLCLIENT_SUBCODE_UNTRUSTED_COMMONNAME The client attempted to connect to an broker that has a suspect common name. N/A.
SOLCLIENT_SUBCODE_FAILED_LOADING_CERTIFICATE_AND_KEY The client failed to load certificate and/or private key files. N/A.
SOLCLIENT_SUBCODE_BASIC_AUTHENTICATION_IS_SHUTDOWN The client attempted to connect to an broker that has the basic authentication shutdown. 403 Basic Authentication is Shutdown
SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_AUTHENTICATION_IS_SHUTDOWN The client attempted to connect to an broker that has the client certificate authentication shutdown. 403 Client Certificate Authentication is Shutdown
SOLCLIENT_SUBCODE_KERBEROS_AUTHENTICATION_IS_SHUTDOWN The client attempted to connect to an broker that has the Kerberos authentication shutdown. 403 Kerberos Authentication is Shutdown
SOLCLIENT_SUBCODE_UNTRUSTED_CLIENT_CERTIFICATE The client failed to connect to an broker as it has a suspect client certificate. "403 Untrusted Certificate" "403 Certificate Chain Too Long" "403 Certificate Error"
SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_DATE_INVALID The client failed to connect to an broker as it does not have a valid client certificate date. "403 Certificate Not Yet Valid" "403 Certificate Expired"
SOLCLIENT_SUBCODE_CACHE_REQUEST_CANCELLED The cache session operation failed because the request has been cancelled. N/A.
SOLCLIENT_SUBCODE_DELIVERY_MODE_UNSUPPORTED Attempt was made from a Transacted Session to send a message with the delivery mode SOLCLIENT_DELIVERY_MODE_DIRECT. N/A.
SOLCLIENT_SUBCODE_PUBLISHER_NOT_CREATED Client attempted to send a message from a Transacted Session without creating a default publisher flow. N/A.
SOLCLIENT_SUBCODE_FLOW_UNBOUND The client attempted to receive message from an UNBOUND Flow with no queued messages in memory. N/A.
SOLCLIENT_SUBCODE_INVALID_TRANSACTED_SESSION_ID The client attempted to commit or rollback a transaction with an invalid Transacted Session Id. N/A.
SOLCLIENT_SUBCODE_INVALID_TRANSACTION_ID The client attempted to commit or rollback a transaction with an invalid transaction Id. N/A.
SOLCLIENT_SUBCODE_MAX_TRANSACTED_SESSIONS_EXCEEDED The client failed to open a Transacted Session as it exceeded the max Transacted Sessions. N/A.
SOLCLIENT_SUBCODE_TRANSACTED_SESSION_NAME_IN_USE The client failed to open a Transacted Session as the Transacted Session name provided is being used by another opened session. N/A.
SOLCLIENT_SUBCODE_SERVICE_UNAVAILABLE Guaranteed Delivery services are not enabled on the broker. 503 Service Unavailable
SOLCLIENT_SUBCODE_NO_TRANSACTION_STARTED The client attempted to commit an unknown transaction. 400 No transaction started
SOLCLIENT_SUBCODE_PUBLISHER_NOT_ESTABLISHED A send call was made on a transacted session before its publisher is established. N/A.
SOLCLIENT_SUBCODE_MESSAGE_PUBLISH_FAILURE The client attempted to commit a transaction with a GD publish failure encountered. 503 Message Publish Failure
SOLCLIENT_SUBCODE_TRANSACTION_FAILURE The client attempted to commit a transaction with too many transaction steps. 503 Transaction Failure
SOLCLIENT_SUBCODE_MESSAGE_CONSUME_FAILURE The client attempted to commit a transaction with a consume failure encountered. 503 Message Consume Failure
SOLCLIENT_SUBCODE_ENDPOINT_MODIFIED The client attempted to commit a transaction with an Endpoint being shutdown or deleted. 503 Endpoint Modified
SOLCLIENT_SUBCODE_INVALID_CONNECTION_OWNER The client attempted to commit a transaction with an unknown connection ID. 400 Invalid Connection Owner
SOLCLIENT_SUBCODE_COMMIT_OR_ROLLBACK_IN_PROGRESS The client attempted to send/receive a message or commit/rollback a transaction when a transaction commit/rollback is in progress. N/A
SOLCLIENT_SUBCODE_UNBIND_RESPONSE_LOST The application called solClient_flow_destroy() and the unbind-response was not received. N/A
SOLCLIENT_SUBCODE_MAX_TRANSACTIONS_EXCEEDED The client failed to open a Transacted Session as the maximum number of transactions was exceeded. N/A.
SOLCLIENT_SUBCODE_COMMIT_STATUS_UNKNOWN The commit response was lost due to a transport layer reconnection to an alternate host in the host list. N/A.
SOLCLIENT_SUBCODE_PROXY_AUTH_REQUIRED The host entry did not contain proxy authentication when required by the proxy server. 407 Proxy Authentication Required
SOLCLIENT_SUBCODE_PROXY_AUTH_FAILURE The host entry did contained invalid proxy authentication when required by the proxy server. 407 Proxy Authentication Required
SOLCLIENT_SUBCODE_NO_SUBSCRIPTION_MATCH The client attempted to publish a guaranteed message to a topic that did not have any guaranteed subscription matches or only matched a replicated topic. 503 No Subscription Match
SOLCLIENT_SUBCODE_SUBSCRIPTION_MATCH_ERROR The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different subscription. 503 Subscription Does Not Match
SOLCLIENT_SUBCODE_SELECTOR_MATCH_ERROR The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different ingress selector. 503 Selector Does Not Match
SOLCLIENT_SUBCODE_REPLAY_NOT_SUPPORTED Replay is not supported in the Solace Message Router. N/A
SOLCLIENT_SUBCODE_REPLAY_DISABLED Replay is not enabled in the message-vpn. 503 Replay Disabled
SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_NON_EXCLUSIVE_NOT_ALLOWED The client attempted to start replay on a flow bound to a non-exclusive endpoint. 403 Client Initiated Replay Not Allowed on Non-Exclusive Topic Endpoint, 403 Client Initiated Replay Not Allowed on Non-Exclusive Queue
SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_INACTIVE_FLOW_NOT_ALLOWED The client attempted to start replay on an inactive flow. 403 Client Initiated Replay from Inactive Flow Not Allowed
SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_BROWSER_FLOW_NOT_ALLOWED The client attempted to bind with both SOLCLIENT_FLOW_PROP_BROWSER enabled and SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION set. 403 Client Initiated Replay from Browser Flow Not Allowed
SOLCLIENT_SUBCODE_REPLAY_TEMPORARY_NOT_SUPPORTED Replay is not supported on temporary endpoints. 403 Replay Not Supported on Temporary Queue, 403 Replay Not Supported on Temporary Topic Endpoint
SOLCLIENT_SUBCODE_UNKNOWN_START_LOCATION_TYPE The client attempted to start a replay but provided an unknown start location type. 403 Unknown Start Location Type
SOLCLIENT_SUBCODE_REPLAY_CANCELLED A replay in progress on a flow was administratively cancelled, causing the flow to be unbound. 503 Replay Cancelled
SOLCLIENT_SUBCODE_REPLAY_MESSAGE_UNAVAILABLE A replay in progress on a flow failed because messages to be replayed were trimmed from the replay log. 503 Replay Message Unavailable
SOLCLIENT_SUBCODE_REPLAY_STARTED A replay was started on the queue/topic endpoint, either by another client or by an administrator on the message router. 503 Replay Started
SOLCLIENT_SUBCODE_REPLAY_START_TIME_NOT_AVAILABLE A replay was requested but the requested start time is not available in the replay log. 503 Replay Start Time Not Available
SOLCLIENT_SUBCODE_REPLAY_MESSAGE_REJECTED The Solace Message Router attempted to replay a message, but the queue/topic endpoint rejected the message to the sender. 503 Replayed Message Rejected by Queue, 503 Replayed Message Rejected by Topic Endpoint
SOLCLIENT_SUBCODE_REPLAY_LOG_MODIFIED A replay in progress on a flow failed because the replay log was modified.

503 Replay Log Modified

SOLCLIENT_SUBCODE_MISMATCHED_ENDPOINT_ERROR_ID Endpoint error ID in the bind request does not match the endpoint's error ID. 503 Mismatched Endpoint Error ID
SOLCLIENT_SUBCODE_OUT_OF_REPLAY_RESOURCES A replay was requested, but the router does not have sufficient resources to fulfill the request, due to too many active replays. 503 Out of Replay Resources
SOLCLIENT_SUBCODE_TOPIC_OR_SELECTOR_MODIFIED_ON_DURABLE_TOPIC_ENDPOINT A replay was in progress on a Durable Topic Endpoint (DTE) when its topic or selector was modified, causing the replay to fail.

503 Topic or Selector Modified on Durable Topic Endpoint

SOLCLIENT_SUBCODE_REPLAY_FAILED A replay in progress on a flow failed. 503 Replay Failed
SOLCLIENT_SUBCODE_COMPRESSED_SSL_NOT_SUPPORTED The client attempted to establish a Session or Flow with ssl and compression, but the capability is not supported by the broker. N/A
SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED The client attempted to add a shared subscription, but the capability is not supported by the broker. N/A
SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_ALLOWED The client attempted to add a shared subscription on a client that is not permitted to use shared subscriptions. 403 Shared Subscription Permission Denied
SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_ENDPOINT_NOT_ALLOWED The client attempted to add a shared subscription to a queue or topic endpoint. 403 Shared Subscriptions Not Supported On Queues, 403 Shared Subscriptions Not Supported On Topic Endpoints
SOLCLIENT_SUBCODE_OBJECT_DESTROYED The operation cannot be completed because the object (context, session, flow) for the method has been destroyed in another thread. N/A
SOLCLIENT_SUBCODE_DELIVERY_COUNT_NOT_SUPPORTED The message was received from endpoint that does not support delivery count N/A
SOLCLIENT_SUBCODE_REPLAY_START_MESSAGE_UNAVAILABLE A replay was requested but the requested start message is not available in the replay log. 403 Replay Start Message Unavailable
SOLCLIENT_SUBCODE_MESSAGE_ID_NOT_COMPARABLE Replication Group Message Id are not comparable. Messages must be published to the same broker or HA pair for their Replicaton Group Message Id to be comparable. N/A
SOLCLIENT_SUBCODE_REPLAY_ANONYMOUS_NOT_SUPPORTED The client attempted to start replay on a flow bound to an anonymous queue. 403 Replay Not Supported on Anonymous Queue
SOLCLIENT_SUBCODE_BROWSING_NOT_SUPPORTED_ON_PARTITIONED_QUEUE Browser flows to Partitioned Queues are not permitted. 403 Browsing Not Supported on Partitioned Queue
SOLCLIENT_SUBCODE_SELECTORS_NOT_SUPPORTED_ON_PARTITIONED_QUEUE Egress selectors are not permitted when binding to a Partitioned Queue. 403 Selectors Not Supported on Partititoned Queue
SOLCLIENT_SUBCODE_SYNC_REPLICATION_INELIGIBLE A guaranteed message was rejected because the broker has been configured to reject messages when sync replication mode is ineligible. A transaction commit failed because replication became ineligible during the transaction. 503 Sync Replication Ineligible
SOLCLIENT_SUBCODE_ENDPOINT_SHUTDOWN The client has attempted to publish to a topic that matched a queue or topic endpoint subscription which has its ingress flow shutdown. 503 Endpoint Shutdown
SOLCLIENT_SUBCODE_AD_APP_ACK_FAILED_NOT_SUPPORTED The AD_APP_ACK_FAILED capability needed for "Fail" and "Reject" message settlement outcomes is not supported in the Solace Message Router. N/A
SOLCLIENT_SUBCODE_INVALID_DURABILITY The client has attempted to bind a flow to a durable queue or topic endpoint with SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE disabled. 400 Invalid Queue or Topic Endpoint Durability
Enumerator
SOLCLIENT_SUBCODE_OK 

No error.

SOLCLIENT_SUBCODE_PARAM_OUT_OF_RANGE 

An API call was made with an out-of-range parameter.

SOLCLIENT_SUBCODE_PARAM_NULL_PTR 

An API call was made with a null or invalid pointer parameter.

SOLCLIENT_SUBCODE_PARAM_CONFLICT 

An API call was made with a parameter combination that is not valid.

SOLCLIENT_SUBCODE_INSUFFICIENT_SPACE 

An API call failed due to insufficient space to accept more data.

SOLCLIENT_SUBCODE_OUT_OF_RESOURCES 

An API call failed due to lack of resources (for example, starting a timer when all timers are in use).

SOLCLIENT_SUBCODE_INTERNAL_ERROR 

An API call had an internal error (not an application fault).

SOLCLIENT_SUBCODE_OUT_OF_MEMORY 

An API call failed due to inability to allocate memory.

SOLCLIENT_SUBCODE_PROTOCOL_ERROR 

An API call failed due to a protocol error with the broker (not an application fault).

SOLCLIENT_SUBCODE_INIT_NOT_CALLED 

An API call failed due to solClient_initialize() not being called first.

SOLCLIENT_SUBCODE_TIMEOUT 

An API call failed due to a timeout.

SOLCLIENT_SUBCODE_KEEP_ALIVE_FAILURE 

The Session Keep-Alive detected a failed Session.

SOLCLIENT_SUBCODE_SESSION_NOT_ESTABLISHED 

An API call failed due to the Session not being established.

SOLCLIENT_SUBCODE_OS_ERROR 

An API call failed due to a failed operating system call; an error string can be retrieved with solClient_getLastErrorInfo().

SOLCLIENT_SUBCODE_COMMUNICATION_ERROR 

An API call failed due to a communication error.

An error string can be retrieved with solClient_getLastErrorInfo().

SOLCLIENT_SUBCODE_USER_DATA_TOO_LARGE 

An attempt was made to send a message with user data larger than the maximum that is supported.

SOLCLIENT_SUBCODE_TOPIC_TOO_LARGE 

An attempt was made to use a Topic that is longer than the maximum that is supported.

SOLCLIENT_SUBCODE_INVALID_TOPIC_SYNTAX 

An attempt was made to use a Topic that has a syntax which is not supported.

SOLCLIENT_SUBCODE_XML_PARSE_ERROR 

The broker could not parse an XML message.

SOLCLIENT_SUBCODE_LOGIN_FAILURE 

The client could not log into the broker (bad username or password).

SOLCLIENT_SUBCODE_INVALID_VIRTUAL_ADDRESS 

An attempt was made to connect to the wrong IP address on the broker (must use CVRID if configured) or the broker CVRID has changed and this was detected on reconnect.

SOLCLIENT_SUBCODE_CLIENT_DELETE_IN_PROGRESS 

The client login not currently possible as previous instance of same client still being deleted.

SOLCLIENT_SUBCODE_TOO_MANY_CLIENTS 

The client login not currently possible because the maximum number of active clients on broker has already been reached.

SOLCLIENT_SUBCODE_SUBSCRIPTION_ALREADY_PRESENT 

The client attempted to add a subscription which already exists.

This subcode is only returned if the Session property SOLCLIENT_SESSION_PROP_IGNORE_DUP_SUBSCRIPTION_ERROR is not enabled.

SOLCLIENT_SUBCODE_SUBSCRIPTION_NOT_FOUND 

The client attempted to remove a subscription which did not exist.

This subcode is only returned if the Session property SOLCLIENT_SESSION_PROP_IGNORE_DUP_SUBSCRIPTION_ERROR is not enabled.

SOLCLIENT_SUBCODE_SUBSCRIPTION_INVALID 

The client attempted to add/remove a subscription that is not valid.

SOLCLIENT_SUBCODE_SUBSCRIPTION_OTHER 

The broker rejected a subscription add or remove request for a reason not separately enumerated.

SOLCLIENT_SUBCODE_CONTROL_OTHER 

The broker rejected a control message for another reason not separately enumerated.

SOLCLIENT_SUBCODE_DATA_OTHER 

The broker rejected a data message for another reason not separately enumerated.

SOLCLIENT_SUBCODE_LOG_FILE_ERROR 

Could not open the log file name specified by the application for writing (Deprecated - SOLCLIENT_SUBCODE_OS_ERROR is used).

SOLCLIENT_SUBCODE_MESSAGE_TOO_LARGE 

The client attempted to send a message larger than that supported by the broker.

SOLCLIENT_SUBCODE_SUBSCRIPTION_TOO_MANY 

The client attempted to add a subscription that exceeded the maximum number allowed.

SOLCLIENT_SUBCODE_INVALID_SESSION_OPERATION 

An API call failed due to the attempted operation not being valid for the Session.

SOLCLIENT_SUBCODE_TOPIC_MISSING 

A send call was made that did not have a Topic in a mode where one is required (for example, client mode).

SOLCLIENT_SUBCODE_ASSURED_MESSAGING_NOT_ESTABLISHED 

A send call was made to send a Guaranteed message before Guaranteed Delivery is established (Deprecated).

SOLCLIENT_SUBCODE_ASSURED_MESSAGING_STATE_ERROR 

An attempt was made to start Guaranteed Delivery when it is already started.

SOLCLIENT_SUBCODE_QUEUENAME_TOPIC_CONFLICT 

Both Queue Name and Topic are specified in solClient_session_send.

SOLCLIENT_SUBCODE_QUEUENAME_TOO_LARGE 

An attempt was made to use a Queue name which is longer than the maximum supported length.

SOLCLIENT_SUBCODE_QUEUENAME_INVALID_MODE 

An attempt was made to use a Queue name on a non-Guaranteed message.

SOLCLIENT_SUBCODE_MAX_TOTAL_MSGSIZE_EXCEEDED 

An attempt was made to send a message with a total size greater than that supported by the protocol.

SOLCLIENT_SUBCODE_DBLOCK_ALREADY_EXISTS 

An attempt was made to allocate a datablock for a msg element when one already exists.

SOLCLIENT_SUBCODE_NO_STRUCTURED_DATA 

An attempt was made to create a container to read structured data where none exists.

SOLCLIENT_SUBCODE_CONTAINER_BUSY 

An attempt was made to add a field to a map or stream while a sub map or stream is being built.

SOLCLIENT_SUBCODE_INVALID_DATA_CONVERSION 

An attempt was made to retrieve structured data with wrong type.

SOLCLIENT_SUBCODE_CANNOT_MODIFY_WHILE_NOT_IDLE 

An attempt was made to modify a property that cannot be modified while Session is not idle.

SOLCLIENT_SUBCODE_MSG_VPN_NOT_ALLOWED 

The Message VPN name configured for the session does not exist.

SOLCLIENT_SUBCODE_CLIENT_NAME_INVALID 

The client name chosen has been rejected as invalid by the broker.

SOLCLIENT_SUBCODE_MSG_VPN_UNAVAILABLE 

The Message VPN name set for the Session (or the default Message VPN, if none was set) is currently shutdown on the broker.

SOLCLIENT_SUBCODE_CLIENT_USERNAME_IS_SHUTDOWN 

The username for the client is administratively shutdown on the broker.

SOLCLIENT_SUBCODE_DYNAMIC_CLIENTS_NOT_ALLOWED 

The username for the Session has not been set and dynamic clients are not allowed.

SOLCLIENT_SUBCODE_CLIENT_NAME_ALREADY_IN_USE 

The Session is attempting to use a client, publisher name, or subscriber name that is in use by another client, publisher, or subscriber, and the broker is configured to reject the new Session.

When Message VPNs are in use, the conflicting client name must be in the same Message VPN.

SOLCLIENT_SUBCODE_CACHE_NO_DATA 

When the cache request returns SOLCLIENT_INCOMPLETE, this subcode indicates there is no cached data in the designated cache.

SOLCLIENT_SUBCODE_CACHE_SUSPECT_DATA 

When the designated cache responds to a cache request with suspect data the API returns SOLCLIENT_INCOMPLETE with this subcode.

SOLCLIENT_SUBCODE_CACHE_ERROR_RESPONSE 

The cache instance has returned an error response to the request.

SOLCLIENT_SUBCODE_CACHE_INVALID_SESSION 

The cache session operation failed because the Session has been destroyed.

SOLCLIENT_SUBCODE_CACHE_TIMEOUT 

The cache session operation failed because the request timeout expired.

SOLCLIENT_SUBCODE_CACHE_LIVEDATA_FULFILL 

The cache session operation completed when live data arrived on the Topic requested.

SOLCLIENT_SUBCODE_CACHE_ALREADY_IN_PROGRESS 

A cache request has been made when there is already a cache request outstanding on the same Topic and SOLCLIENT_CACHEREQUEST_FLAGS_LIVEDATA_FLOWTHRU was not set.

SOLCLIENT_SUBCODE_MISSING_REPLY_TO 

A message does not have the required reply-to field.

SOLCLIENT_SUBCODE_CANNOT_BIND_TO_QUEUE 

Already bound to the queue, or not authorized to bind to the queue.

SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_TE 

An attempt was made to bind to a Topic Endpoint with an invalid topic.

SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_DTE 

Deprecated name; SOLCLIENT_SUBCODE_INVALID_TOPIC_NAME_FOR_TE is preferred.

SOLCLIENT_SUBCODE_UNKNOWN_QUEUE_NAME 

An attempt was made to bind to an unknown Queue name (for example, not configured on broker).

SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME 

An attempt was made to bind to an unknown Topic Endpoint name (for example, not configured on broker).

SOLCLIENT_SUBCODE_UNKNOWN_DTE_NAME 

Deprecated name; SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME is preferred.

SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_QUEUE 

An attempt was made to bind to a Queue that already has a maximum number of clients.

SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_TE 

An attempt was made to bind to a Topic Endpoint that already has a maximum number of clients.

SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_DTE 

Deprecated name, SOLCLIENT_SUBCODE_MAX_CLIENTS_FOR_TE is preferred.

SOLCLIENT_SUBCODE_UNEXPECTED_UNBIND 

An unexpected unbind response was received for a Queue or Topic Endpoint (for example, the Queue or Topic Endpoint was deleted from the broker).

SOLCLIENT_SUBCODE_QUEUE_NOT_FOUND 

The specified Queue was not found when publishing a message.

SOLCLIENT_SUBCODE_CLIENT_ACL_DENIED 

The client login to the broker was denied because the IP address/netmask combination used for the client is designated in the ACL (Access Control List) as a deny connection for the given Message VPN and username.

SOLCLIENT_SUBCODE_SUBSCRIPTION_ACL_DENIED 

Adding a subscription was denied because it matched a subscription that was defined on the ACL (Access Control List).

SOLCLIENT_SUBCODE_PUBLISH_ACL_DENIED 

A message could not be published because its Topic matched a Topic defined on the ACL (Access Control List).

SOLCLIENT_SUBCODE_DELIVER_TO_ONE_INVALID 

An attempt was made to set both Deliver-To-One (DTO) and Guaranteed Delivery in the same message.

(Deprecated: DTO will be applied to the corresponding demoted direct message)

SOLCLIENT_SUBCODE_SPOOL_OVER_QUOTA 

Message was not delivered because the Guaranteed message spool is over its allotted space quota.

SOLCLIENT_SUBCODE_QUEUE_SHUTDOWN 

An attempt was made to operate on a shutdown queue.

SOLCLIENT_SUBCODE_TE_SHUTDOWN 

An attempt was made to bind to a shutdown Topic Endpoint.

SOLCLIENT_SUBCODE_NO_MORE_NON_DURABLE_QUEUE_OR_TE 

An attempt was made to bind to a non-durable Queue or Topic Endpoint, and the broker is out of resources.

SOLCLIENT_SUBCODE_ENDPOINT_ALREADY_EXISTS 

An attempt was made to create a Queue or Topic Endpoint that already exists.

This subcode is only returned if the provision flag SOLCLIENT_PROVISION_FLAGS_IGNORE_EXIST_ERRORS is not set.

SOLCLIENT_SUBCODE_PERMISSION_NOT_ALLOWED 

An attempt was made to delete or create a Queue or Topic Endpoint when the Session does not have authorization for the action.

This subcode is also returned when an attempt is made to remove a message from an endpoint when the Session does not have 'consume' authorization, or when an attempt is made to add or remove a Topic subscription from a Queue when the Session does not have 'modify-topic' authorization.

SOLCLIENT_SUBCODE_INVALID_SELECTOR 

An attempt was made to bind to a Queue or Topic Endpoint with an invalid selector.

SOLCLIENT_SUBCODE_MAX_MESSAGE_USAGE_EXCEEDED 

Publishing of message denied because the maximum spooled message count was exceeded.

SOLCLIENT_SUBCODE_ENDPOINT_PROPERTY_MISMATCH 

An attempt was made to create a dynamic durable endpoint and it was found to exist with different properties.

SOLCLIENT_SUBCODE_SUBSCRIPTION_MANAGER_DENIED 

An attempt was made to add a subscription to another client when Session does not have subscription manager privileges.

SOLCLIENT_SUBCODE_UNKNOWN_CLIENT_NAME 

An attempt was made to add a subscription to another client that is unknown on the broker.

SOLCLIENT_SUBCODE_QUOTA_OUT_OF_RANGE 

An attempt was made to provision an endpoint with a quota that is out of range.

SOLCLIENT_SUBCODE_SUBSCRIPTION_ATTRIBUTES_CONFLICT 

The client attempted to add a subscription which already exists but it has different properties.

SOLCLIENT_SUBCODE_INVALID_SMF_MESSAGE 

The client attempted to send a Solace Message Format (SMF) message using solClient_session_sendSmf() or solClient_session_sendMultipleSmf(), but the buffer did not contain a Direct message.

SOLCLIENT_SUBCODE_NO_LOCAL_NOT_SUPPORTED 

The client attempted to establish a Session or Flow with No Local enabled and the capability is not supported by the broker.

SOLCLIENT_SUBCODE_UNSUBSCRIBE_NOT_ALLOWED_CLIENTS_BOUND 

The client attempted to unsubscribe a Topic from a Topic Endpoint while there were still Flows bound to the endpoint.

SOLCLIENT_SUBCODE_CANNOT_BLOCK_IN_CONTEXT 

An API function was invoked in the Context thread that would have blocked otherwise.

For an example, a call may have been made to send a message when the Session is configured with SOLCLIENT_SESSION_PROP_SEND_BLOCKING enabled and the transport (socket or IPC) channel is full. All application callback functions are executed in the Context thread.

SOLCLIENT_SUBCODE_FLOW_ACTIVE_FLOW_INDICATION_UNSUPPORTED 

The client attempted to establish a Flow with Active Flow Indication (SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND) enabled and the capability is not supported by the broker.

SOLCLIENT_SUBCODE_UNRESOLVED_HOST 

The client failed to connect because the host name could not be resolved.

SOLCLIENT_SUBCODE_CUT_THROUGH_UNSUPPORTED 

An attempt was made to create a 'cut-through' Flow on a Session that does not support this capability.

SOLCLIENT_SUBCODE_CUT_THROUGH_ALREADY_BOUND 

An attempt was made to create a 'cut-through' Flow on a Session that already has one 'cut-through' Flow.

SOLCLIENT_SUBCODE_CUT_THROUGH_INCOMPATIBLE_WITH_SESSION 

An attempt was made to create a 'cut-through' Flow on a Session with incompatible Session properties.

Cut-through may not be enabled on Sessions with SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH enabled.

SOLCLIENT_SUBCODE_INVALID_FLOW_OPERATION 

An API call failed due to the attempted operation not being valid for the Flow.

SOLCLIENT_SUBCODE_UNKNOWN_FLOW_NAME 

The session was disconnected due to loss of the publisher flow state.

All (unacked and unsent) messages held by the API were deleted. To connect the session, applications need to call solClient_session_connect again.

SOLCLIENT_SUBCODE_REPLICATION_IS_STANDBY 

An attempt to perform an operation using a VPN that is configured to be STANDBY for replication.

SOLCLIENT_SUBCODE_LOW_PRIORITY_MSG_CONGESTION 

The message was rejected by the broker as one or more matching endpoints exceeded the reject-low-priority-msg-limit.

SOLCLIENT_SUBCODE_LIBRARY_NOT_LOADED 

The client failed to find the library or symbol.

SOLCLIENT_SUBCODE_FAILED_LOADING_TRUSTSTORE 

The client failed to load the trust store.

SOLCLIENT_SUBCODE_UNTRUSTED_CERTIFICATE 

The client attempted to connect to an broker that has a suspect certficate.

SOLCLIENT_SUBCODE_UNTRUSTED_COMMONNAME 

The client attempted to connect to an broker that has a suspect common name.

SOLCLIENT_SUBCODE_CERTIFICATE_DATE_INVALID 

The client attempted to connect to an broker that does not have a valid certificate date.

SOLCLIENT_SUBCODE_FAILED_LOADING_CERTIFICATE_AND_KEY 

The client failed to load certificate and/or private key files.

SOLCLIENT_SUBCODE_BASIC_AUTHENTICATION_IS_SHUTDOWN 

The client attempted to connect to an broker that has the basic authentication shutdown.

SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_AUTHENTICATION_IS_SHUTDOWN 

The client attempted to connect to an broker that has the client certificate authentication shutdown.

SOLCLIENT_SUBCODE_UNTRUSTED_CLIENT_CERTIFICATE 

The client failed to connect to an broker as it has a suspect client certificate.

SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_DATE_INVALID 

The client failed to connect to an broker as it does not have a valid client certificate date.

SOLCLIENT_SUBCODE_CACHE_REQUEST_CANCELLED 

The cache request has been cancelled by the client.

SOLCLIENT_SUBCODE_DELIVERY_MODE_UNSUPPORTED 

Attempt was made from a Transacted Session to send a message with the delivery mode SOLCLIENT_DELIVERY_MODE_DIRECT.

SOLCLIENT_SUBCODE_PUBLISHER_NOT_CREATED 

Client attempted to send a message from a Transacted Session without creating a default publisher flow.

SOLCLIENT_SUBCODE_FLOW_UNBOUND 

The client attempted to receive message from an UNBOUND Flow with no queued messages in memory.

SOLCLIENT_SUBCODE_INVALID_TRANSACTED_SESSION_ID 

The client attempted to commit or rollback a transaction with an invalid Transacted Session Id.

SOLCLIENT_SUBCODE_INVALID_TRANSACTION_ID 

The client attempted to commit or rollback a transaction with an invalid transaction Id.

SOLCLIENT_SUBCODE_MAX_TRANSACTED_SESSIONS_EXCEEDED 

The client failed to open a Transacted Session as it exceeded the max Transacted Sessions.

SOLCLIENT_SUBCODE_TRANSACTED_SESSION_NAME_IN_USE 

The client failed to open a Transacted Session as the Transacted Session name provided is being used by another opened session.

SOLCLIENT_SUBCODE_SERVICE_UNAVAILABLE 

Guaranteed Delivery services are not enabled on the broker.

SOLCLIENT_SUBCODE_NO_TRANSACTION_STARTED 

The client attempted to commit an unknown transaction.

SOLCLIENT_SUBCODE_PUBLISHER_NOT_ESTABLISHED 

A send call was made on a transacted session before its publisher is established.

SOLCLIENT_SUBCODE_MESSAGE_PUBLISH_FAILURE 

The client attempted to commit a transaction with a GD publish failure encountered.

SOLCLIENT_SUBCODE_TRANSACTION_FAILURE 

The client attempted to commit a transaction with too many transaction steps.

SOLCLIENT_SUBCODE_MESSAGE_CONSUME_FAILURE 

The client attempted to commit a transaction with a consume failure encountered.

SOLCLIENT_SUBCODE_ENDPOINT_MODIFIED 

The client attempted to commit a transaction with an Endpoint being shutdown or deleted.

SOLCLIENT_SUBCODE_INVALID_CONNECTION_OWNER 

The client attempted to commit a transaction with an unknown connection ID.

SOLCLIENT_SUBCODE_KERBEROS_AUTHENTICATION_IS_SHUTDOWN 

The client attempted to connect to an broker that has the Kerberos authentication shutdown.

SOLCLIENT_SUBCODE_COMMIT_OR_ROLLBACK_IN_PROGRESS 

The client attempted to send/receive a message or commit/rollback a transaction when a transaction commit/rollback is in progress.

SOLCLIENT_SUBCODE_UNBIND_RESPONSE_LOST 

The application called solClient_flow_destroy() and the unbind-response was not received.

SOLCLIENT_SUBCODE_MAX_TRANSACTIONS_EXCEEDED 

The client failed to open a Transacted Session as the maximum number of transactions was exceeded.

SOLCLIENT_SUBCODE_COMMIT_STATUS_UNKNOWN 

The commit response was lost due to a transport layer reconnection to an alternate host in the host list.

SOLCLIENT_SUBCODE_PROXY_AUTH_REQUIRED 

The host entry did not contain proxy authentication when required by the proxy server.

SOLCLIENT_SUBCODE_PROXY_AUTH_FAILURE 

The host entry contained invalid proxy authentication when required by the proxy server.

SOLCLIENT_SUBCODE_NO_SUBSCRIPTION_MATCH 

The client attempted to publish a guaranteed message to a topic that did not have any guaranteed subscription matches or only matched a replicated topic.

SOLCLIENT_SUBCODE_SUBSCRIPTION_MATCH_ERROR 

The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different subscription.

SOLCLIENT_SUBCODE_SELECTOR_MATCH_ERROR 

The client attempted to bind to a non-exclusive topic endpoint that is already bound with a different ingress selector.

SOLCLIENT_SUBCODE_REPLAY_NOT_SUPPORTED 

Replay is not supported on the Solace Message Router.

SOLCLIENT_SUBCODE_REPLAY_DISABLED 

Replay is not enabled in the message-vpn.

SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_NON_EXCLUSIVE_NOT_ALLOWED 

The client attempted to start replay on a flow bound to a non-exclusive endpoint.

SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_INACTIVE_FLOW_NOT_ALLOWED 

The client attempted to start replay on an inactive flow.

SOLCLIENT_SUBCODE_CLIENT_INITIATED_REPLAY_BROWSER_FLOW_NOT_ALLOWED 

The client attempted to bind with both SOLCLIENT_FLOW_PROP_BROWSER enabled and SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION set.

SOLCLIENT_SUBCODE_REPLAY_TEMPORARY_NOT_SUPPORTED 

Replay is not supported on temporary endpoints.

SOLCLIENT_SUBCODE_UNKNOWN_START_LOCATION_TYPE 

The client attempted to start a replay but provided an unknown start location type.

SOLCLIENT_SUBCODE_REPLAY_MESSAGE_UNAVAILABLE 

A replay in progress on a flow failed because messages to be replayed were trimmed from the replay log.

SOLCLIENT_SUBCODE_REPLAY_STARTED 

A replay was started on the queue/topic endpoint, either by another client or by an administrator on the message router.

SOLCLIENT_SUBCODE_REPLAY_CANCELLED 

A replay in progress on a flow was administratively cancelled, causing the flow to be unbound.

SOLCLIENT_SUBCODE_REPLAY_START_TIME_NOT_AVAILABLE 

A replay was requested but the requested start time is not available in the replay log.

SOLCLIENT_SUBCODE_REPLAY_MESSAGE_REJECTED 

The Solace Message Router attempted to replay a message, but the queue/topic endpoint rejected the message to the sender.

SOLCLIENT_SUBCODE_REPLAY_LOG_MODIFIED 

A replay in progress on a flow failed because the replay log was modified.

SOLCLIENT_SUBCODE_MISMATCHED_ENDPOINT_ERROR_ID 

Endpoint error ID in the bind request does not match the endpoint's error ID.

SOLCLIENT_SUBCODE_OUT_OF_REPLAY_RESOURCES 

A replay was requested, but the router does not have sufficient resources to fulfill the request, due to too many active replays.

SOLCLIENT_SUBCODE_TOPIC_OR_SELECTOR_MODIFIED_ON_DURABLE_TOPIC_ENDPOINT 

A replay was in progress on a Durable Topic Endpoint (DTE) when its topic or selector was modified, causing the replay to fail.

SOLCLIENT_SUBCODE_REPLAY_FAILED 

A replay in progress on a flow failed.

SOLCLIENT_SUBCODE_COMPRESSED_SSL_NOT_SUPPORTED 

The client attempted to establish a Session or Flow with ssl and compression, but the capability is not supported by the broker.

SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED 

The client attempted to add a shared subscription, but the capability is not supported by the broker.

SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_ALLOWED 

The client attempted to add a shared subscription on a client that is not permitted to use shared subscriptions.

SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_ENDPOINT_NOT_ALLOWED 

The client attempted to add a shared subscription to a queue or topic endpoint.

SOLCLIENT_SUBCODE_OBJECT_DESTROYED 

The operation cannot be completed because the object (context, session, flow) for the method has been destroyed in another thread.

SOLCLIENT_SUBCODE_DELIVERY_COUNT_NOT_SUPPORTED 

The message was received from endpoint that does not support delivery count.

SOLCLIENT_SUBCODE_REPLAY_START_MESSAGE_UNAVAILABLE 

A replay was requested but the requested start message is not available in the replay log.

SOLCLIENT_SUBCODE_MESSAGE_ID_NOT_COMPARABLE 

Replication Group Message Id are not comparable.

Messages must be published to the same broker or HA pair for their Replicaton Group Message Id to be comparable.

SOLCLIENT_SUBCODE_REPLAY_ANONYMOUS_NOT_SUPPORTED 

The client attempted to start replay on a flow bound to an anonymous queue.

SOLCLIENT_SUBCODE_BROWSING_NOT_SUPPORTED_ON_PARTITIONED_QUEUE 

Browser flows to Partitioned Queues are not permitted.

SOLCLIENT_SUBCODE_SELECTORS_NOT_SUPPORTED_ON_PARTITIONED_QUEUE 

Egress selectors are not permitted when binding to a Partitioned Queue.

SOLCLIENT_SUBCODE_SYNC_REPLICATION_INELIGIBLE 

A guaranteed message was rejected because the broker has been configured to reject messages when sync replication mode is ineligible.

A transaction commit failed because replication became ineligible during the transaction.

SOLCLIENT_SUBCODE_ENDPOINT_SHUTDOWN 

The client has attempted to publish to a topic that matched a queue or topic endpoint subscription which has its ingress flow shutdown.

SOLCLIENT_SUBCODE_AD_APP_ACK_FAILED_NOT_SUPPORTED 

Fail and Reject message settlement outcomes not supported on the Solace Message Router.

SOLCLIENT_SUBCODE_INVALID_DURABILITY 

The client has attempted to bind a flow to a durable queue or topic endpoint with SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE disabled.

Function Documentation

solClient_dllExport solClient_returnCode_t solClient_appendUUIDString ( const char *  inputStr,
char *  uuid_p,
size_t  bufferSize 
)

Appends (after a '/' delimeter') a Universally Unique Identifier (UUID) as a NULL-terminated string to a given input string.

Only a version 4 UUID (generated from random or pseudo-random numbers) is supported. The size of the buffer provided must be at least SOLCLIENT_UUID_STRING_BUFFER_SIZE bytes in size to hold the NULL-terminated UUID string value. An example output string is: 4e112068-7836-4e2f-af14-82682569bdfe (NULL-terminated).

Parameters
inputStrA pointer to a null terminated string.
uuid_pA pointer to string buffer to fill in.
bufferSizeThe size (in bytes) of provided buffer; must be at least (strlen(inputStr) + SOLCLIENT_UUID_STRING_BUFFER_SIZE).
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_cleanup ( void  )

This function may be called after use of the API is completed.

This function takes care of any global clean-up that might be required. It automatically frees all allocated resources, including those for Contexts and Sessions that have been previously created but are not destroyed. Note that if solClient_cleanup() is called while Sessions are connected, any messages buffered for transmission are discarded and not sent. See solClient_session_disconnect() for further information. In most applications, it is not necessary to call solClient_cleanup() as the resources in use are automatically recovered when the application exits. solClient_cleanup() exists for rare applications that may want recover all API resources and continue operating without using the API further.

Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_context_create ( solClient_propertyArray_pt  props,
solClient_opaqueContext_pt opaqueContext_p,
solClient_context_createFuncInfo_t funcInfo_p,
size_t  funcInfoSize 
)

Creates a new Context.

The context properties are supplied as an array of name/value pointer pairs, where the name and value are both strings. Only configuration property names starting with "CONTEXT_" are processed; other property names are ignored. Any values not supplied are set to default values. Passing in NULL causes all Context properties to be set to their default values.

It is highly recommended that applications should always use an automatically created internal context thread. Passing in SOLCLIENT_CONTEXT_PROPS_DEFAULT_WITH_CREATE_THREAD causes the Context to have the context thread created automatically and all other Context properties at their default value. Alternatively, an internal thread can be created by enabling SOLCLIENT_CONTEXT_PROP_CREATE_THREAD.

If an external context thread (the default for historical reasons) is needed under special circumstances, the application must supply a thread to do the work on behalf of a Context. The application does this by having a Context thread call solClient_context_processEvents(). In some rare cases, application can also use an optional file descriptor event service. Applications can register application file descriptors for events using solClient_context_registerForFdEvents(). The file descriptor event callback routine that has been registered is invoked by the Context thread when the event occurs.

As an alternative, the application can provide the file descriptor event registration mechanism itself, which then results in the API using the application-provided events. To activate this mode, the application must provide file descriptor event register and deregister function at the time of Context creation (see solClient_context_createRegisterFdFuncInfo). If the register/deregister function pointers provided are NULL, then the internal API event mechanism is used. When the application is providing events to the API, solClient_context_processEvents() must not be called. Instead solClient_context_timerTick() must be called on regular basis as API timers are dependent on this function which is usually invoked during solClient_context_processEvents().

When the Context is created, an opaque Context pointer is returned to the caller, and this value is then used for any Context-level operations, such as creating a Session.

Note that the property values are stored internally in the API, and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. The API also does not modify any of the strings pointed to by props when processing the property list.

Parameters
propsAn array of name/value string pair pointers to configure context properties.
opaqueContext_pAn opaque Context pointer is returned that refers to the created Context.
funcInfo_pA pointer to a structure that provides information on optional file descriptor event functions.
funcInfoSizeThe size of the passed-in funcInfo structure (in bytes) to allow the structure to grow in the future.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_context_destroy ( solClient_opaqueContext_pt opaqueContext_p)

Destroys a previously created Context.

On return, the opaque Context pointer is set to NULL. This operation must not be performed in a Context callback for the Context being destroyed. This includes all Sessions on the Context, timers on the Context, and application-supplied register file descriptor (see solClient_context_createFuncInfo) functions.

Parameters
opaqueContext_pAn opaque Context returned when Context was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_context_processEvents ( solClient_opaqueContext_pt  opaqueContext_p)

Must be called by the Context thread for a given Context to have events processed.

If messages arrive on a Session, the Session callback function is invoked in the Context of the calling Context thread. If application file descriptors have been registered and requested events have occurred on those file descriptors, the registered file descriptor event callback function is invoked in the Context of the calling Context thread. The Session event callback routine can also be invoked. This routine must be called as often as possible by the Context thread. Also, the application must avoid long processing times in the called messsage receive or application file descriptor event routines that can be invoked by this function.

Note that if the application has taken over responsibility of generating file descriptor events, then this routine must not be called by the application. Instead solClient_context_timerTick() must be called on regular basis as API timers are dependent on this function which is usually invoked during solClient_context_processEvents().

Parameters
opaqueContext_pThe opaque Context that was returned when Context was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, and ex/ios/Example.m.
solClient_dllExport solClient_returnCode_t solClient_context_processEventsWait ( solClient_opaqueContext_pt  opaqueContext_p,
solClient_bool_t  wait 
)

This function must be called by the Context thread for a given Context to have events processed.

This function also takes a second parameter 'wait'. If non-zero, solClient_context_processEventsWait will wait for an event (timeout or received message) and is identical to simply calling solClient_context_processEvents().

When wait is zero, solClient_context_processEventsWait() always returns immediately, and if no received events occurred, this function returns SOLCLIENT_NOEVENT.

See also solClient_context_processEvents() for a more information.

Parameters
opaqueContext_pOpaque Context that was returned when Context was created.
waitWhen 1, processEvents waits for an event; when 0, it returns immediately with SOLCLIENT_NOEVENT if there is nothing pending.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOEVENT
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_context_registerForFdEvents ( solClient_opaqueContext_pt  opaqueContext_p,
solClient_fd_t  fd,
solClient_fdEvent_t  events,
solClient_context_fdCallbackFunc_t  callback_p,
void *  user_p 
)

Allows the application to optionally register an application file descriptor for events (for example, SOLCLIENT_FD_EVENT_READ) for an application file descriptor.

The events parameter is an OR of the events requested (for example, if read and write events are requested, events is SOLCLIENT_FD_EVENT_READ | SOLCLIENT_FD_EVENT_WRITE). When the specified event(s) occur, the specified callback routine is invoked (in the context of the Context thread that called solClient_ProcessEvents), and the opaque user value is provided. When an event occurs, the event stays registered for the file descriptor unless the deregister function for the event is called, or if register is called again and the event is not specified.
NOTE: When this function is called for a given file descriptor, the specified events replace any previously specified events. Therefore all events for a given file descriptor share the same callback routine and user data.

Parameters
opaqueContext_pThe opaque Context that was returned when Context was created.
fdThe file descriptor being registered.
eventsThe events being requested (multiple events can be OR'ed together).
callback_pThe callback routine to be invoked.
user_pThe opaque user data pointer (can be NULL) that is returned in the callback.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_context_startTimer ( solClient_opaqueContext_pt  opaqueContext_p,
solClient_context_timerMode_t  timerMode,
solClient_uint32_t  durationMs,
solClient_context_timerCallbackFunc_t  callback_p,
void *  user_p,
solClient_context_timerId_t timerId_p 
)

Allows the application to start a timer.

When the timer expires, the specified timer callback routine is invoked with the user pointer that was specified at timer start time. The timer duration is subject to the timer resolution specified by the Context property SOLCLIENT_CONTEXT_PROP_TIME_RES_MS. The timer duration is rounded up to the nearest timer resolution interval. For example, if the Context timer resolution is 50 ms, and a timer is started with a duration of 60 ms, then the timer duration is rounded up to 100 ms (2 ticks), and then one further tick is added for a total timer duration of 150 ms. This extra tick accounts for the fact that the current tick might be about to advance when the timer is started. Therefore, the actual timeout in this example is in the range of 100 ms to 150 ms. The timer callback routine is invoked in the cntext of the Context thread, and timeouts occur as a result of calling solClient_context_processEvents(). The timer durations are approximate; the actual duration can be affected by the processing time spent in other callbacks by the Context thread, such as for Session events, received messages, and file descriptor events. This timer service should only be used for applications that require a coarse timer service (for example, a guard timer, or other timer uses that do not require a highly accurate timer service).

When a one-shot timer expires, the timer is automatically cancelled. When a repeat timer expires, the timer is automatically rescheduled for the same duration, and continues to run until stopped using solClient_context_stopTimer.

The invoked timer callback routine is allowed to start and stop timers.

Parameters
opaqueContext_pThe opaque Context that was returned when Context was created.
timerModeThe type of timer to start (one-shot or repeat).
durationMsThe requested timer duration (in milliseconds).
callback_pThe routine to invoke when the timer expires.
user_pA pointer to opaque user data that is provided to the callback routine.
timerId_pA pointer to a returned timer ID which is used to stop a timer.
See Also
solClient_context_stopTimer()
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_context_stopTimer ( solClient_opaqueContext_pt  opaqueContext_p,
solClient_context_timerId_t timerId_p 
)

Allows the application to stop a previously started timer.

Timers that expire and have their callback routine invoked are not required to be stopped by the application.

Parameters
opaqueContext_pThe opaque Context that was returned when Context was created.
timerId_pA pointer to the identifier of the timer to be stopped; previously returned from solClient_context_startTimer(). The timer id is set to SOLCLIENT_CONTEXT_TIMER_ID_INVALID when returned.
See Also
solClient_context_startTimer()
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_context_timerTick ( solClient_opaqueContext_pt  opaqueContext_p)

When the application takes over all file descriptor event generation, the application must also call this routine at regular intervals (specified by the Context property SOLCLIENT_CONTEXT_PROP_DEFAULT_TIME_RES_MS) to provide a timer tick for timer processing.

When the application calls solClient_context_processEvents() for the Context, which is the normal mode of operation, then the application must not call this routine because solClient_context_processEvents() takes care of generating timer ticks. When this routine is invoked, it might result in the invocation of timer expiry callbacks.

If the time interval between calls to solClient_context_timerTick() exceeds 60000 ms (60 seconds) the API assumes the system clock has changed, resets its internal concept of time, and ignores the call to solClient_context_timerTick(). Consequently, if the application attempts to use a timer resolution greater than 60 seconds, timers will never expire and any resolution greater than 30 seconds can cause timer ticks to be missed.

Parameters
opaqueContext_pThe opaque Context that was returned when the Context was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_context_unregisterForFdEvents ( solClient_opaqueContext_pt  opaqueContext_p,
solClient_fd_t  fd,
solClient_fdEvent_t  events 
)

Allows the application to optionally deregister an application file descriptor for events (for example, SOLCLIENT_FD_EVENT_READ) for an application file descriptor.

The events is an OR of the events no longer needed. If a file descriptor is called that has not been registered, or if an event is specified for a file descriptor that was not registered, SOLCLIENT_OK is returned. For example, in clean-up code, this function can be blindly called with SOLCLIENT_FD_EVENT_ALL for a given file descriptor with no ill effects.

Parameters
opaqueContext_pThe opaque Context that was returned when Context was created.
fdThe file descriptor that events are being deregistered for.
eventsThe events no longer being requested (multiple events can be ORed together).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_clearStats ( solClient_opaqueFlow_pt  opaqueFlow_p)

Clears all the statistics (rx and tx) for the specified Flow.

All previous Flow statistics are lost when this is called.

Parameters
opaqueFlow_pThe opaque Flow returned when Flow was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_destroy ( solClient_opaqueFlow_pt opaqueFlow_p)

Destroys a previously created Flow.

Upon return, the opaque Flow pointer is set to NULL. This operation must not be performed in a Flow callback for the Flow being destroyed.

Parameters
opaqueFlow_pA pointer to the opaque Flow pointer that was returned when the Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/flowControlQueue.c, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/topicToQueueMapping.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport const char* solClient_flow_eventToString ( solClient_flow_event_t  flowEvent)

Returns a string representation of the Flow event passed in.

Parameters
flowEventThe Flow event to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/activeFlowIndication.c, and ex/common.c.
solClient_dllExport solClient_returnCode_t solClient_flow_getDestination ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_destination_t dest_p,
size_t  destSize 
)

Retrieve the destination for the Flow.

The destination returned can be used to set the ReplyTo field in a message, or otherwise communicated to partners that need to send messages to this Flow. This is especially useful for temporary endpoints (Queues and Topic Endpoints), as the destination is unknown before the endpoint is created.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
dest_pA pointer to a solClient_destination_t.
destSizeThe size of (solClient_destination_t). This parameter is used for backwards binary compatibility if solClient_destination_t changes in the future.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/flowControlQueue.c, ex/messageSelectorsOnQueue.c, ex/queueProvision.c, ex/RRGuaranteedRequester.c, ex/simpleFlowToQueue.c, and ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_flow_getProperty ( solClient_opaqueFlow_pt  opaqueFlow_p,
const char *  propertyName_p,
char *  buf_p,
size_t  bufSize 
)

Gets the value of the specified Flow property for the Flow.

The property value is copied out to buffer provided by the caller. The returned value is a NULL-terminated UTF-8 string.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
propertyName_pThe name of the Flow property for which the value is to be returned.
buf_pA pointer to the buffer provided by the caller in which to place the NULL-terminated property value string.
bufSizeThe size of the buffer provided by the caller (in bytes).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_getRxStat ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_stats_rx_t  rxStatType,
solClient_stats_pt  rxStat_p 
)

Returns an individual receive statistic.

If multiple receive statistics are needed, it is more efficient to use solClient_flow_getRxStats rather than to call this routine multiple times for different statistics.

Parameters
opaqueFlow_pThe opaque Flow returned when Flow was created.
rxStatTypeThe type of receive statistic to return.
rxStat_pA pointer to a variable to hold the returned statistic.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
See Also
solClient_flow_getRxStats()
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_getRxStats ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_stats_pt  rxStats_p,
solClient_uint32_t  arraySize 
)

Returns an array of Flow receive statistics.

If the array is smaller than the number of defined receive statistics, only the first N defined statistics are returned. If the array is larger than the number of defined receive statistics, only the defined entries are filled in. The other entries are not touched.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
rxStats_pA pointer to an array of statistic values of type solClient_Stats_t.
arraySizeThe number of entries in the array passed in (NOT the number of bytes).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_getSession ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_opaqueSession_pt opaqueSession_p 
)

Returns the Session associated with the specified Flow.

When flows are created within a Session (see solClient_session_createFlow), then this routine can be used if the application has a Flow pointer and needs to determine the associated Session. For example, in a Flow event callback in which a Flow pointer is provided, an application can use this routine to determine the associated Session. Note that from the Session the associated Context can be determined through solClient_session_getContext.

Parameters
opaqueFlow_pAn opaque Flow that was returned when the Flow was created.
opaqueSession_pAn opaque Session associated with the Flow that is returned.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_getTransactedSession ( solClient_opaqueFlow_pt  flow_p,
solClient_opaqueTransactedSession_pt transactedSession_p 
)

Returns the Transacted Session pointer with the specified Flow.

When flows are created within a Transacted Session (see solClient_transactedSession_createFlow), then this routine can be used if the application has a Flow pointer and needs to determine the associated Transacted Session. For example, in a Flow event callback in which a Flow pointer is provided, an application can use this routine to determine the associated Transacted Session.

See Also
Transacted Session
Parameters
flow_pOpaque flow pointer.
transactedSession_pPointer to the location which contains the opaque Transacted Session pointer on return.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_flow_logFlowInfo ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_log_level_t  level 
)

Outputs a log at the specified log level that contains the Flow state information for the given Flow.

Parameters
opaqueFlow_pThe opaque Flow returned when Flow was created.
levelThe log level used to output the statistics log.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_logStats ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_log_level_t  level 
)

Outputs a log at a specified log level that contains the value at this moment of all receive and transmit statistics for the specified Flow.

This routine is useful for debugging of applications because it enables an application to easily output all available Flow statistics.

Parameters
opaqueFlow_pThe opaque Flow returned when Flow was created.
levelThe log level used to output the statistics log.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_receiveMsg ( solClient_opaqueFlow_pt  flow_p,
solClient_opaqueMsg_pt msg_p,
solClient_int32_t  timeout 
)

Receives a message from a specified Transacted Flow.

It waits until timeout or a message received, no wait if timeout=0. Applications must later call solClient_msg_free() to release the received message.

See Also
Transacted Session
Parameters
flow_pOpaque flow pointer.
msg_pPointer to the location to contain the opaque message pointer. If there is no message, the opaque message pointer is set to NULL.
timeouttimeout in milliseconds, 0 means no wait.
Returns
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_flow_sendAck ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_msgId_t  msgId 
)

This function is now just a convenience shorthand for calling solClient_flow_settleMsg() with the SOLCLIENT_OUTCOME_ACCEPTED outcome.

Sends an acknowledgment on the specified Flow. This instructs the API to consider the specified msgID acknowledged at the application layer. The library does not send acknowledgments immediately. It stores the state for acknowledged messages internally and acknowledges messages, in bulk, when a threshold or timer is reached.

Applications must only acknowledge a message on the Flow on which it is received. Using the msgId received on one Flow when acknowledging on another may result in no message being removed from the message-spool or the wrong message being removed from the message-spool.

Ignored on transacted flows.

The exact behavior of solClient_flow_sendAck() is controlled by Flow property SOLCLIENT_FLOW_PROP_ACKMODE:

  • SOLCLIENT_FLOW_PROP_ACKMODE_AUTO - messages are acknowledged automatically by C API and calling this function has no effect.
  • SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT - every message received must be acknowledged by the application through individual calls to solClient_flow_sendAck().

WARNING: If SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_AUTO (the default behavior), the function returns SOLCLIENT_OK, but with a warning that solClient_flow_sendAck is ignored as the flow is in auto-ack mode.

Parameters
opaqueFlow_pThe opaque Flow that is returned when the Flow was created.
msgIdThe 64-bit messageId for the acknowledged message.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, ex/flowControlQueue.c, ex/messageReplay.c, ex/noLocalPubSub.c, ex/perfADSub.c, ex/queueProvision.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport solClient_returnCode_t solClient_flow_setMaxUnacked ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_int32_t  maxUnacked 
)

Changes the maximum number of unacknowledged messages that may be received on the specified Flow.

This function may only be used when the Flow has been created with SOLCLIENT_FLOW_PROP_ACKMODE set to SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT. When the maximum number of unacknowledged messages is reduced, messages in transit will still be received even if that causes the application to exceed the new limit of maximum number of unacknowledged messages. The maximum number of messages that may be in transit at any one time is the lesser of the current allowable unacknowledged messages and the Flow property SOLCLIENT_FLOW_PROP_WINDOWSIZE. The current allowable unacknowledged messages is simply the difference between the current (that is, before calling this function) maximum number of acknowledged messages and the number of messages received that have not been acknowledged.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
maxUnackedThe new value for maximum number of acknowledged messages to allow on the Flow. If set to -1, there is no limit to the maximum number of acknowledged messages other than the broker defined limit in the endpoint.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_settleMsg ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_msgId_t  msgId,
solClient_msgOutcome_t  outcome 
)

Sends a positive or negative acknowledgment on the specified Flow.

This instructs the API to consider the specified msgID acknowledged at the application layer. The library does not send positive acknowledgments immediately. It stores the state for acknowledged messages internally and acknowledges messages, in bulk, when a threshold or timer is reached. Negative outcomes are sent immediately.

Use this function instead of solClient_flow_sendAck on flows configured for negative outcomes. Besides SOLCLIENT_OUTCOME_ACCEPTED, which is equivalent to an Ack, negative outcomes are allowed too. SOLCLIENT_OUTCOME_FAILED means the message will be redelivered, SOLCLIENT_OUTCOME_REJECTED means the message is removed from the queue and moved to the DMQ if configured.

Applications must only settle a message on the Flow on which it was received. Using the msgId received on one Flow when settling on another may result in no message being removed from (or returned to) the message-spool or the wrong message being removed from (or returned to) the message-spool.

Ignored on transacted flows.

The exact behavior of solClient_flow_settleMsg() is controlled by Flow property SOLCLIENT_FLOW_PROP_ACKMODE:

  • SOLCLIENT_FLOW_PROP_ACKMODE_AUTO - messages are settled automatically by C API, and calling this function has no effect.
  • SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT - every message received must be settled by the application through individual calls to solClient_flow_settleMsg().

WARNING: If SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_AUTO (the default behavior), the function returns SOLCLIENT_OK, but with a warning that solClient_flow_settleMsg is ignored as the flow is in auto-ack mode.

WARNING: If SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_FAILED and/or SOLCLIENT_FLOW_PROP_REQUIRED_OUTCOME_REJECTED is not set, (the default behavior), but SOLCLIENT_OUTCOME_FAILED and/or SOLCLIENT_OUTCOME_REJECTED is attempted, the function returns SOLCLIENT_FAIL with subcode SOLCLIENT_SUBCODE_INVALID_FLOW_OPERATION, the message is not settled on the broker, and a warning is logged that solClient_flow_settleMsg is ignored because the flow was not set up for it.

Parameters
opaqueFlow_pThe opaque Flow that is returned when the Flow was created.
msgIdThe 64-bit messageId for the settleded message.
outcomeThe positive or negative outcome with which the message is settled.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_flow_start ( solClient_opaqueFlow_pt  opaqueFlow_p)

Opens the receiver on the specified Flow.

This method opens the Flow window to the broker so further messages can be received. For browser flows (SOLCLIENT_FLOW_PROP_BROWSER), applications have to call the function to get more messages.

A Flow may be created with the window closed by setting the Flow property SOLCLIENT_FLOW_PROP_START_STATE to SOLCLIENT_PROP_DISABLE_VAL. When a Flow is created in this way, messages will not be received on the Flow until after solClient_flow_start() is called.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/messageTTLAndDeadMessageQueue.c, and ex/simpleBrowserFlow.c.
solClient_dllExport solClient_returnCode_t solClient_flow_stop ( solClient_opaqueFlow_pt  opaqueFlow_p)

Closes the receiver on the specified Flow.

This method will close the Flow window to the broker so further messages will not be received until solClient_flow_start() is called. Messages in transit when this method is called will still be delivered to the application. So the application must expect that the receive message callback can be called even after calling solClient_flow_stop(). The maximum number of messages that may be in transit at any one time is controlled by SOLCLIENT_FLOW_PROP_WINDOWSIZE and SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES (see solClient_flow_setMaxUnacked()).

A Flow can be created with the window closed by setting the Flow property SOLCLIENT_FLOW_PROP_START_STATE to SOLCLIENT_PROP_DISABLE_VAL. When a Flow is created in this way, messages will not be received on the Flow until after solClient_flow_start() is called.

Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/messageTTLAndDeadMessageQueue.c.
solClient_dllExport solClient_returnCode_t solClient_flow_topicSubscribeWithDispatch ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
solClient_flow_rxMsgDispatchFuncInfo_t funcInfo_p,
void *  correlationTag 
)

Allows topics to be dispatched to different message receive callbacks and with different dispatchUser_p for received messages on an endpoint Flow.

If the endpoint supports adding topics (Queue endpoints), then this function will also add the Topic subscription to the endpoint unless SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY is set. SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY is implied for all other endpoints.

If the dispatch function info (funcinfo_p) is NULL, the Topic subscription is only added to the endpoint and no local dispatch entry is created. This operation is then identical to solClient_session_endpointTopicSubscribe().

SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY can only be set when funcinfo_p is not NULL. Consequently funcinfo_p may not be NULL for non-Queue endpoints.

The Session property SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH must be enabled for a non-NULL funcinfo_p to be specified.

When funcinfo_p is not NULL, the received messages on the Topic Endpoint Flow are further demultiplexed based on the received topic.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Dispatching Messages Based on a Topic for a Flow
Parameters
opaqueFlow_pThe opaque Flow that is returned when the Flow was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
funcInfo_pThe message receive callback information. See structure solClient_flow_rxMsgDispatchFuncInfo.
correlationTagA correlationTag pointer that is returned in the confirm or fail sessionEvent for the subscription. This is only used if SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM is set and SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM is not set.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.

A successful call has a return code of SOLCLIENT_OK except when using SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM without SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. In that case, the return code will be SOLCLIENT_IN_PROGRESS because the call returns without waiting for the operation to complete.

Examples:
ex/topicToQueueMapping.c.
solClient_dllExport solClient_returnCode_t solClient_flow_topicUnsubscribeWithDispatch ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
solClient_flow_rxMsgDispatchFuncInfo_t funcInfo_p,
void *  correlationTag 
)

Removes a topic dispatch from an endpoint Flow.

When the Flow is connected to a Queue endpoint, this function also removes the Topic subscription from the Queue unless SOLCLIENT_SUBSCRIBE_FLAGS_LOCAL_DISPATCH_ONLY is set.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Dispatching Messages Based on a Topic for a Flow
Parameters
opaqueFlow_pThe opaque Flow returned when the Flow was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
funcInfo_pThe message receive callback information. See structure solClient_flow_rxMsgDispatchFuncInfo.
correlationTagA correlationTag pointer that is returned as is in the confirm or fail sessionEvent for the subscription. This is only used if SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM is set and SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM is not set.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.

A successful call has a return code of SOLCLIENT_OK except when using SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM without SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. In that case, the return code will be SOLCLIENT_IN_PROGRESS because the call returns without waiting for the operation to complete.

solClient_dllExport solClient_returnCode_t solClient_generateUUID ( solClient_uuid_t uuid_p)

Returns a Universally Unique Identifier (UUID) as a 128-bit value, as per IETF RFC 4122.

Only a version 4 UUID (generated from random or pseudo-random numbers) is supported.

Parameters
uuid_pA pointer to UUID value to be filled in.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_generateUUIDString ( char *  uuid_p,
size_t  bufferSize 
)

Returns a Universally Unique Identifier (UUID) as a NULL-terminated string, as per IETF RFC 4122.

Only a version 4 UUID (generated from random or pseudo-random numbers) is supported. The size of the buffer provided must be at least SOLCLIENT_UUID_STRING_BUFFER_SIZE bytes in size to hold the NULL-terminated UUID string value. An example output string is: 4e112068-7836-4e2f-af14-82682569bdfe (NULL-terminated).

Parameters
uuid_pA pointer to string buffer to fill in.
bufferSizeThe size (in bytes) of provided buffer; must be at least SOLCLIENT_UUID_STRING_BUFFER_SIZE.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/flowControlQueue.c, ex/queueProvision.c, and ex/simpleFlowToQueue.c.
solClient_dllExport solClient_errorInfo_pt solClient_getLastErrorInfo ( void  )

Returns a pointer to a solClient_errorInfo structure, which contains the last captured error information for the calling thread.

This information is captured on a per-thread basis. The returned structure is only valid until the thread makes the next API call, so if the calling thread wants to keep any of the structure fields, it must make a local copy of the information of interest.

Any API call that returns SOLCLIENT_FAIL or SOLCLIENT_NOT_READY also updates the per-thread error information. Applications that wish extra information on the error, should retrieve the solClient_errorInfo structure.

The API always sets the solClient_errorInfo information before invoking any application callback. Therefore application may always call solClient_getLastErrorInfo() while handling event callbacks.

Returns
A pointer to a solClient_errorInfo structure containing error information. This pointer is never NULL.
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/common.c, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/PerfTestExample.m, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/replication.c, and ex/RRGuaranteedReplier.c.
solClient_dllExport solClient_returnCode_t solClient_initialize ( solClient_log_level_t  initialLogLevel,
solClient_propertyArray_pt  props 
)

This function must be called before any other API interface call is made, with the exception of solClient_log_setCallback(), which can be called first to intercept all logs, and solClient_log_setFile(), which can be used to change the log destination when the log callback is not in use.

Typically solClient_initialize() is called once during program initialization. Only configuration property names starting with GLOBAL_ are processed; other property names are ignored. Any values not supplied are set to default values. This function takes care of any required global initialization. Note that the property values are stored internally in the API, and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. Also, the API does not modify any of the strings pointed to by props when processing the property list.

Parameters
initialLogLevelThe initial log level for logs for all log categories. This value can later be changed using solClient_log_setFilterLevel. If the default log level is desired, use SOLCLIENT_LOG_DEFAULT_FILTER. However, it is preferred that the application supply the log level from its own command line (or some other form of configuration) so that the log level can quickly be changed without recompiling the application.
propsAn array of name and value string pairs for global configuration properties, or NULL, if there are no global properties to set.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport const char* solClient_log_categoryToString ( solClient_log_category_t  category)

Returns a string representation (for example, "API") of the log category passed in.

Parameters
categoryThe log category to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/ios/examples/RedirectLogsExample.m, and ex/redirectLogs.c.
solClient_dllExport const char* solClient_log_levelToString ( solClient_log_level_t  level)

Returns a string representation (for example, "ERROR") of the log level passed in.

Parameters
levelThe log level to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/ios/examples/RedirectLogsExample.m, and ex/redirectLogs.c.
solClient_dllExport solClient_returnCode_t solClient_log_setCallback ( solClient_log_callbackFunc_t  callback_p,
void *  user_p 
)

Allows for the registration of an optional log callback, which is called each time a new, non-filtered, log message is emitted by the API.

If a callback is not registered, then, by default, the API prints non-filtered logs to stderr, although the destination file can be changed through solClient_log_setFile(). Setting the callback routine to NULL reverts to the default log output behavior. Note that solClient_log_setCallback() can be called before solClient_initialize() in order to intercept all logs.

Parameters
callback_pThe routine to call for each non-filtered log.
user_pA pointer to opaque user data that is passed back to the log callback.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
See Also
solClient_log_setFilterLevel()
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/Example.m, ex/ios/examples/RedirectLogsExample.m, and ex/redirectLogs.c.
solClient_dllExport solClient_returnCode_t solClient_log_setFile ( const char *  logFileName_p)

Allows the log file, which defaults to stderr, to be changed to a file specified by the caller.

This file is only used if a log callback has not been set through solClient_log_setCallback(). Setting the file name to NULL or a zero-length string reverts the file back to stderr. If an error is encountered when writing a log message to the specified file, the log file is automatically reverted back to stderr. Note that solClient_log_setFile() can be called before solClient_initialize().

Parameters
logFileName_pThe new file name to use, or use the default (stderr) if NULL or zero length.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_log_setFilterLevel ( solClient_log_category_t  category,
solClient_log_level_t  level 
)

Allows the log level filter to be set.

Any logs of lower severity than the filter level specified are not emitted by the API. For example, if the filter level is set to solClient_LOG_ERROR, then only logs of this severity or higher (for example, solClient_LOG_CRITICAL) are emitted. Less severe logs are filtered out. The log filter level is applied globally to ALL API Sessions. If this function is not called, then the default log filter level of SOLCLIENT_LOG_DEFAULT_FILTER is in force.

Parameters
categoryThe log category to which the new log level applies.
levelThe new log level at which logs are emitted.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/Example.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, and ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_log_unsetCallback ( void  )

Reset the log callback function to default log out behavior.

All non-filtered logs are printed to stderr after this function is called.

Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport void solClient_resetLastErrorInfo ( void  )

Clears the last error info, which is recorded on a per-thread basis.

The error information is reset such that the sub code is SOLCLIENT_SUBCODE_OK, the error strings are empty strings, etc.

SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, and ex/ios/Example.m.
solClient_dllExport const char* solClient_returnCodeToString ( solClient_returnCode_t  returnCode)

Returns a string representation of the return code passed in.

Parameters
returnCodeThe return code to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/asyncCacheRequest.c, ex/common.c, ex/ios/Example.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport const char* solClient_rxStatToString ( solClient_stats_rx_t  rxStat)

Returns a string representation of the receive statistic name for the given statistic constant passed in.

Parameters
rxStatreceive statistic constant (solClient_stats_rx_t).
Returns
A pointer to a constant char string. This pointer is never NULL.
solClient_dllExport solClient_returnCode_t solClient_session_clearStats ( solClient_opaqueSession_pt  opaqueSession_p)

Clears all of the receive and transmit statistics for the specified Session.

All previous Session statistics are lost when this is called.

Parameters
opaqueSession_pThe opaque Session returned when Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_session_connect ( solClient_opaqueSession_pt  opaqueSession_p)

Connects the specified Session.

A Session connection can be carried out in a blocking or non-blocking mode, depending upon the Session property SOLCLIENT_SESSION_PROP_CONNECT_BLOCKING. In blocking mode, the calling thread is blocked until either the Session connection attempt succeeds or is determined to have failed. If the connection succeeds, SOLCLIENT_OK is returned. If the Session could not connect, SOLCLIENT_NOT_READY is returned. In non-blocking mode, SOLCLIENT_IN_PROGRESS is returned upon a successful Session connect request, and the connection attempt proceeds in the background. In both non-blocking and blocking mode, a Session event is generated for the Session: SOLCLIENT_SESSION_EVENT_UP_NOTICE, if the Session was connected successfully; or SOLCLIENT_SESSION_EVENT_CONNECT_FAILED_ERROR, if the Session failed to connect. For blocking mode, the Session event is issued before the call to solClient_session_connect() returns. For non-blocking mode, the timing is undefined (that is, it could occur before or after the call returns, but it will typically be after). A Session connection timer, controlled by the Session property SOLCLIENT_SESSION_PROP_CONNECT_TIMEOUT_MS, controls the maximum amount of time a Session connect attempt lasts for. If this amount time is exceeded, a SOLCLIENT_SESSION_EVENT_CONNECT_FAILED_ERROR event is issued for the Session. If there is an error when solClient_session_connect() is invoked, SOLCLIENT_FAIL is returned, and a Session event is not subsequently issued. Therefore, the caller must check for a return code of SOLCLIENT_FAIL if it has logic that depends upon a subsequent Session event to be issued. For a non-blocking Session connect invocation, if the Session connect attempt eventually fails, the last error information to indicate the reason for the failure cannot be determined by the calling thread, rather it must be discovered through the Session event callback (and solClient_getLastErrorInfo can be called in the Session event callback to get further information). For a blocking Session connect invocation, if the Session connect attempt does not return SOLCLIENT_OK, then the calling thread can determine the failure reason by immediately calling solClient_getLastErrorInfo.

Parameters
opaqueSession_pThe opaque Session that was returned when Session was created.
Returns
SOLCLIENT_OK (blocking mode only), SOLCLIENT_NOT_READY (blocking mode only), SOLCLIENT_IN_PROGRESS (non-blocking mode only) or SOLCLIENT_FAIL.
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
The following subcodes can occur when a blocking connection operation is used (refer to SOLCLIENT_SESSION_PROP_CONNECT_BLOCKING). Otherwise, such errors are reported when a SOLCLIENT_SESSION_EVENT_CONNECT_FAILED_ERROR Session event is received.
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, ex/directPubSub.c, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/secureSession.c, ex/topicDispatch.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_create ( solClient_propertyArray_pt  props,
solClient_opaqueContext_pt  opaqueContext_p,
solClient_opaqueSession_pt opaqueSession_p,
solClient_session_createFuncInfo_t funcInfo_p,
size_t  funcInfoSize 
)

Creates a new Session within a specified Context.

The session properties are supplied as an array of name/value pointer pairs, where the name and value are both strings. Only configuration property names starting with "SESSION_" are processed; other property names are ignored. Any values not supplied are set to default values. When the Session is created, an opaque Session pointer is returned to the caller, and this value is then used for any Session-level operations (for example, sending a message). The passed-in structure functInfo_p provides information on the message receive callback function and the Session event function which the application has provided for this Session. Both of these callbacks are mandatory. The message receive callback is invoked for each received message on this Session. The Session event callback is invoked when Session events occur, such as the Session going up or down. Both callbacks are invoked in the context of the Context thread to which this Session belongs. Note that the property values are stored internally in the API and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. When processing the property list, the API will not modify any of the strings pointed to by props.

Parameters
propsAn array of name/value string pair pointers to configure session properties.
opaqueContext_pThe Context in which the Session is to be created.
opaqueSession_pAn opaque Session pointer is returned that refers to the created Session.
funcInfo_pA pointer to a structure that provides information on callback functions for events and received messages.
funcInfoSizeThe size (in bytes) of the passed-in funcInfo structure to allow the structure to grow in the future.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, ex/directPubSub.c, ex/ios/Example.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/secureSession.c, ex/topicDispatch.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, Intro/HelloWorldQueueSub.c, Intro/HelloWorldSub.c, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_createFlow ( solClient_propertyArray_pt  props,
solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueFlow_pt opaqueFlow_p,
solClient_flow_createFuncInfo_t funcInfo_p,
size_t  funcInfoSize 
)

Creates a new Flow within a specified Session.

Flow characteristics and behavior are defined by Flow properties. The Flow properties are supplied as an array of name/value pointer pairs, where the name and value are both strings. FLOW and ENDPOINT configuration property names are processed; other property names are ignored. If the Flow creation specifies a non-durable endpoint, ENDPOINT properties can be used to change the default properties on the non-durable endpoint. Any values not supplied are set to default values.

When the Flow is created, an opaque Flow pointer is returned to the caller, and this value is then used for any Flow-level operations (for example, starting/stopping a Flow, getting statistics, sending an acknowledgment). The passed-in structure functInfo_p provides information on the message receive callback function and the Flow event function which the application has provided for this Flow. Both of these callbacks are mandatory. The message receive callback is invoked for each received message on this Flow. The Flow event callback is invoked when Flow events occur, such as the Flow going up or down. Both callbacks are invoked in the context of the Context thread to which the controlling Session belongs.

Flow creation can be carried out in a blocking or non-blocking mode, depending upon the Flow property SOLCLIENT_FLOW_PROP_BIND_BLOCKING. In blocking mode, the calling thread is blocked until the Flow connection attempt either succeeds or is determined to have failed. If the connection succeeds, SOLCLIENT_OK is returned, and if the Flow could not be connected, SOLCLIENT_NOT_READY is returned. In non-blocking mode, SOLCLIENT_IN_PROGRESS is returned upon a successful Flow create request, and the connection attempt proceeds in the background. In both a non-blocking and blocking mode, a Flow event is generated for the Session: SOLCLIENT_FLOW_EVENT_UP_NOTICE, if the Flow was connected successfully; or SOLCLIENT_FLOW_EVENT_BIND_FAILED_ERROR, if the Flow failed to connect. For blocking mode, the Flow event is issued before the call to solClient_session_createFlow() returns. For non-blocking mode, the timing is undefined (that is, it could occur before or after the call returns, but it will typically be after). A Flow connection timer, controlled by the Flow property SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS, controls the maximum amount of time a Flow connect attempt lasts for. Upon expiry of this time, a SOLCLIENT_FLOW_EVENT_BIND_FAILED_ERROR event is issued for the Session. If there is an error when solClient_session_createFlow() is invoked, then SOLCLIENT_FAIL is returned, and a Flow event is not subsequently issued. Thus, the caller must check for a return code of SOLCLIENT_FAIL if it has logic that depends upon a subsequent Flow event to be issued. For a non-blocking Flow create invocation, if the Flow create attempt eventually fails, the error information that indicates the reason for the failure cannot be determined by the calling thread. It must be discovered through the Flow event callback (and solClient_getLastErrorInfo can be called in the Flow event callback to get further information). For a blocking Flow create invocation, if the Flow create attempt does not return SOLCLIENT_OK, then the calling thread can determine the failure reason by immediately calling solClient_getLastErrorInfo. For a blocking Flow creation, SOLCLIENT_NOT_READY is returned if the created failed due to the bind timeout expiring (see SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS). Note that the property values are stored internally in the API and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. The API does not modify any of the strings pointed to by props when processing the property list.

If the flow property SOLCLIENT_FLOW_PROP_BIND_ENTITY_ID is set to SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE, the flow Topic property SOLCLIENT_FLOW_PROP_TOPIC must be set, which will replace any existing topic on the topic-endpoint.

WARNING: By default the SOLCLIENT_FLOW_PROP_ACKMODE is set to SOLCLIENT_FLOW_PROP_ACKMODE_AUTO, which automatically acknowledges all received messages. Function solClient_flow_sendAck returns SOLCLIENT_OK in the mode SOLCLIENT_FLOW_PROP_ACKMODE_AUTO, but with a warning that solClient_flow_sendAck is ignored as flow is in auto-ack mode.


Parameters
propsAn array of name/value string pair pointers to configure Flow properties.
opaqueSession_pThe Session in which the Flow is to be created.
opaqueFlow_pThe returned opaque Flow pointer that refers to the created Flow.
funcInfo_pA pointer to a structure that provides information on callback functions for events and received messages.
funcInfoSizeThe size of the passed-in funcInfo structure (in bytes) to allow the structure to grow in the future.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/flowControlQueue.c, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/topicToQueueMapping.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_createTemporaryTopicName ( solClient_opaqueSession_pt  opaqueSession_p,
char *  topic_p,
size_t  length 
)

Create a temporary Topic string.

This string may be passed as the Topic to solClient_session_createFlow() when connecting with a non-durable Topic Endpoint. It may also be used in a solClient_destination_t that is sent to a peer application in the ReplyTo field of the Solace Header map or in a structured data field.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
topic_pA pointer to a string location where the string is returned.
lengthThe maximum string length to return.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/simpleFlowToTopic.c.
solClient_dllExport solClient_returnCode_t solClient_session_createTransactedSession ( solClient_propertyArray_pt  props,
solClient_opaqueSession_pt  session_p,
solClient_opaqueTransactedSession_pt transactedSession_p,
void *  rfu_p 
)

Creates a Transacted Session object that is used in subsequent transactions.

It is recommended that a client application use a default Context-bound Message Dispatcher for its asynchronous message delivery within a Transacted Session.

By enabling Transacted Session property SOLCLIENT_TRANSACTEDSESSION_PROP_CREATE_MESSAGE_DISPATCHER, a TransactedSession-bound Message Dispatcher is created as well when a Transacted Session is created. The lifecycle of a Message Dispatcher is bounded to the lifecycle of the corresponding API object.

See Also
Transacted Session
Parameters
propsAn array of name/value string pair pointers to configure Transacted Session properties.
session_pSession in which a Transacted Session is to be created.
transactedSession_pPointer to the location which contains the opaque Transacted Session pointer on return.
rfu_pReserved for future use; must be NULL.
Returns
SOLCLIENT_OK on success. SOLCLIENT_FAIL, or SOLCLIENT_NOT_READY
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of subcodes.
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_session_destroy ( solClient_opaqueSession_pt opaqueSession_p)

Destroys a previously created Session.

Upon return, the opaque Session pointer is set to NULL. If the Session being destroyed is still in a connected state, any buffered messages which have not been sent yet are discarded. If the application wants to ensure that any buffered messages are first sent, solClient_session_disconnect() must be called before solClient_session_destroy().

This operation must not be performed in a Session callback for the Session being destroyed. This includes all Flows on the Session, as well as the application supplied event and data callback functions (see solClient_session_createFuncInfo) functions.

Parameters
opaqueSession_pAn opaque Session that was returned when the Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_session_disconnect ( solClient_opaqueSession_pt  opaqueSession_p)

Disconnects the specified Session.

Once disconnected, topics/subscriptions can no longer be added or removed from the Session, messages can no longer be received for the Session, and messages cannot be sent to the Session. The Session definition remains, and the Session can be connected again (using solClient_session_connect()). When solClient_session_disconnect() is called, if there are buffered messages waiting to be transmitted for the Session (for example, because the send socket is full), the caller is blocked until all buffered data has been written to the send socket. Note the following: 1) This is done regardless of whether the Session has been configured for a blocking or non-blocking send operation (see SOLCLIENT_SESSION_PROP_SEND_BLOCKING). 2) A call to solClient_session_destroy(), solClient_context_destroy(), or solClient_cleanup() while a Session is connected (without first disconnecting the Session explicitly through a call to solClient_session_disconnect()) discards any buffered messages.

Parameters
opaqueSession_pThe opaque Session returned when Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/SempGetOverMbExample.m, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/ios/examples/SyncCacheRequestExample.m, ex/ios/examples/TopicDispatchExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRDirectReplier.c, ex/RRDirectRequester.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/sempGetOverMb.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, ex/subscribeOnBehalfOfClient.c, ex/syncCacheRequest.c, ex/topicDispatch.c, ex/topicToQueueMapping.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_dteUnsubscribe ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  teName_p,
void *  correlationTag 
)

Sends a Topic Endpoint unsubscribe command to the broker.

This is only valid if no subscribers are bound to the Topic Endpoint. The application can specify a correlation tag to match up responses. The correlation tag is a void pointer with no significance to the API. When the broker responds to the unsubscribe command, the correlation tag is returned in the eventInfo structure of the callback event. If this command succeeds there is a later event callback of either SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK or SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_ERROR.

Parameters
opaqueSession_pAn opaque Session pointer returned when Session was created.
teName_pA string containing the Topic Endpoint name.
correlationTagCorrelation tag returned in the resulting Session event.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/simpleFlowToTopic.c.
solClient_dllExport solClient_returnCode_t solClient_session_endpointDeprovision ( solClient_propertyArray_pt  props,
solClient_opaqueSession_pt  opaqueSession_p,
solClient_uint32_t  provisionFlags,
void *  correlationTag 
)

Remove an endpoint from the broker.

An application can only remove an endpoint that has previously been provisioned with solClient_session_provistionEndpoint(). The broker will reject with an error any attempt to remove a temporary endpoint (provisioned by solClient_session_createFlow()), or a permanent endpoint provisioned by the administrator through the CLI or solAdmin.

Parameters
propsThe provision properties used to identify the endpoint.
opaqueSession_pThe Session which is used to delete the endpoint.
provisionFlagsFlags to control delete operation.
correlationTagThe correlation tag returned in the resulting Session event.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY, SOLCLIENT_IN_PROGRESS, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/common.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, and ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_session_endpointProvision ( solClient_propertyArray_pt  props,
solClient_opaqueSession_pt  opaqueSession_p,
solClient_uint32_t  provisionFlags,
void *  correlationTag,
char *  queueNetworkName,
size_t  qnnSize 
)

Provision, on the broker, a durable Queue or Topic Endpoint using the specified Session.

SOLCLIENT_ENDPOINT_PROP_ID must be set to either SOLCLIENT_ENDPOINT_PROP_QUEUE or SOLCLIENT_ENDPOINT_PROP_TE in this interface. Only durable (SOLCLIENT_ENDPOINT_PROP_DURABLE is enabled) endpoints may be provisioned. A non-durable endpoint is created when a Flow is bound to it with solClient_session_createFlow().

Endpoint creation can be carried out in a blocking or non-blocking mode, depending upon the provisionFlags. If SOLCLIENT_PROVISION_FLAGS_WAITFORCONFIRM is set in provisionFlags, the calling thread is blocked until the endpoint creation attempt either succeeds or is determined to have failed. If the endpoint is created, SOLCLIENT_OK is returned. When SOLCLIENT_PROVISION_FLAGS_WAITFORCONFIRM is not set, SOLCLIENT_IN_PROGRESS is returned when the endpoint provision request is successfully sent, and the creation attempt proceeds in the background. An endpoint creation timer, controlled by the property SOLCLIENT_SESSION_PROP_PROVISION_TIMEOUT_MS, controls the maximum amount of time a creation attempt lasts for. Upon expiry of this time, a SOLCLIENT_SESSION_EVENT_PROVISION_ERROR event is issued for the Session. If there is an error when solClient_session_endpointProvision() is invoked, then SOLCLIENT_FAIL is returned, and a provision event will not be subsequently issued. Thus, the caller must check for a return code of SOLCLIENT_FAIL if it has logic that depends upon a subsequent provision event to be issued. For a non-blocking endpoint provision, if the creation attempt eventually fails, the error information that indicates the reason for the failure cannot be determined by the calling thread, rather it must be discovered through the Session event callback (and solClient_getLastErrorInfo() can be called in the Session event callback to get further information). For a blocking endpoint creation invocation, if the creation attempt does not return SOLCLIENT_OK, then the calling thread can determine the failure reason by immediately calling solClient_getLastErrorInfo. For a blocking endpoint creation, SOLCLIENT_NOT_READY is returned if the create failed due to the timeout expiring (see SOLCLIENT_SESSION_PROP_PROVISION_TIMEOUT_MS).

Parameters
propsThe provision properties used to define the endpoint.
opaqueSession_pThe Session which is used to create the endpoint.
provisionFlagsFlags to control provision operation.
correlationTagA correlation tag returned in the resulting Session event.
queueNetworkNameThis parameter is deprecated but still supported for backwards compatibility. It is recommended to pass NULL for this parameter. When a non-null pointer is passed, it is used as a pointer to the location in which the network name of the created Queue Network Name is returned. This can be used to set the destination for published messages. An empty string is returned when the created endpoint is a Topic Endpoint. For publishing to a queue, the current recommended practice is to use solClient_destination_t where the destType is set to SOLCLIENT_QUEUE_DESTINATION and dest is set to the queue name.
qnnSizeAs with queueNetworkName, this is a deprecated parameter. When passing NULL as the queueNetworkName, pass 0 as qnnSize. When queueNetworkName is not null, qnnSize is the maximum length of the Queue Network Name string that can be returned.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY, SOLCLIENT_IN_PROGRESS, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/activeFlowIndication.c, ex/common.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_endpointTopicSubscribe ( solClient_propertyArray_pt  endpointProps,
solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
void *  correlationTag 
)

Add a Topic subscription to the endpoint defined by the endpoint properties if the operation is supported on the endpoint.

Topic subscriptionscan be added to Queue endpoints (SOLCLIENT_ENDPOINT_PROP_QUEUE) and to the special endpoint for each Session on brokers running SolOS-TR (SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME).

Adding subscriptions to Queues

Guaranteed messages are published to a Queue when it is set as the destination of the message. However, you can also add one or more Topic subscriptions to a durable or temporary Queue so that Guaranteed messages published to those topics are also delivered to the Queue.

  • Only a Queue (SOLCLIENT_ENDPOINT_PROP_QUEUE) Endpoint can be used.
  • Only a Topic subscription can be used.
  • Must have modify-topic permission on the Endpoint.

Adding subscriptions to remote clients

A subscription manager client can add subscriptions on behalf of other clients. These Topic subscriptions are not retained in the subscription cache and are not be reapplied upon reconnection.

  • Only supported in SolOS-TR mode.
  • Only a ClientName (SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME) Endpoint can be used.
  • Only a Topic subscription can be used.
  • Must have subscription-manager permissions on the client username.

It is an error to add subscriptions to a Topic Endpoint (SOLCLIENT_ENDPOINT_PROP_TE) with this interface. A subscription can only be added to a Topic Endpoint when a Flow is bound to it. The subscription is part of the Flow properties.

Parameters
endpointPropsThe provision properties used to identify the endpoint.
opaqueSession_pThe Session which is used to perform the subscription request. If the Session also supports SOLCLIENT_SESSION_PROP_REAPPLY_SUBSCRIPTIONS, then the subscriptions are be remembered and automatically reapplied should the Session fail and reconnect automatically.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pTopic Subscription to apply as a NULL-terminated UTF-8 string.
correlationTagCorrelation tag returned in the resulting Session event.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/messageTTLAndDeadMessageQueue.c, ex/subscribeOnBehalfOfClient.c, and ex/topicToQueueMapping.c.
solClient_dllExport solClient_returnCode_t solClient_session_endpointTopicUnsubscribe ( solClient_propertyArray_pt  endpointProps,
solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
void *  correlationTag 
)

Remove a Topic subscription from the endpoint defined by the endpoint properties if the operation is supported on the endpoint.

Used to remove subscriptions added by solClient_session_endpointTopicSubscribe() . Refer to that function's documentation for operational parameters. This method cannot remove subscriptions added through the CLI.

Parameters
endpointPropsThe provision properties used to identify the endpoint.
opaqueSession_pThe Session which is used to perform the remove subscription request.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pTopic Subscription to remove as a NULL-terminated UTF-8 string.
correlationTagCorrelation tag returned in the resulting Session event.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport const char* solClient_session_eventToString ( solClient_session_event_t  sessionEvent)

Returns a string representation of the Session event passed in.

Parameters
sessionEventThe Session event to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/adPubAck.c, ex/common.c, ex/ios/Example.m, and ex/replication.c.
solClient_dllExport solClient_returnCode_t solClient_session_getCapability ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  capabilityName_p,
solClient_field_t field_p,
size_t  fieldSize 
)

Gets the value of the specified capability for the Session.

The caller provides a solClient_field_t structure that is set on success with the proper type and value for the property requested.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
capabilityName_pThe name of the Session capability the value is to be returned for.
field_pA pointer to the solClient_field_t provided by the caller in which to place the capability value.
fieldSizeThe size (in bytes) of the solClient_field_t provided by the caller.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/eventMonitor.c, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/SempGetOverMbExample.m, and ex/sempGetOverMb.c.
solClient_dllExport solClient_returnCode_t solClient_session_getContext ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueContext_pt opaqueContext_p 
)

Returns the Context associated with the specified Session.

Sessions are created within a Context (see solClient_session_create) and this routine can be used if the application has a Session pointer and needs to determine the associated Context. For example, in a Session event callback in which a Session pointer is provided, if the application wishes to start a timer, it needs the Context pointer, and this routine can be used to get the Context pointer from the Session pointer.

Parameters
opaqueSession_pAn opaque Session that was returned when the Session was created.
opaqueContext_pAn opaque Context associated with the Session that is returned.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_getProperty ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  propertyName_p,
char *  buf_p,
size_t  bufSize 
)

Gets the value of the specified Session property for the Session.

The property value is copied out to buffer provided by the caller. The returned value is a NULL-terminated string.

Parameters
opaqueSession_pAn opaque Session returned when the Session was created.
propertyName_pThe name of the Session property for which the value is to be returned.
buf_pA pointer to the buffer provided by the caller in which to place the NULL-terminated property value string.
bufSizeThe size (in bytes) of the buffer provided by the caller.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/SubscribeOnBehalfOfClientExample.m, and ex/subscribeOnBehalfOfClient.c.
solClient_dllExport solClient_returnCode_t solClient_session_getRxStat ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_stats_rx_t  rxStatType,
solClient_stats_pt  rxStat_p 
)

Returns an individual receive statistic.

If multiple receive statistics are needed, it is more efficient to use solClient_session_getRxStats rather than to call this routine multiple times for different statistics.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
rxStatTypeThe type of receive statistic to return.
rxStat_pA pointer to a variable to hold the returned statistic.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
See Also
solClient_session_getRxStats()
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_getRxStats ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_stats_pt  rxStats_p,
solClient_uint32_t  arraySize 
)

Returns an array of Session receive statistics.

If the array is smaller than the number of defined receive statistics, only the first N defined statistics are returned. If the array is larger than the number of defined receive statistics, only the defined entries are filled in. The other entries are not touched.

Parameters
opaqueSession_pAn opaque Session returned when the Session was created.
rxStats_pA pointer to an array of statistic values of type solClient_stats_t.
arraySizeThe number of entries in the passed in array (not the number of bytes).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_session_getTxStat ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_stats_tx_t  txStatType,
solClient_stats_pt  txStat_p 
)

Returns an individual transmit statistic.

If multiple transmit statistics are needed, it is more efficient to use solClient_session_getTxStats rather than to call this routine multiple times for different statistics.

Parameters
opaqueSession_pAn opaque Session returned when Session was created.
txStatTypeThe type of transmit statistic to return.
txStat_pA pointer to a variable to hold the returned statistic.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
See Also
solClient_session_getTxStats()
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_getTxStats ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_stats_pt  txStats_p,
solClient_uint32_t  arraySize 
)

Returns an array of Session transmit statistics.

If the array is smaller than the number of defined transmit statistics, only the first N defined statistics are returned. If the array is larger than the number of defined transmit statistics, only the defined entries are filled in. The other entries are not touched.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
txStats_pA pointer to an array of statistic values of type solClient_Stats_t.
arraySizeThe number of entries in the array passed in (NOT the number of bytes).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_bool_t solClient_session_isCapable ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  capabilityName_p 
)

Checks if the specified capability is set on the currently connected Session.

Returns true if the Session has the capability requested.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
capabilityName_pThe name of the session capability the value is to be returned for.
Returns
True or False.
Examples:
ex/activeFlowIndication.c, ex/ios/examples/SubscribeOnBehalfOfClientExample.m, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/simpleBrowserFlow.c, ex/subscribeOnBehalfOfClient.c, ex/topicToQueueMapping.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_logFlowInfo ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_log_level_t  level 
)

Outputs a log at the specified log level at this moment containing the Flow state information for all Flows at this moment.

It also dumps a summary of the number of active Flows, as well as the allocated but unbound Flows.

Parameters
opaqueSession_pThe opaque Session returned when Session was created.
levelThe log level used to output the statistics log.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_logStats ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_log_level_t  level 
)

Outputs a log at the specified log level at this moment containing the value of all receive and transmit statistics for the specified Session.

This routine is useful for application debugging because it allows an application to easily output all available Session statistics.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
levelThe log level used to output the statistics log.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_modifyClientInfo ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_propertyArray_pt  props,
solClient_modifyPropFlags_t  flag,
void *  correlation_p 
)

Allows the following client name and description properties of a Session to be modified after the Session has been created.

   @li ::SOLCLIENT_SESSION_PROP_APPLICATION_DESCRIPTION
   @li ::SOLCLIENT_SESSION_PROP_CLIENT_NAME

The property modifications can be carried out in a blocking or non-blocking mode, depending on the flag. Attempting to specify other Session properties will result in SOLCLIENT_FAIL being returned.

Note that only one outstanding client info modification request is allowed.

Note that changing client name property would trigger the P2P topic changes. To avoid message loss, it is recommended that this API is used only at the initialization time.

Note that the property values are stored internally in the API, and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. The API also will not modify any of the strings pointed to by props when processing the property list.

Parameters
opaqueSession_pThe opaque Session that was returned when Session was created.
propsAn array of name/value string pair pointers to modify Session properties.
flagA flag to control the operation. Valid flag for this operation is:
correlation_pA valid correlationTag pointer for non-blocking mode that will be returned in an asynchronous confirmation (SOLCLIENT_SESSION_EVENT_MODIFYPROP_OK) or failure (SOLCLIENT_SESSION_EVENT_MODIFYPROP_FAIL).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS SOLCLIENT_NOT_READY
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_modifyProperties ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_propertyArray_pt  props 
)

Allows certain properties of a Session to be modified after the Session has been created.

Currently, only the following Session properties can be modified; attempting to specify other Session properties will result in SOLCLIENT_FAIL being returned:

Note: Applications shall use solClient_session_modifyClientInfo() to modify the following Session properties:

Note that the property values are stored internally in the API, and the caller does not have to maintain the props array or the strings that are pointed to after this call completes. The API also will not modify any of the strings pointed to by props when processing the property list.

Parameters
opaqueSession_pThe opaque Session that was returned when Session was created.
propsAn array of name/value string pair pointers to modify Session properties.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_sendMsg ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueMsg_pt  msg_p 
)

Sends a message on the specified Session.

The message is composed of a number of optional components that are specified by the msg_p. The application should first allocate a solClient_msg, then use the methods defined in solClientMsg.h to build the message to send.

solClient_session_sendMsg() returns SOLCLIENT_OK when the message has been successfully copied to the transmit buffer or underlying transport, this does not guarantee successful delivery to the Solace messaging broker. When sending Guaranteed messages (persistent or non-persistent), the application will receive a subsequent SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT event for all messages successfully delivered to the Solace messaging broker. For Guaranteed messages, notifications of quota, permission, or other delivery problems will be indicated in a SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR event.

Special Buffering of Guaranteed Messages
Guaranteed messages (SOLCLIENT_DELIVERY_MODE_PERSISTENT or SOLCLIENT_DELIVERY_MODE_NONPERSISTENT) are assured by the protocol between the client and the Solace message router. To make developers' task easier, guaranteed messages are queued for delivery in many instances:

  • While transport (TCP) flow controlled.
  • While message router flow controlled.
  • While sessions are connecting or reconnecting.
  • While sessions are disconnected or down.

The C-SDK will buffer up to a publishers window size (SOLCLIENT_SESSION_PROP_PUB_WINDOW_SIZE) of guaranteed messages before solClient_session_sendMsg() will either block (when SOLCLIENT_SESSION_PROP_SEND_BLOCKING is enabled) or return SOLCLIENT_WOULD_BLOCK (on active sessions) or return SOLCLIENT_NOT_READY (on disconnected or reconnecting sessions).

For the most part this is desired behavior. Transient sessions failures do not require special handling in applications. When SOLCLIENT_SESSION_PROP_RECONNECT_RETRIES is non-zero, the underlying transport will automatically reconnect and the publishing application does not need to concern itself with special handling for the transient reconnecting state.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
msg_pThe opaque message created by solClient_msg_alloc.
See Also
Using Solace Message Buffers for Guaranteed messages
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/adPubAck.c, ex/common.c, ex/directPubSub.c, ex/flowControlQueue.c, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/intro/HelloWorldPubExample.m, ex/ios/intro/HelloWorldWebPubExample.m, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/messageTTLAndDeadMessageQueue.c, ex/noLocalPubSub.c, ex/perfADPub.c, ex/perfTest.c, ex/queueProvision.c, ex/redirectLogs.c, ex/replication.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/simpleBrowserFlow.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, Intro/HelloWorldPub.c, Intro/HelloWorldQueuePub.c, and Intro/HelloWorldWebPub.c.
solClient_dllExport solClient_returnCode_t solClient_session_sendMultipleMsg ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueMsg_pt msgArray_p,
solClient_uint32_t  numberOfMessages,
solClient_uint32_t *  numberOfMessagesWritten 
)

Sends multiple messages on the specified Session.

For direct messages, using this function is more efficient than multiple calls to solClient_session_send(). This routine is suitable when an application is able to construct multiple messages at once from a single stimulus.

Note that the number of messages which can be sent through a single call to solClient_session_sendMultipleMsg() is limited to SOLCLIENT_SESSION_SEND_MULTIPLE_LIMIT.

For Sessions in which solClient_session_sendMultipleMsg() is used, it is recommended that the Session property SOLCLIENT_SESSION_PROP_TCP_NODELAY be enabled (it is enabled by default). With solClient_session_sendMultipleMsg() multiple messages are sent at once onto a TCP connection, and therefore there is no need to have the operating system carry out the TCP delay algorithm to cause fuller IP packets.

Guaranteed Delivery messages may be specified. It is recommended that all messages to be sent in a batch have the same delivery mode.

solClient_session_sendMultipleMsg() returns SOLCLIENT_OK when the messages have been successfully copied to the transmit buffer or underlying transport, this does not guarantee successful delivery to the Solace messaging broker. When sending Guaranteed messages (persistent or non-persistent), the application will receive a subsequent SOLCLIENT_SESSION_EVENT_ACKNOWLEDGEMENT event for all messages successfully delivered to the Solace messaging broker. For Guaranteed messages, notifications of quota, permission, or other delivery problems will be indicated in a SOLCLIENT_SESSION_EVENT_REJECTED_MSG_ERROR event.

solClient_session_sendMultipleMsg() takes as an argument a location to store the number of messages written (numberOfMessagesWritten). This value will always be equal to the requested numberOfMessages when SOLCLIENT_OK is returned. However on all other return values, it may be possible that part of the message array (msgArray_p) has been written and this value must be checked by applications that need to know which messages have been sent and which have not.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
msgArray_pA pointer to an array of solClient_opaqueMsg_pt pointers. Each entry describes one message to be sent.
numberOfMessagesThe number of messages provided in the message array.
numberOfMessagesWrittenA pointer to the variable to receive the returned number of messages accepted by SolClient.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK
Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.
solClient_dllExport solClient_returnCode_t solClient_session_sendMultipleSmf ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_bufInfo_pt  smfBufInfo_p,
solClient_uint32_t  numberOfMessages 
)

Sends multiple Solace Message Format (SMF) messages on the specified Session.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
smfBufInfo_pA pointer to the bufInfo array describing validly formatted SMF Direct message.
numberOfMessagesThe number of messages in the smfBufInfo_p array.

solClient_session_sendMultipleSmf() returns SOLCLIENT_OK when the message has be successfully copied to the transmit buffer or underlying transport, this does not guarantee successful delivery to the Solace messaging broker.

Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_sendReply ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueMsg_pt  rxmsg_p,
solClient_opaqueMsg_pt  replyMsg_p 
)

Send a Reply Message.

This function constructs a Solace binary message header based on the received message and sends a reply to the correct destination. If rxmsg_p is NULL, the application is responsible for setting a destination and correlationId string in the replyMsg. Otherwise the following fields from the rxmsg are used in the replyMsg:

  • ReplyTo If replyMsg has no destination, the rxmsg ReplyTo destination is used.
  • CorrelationId If replyMsg has no correlationId string, the rxmsg correlationId is copied.

If replyMsg is null, the API creates a replyMsg that contains only correlationId string.

Parameters
opaqueSession_pThe opaque Session pointer returned when the Session was created.
rxmsg_pA pointer to a solClient_msgBuffer that contains the message to reply to. (optional)
replyMsg_pA pointer to a solClient_msgBuffer that contains the message to be sent. (optional)
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/RRDirectReplier.c.
solClient_dllExport solClient_returnCode_t solClient_session_sendRequest ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_opaqueMsg_pt  msg_p,
solClient_opaqueMsg_pt replyMsg_p,
solClient_uint32_t  timeout 
)

Send a Topic Request message.

The application expects an end-to-end reply from the client that receives the message.

If the Reply-To destination in the Solace header map is not set, it is set to the default Session replyTo destination. Leaving the replyTo destination unset and allowing the API to set the default replyTo destination is the easiest way to set a valid replyTo destination.

When the application needs to do a non-blocking request (that is, the timeout parameter is zero), the application may set any replyTo topic destination.

When the application needs to do a blocking request (that is, the timeout parameter is non-zero), the replyTo destination must be a topic that the application has subscribed to for Direct messages. If the replyTo destination is set to an unsubscribed topic, a call to solClient_session_sendRequest() will block until the amount of time set for the timeout parameter expires and then return SOLCLIENT_INCOMPLETE with subcode SOLCLIENT_SUBCODE_TIMEOUT.

If the timeout parameter is zero, this function returns immediately with SOLCLIENT_IN_PROGRESS upon successful buffering of the message for transmission. Any response generated by the destination client is delivered to the replyTo destination as a receive message callback with the response attribute set - solClient_msg_isReplyMsg() returns true. It is entirely within the responsibility of the application to manage asynchronous responses.

When the timeout parameter is non-zero, this function waits for the amount of time specified by the timeout parameter for a response before returning SOLCLIENT_INCOMPLETE, otherwise this function returns SOLCLIENT_OK. If replyMsg_p is non-NULL, this functions returns an opaque message pointer (solClient_opaqueMsg_pt) in the location referenced by replyMsg_p. This message is allocated by the API and contains the received reply. This function allocates the message on behalf of the application and the application must later release the message by calling solClient_msg_free(replyMsg_p).

If this function does not return SOLCLIENT_OK, and replyMsg_p is non-NULL, then the location referenced by replyMsg_p is set to NULL.

Parameters
opaqueSession_pThe opaque Session pointer that is returned when the Session was created.
msg_pA pointer to a solClient_msgBuffer that contains the message to be sent.
replyMsg_pA reference to a solClient_msgBuffer pointer that will receive the reply message pointer. If NULL, then only status is returned. If non-NULL the application must call solClient_msg_free() for the replyMsg when it is no longer needed.
timeoutThe maximum time (in milliseconds) to wait for reply. If timeout is set to zero then the function will return immediately SOLCLIENT_IN_PROGRESS after buffering of the message for transmission.
Returns
SOLCLIENT_OK, SOLCLIENT_IN_PROGRESS, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_INCOMPLETE
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/SempGetOverMbExample.m, ex/RRDirectRequester.c, and ex/sempGetOverMb.c.
solClient_dllExport solClient_returnCode_t solClient_session_sendSmf ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_bufInfo_pt  smfBufInfo_p 
)

Sends the given Solace Message Format (SMF) message on the specified Session.

solClient_session_sendSmf() returns SOLCLIENT_OK when the message has be successfully copied to the transmit buffer or underlying transport, this does not guarantee successful delivery to the Solace messaging broker.

Parameters
opaqueSession_pThe opaque Session returned when the Session was created.
smfBufInfo_pA pointer to the bufInfo describing a validly formatted SMF direct message.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_startAssuredPublishing ( solClient_opaqueSession_pt  opaqueSession_p)

This is a deprecated function.

It used to be required to call this function to start the Guaranteed Delivery protocol before Guaranteed messages could be sent. This is now done automatically as part of solClient_session_connect(). New applications should not call this function, and they should not rely on the associated Session events SOLCLIENT_SESSION_EVENT_ASSURED_PUBLISHING_UP and SOLCLIENT_SESSION_EVENT_ASSURED_CONNECT_FAILED. To maintain backwards compatibility with existing applications, if solClient_session_startAssuredPublishing() is called (which is only allowed when the Session is in an established state), the application gets one of the following events: SOLCLIENT_SESSION_EVENT_ASSURED_PUBLISHING_UP, if sending of Guaranteed messages is allowed on the Session; or SOLCLIENT_SESSION_EVENT_ASSURED_CONNECT_FAILED.

A new application can call solClient_session_send to send a Persistent or Non-Persistent message. A failure is returned if sending Guaranteed messages is not allowed on the Session (that is, if the Session is connected to an broker that does not support Guaranteed Messaging).

Parameters
opaqueSession_pThe opaque Session returned when Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_topicSubscribe ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  topicSubscription_p 
)

Adds a Topic subscription to a Session.

Messages matching the subscription are delivered to the Session's message receive callback. When Topic dispatching is in use, messages matching this subscription are only delivered to the Session callback if they are not delivered to a more specific callback.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pAn opaque Session returned when the Session was created.
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/perfADSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_topicSubscribeExt ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p 
)

Adds a Topic subscription to a Session.

This extended version of the subscribe function allows for more control of the operation through flags. Messages matching the subscription are delivered to the Session's message receive callback. When Topic dispatching is in use, messages matching this subscription are only delivered to the Session callback if they are not delivered to a more specific callback.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pThe opaque Session returned when Session was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
The following subcodes can occur when using SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. Otherwise, such errors are reported when a SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR Session event is received.
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/directPubSub.c, ex/eventMonitor.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/examples/TopicDispatchExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/noLocalPubSub.c, ex/perfTest.c, ex/RRDirectReplier.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, ex/topicDispatch.c, Intro/HelloWorldSub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_topicSubscribeWithDispatch ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
solClient_session_rxMsgDispatchFuncInfo_t funcInfo_p,
void *  correlationTag 
)

Adds a Topic subscription to a Session like solClient_session_topicSubscribeExt(), but this function also allows a different message receive callback and dispatchUser_p to be specified.

Specifying a NULL funcInfo_p or if funcInfo_p references a NULL dispatchCallback_p and a NULL dispatchUser_p makes this function act the same as solClient_session_topicSubscribeExt(). Used in this manner, an application can set the correlationTag, which appears in asynchronouus confirmations (SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_OK). Setting correlationTag is not available when using solClient_session_topicSubscribeExt().

Usually this API is used to provide a separate callback and user pointer for messages received on the given topic. The Session property SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH must be enabled for a non-NULL callback to be specified. When funcInfo_p is non-NULL and a dispatchCallback_p is specified, the callback pointer and dispatchUser_p are stored in an internal callback table. funcInfo_p is not saved by the API.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pThe opaque Session returned when Session was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
funcInfo_pThe message receive callback information. See struct solClient_session_rxMsgDispatchFuncInfo
correlationTagA correlationTag pointer that is returned as is in the confirm or fail sessionEvent for the subscription. This is only used if SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM is set and SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM is not set.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS

A successful call has a return code of SOLCLIENT_OK, except when using SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM without SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. In that case, the return code will be SOLCLIENT_IN_PROGRESS because the call returns without waiting for the operation to complete.

SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
The following subcodes can occur when using SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. Otherwise, such errors are reported when a SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR Session event is received.
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/ios/examples/TopicDispatchExample.m, and ex/topicDispatch.c.
solClient_dllExport solClient_returnCode_t solClient_session_topicUnsubscribe ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  topicSubscription_p 
)

Removes a Topic subscription from a Session.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pThe opaque Session returned when Session was created.
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_topicUnsubscribeExt ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p 
)

Removes a Topic subscription from a Session.

This extended version of the Topic unsubscribe function allows for more control of the operation through flags.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pThe opaque Session returned when Session was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
The following subcodes can occur when using SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. Otherwise, such errors are reported when a SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR Session event is received.
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/directPubSub.c, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/PerfTestExample.m, ex/ios/examples/RedirectLogsExample.m, ex/ios/examples/SdtPubSubMsgDepExample.m, ex/ios/examples/SdtPubSubMsgIndepExample.m, ex/ios/examples/SecureSessionExample.m, ex/ios/intro/HelloWorldSubExample.m, ex/ios/intro/HelloWorldWebSubExample.m, ex/noLocalPubSub.c, ex/sdtPubSubMsgDep.c, ex/sdtPubSubMsgIndep.c, ex/secureSession.c, Intro/HelloWorldSub.c, and Intro/HelloWorldWebSub.c.
solClient_dllExport solClient_returnCode_t solClient_session_topicUnsubscribeWithDispatch ( solClient_opaqueSession_pt  opaqueSession_p,
solClient_subscribeFlags_t  flags,
const char *  topicSubscription_p,
solClient_session_rxMsgDispatchFuncInfo_t funcInfo_p,
void *  correlationTag 
)

Removes a Topic subscription from a Session like solClient_session_topicUnsubscribeExt(), but this function also allows a message receive callback and dispatchUser_p to be specified.

Specifying a NULL funcInfo_p or if funcInfo_p references a NULL dispatchCallback_p and a NULL dispatchUser_p makes this function act the same as solClient_session_topicUnsubscribeExt(). Used in this manner, an application can set the correlationTag which appears in asynchronouus confirmations (SOLCLIENT_SESSION_EVENT_TE_UNSUBSCRIBE_OK). Setting correlationTag is not available when using solClient_session_topicUnsubscribeExt().

Usually this API is used to provide a separate callback and user pointer for messages received on the given topic. The Session property SOLCLIENT_SESSION_PROP_TOPIC_DISPATCH must be enabled for a non-NULL callback to be specified. When funcInfo_p is non-NULL and a dispatchCallback_p is specified, the callback pointer and dispatchUser_p are removed from an internal callback table. funcInfo_p does not have to match the funcInfo_p used in solClient_session_topicSubscribeWithDispatch(). However, the contents referenced in funcInfo_p must match an entry found in the callback table.

See Also
Supported Subscription Syntax
Dispatching Messages Based on a Topic
Parameters
opaqueSession_pThe opaque Session returned when Session was created.
flagsFlags to control the operation. Valid flags for this operation are:
topicSubscription_pThe Topic subscription string (a NULL-terminated UTF-8 string).
funcInfo_pThe message receive callback information. See struct solClient_session_rxMsgDispatchFuncInfo.
correlationTagA correlationTag pointer that is returned as is in the confirm or fail sessionEvent for the subscription. This is only used if SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM is set and SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM is not set.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, SOLCLIENT_FAIL, SOLCLIENT_WOULD_BLOCK, SOLCLIENT_IN_PROGRESS

A successful call has a return code of SOLCLIENT_OK, except when using SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM without SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM, then the return code is SOLCLIENT_IN_PROGRESS because the call returns without waiting for the operation to complete.

SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
The following subcodes can occur when using SOLCLIENT_SUBSCRIBE_FLAGS_WAITFORCONFIRM. Otherwise, such errors are reported when a SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR Session event is received.
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport solClient_returnCode_t solClient_session_validateTopic ( solClient_opaqueSession_pt  opaqueSession_p,
const char *  topicString_p 
)

Check a Topic string against Topic encoding rules for the broker.

This routine is intended for use with solClient_session_sendMsg, and the Topic set in the opaque message pointer. This function should not be used with solClient_session_topicSubscribe. solClient_session_topicSubscribe does its own Topic validation, which includes accepting wildcards. For performance reasons, solClient_session_sendMsg does not validate topics, and this function is provided as a convenience to developers to ensure a Topic is valid before sending a message that could be rejected by the broker. It is expected then, that the same Topic be used for sending many messages.

Parameters
opaqueSession_pThe opaque Session returned when Session was created.
topicString_pThe Topic string (a NULL-terminated UTF-8 string).
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
solClient_dllExport const char* solClient_subCodeToString ( solClient_subCode_t  subCode)

Returns a string representation of the subcode passed in.

Parameters
subCodeThe subcode to convert to a string representation.
Returns
A pointer to a constant character string. This pointer is never NULL.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/ios/Example.m, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/PerfTestExample.m, ex/perfADSub.c, ex/perfTest.c, ex/queueProvision.c, ex/replication.c, and ex/RRGuaranteedReplier.c.
solClient_dllExport solClient_returnCode_t solClient_transactedSession_commit ( solClient_opaqueTransactedSession_pt  transactedSession_p)

Commit the active transaction of a specified Transacted Session.

See Also
Transacted Session
Parameters
transactedSession_pPointer to opaque Transacted Session pointer that was returned when the Transacted Session was created.
Returns
The following subcodes all apply when SOLCLIENT_ROLLBACK is returned. When solClient_transactedSession_commit() returns SOLCLIENT_FAIL, the status of the outstanding commit request cannot be determined. The commit may have succeeded on the message-router before the response was lost. Or the commit request may have failed (roll back). Applications that treat the failure as a rollback must allow for duplicate transactions. The following subcodes may occur:
  • SOLCLIENT_SUBCODE_COMMIT_STATUS_UNKNOWN - This can occur when a commit request is sent and before the response is received the connection failed and was automatically re-established to a standby message router. The API establishes a new transacted session and processing may continue but the status of the last commit request is unknown.
See Also
solClient_subCode for a description of subcodes.
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_transactedSession_createFlow ( solClient_propertyArray_pt  props,
solClient_opaqueTransactedSession_pt  transactedSession_p,
solClient_opaqueFlow_pt flow_p,
solClient_flow_createFuncInfo_t funcInfo_p,
size_t  funcInfoSize 
)

Create a transacted consumer Flow within a specified Transacted Session.

If a Rx Message Callback is provided, messages received on the flow are dispatched to the callback with its usual user_p in a context of a Message Dispatcher thread. If there is no Rx Message Callback (i.e. funcInfo_p-> rxMsgInfo.callback_p=NULL), messages received on the Flow are queued internally. Applications must call solClient_flow_receiveMsg() directly to retrieve the queued messages.

Unlike non-transacted Flows, events and messages received on a transacted Flow are delivered in the context of two different threads. Events are still delivered in a context of the context thread, but messages are dispatched to the Flow Rx message callback with their usual user_p in the context of a Message Dispatcher thread or are retrieved by calling solClient_flow_receiveMsg() from the context of an application thread.

See Also
Transacted Session

The following flow properties are not supported by transacted Flows:

Parameters
propsAn array of name/value string pair pointers to configure Flow properties.
transactedSession_pThe Transacted Session in which the transacted Flow is to be created.
flow_pThe returned opaque Flow pointer that refers to the created Flow.
funcInfo_pA pointer to a structure that provides information on callback functions for events and received messages.
funcInfoSizeThe size of the passed-in funcInfo structure (in bytes) to allow the structure to grow in the future.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL, SOLCLIENT_NOT_READY
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
SOLCLIENT_SUBCODE_PROP_PARAM_CONFLICT
See Also
solClient_subCode for a description of subcodes.
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_transactedSession_destroy ( solClient_opaqueTransactedSession_pt transactedSession_p)

Destroys a previous created Transacted Session.

This operation must not be performed from a callback for associated with the Transacted Session being destroyed. This includes all Flows on the Transacted Session.

See Also
Transacted Session
Parameters
transactedSession_pPointer to opaque Transacted Session pointer that was returned when the Transacted Session was created.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of subcodes.
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_transactedSession_getSessionName ( solClient_opaqueTransactedSession_pt  transactedSession_p,
char *  nameBuf_p,
size_t  bufSize 
)

Retrieve Transacted Session name.

See Also
Transacted Session
Parameters
transactedSession_pOpaque Transacted Session pointer that was returned when the Transacted Session was created.
nameBuf_pA pointer to the buffer provided by the caller in which to place the NULL-terminated transacted session name string. The maximum transacted session name length is SOLCLIENT_TRANSACTEDSESSION_MAX_SESSION_NAME_LENGTH.
bufSizeThe size (in bytes) of the buffer provided by the caller.
Returns
SOLCLIENT_OK, SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of subcodes.
solClient_dllExport solClient_returnCode_t solClient_transactedSession_rollback ( solClient_opaqueTransactedSession_pt  transactedSession_p)

Rollback the active transaction of a specified Transacted Session.

See Also
Transacted Session
Parameters
transactedSession_pPointer to opaque Transacted Session pointer that was returned when the Transacted Session was created.
Returns
SOLCLIENT_OK on success, SOLCLIENT_NOT_READY if underlying session is not active, SOLCLIENT_FAIL if the Transacted Session is no longer active.
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
solClient_dllExport solClient_returnCode_t solClient_transactedSession_sendMsg ( solClient_opaqueTransactedSession_pt  transactedSession_p,
solClient_opaqueMsg_pt  msg_p 
)

Sends an Guaranteed Delivery message on the specified Transacted Session.

The message is composed of a number of optional components that are specified by the msg_p. The application should first allocate a solClient_msg, then use the methods defined in solClientMsg.h to build the message to send.
solClient_transactedSession_sendMsg() returns SOLCLIENT_OK when the message has been successfully copied to the transmit buffer or underlying transport. A successful commit acknowledges published messages delivered to the Solace messaging broker.

See Also
Transacted Session
Parameters
transactedSession_pThe opaque Transacted Session returned when the Transacted Session was created.
msg_pThe opaque message created by solClient_msg_alloc.
Returns
SOLCLIENT_OK, SOLCLIENT_NOT_READY, or SOLCLIENT_FAIL.
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
Examples:
ex/transactions.c.
solClient_dllExport const char* solClient_txStatToString ( solClient_stats_tx_t  txStat)

Returns a string representation of the transmit statistic name for the given statistic constant passed in.

Parameters
txStattransmit statistic constant (solClient_stats_tx_t).
Returns
A pointer to a constant char string. This pointer is never NULL.
solClient_dllExport solClient_returnCode_t solClient_version_get ( solClient_version_info_pt version_p)

Returns version information for the API.

The caller is given a pointer to an internal version structure of type solClient_version_info_t containing the version information.

Parameters
version_pA pointer to a structure to hold the version information.
Returns
SOLCLIENT_OK or SOLCLIENT_FAIL
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
See Also
solClient_subCode for a description of all subcodes.
Examples:
ex/common.c, ex/ios/Example.m, ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.