C CSMP API Documentation

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...

Defines

#define SOLCLIENT_CONTEXT_PROP_TIME_RES_MS   "CONTEXT_TIME_RES_MS"
 The internal timer resolution (in milliseconds).
#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).
#define SOLCLIENT_CONTEXT_PROP_THREAD_AFFINITY   "CONTEXT_THREAD_AFFINITY"
 The desired thread affinity mask for the Context thread.
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_TIME_RES_MS   "50"
 The default value for timer resolution (in milliseconds).
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_CREATE_THREAD   SOLCLIENT_PROP_DISABLE_VAL
 The default value for create Context thread.
#define SOLCLIENT_CONTEXT_PROP_DEFAULT_THREAD_AFFINITY   "0"
 By default, the thread affinity for the auto-created Context thread is not set.
#define SOLCLIENT_SESSION_PROP_USERNAME   "SESSION_USERNAME"
 The username required for authentication.
#define SOLCLIENT_SESSION_PROP_PASSWORD   "SESSION_PASSWORD"
 The password required for authentication.
#define SOLCLIENT_SESSION_PROP_HOST   "SESSION_HOST"
 The IPv4 or IPv6 address or host name to connect to.
#define SOLCLIENT_SESSION_PROP_PORT   "SESSION_PORT"
 Deprecated.
#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).
#define SOLCLIENT_SESSION_PROP_CONNECT_BLOCKING   "SESSION_CONNECT_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking connect operation.
#define SOLCLIENT_SESSION_PROP_SEND_BLOCKING   "SESSION_SEND_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking send operation.
#define SOLCLIENT_SESSION_PROP_SUBSCRIBE_BLOCKING   "SESSION_SUBSCRIBE_BLOCKING"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable blocking subscribe/unsubscribe operation.
#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.
#define SOLCLIENT_SESSION_PROP_BLOCKING_WRITE_TIMEOUT_MS   "SESSION_WRITE_TIMEOUT_MS"
 The timeout period (in milliseconds) for blocking write operation.
#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).
#define SOLCLIENT_SESSION_PROP_SUBCONFIRM_TIMEOUT_MS   "SESSION_SUBCONFIRM_TIMEOUT_MS"
 The timeout period (in milliseconds) for subscription confirm (add or remove).
#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.
#define SOLCLIENT_SESSION_PROP_TCP_NODELAY   "SESSION_TCP_NODELAY"
 Use SOLCLIENT_PROP_ENABLE_VAL to enable TCP no delay.
#define SOLCLIENT_SESSION_PROP_SOCKET_SEND_BUF_SIZE   "SESSION_SOCKET_SEND_BUF_SIZE"
 The value for the socket send buffer size (in bytes).
#define SOLCLIENT_SESSION_PROP_SOCKET_RCV_BUF_SIZE   "SESSION_SOCKET_RCV_BUF_SIZE"
 The value for socket receive buffer size (in bytes).
#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.
#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.
#define SOLCLIENT_SESSION_PROP_APPLICATION_DESCRIPTION   "SESSION_APPLICATION_DESCRIPTION"
 A string that uniquely describes the application instance.
#define SOLCLIENT_SESSION_PROP_CLIENT_MODE   "SESSION_CLIENT_MODE"
 Deprecated.
#define SOLCLIENT_SESSION_PROP_BIND_IP   "SESSION_BIND_IP"
 (Optional) The hostname or IP address of the machine on which the application is running.
#define SOLCLIENT_SESSION_PROP_PUB_WINDOW_SIZE   "SESSION_PUB_WINDOW_SIZE"
 The publisher window size for Guaranteed messages.
#define SOLCLIENT_SESSION_PROP_PUB_ACK_TIMER   "SESSION_PUB_ACK_TIMER"
 The duration of publisher acknowledgment timer (in milliseconds).
#define SOLCLIENT_SESSION_PROP_VPN_NAME   "SESSION_VPN_NAME"
 The name of the Message VPN to attempt to join when connecting to an appliance running SolOS-TR.
#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.
#define SOLCLIENT_SESSION_PROP_CLIENT_NAME   "SESSION_CLIENT_NAME"
 The Session client name that is used during client login to create a unique Session.
#define SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL   "SESSION_COMPRESSION_LEVEL"
 Enables messages to be compressed with ZLIB before transmission and decompressed on receive.
#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.
#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.
#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.
#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.
#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.
#define SOLCLIENT_SESSION_PROP_CONNECT_RETRIES   "SESSION_CONNECT_RETRIES"
 How many times to try to connect to the host appliance (or list of appliances) during connection setup.
#define SOLCLIENT_SESSION_PROP_RECONNECT_RETRIES   "SESSION_RECONNECT_RETRIES"
 How many times to retry to reconnect to the host appliance (or list of appliances) after a connected Session goes down.
#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.
#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.
#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.
#define SOLCLIENT_SESSION_PROP_REPLY_TO_DEFAULT_DEST   SOLCLIENT_SESSION_PROP_P2PINBOX_IN_USE
 Deprecated: see SOLCLIENT_SESSION_PROP_P2PINBOX_IN_USE.
#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.
#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).
#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).
#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.
#define SOLCLIENT_SESSION_PROP_VIRTUAL_ROUTER_NAME   "SESSION_VIRTUAL_ROUTER_NAME"
 A read-only property that indicates the connected appliance's virtual router name.
#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.
#define SOLCLIENT_SESSION_PROP_AD_PUB_ROUTER_WINDOWED_ACK   "SESSION_AD_PUB_ROUTER_WINDOWED_ACK"
 When disabled, initiate a window size of 1 to appliance, but do not wait for acknowledgments before transmitting up to the actual window size.
#define SOLCLIENT_SESSION_PROP_MODIFYPROP_TIMEOUT_MS   "SESSION_MODIFYPROP_TIMEOUT_MS"
 Maximum amount of time (in milliseconds) to wait for session property modification.
#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).
#define SOLCLIENT_SESSION_PROP_SSL_EXCLUDED_PROTOCOLS   "SESSION_SSL_EXCLUDED_PROTOCOLS"
 This property specifies a comma separated list of excluded SSL protocol(s).
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE   "SESSION_SSL_VALIDATE_CERTIFICATE"
 This property indicates if the certificate validation with certificates in the truststore is enabled.
#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.
#define SOLCLIENT_SESSION_PROP_SSL_CLIENT_CERTIFICATE_FILE   "SESSION_SSL_CLIENT_CERTIFICATE_FILE"
 This property specifies the client certificate file name.
#define SOLCLIENT_SESSION_PROP_SSL_CLIENT_PRIVATE_KEY_FILE   "SESSION_SSL_CLIENT_PRIVATE_KEY_FILE"
 This property specifies the client private key file name.
#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.
#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.
#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.
#define SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME   "SESSION_AUTHENTICATION_SCHEME"
 This property specifies the authentication scheme.
#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).
#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.
#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.
#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.
#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.
#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.
#define SOLCLIENT_SESSION_PROP_GUARANTEED_WITH_WEB_TRANSPORT   ("SESSION_GUARANTEED_WITH_WEB_TRANSPORT")
 Enables guaranteed messaging with web transport protocols.
#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.
#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 is received.
#define SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST   "SESSION_SSL_VALIDATE_CERTIFICATE_HOST"
 This property indicates if the sesssion connection should fail when a certificate with an invalid host is received.
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SUITES   "SESSION_SSL_CIPHER_SUITES"
 This property specifies a comma separated list of the cipher suites.
#define SOLCLIENT_SESSION_PROP_SSL_TRUST_STORE_DIR   "SESSION_SSL_TRUST_STORE_DIR"
 This property specifies the directory where the trusted certificates are.
#define SOLCLIENT_SESSION_PROP_SSL_TRUSTED_COMMON_NAME_LIST   "SESSION_SSL_TRUSTED_COMMON_NAME_LIST"
 This property specifies a comma separated list of acceptable common names in certificate validation.
#define SOLCLIENT_SESSION_PROP_DEFAULT_USERNAME   ""
 The default value for username.
#define SOLCLIENT_SESSION_PROP_DEFAULT_PASSWORD   ""
 The default value for password.
#define SOLCLIENT_SESSION_PROP_DEFAULT_HOST   "127.0.0.1"
 The default value for the appliance IP address.
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT   "55555"
 The default value for the appliance TCP port when compression is not in use (SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL of zero).
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT_COMPRESSION   "55003"
 The default value for the appliance TCP port when compression is in use (SOLCLIENT_SESSION_PROP_COMPRESSION_LEVEL of non-zero).
#define SOLCLIENT_SESSION_PROP_DEFAULT_PORT_SSL   "55443"
 The default value for the appliance SSL port over TCP regardless of compression.
#define SOLCLIENT_SESSION_PROP_DEFAULT_BUFFER_SIZE   "90000"
 The default size (in bytes) of internal buffer for transmit buffering.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking connect operation.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SEND_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking send operation.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBE_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is blocking subscribe/unsubscribe operation.
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_BLOCKING_WRITE_TIMEOUT_MS   "100000"
 The default blocking write timeout (in milliseconds).
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_TIMEOUT_MS   "30000"
 The default connect timeout (in milliseconds).
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBCONFIRM_TIMEOUT_MS   "10000"
 The default subscription confirm (add or remove) timeout (in milliseconds).
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_TCP_NODELAY   SOLCLIENT_PROP_ENABLE_VAL
 The default value for TCP no delay.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SOCKET_SEND_BUF_SIZE   "90000"
 Use 0 to set the socket send buffer size to the operating system default.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SOCKET_RCV_BUF_SIZE   "150000"
 Use 0 to set the socket receive buffer size to the operating system default.
#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.
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_APPLICATION_DESCRIPTION   ""
 The default value for the application description.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CLIENT_MODE   SOLCLIENT_PROP_DISABLE_VAL
 The default value for client mode.
#define SOLCLIENT_SESSION_PROP_DEFAULT_BIND_IP   ""
 The default value for local IP on connect is unset (bind to any) .
#define SOLCLIENT_SESSION_PROP_DEFAULT_PUB_ACK_TIMER   "2000"
 The default value for publisher acknowledgment timer (in milliseconds).
#define SOLCLIENT_SESSION_PROP_DEFAULT_PUB_WINDOW_SIZE   "50"
 The default Publisher Window size for Guaranteed messages.
#define SOLCLIENT_SESSION_PROP_DEFAULT_VPN_NAME   ""
 The default Message VPN name to connect this Session to.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CLIENT_NAME   ""
 The default Session Client Name is a null string to have the C API generate one.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBER_LOCAL_PRIORITY   "1"
 The default subscriber priority for locally published messages.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SUBSCRIBER_NETWORK_PRIORITY   "1"
 The default subscriber priority for remotely published messages.
