TIBCO EMS .NET API 8.7
TIBCO EMS .NET API 8.7
|
A Connection object is a client's active connection to TIBCO EMS Server. More...
Public Member Functions | |
virtual Session | CreateSession (bool transacted, int acknowledgeMode) |
Creates a Session object. More... | |
virtual Session | CreateSession (bool transacted, TIBCO.EMS.SessionMode acknowledgeMode) |
Creates a Session object. More... | |
virtual void | Start () |
Starts (or restarts) a connection's delivery of incoming messages. More... | |
virtual void | Stop () |
Temporarily stops a connection's delivery of incoming messages. More... | |
virtual void | Close () |
Closes the connection and reclaims resources. More... | |
override string | ToString () |
A String representation of the conneciton object More... | |
void | RecoverConnection () |
Recover the broken connection on another available server. The session, message producer, message consumer, temporary destinations created by this broken connection are transparently recreated once the connection is recovered. More... | |
Properties | |
string | ActiveURL [get] |
Get URL of the server this connection is currently connected to More... | |
bool | IsClosed [get] |
Return true if connection is closed; otherwise false. More... | |
string | ClientID [get, set] |
Gets and Set the Client Id More... | |
TIBCO.EMS.ConnectionMetaData | MetaData [get] |
Gets the metadata for this connection. More... | |
IExceptionListener | ExceptionListener [get, set] |
Get and set the exception event listener More... | |
TIBCO.EMS.EMSExceptionHandler | ExceptionHandler |
The exception event handler More... | |
A Connection object is a client's active connection to TIBCO EMS Server.
Connections support concurrent use.
A connection serves several purposes:
Because the creation of a connection involves setting up authentication and communication, a connection is a relatively heavyweight object. Most clients will do all their messaging with a single connection. Other more advanced applications may use several connections.
A client typically creates a connection, one or more sessions, and a number of message producers and consumers. When a connection is created, it is in stopped mode. That means that no messages are being delivered.
It is typical to leave the connection in stopped mode until setup is complete and all message consumers have been created. At that point, the client calls the connection's Start method, and messages begin arriving at the connection's consumers. (Outbound messages flow even before calling Start.) This setup convention minimizes any client confusion that may result from asynchronous message delivery while the client is still in the process of setting itself up.
A connection can be started immediately and the setup can be done afterwards. Clients that do this must be prepared to handle asynchronous message delivery while they are still in the process of setting up.
A message producer can send messages while a connection is stopped
Asynchronous Exceptions
When a program uses a connection to send messages, the send calls can detect problems with the connection, and notify the client program (synchronously) by throwing exceptions.
However, when a program uses a connection only to receive messages, the client cannot catch such exceptions. Instead, programs can handle such exceptions asynchronously in one of two idioms. Programmers may select either idiom, but not both (which would cause duplicate exception processing, with undefined behavior).
Note: The EMS .NET API does not support the optional methods createConnectionConsumer and createDurableConnectionConsumer.
|
inlinevirtual |
Closes the connection and reclaims resources.
Closing the connection causes all temporary destinations to be deleted; you need not separately close the sessions, producers, and consumers associated with the connection.
Closing a connection deletes all temporary destinations associated with the connection.
Blocking
If any message listener or receive call associated with the connection is processing a message when the program calls this method, all facilities of the connection and its sessions remain available to those listeners until they return. In the meantime, this method blocks until that processing completes, that is, until all message listeners and receive calls have returned.
Acknowledge
Closing a connection does not force acknowledgment in client-acknowledged sessions. When the program still has a message that it received from a connection that has since closed, its Message.Acknowledge method throws IllegalStateException.
Transactions
Closing a connection rolls back all open transactions in all sessions associated with the connection. When an external transaction manager coordinates transactions, it determines the final disposition of its open transactions.
|
inlinevirtual |
Creates a Session object.
The new session uses the connection for all server communications. It will be recreated during connection recovery.
transacted | Indicates whether the session is transacted. |
When true, the new session has transaction semantics.
When false, it has non-transaction semantics.
acknowledgeMode | Indicates whether and how the consumer is to acknowledge received messages. This version of CreateSession accepts an integer value associated with the acknowledge mode described by a Session member and should only be used for backward compatibility.This parameter is ignored if the session is transacted. |
|
inlinevirtual |
Creates a Session object.
The new session uses the connection for all server communications. It will be recreated during connection recovery.
transacted | Indicates whether the session is transacted. |
When true, the new session has transaction semantics.
When false, it has non-transaction semantics.
acknowledgeMode | Indicates whether and how the consumer is to acknowledge received messages. Legal values are listed under TIBCO.EMS.SessionMode. This parameter is ignored if the session is transacted. |
|
inline |
Recover the broken connection on another available server. The session, message producer, message consumer, temporary destinations created by this broken connection are transparently recreated once the connection is recovered.
|
inlinevirtual |
Starts (or restarts) a connection's delivery of incoming messages.
When a connection is created, it is stopped. It does not deliver inbound messages until the program calls this method to explicitly start it.
If the connection has already been started and is not stopped, this call has no effect.
Outbound messages flow even before calling Start.
|
inlinevirtual |
Temporarily stops a connection's delivery of incoming messages.
This call temporarily stops the connection from delivering inbound messages. A program can restart delivery by calling Start.
When a connection is created, it is stopped. It does not deliver inbound messages until the program calls this method to explicitly start it.
If the connection is already stopped, this call has no effect.
Effect
When this call returns, the connection has stopped delivery to all consumers associated with the connection:
Blocking
If any message listener or receive call associated with the connection is processing a message when the program calls this method, all facilities of the connection and its sessions remain available to those listeners until they return. In the meantime, this method blocks until that processing completes, that is, until all message listeners and receive calls have returned.
However, the stopped connection prevents the client program from processing any new messages.
Sending
A stopped connection can still send outbound messages.
|
inline |
A String representation of the conneciton object
|
get |
Get URL of the server this connection is currently connected to
This property holds the URL of the server at the other endpoint of the connection. When the connection interacts with several servers in a fault-tolerant arrangement, this property indicates the current active server.
|
getset |
Gets and Set the Client Id
This property holds the unique client ID of the connection.
Client IDs partition the namespace of durable subscribers (see Session.CreateDurableSubscriber).
Administrators can configure ConnectionFactory objects to assign client IDs to new connections. Alternatively, administrators can allow client programs to assign their own IDs. If the factory does not assign an ID, the program may dynamically set this property by calling the setClientID method. However, it is illegal to overwrite an existing client ID value, and or to set this property after using the connection in any way (for example, after creating a session, or starting the connection); attempting to set this property in these situations results in IllegalStateException.
TIBCO.EMS.IllegalStateException | Attempt to overwrite existing ClientID or to set the ClientID after using the connection. |
|
addremove |
The exception event handler
The client library raises an event if it detects a problem with the connection. The program implements a handler delegate to processes it asynchronously and registers the delegate here.
Delegate declaration for exception handler is as follows:
Example of using the exception event handler:
Note: Use either ExceptionHandler or IExceptionListener to handle exceptions, but not both. Setting up both will cause the exception to be handled more than once which can result in undefined behavior
TIBCO.EMS.IllegalStateException | If the connection is closed |
|
getset |
Get and set the exception event listener
This is an alternate pathway for alerting a client program of connection problems. The program implements the exception listener interface, and registers an exception listener object by setting this property. When the client library detects a connection problem, it calls the listener's onException method with an exception argument that details the problem.
Note: Use either TIBCO.EMS.EMSExceptionHandler or TIBCO.EMS.IExceptionListener to handle exceptions, but not both. Setting up both will cause the exception to be handled more than once which can result in undefined behavior.
TIBCO.EMS.IllegalStateException | If the connection is closed |
|
get |
Return true if connection is closed; otherwise false.
|
get |
Gets the metadata for this connection.