ISessionProvision Method

Provisions a durable ITopicEndpoint or IQueue on the appliance. Endpoint creation can be carried out in a synchronous or asynchronous mode, depending upon the provision flags passed in to this method. If WaitForConfirm is specified in flags, the calling thread is blocked until the endpoint creation attempt either succeeds or is determined to have failed. If WaitForConfirm is not specified in flags, SOLCLIENT_IN_PROGRESS is returned when the endpoint provision request is successfully sent, and the creation attempt proceeds in the background.

An Endpoint provision timer, controlled by the property ProvisionTimeoutInMsecs, controls the maximum amount of time a provision attempt lasts for. Upon expiry of this timer, a ProvisionError event is returned in the session event delegate.


Namespace: SolaceSystems.Solclient.Messaging
Assembly: SolaceSystems.Solclient.Messaging (in SolaceSystems.Solclient.Messaging.dll) Version: 10.24.0
ReturnCode Provision(
	IEndpoint endpoint,
	EndpointProperties props,
	int flags,
	Object correlationKey


endpoint  IEndpoint
Endpoint to create (must be a durable ITopicEndpoint or IQueue).
props  EndpointProperties
Properties of the Endpoint to create. Setting a property in EnpointProperties with a null value indicates that the application will accept the appliance's defaults. If the Endpoint already exists, leaving the property value null indicates that application accepts any value already specified for that Endpoint.
flags  Int32
Allowed flags include: WaitForConfirm: if specified this call blocks the calling thread until a confirmation is received from the appliance.IgnoreErrorIfEndpointAlreadyExists: if specified this call will not return an error if the Endpoint already exists.
correlationKey  Object
When specified (i.e. non null reference passed in), this correlationKey is returned in CorrelationKey - It is ignored if WaitForConfirm is specified.

Return Value

SOLCLIENT_WOULD_BLOCK, if the operation cannot be accepted by the API immediately, SOLCLIENT_OK if successful, or SOLCLIENT_IN_PROGRESS if in progress.


OperationErrorException Throws OperationErrorException in the following cases: The operation could not complete due to an invalid appliance or session state. An Endpoint with the same name already exists, and the user did not pass IgnoreErrorIfEndpointAlreadyExists was not specified in flags. A property mismatch error has occurred. This occurs if the user has passed in true for ignoreErrorIfEndpointAlreadyExists AND and Endpoint with the same name already exists AND the provision property passed in by the application and what is currently provisioned on the appliance are not equal. Note: The ErroInfo property in OperationErrorException will have a specific SubCode indicating what error case the application encountered. Possible sub-codes:
ObjectDisposedException Thrown when the session is already disposed (terminal state).

See Also