#define SOLCLIENT_SESSION_PROP_DEFAULT_COMPRESSION_LEVEL   "0"
 The default compression level (no compression).
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_RCV_TIMESTAMPS   SOLCLIENT_PROP_DISABLE_VAL
 The default receive message timestamps.
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SEND_TIMESTAMPS   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include send message timestamps.
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SENDER_ID   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include a sender id.
#define SOLCLIENT_SESSION_PROP_DEFAULT_GENERATE_SEQUENCE_NUMBER   SOLCLIENT_PROP_DISABLE_VAL
 The default for automatically include a sequence number.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_RETRIES_PER_HOST   "0"
 The default number of connect retries per host.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CONNECT_RETRIES   "0"
 The default number of connect retries.
#define SOLCLIENT_SESSION_PROP_DEFAULT_RECONNECT_RETRIES   "0"
 The default number of reconnect retries.
#define SOLCLIENT_SESSION_PROP_DEFAULT_RECONNECT_RETRY_WAIT_MS   "3000"
 The default amount of time in (milliseconds) to wait before attempting a reconnect attempt.
#define SOLCLIENT_SESSION_PROP_DEFAULT_REAPPLY_SUBSCRIPTIONS   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_REAPPLY_SUBSCRIPTIONS.
#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).
#define SOLCLIENT_SESSION_PROP_DEFAULT_PROVISION_TIMEOUT_MS   "3000"
 The default amount of time (in milliseconds) to wait for a provision command.
#define SOLCLIENT_SESSION_PROP_DEFAULT_MODIFYPROP_TIMEOUT_MS   "10000"
 The default amount of time (in milliseconds) to wait for session property modification.
#define SOLCLIENT_SESSION_PROP_DEFAULT_CALCULATE_EXPIRATION_TIME   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_CALCULATE_MESSAGE_EXPIRATION.
#define SOLCLIENT_SESSION_PROP_DEFAULT_NO_LOCAL   SOLCLIENT_PROP_DISABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_NO_LOCAL.
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_EXCLUDED_PROTOCOLS   ""
 The default value for SOLCLIENT_SESSION_PROP_SSL_EXCLUDED_PROTOCOLS.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_DATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_DATE.
#define SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_HOST   SOLCLIENT_PROP_ENABLE_VAL
 The default value for SOLCLIENT_SESSION_PROP_SSL_VALIDATE_CERTIFICATE_HOST.
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_INITIAL_RECEIVE_BUFFER_SIZE   "0"
 The default value for SOLCLIENT_SESSION_PROP_INITIAL_RECEIVE_BUFFER_SIZE.
#define SOLCLIENT_SESSION_PROP_DEFAULT_AUTHENTICATION_SCHEME   SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME_BASIC
 The default value for SOLCLIENT_SESSION_PROP_AUTHENTICATION_SCHEME.
#define SOLCLIENT_SESSION_PROP_DEFAULT_KRB_SERVICE_NAME   "solace"
 The default for SOLCLIENT_SESSION_PROP_KRB_SERVICE_NAME.
#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.
#define SOLCLIENT_SESSION_PROP_DEFAULT_WEB_TRANSPORT_PROTOCOL   SOLCLIENT_TRANSPORT_PROTOCOL_NULL
 The default value for web messaging Transport Protocol.
#define SOLCLIENT_SESSION_PROP_DEFAULT_TRANSPORT_PROTOCOL_DOWNGRADE_TIMEOUT_MS   ("3000")
 The default value for the Transport Protocol downgrade timeout in milliseconds.
#define SOLCLIENT_SESSION_PROP_DEFAULT_GUARANTEED_WITH_WEB_TRANSPORT   SOLCLIENT_PROP_DISABLE_VAL
 The default for enabling guaranteed messaging with web transports.
#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.
#define SOLCLIENT_ERRORINFO_STR_SIZE   (256)
 The maximum size of error string including terminating NULL character.
#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
 Retrieve Transacted Session name.
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.
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.
#define SOLCLIENT_FD_EVENT_WRITE   (0x02)
 A writeable file descriptor event.
#define SOLCLIENT_FD_EVENT_ALL   (0x03)
 This type represents all defined file descriptor events.
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.
#define SOLCLIENT_COS_2   (0x01)
 The middle class of service value.
#define SOLCLIENT_COS_3   (0x02)
 The highest class of service value.
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.
#define SOLCLIENT_DELIVERY_MODE_PERSISTENT   (0x10)
 Send a Persistent message.
#define SOLCLIENT_DELIVERY_MODE_NONPERSISTENT   (0x20)
 Send a Non-Persistent message.
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.
#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 appliance.
#define SOLCLIENT_SUBSCRIBE_FLAGS_REQUEST_CONFIRM   (0x10)
 Requests a confirmation for the subscribe/unsubscribe operation.
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.
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.
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.
#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.
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.
#define SOLCLIENT_PROP_DISABLE_VAL   "0"
 The value used to disable the property.
Global Configuration Properties

Items that can be configured globally for an API instance. Global properties are set in solClient_initialize(). Global properties may not be changed after this, they exist for the duration of the API instance.

Note that the data buffer sizes for quantas 0 through 4 must be in increasing order of size.

#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.
#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.
#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.
#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.
#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.
#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.
#define SOLCLIENT_GLOBAL_PROP_GSS_KRB_LIB   "GLOBAL_GSS_KRB_LIB"
 The GSS Kerberos library name. Default:

#define SOLCLIENT_GLOBAL_PROP_IBM_CODESET   "GLOBAL_IBM_CODESET"
 Only valid on the z/TPF mainframe.
#define SOLCLIENT_GLOBAL_PROP_SSL_LIB   "GLOBAL_SSL_LIB"
 The TLS (Transport Layer Security) and SSL (Secure Sockets Layer) library name. Default:

#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:

Default global configuration properties

The default values for global configuration properties that are not explicitly set.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_0   "10240"
 The default size (10 KB) of data buffers in the pool of smallest buffers.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_1   "32768"
 The default size (32 KB) of data buffers in the second pool of buffers.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_2   "65536"
 The default size (64 KB) of data buffers in the third pool of buffers.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_3   "262144"
 The default size (256 KB) of data buffers in the 4th pool of buffers.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_4   "1048576"
 The default size (1 MB) of data buffers in the 5th (last) pool of buffers.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_MAXPOOLMEM   "1073741824"
 The default maximum memory pool size (1 GB).
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_LINUX   "libgssapi_krb5.so.2"
 The default GSS Kerberos library name for Linux.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_SOLARIS   "mech_krb5.so.1"
 The default GSS Kerberos library name for Solaris.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_WINDOWS   "secur32.dll"
 The default GSS Kerberos library name for Windows.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_AIX   "libgssapi_krb5.a(libgssapi_krb5.a.so)"
 The default GSS Kerberos library name for AIX.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_IBM_CODESET   "TPF_CCSID_IBM1047"
 The default IBM character set in use by the application.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_UNIX   "libssl.so"
 The default SSL library name for Unix (including Linux and AIX).
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_MACOSX   "libssl.dylib"
 The default SSL library name for MacOSX.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_VMS   "SSL1$LIBSSL_SHR.EXE"
 The default SSL library name for OpenVMS.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_WINDOWS   "libssl-1_1.dll"
 The default SSL library name for Windows.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_UNIX   "libcrypto.so"
 The default crypto library name for Unix (including Linux and AIX).
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_MACOSX   "libcrypto.dylib"
 The default crypto library name for MacOSX.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_VMS   "SSL1$LIBCRYPTO_SHR.EXE"
 The default crypto library name for OpenVMS.
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_WINDOWS   "libcrypto-1_1.dll"
 The default crypto library name for Windows.
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.
Session transport protocol types

Definition of the valid set of transport protocols when setting SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL, or returned via the read-only session property SOLCLIENT_SESSION_WEB_PROP_TRANSPORT_PROTOCOL_IN_USE Note: the use of SOLCLIENT_SESSION_PROP_GUARANTEED_WITH_WEB_TRANSPORT effects what protocol are available for properties SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL_LIST and SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL

#define SOLCLIENT_TRANSPORT_PROTOCOL_NULL   ("")
 An empty value for SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL means "use best available".
#define SOLCLIENT_TRANSPORT_PROTOCOL_WS_BINARY   ("WS_BINARY")
 Binary-encoded, using the WebSocket protocol, supports guaranteed web transport.
#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY_STREAMING   ("HTTP_BINARY_STREAMING")
 Binary encoded, responses are received in streaming mode for higher efficiency.
#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY   ("HTTP_BINARY")
 Binary-encoded, responses are received in COMET style.
Transport Protocols for SSL Downgrade

#define SOLCLIENT_TRANSPORT_PROTOCOL_PLAIN_TEXT   ("PLAIN_TEXT")
Authentication Scheme

#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"
Unbind Failure Actions

#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_RETRY   "UNBIND_FAIL_ACTION_RETRY"
#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_DISCONNECT   "UNBIND_FAIL_ACTION_DISCONNECT"
Guaranteed Delivery Reconnect Fail Actions

Defines the valid set of actions the API will take if it is unable to reconnect guaranteed delivery after a session reconnect.

This will occur when a host-list is used, such as for disaster recovery. After session reconnect to the next router in the host-list the guaranteed delivery reconnect will not succeed as guaranteed delivery state is only preserved between a high-availability pair.

#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.
#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.
SSL ciphers

#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")
SSL Protocols

#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")
Configuration Properties Maximum Sizes

The maximum sizes for certain configuration property values.

Maximum string lengths do not include the terminating NULL. The actual strings including the terminating NULL can be one character longer.

#define SOLCLIENT_SESSION_PROP_MAX_USERNAME_LEN   (189)
 The maximum length of username string (Session property), not including the NULL terminator.
#define SOLCLIENT_SESSION_PROP_MAX_PASSWORD_LEN   (128)
 The maximum length of password string (Session property), not including the NULL terminator.
#define SOLCLIENT_SESSION_PROP_MAX_HOSTS   (16)
 The maximum number of hosts that can appear in the Session host property.
#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.
#define SOLCLIENT_SESSION_PROP_MAX_CLIENT_NAME_LEN   (160)
 The maximum length of client name string (Session property), not including the NULL terminator.
#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.
#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.
Flow Configuration Properties

Items that can be configured for a Flow.

#define SOLCLIENT_FLOW_PROP_BIND_BLOCKING   "FLOW_BIND_BLOCKING"
 This property controls whether or not to block in solClient_session_createFlow().
#define SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS   "FLOW_BIND_TIMEOUT_MS"
 The timeout (in milliseconds) used when creating a Flow in blocking mode.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_ID   "FLOW_BIND_ENTITY_ID"
 The type of object to which this Flow is bound.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE   "FLOW_BIND_ENTITY_DURABLE"
 The durability of the object to which this Flow is bound.
#define SOLCLIENT_FLOW_PROP_BIND_NAME   "FLOW_BIND_NAME"
 The name of the Queue or Topic Endpoint that is the target of the bind.
#define SOLCLIENT_FLOW_PROP_WINDOWSIZE   "FLOW_WINDOWSIZE"
 The Guaranteed message window size for the Flow.
#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.
#define SOLCLIENT_FLOW_PROP_ACKMODE   "FLOW_ACKMODE"
 Controls how acknowledgments are generated for received Guaranteed messages.
#define SOLCLIENT_FLOW_PROP_TOPIC   "FLOW_TOPIC"
 When binding to a Topic endpoint, the Topic may be set in the bind.
#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.
#define SOLCLIENT_FLOW_PROP_ACK_TIMER_MS   "FLOW_ACK_TIMER_MS"
 The duration of the Flow acknowledgment timer (in milliseconds).
#define SOLCLIENT_FLOW_PROP_ACK_THRESHOLD   "FLOW_ACK_THRESHOLD"
 The threshold for sending an acknowledgement, configured as a percentage.
#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.
#define SOLCLIENT_FLOW_PROP_SELECTOR   "FLOW_SELECTOR"
 A Java Message System (JMS) defined selector.
#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.
#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE   "FLOW_FORWARDING_MODE"
 Set the forwarding mode for messages received on the Flow.
#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 and when the SOLCLIENT_FLOW_PROP_FORWARDING_MODE is set to SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD.
#define SOLCLIENT_FLOW_PROP_BROWSER   "FLOW_BROWSER"
 Set browser mode on flow and signal it is a browser flow to appliance on bind.
#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.
#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.
#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.
#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.
Default Flow Configuration Properties

The default values for Flow configuration.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL
 The default is bind blocking.
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_TIMEOUT_MS   "10000"
 The default bind timeout in milliseconds.
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_ID   SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB
 The default bind target type.
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_DURABLE   SOLCLIENT_PROP_ENABLE_VAL
 The default bind target durability.
#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_NAME   ""
 The default bind target.
#define SOLCLIENT_FLOW_PROP_DEFAULT_WINDOWSIZE   "255"
 The default Flow window size.
#define SOLCLIENT_FLOW_PROP_DEFAULT_AUTOACK   SOLCLIENT_PROP_ENABLE_VAL
 The default acknowledgment mode is AutoAcknowledgment.
#define SOLCLIENT_FLOW_PROP_DEFAULT_TOPIC   ""
 The default Topic for a Topic Endpoint bind.
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_BIND_TRIES   "3"
 The default maximum number of bind attempts.
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_TIMER_MS   "1000"
 The default Flow acknowledgment timer in milliseconds.
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_THRESHOLD   "60"
 The default threshold for sending an acknowledgment, as a percentage of the Flow window size.
#define SOLCLIENT_FLOW_PROP_DEFAULT_START_STATE   SOLCLIENT_PROP_ENABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_START_STATE property.
#define SOLCLIENT_FLOW_PROP_DEFAULT_SELECTOR   ""
 The default selector when binding to an endpoint.
#define SOLCLIENT_FLOW_PROP_DEFAULT_NO_LOCAL   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_NO_LOCAL property.
#define SOLCLIENT_FLOW_PROP_DEFAULT_FORWARDING_MODE   SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD
 The default value for the SOLCLIENT_FLOW_PROP_FORWARDING_MODE property.
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_UNACKED_MESSAGES   "-1"
 The default value for SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES.
#define SOLCLIENT_FLOW_PROP_DEFAULT_BROWSER   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_BROWSER property.
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACTIVE_FLOW_IND   SOLCLIENT_PROP_DISABLE_VAL
 The default value for the SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND property.
#define SOLCLIENT_FLOW_PROP_DEFAULT_REPLAY_START_LOCATION   ""
 The default value for SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION is no replay requested.
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_RECONNECT_TRIES   "-1"
 The default value for SOLCLIENT_FLOW_PROP_MAX_RECONNECT_TRIES.
#define SOLCLIENT_FLOW_PROP_DEFAULT_RECONNECT_RETRY_INTERVAL_MS   "3000"
 The default reconnect retry interval timer.
Flow Bind Entities

#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB   "1"
 A bind target of subscriber.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_QUEUE   "2"
 A bind target of Queue.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE   "3"
 A bind target of Topic Endpoint.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DTE   SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE
 Deprecated name; SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE is preferred.
Flow Acknowledgment Modes

#define SOLCLIENT_FLOW_PROP_ACKMODE_AUTO   "1"
 Automatic application acknowledgment of all received messages.
#define SOLCLIENT_FLOW_PROP_ACKMODE_CLIENT   "2"
 Client must call solClient_flow_sendAck() to acknowledge the msgId specified.
Flow Forwarding Modes

By default, all Guaranteed messages are stored in the Solace messaging appliance before being forwarded (SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD). In this manner, when publishers receive a Guaranteed delivery acknowledgment, it is assured that all matching endpoint subscribers can eventually receive the message. Similiarly subscribers currently unbound from the topic-endpoint or queue, will receive the Guaranteed message after the next bind.

Beginning with release 5.3 of the Solace messaging appliance, it is possible to configure an endpoint connection as SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH. The Session capability, SOLCLIENT_SESSION_CAPABILITY_CUT_THROUGH is true on Sessions that support this mode. In this manner, published messages are forwarded by the appliance as soon as they are received and adding the message to persistent storage is undertaken in parallel. This method of operation can significantly reduce end-to-end latency on message delivery.

However, applications must be aware that the message store operation may have not succeeded. The publisher application may be notified of a publishing failure when the subscribing application successfully receives the message. This can lead to duplication if the publishers chooses to resend the failed message. It also means that there is no guarantee that a received message is available in persistent store on endpoint. So if a receiving applications chooses to discard the received message, unbinding (solClient_flow_destroy()) and rebinding (solClient_session_createFlow()) to the Flow is not guaranteed to redeliver the discard message such as would be the case in SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD mode.

Further, ordering and delivering requirements place further limits on the use of SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH. A Session may have only one SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH configured Flow. With one Flow in this mode, the same Session can support any number of parallel Flows that do not set SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH (that is, in the default forwarding mode, SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD).

#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD   "1"
 The appliance stores all messages in persistent storage before forwarding on the Flow.
#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH   "2"
 The appliance stores all messages in persistent storage after forwarding on the Flow.
Endpoint Properties

Endpoint properties are passed to solClient_session_endpointProvision()/solClient_session_endpointDeprovision(). The properties describe the endpoint (Queue or Topic Endpoint) to be created or destroyed on the target appliance.

Endpoint properties can be used to describe a non-durable endpoint (Queue or Topic Endpoint) in solClient_session_createFlow().

Endpoint properties are also used to identify in the endpoint (Queue or ClientName) in solClient_session_endpointTopicSubscribe() and solClient_session_endpointTopicUnsubscribe(). Only in this interface is the special endpoint, SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME a valid option. Authorized Sessions can add a subscription to queues or to other client Sessions.

Items that can be configured for a create endpoint operation.

#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.
#define SOLCLIENT_ENDPOINT_PROP_NAME   "ENDPOINT_NAME"
 The name of the Queue or Topic endpoint as a NULL-terminated UTF-8 encoded string.
#define SOLCLIENT_ENDPOINT_PROP_DURABLE   "ENDPOINT_DURABLE"
 The durability of the endpoint to name.
#define SOLCLIENT_ENDPOINT_PROP_PERMISSION   "ENDPOINT_PERMISSION"
 The created entity's permissions, a single character string.
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE   "ENDPOINT_ACCESSTYPE"
 Sets the access type for the endpoint.
#define SOLCLIENT_ENDPOINT_PROP_QUOTA_MB   "ENDPOINT_QUOTA_MB"
 Maximum quota (in megabytes) for the endpoint.
#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_SIZE   "ENDPOINT_MAXMSG_SIZE"
 Maximum size (in bytes) for any one message stored in the endpoint.
#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.
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_BEHAVIOR   "ENDPOINT_DISCARD_BEHAVIOR"
 When a message cannot be added to an endpoint (for example, maximum quota (ENDPOINT_QUOTA_MB) exceeded), this property controls the action the appliance will perform towards the publisher.
#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_REDELIVERY   "ENDPOINT_MAXMSG_REDELIVERY"
 Defines how many message redelivery retries before discarding or moving the message to the DMQ.
Default Endpoint Configuration Properties

#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_ID   SOLCLIENT_ENDPOINT_PROP_TE
 The endpoint type of the endpoint.
#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_DURABLE   SOLCLIENT_PROP_ENABLE_VAL
 Whether the endpoint is durable.
#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.
Endpoint Naming Entities, used as values for ENDPOINT properties in
#define SOLCLIENT_ENDPOINT_PROP_QUEUE   "2"
 Request is for a Queue.
#define SOLCLIENT_ENDPOINT_PROP_TE   "3"
 Request is for a Topic Endpoint.
#define SOLCLIENT_ENDPOINT_PROP_CLIENT_NAME   "4"
 Request is for a Client name (solClient_session_endpointTopicSubscribe() / solClient_session_endpointTopicUnsubscribe() only.
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.
#define SOLCLIENT_ENDPOINT_PROP_ACCESSTYPE_EXCLUSIVE   "1"
 An exclusive Queue.
Endpoint Permissions

#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_PERM_CONSUME   "c"
 Consumer permission other clients may read and consume messages.
#define SOLCLIENT_ENDPOINT_PERM_MODIFY_TOPIC   "m"
 Modify Topic permission other clients may read and consume messages, and modify Topic on a Topic Endpoint.
#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.
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.
#define SOLCLIENT_ENDPOINT_PROP_DISCARD_NOTIFY_SENDER_OFF   "2"
 Discard the message and acknowledge it.
Provision Flags

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

#define SOLCLIENT_PROVISION_FLAGS_WAITFORCONFIRM   (0x01)
 The provision operation blocks until it has completed successfully on the appliance or failed.
#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).
Replay Start Location

#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING   "BEGINNING"
 Replay all messages in the replay log.
Session Capabilities

The capabilities of the Session after connecting to a peer. Capabilities can vary depending on the appliance platform or peer connection. Capabilities can be retrieved with the solClient_session_getCapability function.

#define SOLCLIENT_SESSION_CAPABILITY_PUB_GUARANTEED   "SESSION_CAPABILITY_PUB_GUARANTEED"
 Boolean - The Session allows publishing of Guaranteed messages.
#define SOLCLIENT_SESSION_CAPABILITY_SUB_FLOW_GUARANTEED   "SESSION_CAPABILITY_SUB_FLOW_GUARANTEED"
 Boolean - The Session allows binding a Guaranteed Flow to an endpoint.
#define SOLCLIENT_SESSION_CAPABILITY_BROWSER   "SESSION_CAPABILITY_BROWSER"
 Boolean - The Session allows binding to a Queue as a Browser.
#define SOLCLIENT_SESSION_CAPABILITY_TEMP_ENDPOINT   "SESSION_CAPABILITY_TEMP_ENDPOINT"
 Boolean - The Session allows the creation of temporary endpoints (Queues / TopicEndpoints).
#define SOLCLIENT_SESSION_CAPABILITY_JNDI   "SESSION_CAPABILITY_JNDI"
 Boolean - The Session accepts JNDI queries.
#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSION   "SESSION_CAPABILITY_COMPRESSION"
 Boolean - The Session accepts compressed (DEFLATE) data.
#define SOLCLIENT_SESSION_CAPABILITY_SELECTOR   "SESSION_CAPABILITY_SELECTOR"
 Boolean - The Session supports a selector on Flows.
#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_MANAGEMENT   "SESSION_CAPABILITY_ENDPOINT_MANAGEMENT"
 The Session is allowed to create/delete durable endpoints dynamically.
#define SOLCLIENT_SESSION_PEER_PLATFORM   "SESSION_PEER_PLATFORM"
 String - A appliance/peer returned string that describes the hardware platform.
#define SOLCLIENT_SESSION_PEER_SOFTWARE_DATE   "SESSION_PEER_SOFTWARE_DATE"
 String - A appliance/peer returned string that contains the release date for the appliance software.
#define SOLCLIENT_SESSION_PEER_SOFTWARE_VERSION   "SESSION_PEER_SOFTWARE_VERSION"
 String - A appliance/peer returned string that contains the version information.
#define SOLCLIENT_SESSION_PEER_PORT_SPEED   "SESSION_PEER_PORT_SPEED"
 Uint32 - The maximum rate (in Megabits/second) supported by the appliance/peer port.
#define SOLCLIENT_SESSION_PEER_PORT_TYPE   "SESSION_PEER_PORT_TYPE"
 String - The appliance/peer port type.
#define SOLCLIENT_SESSION_PEER_ROUTER_NAME   "SESSION_PEER_ROUTER_NAME"
 String - The appliance/peer Appliance Name, typically used to direct management requests.
#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.
#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.
#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.
#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.
#define SOLCLIENT_SESSION_CAPABILITY_SUBSCRIPTION_MANAGER   "SESSION_CAPABILITY_SUBSCRIPTION_MANAGER"
 Boolean - The appliance supports adding subscriptions on behalf of other client names.
#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_ELIDING   "SESSION_CAPABILITY_MESSAGE_ELIDING"
 Boolean - The Session supports message eliding.
#define SOLCLIENT_SESSION_CAPABILITY_NO_LOCAL   "SESSION_CAPABILITY_NO_LOCAL"
 Boolean - The Session supports No Local.
#define SOLCLIENT_SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING   "SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING"
 Boolean - The peer can insert per Topic sequence numbers.
#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR   "SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR"
 Boolean - The peer endpoints can be provisioned with discard behavior.
#define SOLCLIENT_SESSION_CAPABILITY_CUT_THROUGH   "SESSION_CAPABILITY_CUT_THROUGH"
 Boolean - The peer supports the cut-through forwarding mode for Guaranteed message delivery.
#define SOLCLIENT_SESSION_CAPABILITY_ACTIVE_FLOW_INDICATION   "SESSION_CAPABILITY_ACTIVE_FLOW_INDICATION"
 Boolean - TRUE if session supports active flow indication parameter.
#define SOLCLIENT_SESSION_CAPABILITY_TRANSACTED_SESSION   "SESSION_CAPABILITY_TRANSACTED_SESSION"
 Boolean - The Session allows Guaranteed Data Transacted Sessions.
#define SOLCLIENT_SESSION_CAPABILITY_OPENMAMA   "SESSION_CAPABILITY_OPENMAMA"
 Boolean - The Session allows the OpenMAMA API to be used.
#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_REPLAY   "SESSION_CAPABILITY_MESSAGE_REPLAY"
 Boolean - The Session allow Message Replay on flow create.
#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSED_SSL   "SESSION_CAPABILITY_COMPRESSED_SSL"
 Boolean - The peer can support ssl downgrade to compression.
#define SOLCLIENT_SESSION_CAPABILITY_LONG_SELECTORS   "SESSION_CAPABILITY_LONG_SELECTORS"
 Boolean - The peer can support selectors longer than 1023 bytes.
#define SOLCLIENT_SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS   "SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS"
 Boolean - The peer can support #shared and #noexport subscriptions.
#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.
TransactedSessionProps

#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.
#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.
#define SOLCLIENT_TRANSACTEDSESSION_PROP_REQUESTREPLY_TIMEOUT_MS   "TRANSACTEDSESSION_REQUESTREPLY_TIMEOUT_MS"
 Timeout (in milliseconds) to wait for a response.
DefaultTransactedSessionProps

#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.
#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.
#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_REQUESTREPLY_TIMEOUT_MS   "10000"
 The default Transacted Session request timer in milliseconds.
Limits on sizes of message portions

#define SOLCLIENT_BUFINFO_MAX_USER_DATA_SIZE   (36)
 The maximum size allowed for the user-data portion.
#define SOLCLIENT_BUFINFO_MAX_CORRELATION_TAG_SIZE   (16)
 The maximum size allowed for the correlation tag portion.
#define SOLCLIENT_BUFINFO_MAX_TOPIC_SIZE   (250)
 The maximum size allowed for the topic portion (not including the terminating NULL).
#define SOLCLIENT_BUFINFO_MAX_QUEUENAME_SIZE   (250)
 The maximum size allowed for the Queue name portion (not including the terminating NULL).
#define SOLCLIENT_BUFINFO_MAX_DURABLE_QUEUENAME_SIZE   (200)
 The maximum size allowed for a durable Queue name (not including the terminating NULL).
#define SOLCLIENT_SESSION_SEND_MULTIPLE_LIMIT   50
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.
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.
#define solClient_log_va_list(level, format_p, ap)
 Allows the application to raise a log that is similar to solClient_log.

Typedefs

typedef void ** solClient_opaquePointer_pt
 An opaque pointer to a pointer.
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.
typedef enum
solClient_rxMsgCallback_returnCode 
solClient_rxMsgCallback_returnCode_t
typedef enum solClient_subCode solClient_subCode_t
 Type for API sub codes.
typedef enum solClient_log_level solClient_log_level_t
 Type for log levels.
typedef enum solClient_log_category solClient_log_category_t
 Type for log filter categories.
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.
typedef solClient_uint32_t solClient_subscribeFlags_t
 A set of flags that can be provided to solClient_session_topicSubscribeExt() and solClient_session_topicUnsubscribeExt().
typedef solClient_uint32_t solClient_session_responseCode_t
 An error response code that is returned with Session events.
typedef solClient_uint64_t solClient_msgId_t
 A unique msgId assigned to each Persistent and Non-Persistent message.
typedef solClient_uint32_t solClient_modifyPropFlags_t
 A set of flags that can be provided to a solClient_session_modifyClientInfo() call.
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() .
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).
typedef solClient_uint64_t solClient_stats_t
 Type of a statistics value.
typedef solClient_uint64_tsolClient_stats_pt
 Type of a pointer to a statistics value.
typedef enum solClient_stats_rx solClient_stats_rx_t
 Type that indicates which receive statistic.
typedef enum solClient_stats_tx solClient_stats_tx_t
 Type that indicates which transmit statistic.
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.
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.
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.
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.
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.
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.
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.
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.
typedef void(* solClient_log_callbackFunc_t )(solClient_log_callbackInfo_pt logInfo_p, void *user_p)
 A callback prototype for generated logs.
typedef void(* solClient_context_timerCallbackFunc_t )(solClient_opaqueContext_pt opaqueContext_p, void *user_p)
 A callback prototype for timer expiry.
typedef enum
solClient_context_timerMode 
solClient_context_timerMode_t
 Type of timer to start through solClient_context_startTimer().
typedef enum solClient_dispatchType solClient_dispatchType_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.
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.
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.
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.
typedef signed char solClient_int8_t
 8-bit signed integer type.
typedef unsigned short solClient_uint16_t
 16-bit unsigned integer type.
typedef short solClient_int16_t
 16-bit signed integer type.
typedef unsigned char solClient_bool_t
 Boolean type (non-zero is true, 0 is false) .
typedef wint_t solClient_wchar_t
 Wide character type (16-bit unicode character).
typedef char ** solClient_propertyArray_pt
 pointer to an array of string pointers for properties
typedef long long solClient_int64_t
 64-bit signed integer type.
typedef unsigned long long solClient_uint64_t
 64-bit unsigned integer type.
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.
typedef void * solClient_opaqueSession_pt
 An opaque pointer to a Session.
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_opaqueContainer_pt
 An opaque pointer to a container (such as a map or stream).
typedef void * solClient_opaqueDatablock_pt
 An opaque pointer to a data block.
typedef void * solClient_opaqueTransactedSession_pt
 An opaque pointer to a Transacted Session.
Type for a timer identifier

typedef solClient_uint32_t solClient_context_timerId_t
 Type for a timer identifier.

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
}
 

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_NUM_STATS = 37
}
 

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...

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.
solClient_dllExport
solClient_returnCode_t 
solClient_cleanup (void)
 This function may be called after use of the API is completed.
solClient_dllExport const char * solClient_returnCodeToString (solClient_returnCode_t returnCode)
 Returns a string representation of the return code passed in.
solClient_dllExport const char * solClient_subCodeToString (solClient_subCode_t subCode)
 Returns a string representation of the subcode passed in.
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.
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.
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.
solClient_dllExport void solClient_resetLastErrorInfo (void)
 Clears the last error info, which is recorded on a per-thread basis.
solClient_dllExport
solClient_returnCode_t 
solClient_version_get (solClient_version_info_pt *version_p)
 Returns version information for the API.
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.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_log_unsetCallback (void)
 Reset the log callback function to default log out behavior.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_context_destroy (solClient_opaqueContext_pt *opaqueContext_p)
 Destroys a previously created Context.
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.
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.
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.
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.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_session_destroy (solClient_opaqueSession_pt *opaqueSession_p)
 Destroys a previously created Session.
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.
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.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_session_connect (solClient_opaqueSession_pt opaqueSession_p)
 Connects the specified Session.
solClient_dllExport
solClient_returnCode_t 
solClient_session_disconnect (solClient_opaqueSession_pt opaqueSession_p)
 Disconnects the specified Session.
solClient_dllExport
solClient_returnCode_t 
solClient_session_startAssuredPublishing (solClient_opaqueSession_pt opaqueSession_p)
 This is a deprecated function.
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.
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_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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicSubscribe (solClient_opaqueSession_pt opaqueSession_p, const char *topicSubscription_p)
 Adds a Topic subscription to a Session.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_session_topicUnsubscribe (solClient_opaqueSession_pt opaqueSession_p, const char *topicSubscription_p)
 Removes a Topic subscription from a Session.
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.
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.
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 appliance.
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 appliance.
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.
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.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_session_createTemporaryTopicName (solClient_opaqueSession_pt opaqueSession_p, char *topic_p, size_t length)
 Create a temporary Topic string.
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.
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.
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.
solClient_dllExport const char * solClient_session_eventToString (solClient_session_event_t sessionEvent)
 Returns a string representation of the Session event passed in.
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 appliance, a durable Queue or Topic Endpoint using the specified Session.
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 appliance.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_flow_destroy (solClient_opaqueFlow_pt *opaqueFlow_p)
 Destroys a previously created Flow.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_flow_sendAck (solClient_opaqueFlow_pt opaqueFlow_p, solClient_msgId_t msgId)
 Sends an acknowledgment on the specified Flow.
solClient_dllExport
solClient_returnCode_t 
solClient_flow_stop (solClient_opaqueFlow_pt opaqueFlow_p)
 Closes the receiver on the specified Flow.
solClient_dllExport
solClient_returnCode_t 
solClient_flow_start (solClient_opaqueFlow_pt opaqueFlow_p)
 Opens the receiver on the specified Flow.
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.
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.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_flow_clearStats (solClient_opaqueFlow_pt opaqueFlow_p)
 Clears all the statistics (rx and tx) for the specified Flow.
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.
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.
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.
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.
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.
solClient_dllExport const char * solClient_flow_eventToString (solClient_flow_event_t flowEvent)
 Returns a string representation of the Flow event passed in.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_destroy (solClient_opaqueTransactedSession_pt *transactedSession_p)
 Destroys a previous created Transacted Session.
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_rollback (solClient_opaqueTransactedSession_pt transactedSession_p)
 Rollback the active transaction of a specified Transacted Session.
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_commit (solClient_opaqueTransactedSession_pt transactedSession_p)
 Commit the active transaction of a specified Transacted Session.
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.
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.
solClient_dllExport
solClient_returnCode_t 
solClient_transactedSession_getSessionName (solClient_opaqueTransactedSession_pt transactedSession_p, char *nameBuf_p, size_t bufSize)
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.
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.



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.
typedef enum solClient_flow_event solClient_flow_event_t
 Type for Flow events.

Detailed Description

include file for the Solace Corporation Messaging API for C

Copyright 2007-2020 Solace Corporation. All rights reserved.

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


Define Documentation

#define SOLCLIENT_BUFINFO_MAX_CORRELATION_TAG_SIZE   (16)

The maximum size allowed for the correlation tag portion.

#define SOLCLIENT_BUFINFO_MAX_DURABLE_QUEUENAME_SIZE   (200)

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

#define SOLCLIENT_BUFINFO_MAX_QUEUENAME_SIZE   (250)

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

Examples:
ex/cutThroughFlowToQueue.c, 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/cutThroughFlowToQueue.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/cutThroughFlowToQueue.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   "ENDPOINT_ACCESSTYPE"

Sets the access type for the endpoint.

This applies to durable Queues only.

Examples:
ex/activeFlowIndication.c.
#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_DEFAULT_DURABLE   SOLCLIENT_PROP_ENABLE_VAL

Whether the endpoint is durable.

#define SOLCLIENT_ENDPOINT_PROP_DEFAULT_ID   SOLCLIENT_ENDPOINT_PROP_TE

The endpoint type of the endpoint.

#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.

#define SOLCLIENT_ENDPOINT_PROP_DISCARD_BEHAVIOR   "ENDPOINT_DISCARD_BEHAVIOR"

When a message cannot be added to an endpoint (for example, maximum quota (ENDPOINT_QUOTA_MB) exceeded), this property controls the action the appliance will perform towards the publisher.

Examples:
ex/queueProvision.c, and ex/simpleFlowToQueue.c.
#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_DURABLE   "ENDPOINT_DURABLE"

The durability of the endpoint to name.

Default: SOLCLIENT_PROP_ENABLE_VAL, which means the endpoint is durable. Only SOLCLIENT_PROP_ENABLE_VAL is supported in solClient_session_endpointProvision(). This property is ignored in solClient_session_creatFlow().

#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_REDELIVERY   "ENDPOINT_MAXMSG_REDELIVERY"

Defines how many message redelivery retries before discarding or moving the message to the DMQ.

The valid ranges is {0..255} where 0 means retry forever. Default: 0

Examples:
ex/queueProvision.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_ENDPOINT_PROP_MAXMSG_SIZE   "ENDPOINT_MAXMSG_SIZE"

Maximum size (in bytes) for any one message stored in the endpoint.

Examples:
ex/queueProvision.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_ENDPOINT_PROP_QUOTA_MB   "ENDPOINT_QUOTA_MB"

Maximum quota (in megabytes) for the endpoint.

The valid range is 1 through 800000.

A value of 0 configures the endpoint to act as a Last-Value-Queue (LVQ), where the appliance enforces a Queue depth of one, and only the most current message is spooled by the endpoint. When a new message is received, the current queued message is automatically deleted from the endpoint and the new message is spooled.

Examples:
ex/activeFlowIndication.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/simpleFlowToQueue.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
#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.

Default: SOLCLIENT_ENDPOINT_PROP_DEFAULT_RESPECTS_MSG_TTL

Examples:
ex/common.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_ACK_THRESHOLD   "FLOW_ACK_THRESHOLD"

The threshold for sending an acknowledgement, configured as a percentage.

The API sends a transport acknowledgment every N messages where N is calculated as this percentage of the flow window size if the endpoint's max-delivered-unacked-msgs-per-flow setting at bind time is greater than or equal to the transport window size. Otherwise, N is calculated as this percentage of the endpoint's max-delivered-unacked-msgs-per-flow setting at bind time.

The valid range is 1..75. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACK_THRESHOLD

#define SOLCLIENT_FLOW_PROP_ACK_TIMER_MS   "FLOW_ACK_TIMER_MS"

The duration of the Flow acknowledgment timer (in milliseconds).

The valid range is 20..1500. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACK_TIMER_MS

#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_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.

If the underlying session capabilities indicate that the appliance does not support active flow indications, then solClient_session_createFlow() will fail immediately (SOLCLIENT_FAIL) and set the subCode SOLCLIENT_SUBCODE_FLOW_ACTIVE_FLOW_INDICATION_UNSUPPORTED. Default: SOLCLIENT_FLOW_PROP_DEFAULT_ACTIVE_FLOW_IND

Examples:
ex/activeFlowIndication.c.
#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.

This property is ignored if SOLCLIENT_FLOW_PROP_ACKMODE is specified. Default: SOLCLIENT_FLOW_PROP_DEFAULT_AUTOACK

#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DTE   SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE

Deprecated name; SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE is preferred.

#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_DURABLE   "FLOW_BIND_ENTITY_DURABLE"

The durability of the object to which this Flow is bound.

Default: SOLCLIENT_PROP_ENABLE_VAL, which means the endpoint is durable. When set to SOLCLIENT_PROP_DISABLE_VAL, a temporary endpoint is created.

Examples:
ex/cutThroughFlowToQueue.c, ex/flowControlQueue.c, ex/messageReplay.c, ex/messageSelectorsOnQueue.c, ex/perfADSub.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/RRGuaranteedRequester.c, ex/simpleFlowToQueue.c, ex/simpleFlowToTopic.c, and ex/transactions.c.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB   "1"

A bind target of subscriber.

Examples:
ex/perfADSub.c.
#define SOLCLIENT_FLOW_PROP_BIND_ENTITY_TE   "3"

A bind target of Topic Endpoint.

Examples:
ex/perfADSub.c, ex/RRGuaranteedReplier.c, ex/simpleFlowToTopic.c, and ex/transactions.c.
#define SOLCLIENT_FLOW_PROP_BIND_NAME   "FLOW_BIND_NAME"
#define SOLCLIENT_FLOW_PROP_BIND_TIMEOUT_MS   "FLOW_BIND_TIMEOUT_MS"

The timeout (in milliseconds) used when creating a Flow in blocking mode.

The valid range is > 0. Default: SOLCLIENT_FLOW_PROP_DEFAULT_BIND_TIMEOUT_MS

#define SOLCLIENT_FLOW_PROP_BROWSER   "FLOW_BROWSER"

Set browser mode on flow and signal it is a browser flow to appliance on bind.

A browser flow allows client applications to look at messages spooled on Endpoints without removing them. Messages are browsed from oldest to newest. The flow window size will be reduced as messages are received. Applications have to call solClient_flow_start() to get more messages. After being browsed, messages are still available for consumption over normal flows. However, it is possible to selectively remove messages (by calling solClient_flow_sendAck()) from the persistent store of an Endpoint, in this case, these removed messages will no longer be available for consumption. Default: SOLCLIENT_FLOW_PROP_DEFAULT_BROWSER

NOTE: If browsing a queue with an active consumer, no guarantee is made that the browser will receive all messages published to the queue. The consumer can receive and acknowledge messages before they are delivered to the browser.

Examples:
ex/simpleBrowserFlow.c.
#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_THRESHOLD   "60"

The default threshold for sending an acknowledgment, as a percentage of the Flow window size.

#define SOLCLIENT_FLOW_PROP_DEFAULT_ACK_TIMER_MS   "1000"

The default Flow acknowledgment timer in milliseconds.

#define SOLCLIENT_FLOW_PROP_DEFAULT_ACTIVE_FLOW_IND   SOLCLIENT_PROP_DISABLE_VAL

The default value for the SOLCLIENT_FLOW_PROP_ACTIVE_FLOW_IND property.

#define SOLCLIENT_FLOW_PROP_DEFAULT_AUTOACK   SOLCLIENT_PROP_ENABLE_VAL

The default acknowledgment mode is AutoAcknowledgment.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_BLOCKING   SOLCLIENT_PROP_ENABLE_VAL

The default is bind blocking.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_DURABLE   SOLCLIENT_PROP_ENABLE_VAL

The default bind target durability.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_ENTITY_ID   SOLCLIENT_FLOW_PROP_BIND_ENTITY_SUB

The default bind target type.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_NAME   ""

The default bind target.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BIND_TIMEOUT_MS   "10000"

The default bind timeout in milliseconds.

#define SOLCLIENT_FLOW_PROP_DEFAULT_BROWSER   SOLCLIENT_PROP_DISABLE_VAL

The default value for the SOLCLIENT_FLOW_PROP_BROWSER property.

#define SOLCLIENT_FLOW_PROP_DEFAULT_FORWARDING_MODE   SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD

The default value for the SOLCLIENT_FLOW_PROP_FORWARDING_MODE property.

#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_BIND_TRIES   "3"

The default maximum number of bind attempts.

#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_RECONNECT_TRIES   "-1"
#define SOLCLIENT_FLOW_PROP_DEFAULT_MAX_UNACKED_MESSAGES   "-1"
#define SOLCLIENT_FLOW_PROP_DEFAULT_NO_LOCAL   SOLCLIENT_PROP_DISABLE_VAL

The default value for the SOLCLIENT_FLOW_PROP_NO_LOCAL property.

#define SOLCLIENT_FLOW_PROP_DEFAULT_RECONNECT_RETRY_INTERVAL_MS   "3000"

The default reconnect retry interval timer.

#define SOLCLIENT_FLOW_PROP_DEFAULT_REPLAY_START_LOCATION   ""

The default value for SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION is no replay requested.

#define SOLCLIENT_FLOW_PROP_DEFAULT_SELECTOR   ""

The default selector when binding to an endpoint.

#define SOLCLIENT_FLOW_PROP_DEFAULT_START_STATE   SOLCLIENT_PROP_ENABLE_VAL

The default value for the SOLCLIENT_FLOW_PROP_START_STATE property.

#define SOLCLIENT_FLOW_PROP_DEFAULT_TOPIC   ""

The default Topic for a Topic Endpoint bind.

#define SOLCLIENT_FLOW_PROP_DEFAULT_WINDOWSIZE   "255"

The default Flow window size.

#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE   "FLOW_FORWARDING_MODE"

Set the forwarding mode for messages received on the Flow.

If the forwarding mode chosen is not supported by the appliance solClient_session_createFlow() will fail. Default: SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD.

Examples:
ex/cutThroughFlowToQueue.c.
#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE_CUT_THROUGH   "2"

The appliance stores all messages in persistent storage after forwarding on the Flow.

Examples:
ex/cutThroughFlowToQueue.c.
#define SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD   "1"

The appliance stores all messages in persistent storage before forwarding on the Flow.

#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.

The valid range is >= 1. Default: SOLCLIENT_FLOW_PROP_DEFAULT_MAX_BIND_TRIES

#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.

If this property is -1, it will retry forever. Otherwise it tries the configured maximum number of times. Default: SOLCLIENT_FLOW_PROP_DEFAULT_MAX_RECONNECT_TRIES

#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 and when the SOLCLIENT_FLOW_PROP_FORWARDING_MODE is set to SOLCLIENT_FLOW_PROP_FORWARDING_MODE_STORE_AND_FORWARD.

. When set to a positive value, this property controls the maximum number of messages that may be unacknowledged on the Flow (solClient_flow_sendAck() is called to acknowledge messages and remove those messages from the message spool). This property cannot be used to increase the appliance configured maximum number of acknowledged messages on the endpoint. When set to -1, the appliance configured maximum controls how many unacknowledged messages may be received by the application. Valid values are -1 and >0. Default SOLCLIENT_FLOW_PROP_DEFAULT_MAX_UNACKED_MESSAGES

Examples:
ex/flowControlQueue.c.
#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.

The appliance that the Session connects to must have the No Local capability, and the capability must be enabled. If the appliance the Session is connected to does not support No Local, a call to solClient_session_createFlow() returns SOLCLIENT_FAIL and subcode SOLCLIENT_SUBCODE_NO_LOCAL_NOT_SUPPORTED set.

Examples:
ex/noLocalPubSub.c.
#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.

Default: SOLCLIENT_FLOW_PROP_DEFAULT_RECONNECT_RETRY_INTERVAL_MS

#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.

The replay start location may be SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING to indicate that all messages available should be replayed. Or the replay start location may be a string that begins with "DATE:" followed by a date in one of two formats. The date may be a string representing a long integer, which is the number of seconds since the epoch - 0:00:00 Jan 1, 1970. The date may be a string as specified in RFC3339 - 'YYYY-MM-DDTHH:MM:SS[.1*DIGIT]Z' or 'YYYY-MM-DDTHH:MM:SS[.1*DIGIT]("+"/"-")HH:MM'.

Examples:
ex/messageReplay.c, and ex/simpleFlowToQueue.c.
#define SOLCLIENT_FLOW_PROP_REPLAY_START_LOCATION_BEGINNING   "BEGINNING"

Replay all messages in the replay log.

#define SOLCLIENT_FLOW_PROP_SELECTOR   "FLOW_SELECTOR"

A Java Message System (JMS) defined selector.

Examples:
ex/messageSelectorsOnQueue.c.
#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.

Flow start/stop state can be changed later through solClient_flow_start() or solClient_flow_stop(). Default SOLCLIENT_FLOW_PROP_DEFAULT_START_STATE

Examples:
ex/messageSelectorsOnQueue.c.
#define SOLCLIENT_FLOW_PROP_TOPIC   "FLOW_TOPIC"

When binding to a Topic endpoint, the Topic may be set in the bind.

This parameter is ignored for Queue or subscriber binding. The maximum length (not including NULL terminator) is SOLCLIENT_BUFINFO_MAX_TOPIC_SIZE. Default: SOLCLIENT_FLOW_PROP_DEFAULT_TOPIC

Examples:
ex/perfADSub.c, ex/RRGuaranteedReplier.c, ex/simpleFlowToTopic.c, and ex/transactions.c.
#define SOLCLIENT_FLOW_PROP_WINDOWSIZE   "FLOW_WINDOWSIZE"

The Guaranteed message window size for the Flow.

This sets the maximum number of messages that can be in transit (that is, the messages are sent from the appliance but are not yet delivered to the application). The valid range is 1..255. Default: SOLCLIENT_FLOW_PROP_DEFAULT_WINDOWSIZE

Examples:
ex/perfADSub.c, and ex/simpleBrowserFlow.c.
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_0   "GLOBAL_DBQUANTA_SIZE_0"
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_1   "GLOBAL_DBQUANTA_SIZE_1"
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_2   "GLOBAL_DBQUANTA_SIZE_2"
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_3   "GLOBAL_DBQUANTA_SIZE_3"
#define SOLCLIENT_GLOBAL_PROP_DBQUANTASIZE_4   "GLOBAL_DBQUANTA_SIZE_4"
#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_MACOSX   "libcrypto.dylib"

The default crypto library name for MacOSX.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_UNIX   "libcrypto.so"

The default crypto library name for Unix (including Linux and AIX).

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_VMS   "SSL1$LIBCRYPTO_SHR.EXE"

The default crypto library name for OpenVMS.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_CRYPTO_LIB_WINDOWS   "libcrypto-1_1.dll"

The default crypto library name for Windows.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_0   "10240"

The default size (10 KB) of data buffers in the pool of smallest buffers.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_1   "32768"

The default size (32 KB) of data buffers in the second pool of buffers.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_2   "65536"

The default size (64 KB) of data buffers in the third pool of buffers.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_3   "262144"

The default size (256 KB) of data buffers in the 4th pool of buffers.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_DBQUANTASIZE_4   "1048576"

The default size (1 MB) of data buffers in the 5th (last) pool of buffers.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_AIX   "libgssapi_krb5.a(libgssapi_krb5.a.so)"

The default GSS Kerberos library name for AIX.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_LINUX   "libgssapi_krb5.so.2"

The default GSS Kerberos library name for Linux.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_SOLARIS   "mech_krb5.so.1"

The default GSS Kerberos library name for Solaris.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_GSS_KRB_LIB_WINDOWS   "secur32.dll"

The default GSS Kerberos library name for Windows.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_IBM_CODESET   "TPF_CCSID_IBM1047"

The default IBM character set in use by the application.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_MAXPOOLMEM   "1073741824"

The default maximum memory pool size (1 GB).

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_MACOSX   "libssl.dylib"

The default SSL library name for MacOSX.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_UNIX   "libssl.so"

The default SSL library name for Unix (including Linux and AIX).

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_VMS   "SSL1$LIBSSL_SHR.EXE"

The default SSL library name for OpenVMS.

#define SOLCLIENT_GLOBAL_PROP_DEFAULT_SSL_LIB_WINDOWS   "libssl-1_1.dll"

The default SSL library name for Windows.

#define SOLCLIENT_GLOBAL_PROP_IBM_CODESET   "GLOBAL_IBM_CODESET"

Only valid on the z/TPF mainframe.

This selects the EBCDIC character set in use by the application. Default: SOLCLIENT_GLOBAL_PROP_DEFAULT_IBM_CODESET.

#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.

#define solClient_log ( level,
...   ) 
Value:
{if (level <= _solClient_log_appFilterLevel_g) { \
         _solClient_log_output_detail(SOLCLIENT_LOG_CATEGORY_APP, level, \
         "/" __FILE__, __LINE__, __VA_ARGS__);}}

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:
level The log level for the log being raised.
Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/cutThroughFlowToQueue.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/cutThroughFlowToQueue.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);}}

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:
level The log level for the log being raised.
format_p A pointer to a format string, in the printf style.
ap A va_list holding the remaining variable parameters.
#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 appliance or failed.

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_CAPABILITY_ACTIVE_FLOW_INDICATION   "SESSION_CAPABILITY_ACTIVE_FLOW_INDICATION"

Boolean - TRUE if session supports active flow indication parameter.

Examples:
ex/activeFlowIndication.c.
#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.

#define SOLCLIENT_SESSION_CAPABILITY_BROWSER   "SESSION_CAPABILITY_BROWSER"

Boolean - The Session allows binding to a Queue as a Browser.

Examples:
ex/simpleBrowserFlow.c.
#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSED_SSL   "SESSION_CAPABILITY_COMPRESSED_SSL"

Boolean - The peer can support ssl downgrade to compression.

#define SOLCLIENT_SESSION_CAPABILITY_COMPRESSION   "SESSION_CAPABILITY_COMPRESSION"

Boolean - The Session accepts compressed (DEFLATE) data.

#define SOLCLIENT_SESSION_CAPABILITY_CUT_THROUGH   "SESSION_CAPABILITY_CUT_THROUGH"

Boolean - The peer supports the cut-through forwarding mode for Guaranteed message delivery.

#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR   "SESSION_CAPABILITY_ENDPOINT_DISCARD_BEHAVIOR"

Boolean - The peer endpoints can be provisioned with discard behavior.

#define SOLCLIENT_SESSION_CAPABILITY_ENDPOINT_MANAGEMENT   "SESSION_CAPABILITY_ENDPOINT_MANAGEMENT"

The Session is allowed to create/delete durable endpoints dynamically.

Examples:
ex/activeFlowIndication.c, ex/queueProvision.c, ex/RRGuaranteedReplier.c, ex/transactions.c, and Intro/HelloWorldQueueSub.c.
#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.

Examples:
ex/messageTTLAndDeadMessageQueue.c.
#define SOLCLIENT_SESSION_CAPABILITY_JNDI   "SESSION_CAPABILITY_JNDI"

Boolean - The Session accepts JNDI queries.

#define SOLCLIENT_SESSION_CAPABILITY_LONG_SELECTORS   "SESSION_CAPABILITY_LONG_SELECTORS"

Boolean - The peer can support selectors longer than 1023 bytes.

#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.

#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.

#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_ELIDING   "SESSION_CAPABILITY_MESSAGE_ELIDING"

Boolean - The Session supports message eliding.

#define SOLCLIENT_SESSION_CAPABILITY_MESSAGE_REPLAY   "SESSION_CAPABILITY_MESSAGE_REPLAY"

Boolean - The Session allow Message Replay on flow create.

#define SOLCLIENT_SESSION_CAPABILITY_NO_LOCAL   "SESSION_CAPABILITY_NO_LOCAL"

Boolean - The Session supports No Local.

Flows may be created to Queues and Topic Endpoints that will not receive messages published on the same Session.

Examples:
ex/noLocalPubSub.c.
#define SOLCLIENT_SESSION_CAPABILITY_OPENMAMA   "SESSION_CAPABILITY_OPENMAMA"

Boolean - The Session allows the OpenMAMA API to be used.

#define SOLCLIENT_SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING   "SESSION_CAPABILITY_PER_TOPIC_SEQUENCE_NUMBERING"

Boolean - The peer can insert per Topic sequence numbers.

#define SOLCLIENT_SESSION_CAPABILITY_PUB_GUARANTEED   "SESSION_CAPABILITY_PUB_GUARANTEED"

Boolean - The Session allows publishing of Guaranteed messages.

#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.

Examples:
ex/topicToQueueMapping.c.
#define SOLCLIENT_SESSION_CAPABILITY_SELECTOR   "SESSION_CAPABILITY_SELECTOR"

Boolean - The Session supports a selector on Flows.

#define SOLCLIENT_SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS   "SESSION_CAPABILITY_SHARED_SUBSCRIPTIONS"

Boolean - The peer can support #shared and #noexport subscriptions.

#define SOLCLIENT_SESSION_CAPABILITY_SUB_FLOW_GUARANTEED   "SESSION_CAPABILITY_SUB_FLOW_GUARANTEED"

Boolean - The Session allows binding a Guaranteed Flow to an endpoint.

#define SOLCLIENT_SESSION_CAPABILITY_SUBSCRIPTION_MANAGER   "SESSION_CAPABILITY_SUBSCRIPTION_MANAGER"

Boolean - The appliance supports adding subscriptions on behalf of other client names.

Examples:
ex/ios/examples/SubscribeOnBehalfOfClientExample.m, and ex/subscribeOnBehalfOfClient.c.
#define SOLCLIENT_SESSION_CAPABILITY_TEMP_ENDPOINT   "SESSION_CAPABILITY_TEMP_ENDPOINT"

Boolean - The Session allows the creation of temporary endpoints (Queues / TopicEndpoints).

#define SOLCLIENT_SESSION_CAPABILITY_TRANSACTED_SESSION   "SESSION_CAPABILITY_TRANSACTED_SESSION"

Boolean - The Session allows Guaranteed Data Transacted Sessions.

Examples:
ex/transactions.c.
#define SOLCLIENT_SESSION_DISPATCHFUNC_INITIALIZER ( type   )     {type, NULL, NULL, NULL}
#define SOLCLIENT_SESSION_PEER_PLATFORM   "SESSION_PEER_PLATFORM"

String - A appliance/peer returned string that describes the hardware platform.

#define SOLCLIENT_SESSION_PEER_PORT_SPEED   "SESSION_PEER_PORT_SPEED"

Uint32 - The maximum rate (in Megabits/second) supported by the appliance/peer port.

#define SOLCLIENT_SESSION_PEER_PORT_TYPE   "SESSION_PEER_PORT_TYPE"

String - The appliance/peer port type.

#define SOLCLIENT_SESSION_PEER_ROUTER_NAME   "SESSION_PEER_ROUTER_NAME"

String - The appliance/peer Appliance Name, typically used to direct management requests.

Examples:
ex/eventMonitor.c, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/SempGetOverMbExample.m, and ex/sempGetOverMb.c.
#define SOLCLIENT_SESSION_PEER_SOFTWARE_DATE   "SESSION_PEER_SOFTWARE_DATE"

String - A appliance/peer returned string that contains the release date for the appliance software.

#define SOLCLIENT_SESSION_PEER_SOFTWARE_VERSION   "SESSION_PEER_SOFTWARE_VERSION"

String - A appliance/peer returned string that contains the version information.

#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_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_GD_RECONNECT_FAIL_ACTION_AUTO_RETRY   ("GD_RECONNECT_FAIL_ACTION_AUTO_RETRY")

Clear the publisher state and reconnect the publisher flow.

Then republish all unacknowledged messages, this may cause duplication. The API then continues the reconnect process as usual.

#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.

This is the legacy behavior. If the application attempts to manually reconnect the session, it is also responsible for unacknowledged messages. If the application chooses to resend those messages, there may be duplication. If the application chooses not to resend those messages there may be message loss.
Special considerations are required for SOLCLIENT_SESSION_PROP_GD_RECONNECT_FAIL_ACTION_DISCONNECT:

  • When a reconnect occurs on a different host, an application publishing guaranteed messages will receive the SOLCLIENT_SESSION_EVENT_DOWN_ERROR event with the SOLCLIENT_SUBCODE_UNKNOWN_FLOW_NAME sub-code. When this occurs, any queued messages are flushed. Messages published after this event has been raised will be queued then sent after a subsequent connect initiated by the application by calling solClient_session_connect().
  • Multi-threaded applications should be aware that some, but not necessarily all, messages published on one thread may be flushed due to failed reconnect, as messages published after the SOLCLIENT_SESSION_EVENT_DOWN_ERROR event are not flushed. If the application chooses to republish some or all unacknowledged messages after the send queue has been flushed there is a possibility that these old, republished messages may be queued after newly published messages.
  • If the possibility of old messages after new messages is a concern, it is recommended that instead of calling solClient_session_connect() on the session that has gone down, this session should instead be destroyed and a new session created to establish a new connection.
#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.

#define SOLCLIENT_SESSION_PROP_MAX_CLIENT_NAME_LEN   (160)

The maximum length of client name string (Session property), not including the NULL terminator.

Examples:
ex/subscribeOnBehalfOfClient.c.
#define SOLCLIENT_SESSION_PROP_MAX_HOSTS   (16)

The maximum number of hosts that can appear in the Session host property.

#define SOLCLIENT_SESSION_PROP_MAX_PASSWORD_LEN   (128)

The maximum length of password string (Session property), not including the NULL terminator.

Examples:
ex/common.h, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_MAX_USERNAME_LEN   (189)

The maximum length of username string (Session property), not including the NULL terminator.

Examples:
ex/common.h, and ex/secureSession.c.
#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.

#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.

Examples:
ex/common.h, and ex/secureSession.c.
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_GCM_SHA256   ("AES128-GCM-SHA256")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_SHA   ("AES128-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES128_SHA256   ("AES128-SHA256")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_GCM_SHA384   ("AES256-GCM-SHA384")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_SHA   ("AES256-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_AES256_SHA256   ("AES256-SHA256")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_DES_CBC3_SHA   ("DES-CBC3-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_GCM_SHA256   ("ECDHE-RSA-AES128-GCM-SHA256")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_SHA   ("ECDHE-RSA-AES128-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES128_SHA256   ("ECDHE-RSA-AES128-SHA256")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_GCM_SHA384   ("ECDHE-RSA-AES256-GCM-SHA384")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_SHA   ("ECDHE-RSA-AES256-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_AES256_SHA384   ("ECDHE-RSA-AES256-SHA384")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_ECDHE_RSA_DES_CBC3_SHA   ("ECDHE-RSA-DES-CBC3-SHA")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_RC4_MD5   ("RC4-MD5")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_RC4_SHA   ("RC4-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_SSL_RSA_WITH_RC4_128_MD5   ("SSL_RSA_WITH_RC4_128_MD5")
#define SOLCLIENT_SESSION_PROP_SSL_CIPHER_SSL_RSA_WITH_RC4_128_SHA   ("SSL_RSA_WITH_RC4_128_SHA")
#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_CIPHER_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA   ("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_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_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256   ("TLS_ECDHE_RSA_WITH_AES_128_CBC_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_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA   ("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA")
#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_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384   ("TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384")
#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_TLS_RSA_WITH_AES_128_CBC_SHA256   ("TLS_RSA_WITH_AES_128_CBC_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_TLS_RSA_WITH_AES_256_CBC_SHA   ("TLS_RSA_WITH_AES_256_CBC_SHA")
#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_TLS_RSA_WITH_AES_256_GCM_SHA384   ("TLS_RSA_WITH_AES_256_GCM_SHA384")
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_SSLV3   ("SSLv3")
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1   ("TLSv1")
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1_1   ("TLSv1.1")
#define SOLCLIENT_SESSION_PROP_SSL_PROTOCOL_TLSV1_2   ("TLSv1.2")
#define SOLCLIENT_SESSION_PROP_SSL_TRUST_STORE_DIR   "SESSION_SSL_TRUST_STORE_DIR"

This property specifies the directory where the trusted certificates are.

A maximum of 64 certificate files are allowed in the trust store directory. 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"

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.

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 is received.

See also:
Feature Limitations Default: SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_DATE.
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 sesssion connection should fail when a certificate with an invalid host is received.

When enabled, and connecting to a named host, the certificate Subject Alternative Name must contain a DNS entry that matches the host string, if not found the common name is checked. When enabled, and connecting to a host by IP address, the certificate Subject Alternative Name must contain an IP Address that matches. Default: SOLCLIENT_SESSION_PROP_DEFAULT_SSL_VALIDATE_CERTIFICATE_HOST.

#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_DISCONNECT   "UNBIND_FAIL_ACTION_DISCONNECT"
#define SOLCLIENT_SESSION_PROP_UNBIND_FAIL_ACTION_RETRY   "UNBIND_FAIL_ACTION_RETRY"
#define SOLCLIENT_SESSION_SEND_MULTIPLE_LIMIT   50
#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 appliance.

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

Retrieve Transacted Session name.

See also:
Transacted Session
Parameters:
transactedSession_p Opaque Transacted Session pointer that was returned when the Transacted Session was created.
nameBuf_p A 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.
bufSize The 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. The maximum transacted session name length.
#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.

Default: SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_CREATE_MESSAGE_DISPATCHER

#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.

#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.

#define SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_REQUESTREPLY_TIMEOUT_MS   "10000"

The default Transacted Session request timer in milliseconds.

#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.

Default: SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_HAS_PUBLISHER.

#define SOLCLIENT_TRANSACTEDSESSION_PROP_REQUESTREPLY_TIMEOUT_MS   "TRANSACTEDSESSION_REQUESTREPLY_TIMEOUT_MS"

Timeout (in milliseconds) to wait for a response.

The minimum configuration value is 1000. Default: SOLCLIENT_TRANSACTEDSESSION_PROP_DEFAULT_REQUESTREPLY_TIMEOUT_MS.

#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY   ("HTTP_BINARY")

Binary-encoded, responses are received in COMET style.

#define SOLCLIENT_TRANSPORT_PROTOCOL_HTTP_BINARY_STREAMING   ("HTTP_BINARY_STREAMING")

Binary encoded, responses are received in streaming mode for higher efficiency.

#define SOLCLIENT_TRANSPORT_PROTOCOL_NULL   ("")

An empty value for SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL means "use best available".

An empty return value for SOLCLIENT_SESSION_PROP_WEB_TRANSPORT_PROTOCOL_IN_USE means not connected or not a web messaging session.

#define SOLCLIENT_TRANSPORT_PROTOCOL_PLAIN_TEXT   ("PLAIN_TEXT")
#define SOLCLIENT_TRANSPORT_PROTOCOL_WS_BINARY   ("WS_BINARY")

Binary-encoded, using the WebSocket protocol, supports guaranteed web transport.

#define SOLCLIENT_UUID_STRING_BUFFER_SIZE   (37)

The size in bytes for string representation of UUID value.


Typedef Documentation

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_p A pointer to the Context under which the file descriptor event occurred. This pointer is never NULL.
fd The file descriptor for which the event has occurred.
events A bit vector containing the file descriptor events that have occurred ORed together.
user_p A pointer to opaque user data, provided when the callback registered.
See also:
solClient_context_registerForFdEvents() Callback prototype for FD events.

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

Parameters:
app_p The 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.
fd The file descriptor for which events are being registered.
events File descriptor events of interest, OR'ed together. These events must be added to any existing events registered for this file descriptor.
callback_p The event function to call when events occur on the file descriptor. This pointer is never NULL.
user_p An 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_p A pointer to Context under which the timer was started previously. This pointer is never NULL.
user_p A 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.

Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.

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

Parameters:
app_p An opaque pointer supplied when the file descriptor unregister function was configured. This pointer was passed in as user_p through solClient_context_registerFdFuncInfo_t.
fd The file descriptor for which events are being unregistered.
events Events 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.

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_p A pointer to the Flow to which the event applies. This pointer is never NULL.
eventInfo_p A pointer to information about the Flow event, such as the event type. This pointer is never NULL.
user_p A 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.

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_p A pointer to the Flow for which the message has been received. This pointer is never NULL.
msg_p A pointer to an opaque message pointer (solClient_opaqueMsg_pt) for the received message. This pointer is never NULL.
user_p A 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 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:
logInfo A pointer to information about the log being generated, such as level and message. This pointer is never NULL.
user_p A 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, ex/common.h, 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.

An opaque pointer to a processing Context.

Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/common.h, ex/cutThroughFlowToQueue.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/Example.h, 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.h, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.h, 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.

An opaque pointer to a data block.

typedef void* solClient_opaqueMsg_pt
typedef void* * solClient_opaquePointer_pt

An opaque pointer to a pointer.

An opaque pointer to a Session.

Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/common.h, ex/cutThroughFlowToQueue.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/EventCallbackProtocol.h, ex/ios/Example.h, ex/ios/Example.m, ex/ios/examples/AppReachabilityExample.h, ex/ios/examples/AppReachabilityExample.m, ex/ios/examples/AppTransitionsExample.h, ex/ios/examples/AsyncCacheRequestExample.m, ex/ios/examples/DirectPubSubExample.m, ex/ios/examples/EventMonitorExample.m, ex/ios/examples/PerfTestExample.h, 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.h, 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/ios/MessageReceiveCallbackProtocol.h, 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.

An opaque pointer to a Transacted Session.

Examples:
ex/transactions.c.

pointer to an array of string pointers for properties

The type for API return codes.

Examples:
ex/activeFlowIndication.c, ex/adPubAck.c, ex/asyncCacheRequest.c, ex/common.c, ex/common.h, ex/cutThroughFlowToQueue.c, ex/directPubSub.c, ex/eventMonitor.c, ex/flowControlQueue.c, ex/ios/Example.h, 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.h, 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, Intro/HelloWorldWebPub.c, and Intro/HelloWorldWebSub.c.

Type for Session events.

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_p A pointer to the Session to which the event applies. This pointer is never NULL.
eventInfo_p A pointer to information about the Session event, such as the event type. This pointer is never NULL.
user_p A 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.

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_p A pointer to the Session for which the message has been received. This pointer is never NULL.
msg_p A pointer to an opaque message pointer (solClient_opaqueMsg_pt) for the received message. This pointer is never NULL.
user_p A 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.

Examples:
ex/ios/examples/PerfTestExample.m, and ex/perfTest.c.

Type that indicates which transmit statistic.

Type for API sub codes.

Examples:
ex/ios/examples/AppReachabilityExample.m.
typedef unsigned short solClient_uint16_t

16-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 appliance.

SOLCLIENT_LOG_INFO 

Informational messages about the normal operation of the API.

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

SOLCLIENT_LOG_DEBUG 

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

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 appliance rejected a published message.

SOLCLIENT_SESSION_EVENT_SUBSCRIPTION_ERROR 

The appliance 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 appliance 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 appliance.

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 appliance'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 

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

SOLCLIENT_STATS_RX_LOST_CTSYNC 

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 appliance.

SOLCLIENT_STATS_RX_LOST_CTSYNC_GM 

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 

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

SOLCLIENT_STATS_RX_ALREADY_CUT_THROUGH 

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 

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_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 appliance 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 appliance (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 appliance could not parse an XML message. 400 XML Parse Error
SOLCLIENT_SUBCODE_LOGIN_FAILURE The client could not log into the appliance (bad username or password, unknown parameter, etc.) All 400, 401, 403 and 404 error codes from appliance
SOLCLIENT_SUBCODE_INVALID_VIRTUAL_ADDRESS An attempt to connect to the wrong IP address on the appliance (must use CVRID if configured), or the appliance 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 appliance 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 appliance rejected a subscription add or remove request for a reason not separately enumerated.
SOLCLIENT_SUBCODE_CONTROL_OTHER The appliance rejected a control message for another reason not separately enumerated. Default error subCode for appliance error responses
SOLCLIENT_SUBCODE_DATA_OTHER The appliance 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 appliance. "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 appliance. 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 appliance. 503 Message VPN Unavailable
SOLCLIENT_SUBCODE_CLIENT_USERNAME_IS_SHUTDOWN The username for the client is administratively shutdown on the appliance. 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 appliance 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 appliance). 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 appliance). "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 appliance). 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 appliance 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, 503 Endpoint 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 appliance 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 appliance. 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 appliance. 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 appliance 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 appliance that has a suspect certficate. N/A.
SOLCLIENT_SUBCODE_CERTIFICATE_DATE_INVALID The client attempted to connect to an appliance 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 appliance 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 appliance 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 appliance 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 appliance that has the Kerberos authentication shutdown. 403 Kerberos Authentication is Shutdown
SOLCLIENT_SUBCODE_UNTRUSTED_CLIENT_CERTIFICATE The client failed to connect to an appliance 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 appliance 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 appliance. 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 adminstrator 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 appliance. N/A
SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED The client attempted to add a shared subscription, but the capability is not supported by the appliance. 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
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 appliance (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 appliance could not parse an XML message.

SOLCLIENT_SUBCODE_LOGIN_FAILURE 

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

SOLCLIENT_SUBCODE_INVALID_VIRTUAL_ADDRESS 

An attempt was made to connect to the wrong IP address on the appliance (must use CVRID if configured) or the appliance 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 becuase the maximum number of active clients on appliance 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 appliance rejected a subscription add or remove request for a reason not separately enumerated.

SOLCLIENT_SUBCODE_CONTROL_OTHER 

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

SOLCLIENT_SUBCODE_DATA_OTHER 

The appliance 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 appliance.

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 appliance.

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 appliance.

SOLCLIENT_SUBCODE_CLIENT_USERNAME_IS_SHUTDOWN 

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

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 appliance 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 appliance).

SOLCLIENT_SUBCODE_UNKNOWN_TE_NAME 

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

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 appliance).

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 appliance 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 appliance 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 appliance.

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 appliance.

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 appliance.

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 appliance 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 appliance that has a suspect certficate.

SOLCLIENT_SUBCODE_UNTRUSTED_COMMONNAME 

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

SOLCLIENT_SUBCODE_CERTIFICATE_DATE_INVALID 

The client attempted to connect to an appliance 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 appliance that has the basic authentication shutdown.

SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_AUTHENTICATION_IS_SHUTDOWN 

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

SOLCLIENT_SUBCODE_UNTRUSTED_CLIENT_CERTIFICATE 

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

SOLCLIENT_SUBCODE_CLIENT_CERTIFICATE_DATE_INVALID 

The client failed to connect to an appliance 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 appliance.

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 appliance 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 adminstrator 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 appliance.

SOLCLIENT_SUBCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED 

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

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.


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:
inputStr A pointer to a null terminated string.
uuid_p A pointer to string buffer to fill in.
bufferSize The 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/cutThroughFlowToQueue.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:
props An array of name/value string pair pointers to configure context properties.
opaqueContext_p An opaque Context pointer is returned that refers to the created Context.
funcInfo_p A pointer to a structure that provides information on optional file descriptor event functions.
funcInfoSize The 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/cutThroughFlowToQueue.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_p An 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_p The 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_p Opaque Context that was returned when Context was created.
wait When 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_p The opaque Context that was returned when Context was created.
fd The file descriptor being registered.
events The events being requested (multiple events can be OR'ed together).
callback_p The callback routine to be invoked.
user_p The 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):
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_p The opaque Context that was returned when Context was created.
timerMode The type of timer to start (one-shot or repeat).
durationMs The requested timer duration (in milliseconds).
callback_p The routine to invoke when the timer expires.
user_p A pointer to opaque user data that is provided to the callback routine.
timerId_p A 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):
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_p The opaque Context that was returned when Context was created.
timerId_p A 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_p The 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_p The opaque Context that was returned when Context was created.
fd The file descriptor that events are being deregistered for.
events The 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_p The 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_p A 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):
Examples:
ex/activeFlowIndication.c, ex/cutThroughFlowToQueue.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:
flowEvent The 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_p The opaque Flow returned when the Flow was created.
dest_p A pointer to a solClient_destination_t.
destSize The 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/cutThroughFlowToQueue.c, 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_p The opaque Flow returned when the Flow was created.
propertyName_p The name of the Flow property for which the value is to be returned.
buf_p A pointer to the buffer provided by the caller in which to place the NULL-terminated property value string.
bufSize The 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_p The opaque Flow returned when Flow was created.
rxStatType The type of receive statistic to return.
rxStat_p A 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_p The opaque Flow returned when the Flow was created.
rxStats_p A pointer to an array of statistic values of type solClient_Stats_t.
arraySize The 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_p An opaque Flow that was returned when the Flow was created.
opaqueSession_p An 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_p Opaque flow pointer.
transactedSession_p Pointer 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_p The opaque Flow returned when Flow was created.
level The 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_p The opaque Flow returned when Flow was created.
level The 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_p Opaque flow pointer.
msg_p Pointer to the location to contain the opaque message pointer. If there is no message, the opaque message pointer is set to NULL.
timeout timeout in milliseconds, 0 means no wait.
Returns:
SubCodes (Unless otherwise noted above, subcodes are only relevant when this function returns SOLCLIENT_FAIL):
Examples:
ex/transactions.c.
solClient_dllExport solClient_returnCode_t solClient_flow_sendAck ( solClient_opaqueFlow_pt  opaqueFlow_p,
solClient_msgId_t  msgId 
)

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.

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_p The opaque Flow that is returned when the Flow was created.
msgId The 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/cutThroughFlowToQueue.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_p The opaque Flow returned when the Flow was created.
maxUnacked The 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 appliance 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):
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 appliance 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_p The 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 appliance 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