TIBCO Enterprise Message Service

com.tibco.tibems.ufo
Class TibjmsUFOConnectionFactory

java.lang.Object
  extended by TibjmsUFOxCF
      extended by com.tibco.tibems.ufo.TibjmsUFOConnectionFactory
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, ConnectionFactory
Direct Known Subclasses:
TibjmsUFOQueueConnectionFactory, TibjmsUFOTopicConnectionFactory

public class TibjmsUFOConnectionFactory
extends TibjmsUFOxCF
implements ConnectionFactory, java.io.Externalizable


Constructor Summary
TibjmsUFOConnectionFactory()
          Create an empty connection factory.
TibjmsUFOConnectionFactory(java.lang.String serverUrls)
          Create a connection factory with the given server URLs.
TibjmsUFOConnectionFactory(java.lang.String serverUrls, java.lang.String clientId)
          Create a connection factory with the given server URLs and client id.
TibjmsUFOConnectionFactory(java.lang.String serverUrls, java.lang.String clientId, java.util.Map properties)
          Create a connection factory with the given server URLs, client id, and properties.
TibjmsUFOConnectionFactory(TibjmsConnectionFactory factory)
          Create a UFO connection factory with the given tibjms connection factory.
 
Method Summary
 java.lang.Object clone()
           
 Connection createConnection()
          Creates a connection with the default user identity.
 Connection createConnection(java.lang.String userName, java.lang.String password)
          Creates a connection with the specified user identity.
 java.lang.String getSSLProxyHost()
          Get the SSL proxy host from this connection factory.
 java.lang.String getSSLProxyPassword()
          Get the SSL proxy password from a connection factory.
 int getSSLProxyPort()
          Get the SSL proxy port from this connection factory.
 java.lang.String getSSLProxyUser()
          Get the SSL proxy username from a connection factory.
 void readExternal(java.io.ObjectInput in)
           
 void recoverConnection(Connection connection)
          Recovers the given connection.
 void setBlockingOnRecovery(boolean blocking)
          Enable or Disable blocking on JMS API call when the connection is diconnected or in recovery
 void setClientID(java.lang.String clientID)
           
 void setConnAttemptCount(int attempts)
           
 void setConnAttemptDelay(int delay)
           
 void setConnAttemptTimeout(int timeout)
          Set the Connect Attempt timeout for a given connection.
 void setMetric(int metric)
          This sets the metric that will be used to select an EMS server during load balancing switchover.
 void setMulticastDaemon(java.lang.String port)
          Set the port on which the EMS client will connect to the multicast daemon.
 void setMulticastEnabled(boolean enabled)
          Set whether MessageConsumers subscribed to a multicast-enabled topic will receive messages over multicast.
 void setReconnAttemptCount(int attempts)
           
 void setReconnAttemptDelay(int delay)
           
 void setReconnAttemptTimeout(int timeout)
          Set the Reconnect Attempt timeout for a given connection Note: This timeout is per url and per reconnect_attempt.
 void setServerUrl(java.lang.String serverUrls)
          Connections created by this connection factory will connect to a server in the given URL list.
 void setSSLAuthOnly(java.lang.Boolean authOnly)
          Set client connections to use SSL only during initial connection authentication.
 void setSSLCipherSuites(java.lang.String suites)
          Set cipher suites to be used by SSL connections.
 void setSSLDebugTrace(java.lang.Boolean debugTrace)
          Enables debug tracing.
 void setSSLEnableVerifyHost(java.lang.Boolean enableVerifyHost)
          Set if the host certificate should be verified by the client.
 void setSSLEnableVerifyHostName(java.lang.Boolean enableVerifyHostName)
          Set if the name in the host certificate should be verified or not.
 void setSSLExpectedHostName(java.lang.String expectedHostName)
          Set the name which is expected to be set in the host certificate.
 void setSSLIdentity(byte[] identity)
          The client's digital certificate.
 void setSSLIdentity(java.lang.String sslIdentity)
          The client's digital certificate.
 void setSSLIdentityEncoding(java.lang.String sslIdentityEncoding)
          The encoding of the client identity specified in the setSSLIdentity() method.
 void setSSLIssuerCertificate(byte[] certificate, java.lang.String encoding)
          Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these.
 void setSSLIssuerCertificate(java.lang.String certificate)
          Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these.
 void setSSLIssuerCertificate(java.lang.String certificate, java.lang.String encoding)
          Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these.
 void setSSLPassword(java.lang.String sslPassword)
          Set the private key password for SSL.
 void setSSLPrivateKey(byte[] sslPrivateKey)
          Set the private key corresponding to the identity certificate.
 void setSSLPrivateKey(java.lang.String sslPrivateKey)
          Set the private key corresponding to the identity certificate.
 void setSSLPrivateKeyEncoding(java.lang.String sslPrivateKeyEncoding)
          Set the private key corresponding to the identity certificate.
 void setSSLProxy(java.lang.String host, int port)
          Set the connection factory's parameters for connecting through an SSL proxy.
 void setSSLProxyAuth(java.lang.String username, java.lang.String password)
          Set a connection factory's username and password for connecting through an SSL proxy.
 void setSSLTrace(java.lang.Boolean trace)
           
 void setSSLTrustedCertificate(byte[] certificate, java.lang.String trustedEncoding)
          Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these.
 void setSSLTrustedCertificate(java.lang.String certificate)
          Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these.
 void setSSLTrustedCertificate(java.lang.String certificate, java.lang.String trustedEncoding)
          Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these.
 void setSSLVendor(java.lang.String vendor)
          Set SSL vendor to the specified vendor.
 void setUserName(java.lang.String username)
           
 void setUserPassword(java.lang.String password)
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TibjmsUFOConnectionFactory

public TibjmsUFOConnectionFactory()
Create an empty connection factory. This call does not attempt to access the repository. Equivalent to TibjmsConnectionFactory(null, null, null).

See Also:
TibjmsContext

TibjmsUFOConnectionFactory

public TibjmsUFOConnectionFactory(java.lang.String serverUrls)
Create a connection factory with the given server URLs. Equivalent to TibjmsUFOConnectionFactory(serverUrls, null, null).

Parameters:
serverUrls - Connections created by this connection factory will connect to a server in this URL list.

TibjmsUFOConnectionFactory

public TibjmsUFOConnectionFactory(java.lang.String serverUrls,
                                  java.lang.String clientId)
Create a connection factory with the given server URLs and client id. Equivalent to TibjmsUFOConnectionFactory(serverUrls, clientId, null).

Parameters:
serverUrls - Connections created by this connection factory will connect to a server in this URL list.
clientId -

TibjmsUFOConnectionFactory

public TibjmsUFOConnectionFactory(java.lang.String serverUrls,
                                  java.lang.String clientId,
                                  java.util.Map properties)
Create a connection factory with the given server URLs, client id, and properties.

Parameters:
serverUrls - Connections created by this connection factory will connect to a server in this URL list.
clientId -
properties -

TibjmsUFOConnectionFactory

public TibjmsUFOConnectionFactory(TibjmsConnectionFactory factory)
                           throws JMSException
Create a UFO connection factory with the given tibjms connection factory.

Parameters:
factory - Connections created by this connection factory will connect to a server in this URL list.
Throws:
JMSException
Method Detail

createConnection

public Connection createConnection()
                            throws JMSException
Description copied from interface: ConnectionFactory
Creates a connection with the default user identity. The connection is created in stopped mode. No messages will be delivered until the Connection.start method is explicitly called.

Specified by:
createConnection in interface ConnectionFactory
Returns:
a newly created connection
Throws:
JMSException - if the JMS provider fails to create the connection due to some internal error.
JMSSecurityException - if client authentication fails due to an invalid user name or password.

createConnection

public Connection createConnection(java.lang.String userName,
                                   java.lang.String password)
                            throws JMSException
Description copied from interface: ConnectionFactory
Creates a connection with the specified user identity. The connection is created in stopped mode. No messages will be delivered until the Connection.start method is explicitly called.

Specified by:
createConnection in interface ConnectionFactory
Parameters:
userName - the caller's user name
password - the caller's password
Returns:
a newly created connection
Throws:
JMSException - if the JMS provider fails to create the connection due to some internal error.
JMSSecurityException - if client authentication fails due to an invalid user name or password.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Throws:
java.lang.CloneNotSupportedException

setServerUrl

public void setServerUrl(java.lang.String serverUrls)
                  throws JMSException
Connections created by this connection factory will connect to a server in the given URL list.

Parameters:
serverUrls -
Throws:
JMSException

setClientID

public void setClientID(java.lang.String clientID)
                 throws JMSException
Parameters:
clientID - The clientID that will be sent to the server when a Connection is created.
Throws:
JMSException

setMetric

public void setMetric(int metric)
               throws JMSException
This sets the metric that will be used to select an EMS server during load balancing switchover. Allowed values are defined in the Tibjms class, with names like FACTORY_LOAD_BALANCE_METRIC_*

Parameters:
metric - The metric to use during load balancing switchover.
Throws:
JMSException
See Also:
Tibjms

setConnAttemptCount

public void setConnAttemptCount(int attempts)
Parameters:
attempts - The number of times the connection object attempts to establish a connection to the server list. Note: the attempt is per list. A single attempt means that the connection object tries to connect to a server in the list until it either successes or fails on all servers in the list.

setConnAttemptDelay

public void setConnAttemptDelay(int delay)
Parameters:
delay - The delay time between successive attempts to establish a connection to the server list. Its value is the time (in milliseconds) between connection attempts.

setReconnAttemptCount

public void setReconnAttemptCount(int attempts)
Parameters:
attempts - The number of times that a connection object attempts to recover a connection to the server list.

setReconnAttemptDelay

public void setReconnAttemptDelay(int delay)
Parameters:
delay - The delay time between successive attempts to recover connection to the server list. Its value is the time (in milliseconds) between recovery attempts.

setUserName

public void setUserName(java.lang.String username)
Parameters:
username - The connection object presents this user identity to the server.

setUserPassword

public void setUserPassword(java.lang.String password)
Parameters:
password - The connection object authenticates the user identity with this password.

setSSLVendor

public void setSSLVendor(java.lang.String vendor)
Set SSL vendor to the specified vendor. Parameter vendorName should be one of: 'j2se' or 'entrust6'. After SSL environment has been initialized the vendor can not be changed and calls to this methods are ignored.

Parameters:
vendor - Specifies the SSL implementation to be used for creating SSL connections.
Throws:
JMSSecurityException - if specified vendor is not supported.
See Also:
TibjmsSSL

setSSLTrace

public void setSSLTrace(java.lang.Boolean trace)
Parameters:
trace - Set true to enable tracing of SSL related operations.

setSSLDebugTrace

public void setSSLDebugTrace(java.lang.Boolean debugTrace)
Enables debug tracing. When 'j2se' SSL vendor is used debug tracing should be enabled via javax.net.debug system property.

Parameters:
debugTrace - Set to true to enable debug tracing.

setSSLEnableVerifyHost

public void setSSLEnableVerifyHost(java.lang.Boolean enableVerifyHost)
Set if the host certificate should be verified by the client. By default it is always enabled.

Parameters:
enableVerifyHost -

setSSLEnableVerifyHostName

public void setSSLEnableVerifyHostName(java.lang.Boolean enableVerifyHostName)
Set if the name in the host certificate should be verified or not. By default this is always enabled.

Parameters:
enableVerifyHostName -

setSSLExpectedHostName

public void setSSLExpectedHostName(java.lang.String expectedHostName)
Set the name which is expected to be set in the host certificate. Name in the certificate is present in the CN field of the certificate subject. By default the expected certificate name is the name of the connected host.

Parameters:
expectedHostName -

setSSLAuthOnly

public void setSSLAuthOnly(java.lang.Boolean authOnly)
Set client connections to use SSL only during initial connection authentication. If parameter is true then connections use SSL only for authentication and switch to TCP protocol for all subsequent messaging. If parameter is false then SSL is used for the lifetime of the connection, which is the default mode. Connections use this setting at the time they are created. Changing this setting only affects connection created after the change. By default this parameter is disabled.

Parameters:
authOnly - Set true to only use SSL for authentication, false to use SSL for the lifetime of the connections.

setSSLTrustedCertificate

public void setSSLTrustedCertificate(java.lang.String certificate)
Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these. SSL clients may verify them during the SSL handshake; if your program verifies host certificates, then you must register trusted certificates as well. If the ConnectionFactory already has trusted certificates, this call adds to that set; it does not overwrite them.

Parameters:
certificate -

setSSLTrustedCertificate

public void setSSLTrustedCertificate(java.lang.String certificate,
                                     java.lang.String trustedEncoding)
Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these. SSL clients may verify them during the SSL handshake; if your program verifies host certificates, then you must register trusted certificates as well. If the ConnectionFactory already has trusted certificates, this call adds to that set; it does not overwrite them.

Parameters:
certificate -
trustedEncoding -

setSSLTrustedCertificate

public void setSSLTrustedCertificate(byte[] certificate,
                                     java.lang.String trustedEncoding)
Trusted certificates are certificates that authenticate the server's certificate; the certificate authority (CA) that issued the server's certificate supplies these. SSL clients may verify them during the SSL handshake; if your program verifies host certificates, then you must register trusted certificates as well. If the ConnectionFactory already has trusted certificates, this call adds to that set; it does not overwrite them.

Parameters:
certificate - The certificate, represented as raw bytes.
trustedEncoding -

setSSLIssuerCertificate

public void setSSLIssuerCertificate(java.lang.String certificate)
Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these. SSL clients must supply them during the SSL handshake, so your program must set them.

Parameters:
certificate -

setSSLIssuerCertificate

public void setSSLIssuerCertificate(java.lang.String certificate,
                                    java.lang.String encoding)
Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these. SSL clients must supply them during the SSL handshake, so your program must set them.

Parameters:
certificate -
encoding -

setSSLIssuerCertificate

public void setSSLIssuerCertificate(byte[] certificate,
                                    java.lang.String encoding)
Issuer certificates are certificates that authenticate the client's certificate; the certificate authority (CA) that issued the client's certificate supplies these. SSL clients must supply them during the SSL handshake, so your program must set them.

Parameters:
certificate - The certificate as binary data
encoding - The encoding type for this certificate

setSSLIdentity

public void setSSLIdentity(java.lang.String sslIdentity)
The client's digital certificate. For more information on file types for digital certificates, see "File Names for Certificates and Keys" in the EMS User's Guide.

Parameters:
sslIdentity -

setSSLIdentity

public void setSSLIdentity(byte[] identity)
The client's digital certificate. For more information on file types for digital certificates, see "File Names for Certificates and Keys" in the EMS User's Guide.

Parameters:
identity -

setSSLIdentityEncoding

public void setSSLIdentityEncoding(java.lang.String sslIdentityEncoding)
The encoding of the client identity specified in the setSSLIdentity() method.

Parameters:
sslIdentityEncoding -

setSSLPrivateKey

public void setSSLPrivateKey(java.lang.String sslPrivateKey)
Set the private key corresponding to the identity certificate.

Parameters:
sslPrivateKey -

setSSLPrivateKey

public void setSSLPrivateKey(byte[] sslPrivateKey)
Set the private key corresponding to the identity certificate.

Parameters:
sslPrivateKey -

setSSLPrivateKeyEncoding

public void setSSLPrivateKeyEncoding(java.lang.String sslPrivateKeyEncoding)
Set the private key corresponding to the identity certificate.

Parameters:
sslPrivateKeyEncoding -

setSSLPassword

public void setSSLPassword(java.lang.String sslPassword)
Set the private key password for SSL.

Parameters:
sslPassword -

setSSLCipherSuites

public void setSSLCipherSuites(java.lang.String suites)
Set cipher suites to be used by SSL connections.

Parameters:
suites -

setSSLProxy

public void setSSLProxy(java.lang.String host,
                        int port)
                 throws JMSException
Set the connection factory's parameters for connecting through an SSL proxy. An SSL proxy lets an EMS application create an SSL connection to an EMS server, even though a firewall separates the application from the server. The proxy usually runs within the firewall's DMZ. A connection factory contacts the SSL proxy, requesting an SSL connection to the server. The proxy authenticates the application program, and mediates the initial SSL negotiation between application and server. After the SSL connection is established, the application and server use it to communicate directly with one another.

Parameters:
host - the connection factory establishes SSL communication through a web proxy at this host. Supply a simple hostname, a fully qualified hostname with domain name, or an IP address (dot notation).
port - the connection factory establishes SSL communication through a web proxy on this port.
Throws:
JMSException - if the proxy host is null or empty, the port is zero or the protocol of the connection factory's URL is not SSL.

setSSLProxyAuth

public void setSSLProxyAuth(java.lang.String username,
                            java.lang.String password)
                     throws JMSException
Set a connection factory's username and password for connecting through an SSL proxy. When a connection factory establishes an EMS server connection through an SSL proxy host, the proxy might first require authentication before facilitating a connection. When required, use this call to set that authentication data on the connection factory. Notice that this proxy authentication data is distinct from the server authentication data, and from the SSL private key encryption password.

Parameters:
username - the connection factory authenticates itself to the SSL proxy using this username.
password - the connection factory authenticates itself to the SSL proxy using this password.
Throws:
JMSException - if the protocol of the connection factory's URL is not SSL.

getSSLProxyHost

public java.lang.String getSSLProxyHost()
                                 throws JMSException
Get the SSL proxy host from this connection factory.

Returns:
the host
Throws:
JMSException - if the protocol of the connection factory's URL is not SSL.

getSSLProxyPort

public int getSSLProxyPort()
                    throws JMSException
Get the SSL proxy port from this connection factory.

Returns:
the port.
Throws:
JMSException - if the protocol of the connection factory's URL is not SSL.

getSSLProxyUser

public java.lang.String getSSLProxyUser()
                                 throws JMSException
Get the SSL proxy username from a connection factory.

Returns:
the username.
Throws:
JMSException - if the protocol of the connection factory's URL is not SSL.

getSSLProxyPassword

public java.lang.String getSSLProxyPassword()
                                     throws JMSException
Get the SSL proxy password from a connection factory.

Returns:
the password.
Throws:
JMSException - if the protocol of the connection factory's URL is not SSL.

setConnAttemptTimeout

public void setConnAttemptTimeout(int timeout)
Set the Connect Attempt timeout for a given connection. Note: This timeout is per url and per connect_attempt. So if one were to specify two connect attempts for a given url then for each attempt the client will wait utmost connect attempt timeout for the connection to be established, if no connection is esablished within that time, the client's connection attempt is teared down if the client is hung either because of system resources unavailable on the server machine or because of some other error in the EMS Server NOTE: minimum value is 100 milliseconds, if value less than 100 milliseconds is specified, then during the connection establishment the minimum value of 100 milliseconds is used.

Parameters:
timeout - the timeout is in milliseconds

setReconnAttemptTimeout

public void setReconnAttemptTimeout(int timeout)
Set the Reconnect Attempt timeout for a given connection Note: This timeout is per url and per reconnect_attempt. So if one were to specify 2 reconnect attempts for a given url then for each attempt the client will wait utmost reconnect attempt timeout for the connection to be established, if no connection is established within that time, the client's reconnection attempt is teared down if the client is hung either because of system resources unavailable on the server machine or because of some other error in the EMS Server NOTE: minimum value is 100 milliseconds, if value less than 100 milliseconds is specified, then during the connection establishment the minimum value of 100 milliseconds is used.

Parameters:
timeout - the timeout is in milliseconds

setMulticastEnabled

public void setMulticastEnabled(boolean enabled)
Set whether MessageConsumers subscribed to a multicast-enabled topic will receive messages over multicast.

When enabled, MessageConsumers subscribed to a multicast-enabled topic will receive messages over multicast.

The default is enabled.

Parameters:
enabled - true to enable multicast, false to disable multicast
Since:
EMS 5.0

setMulticastDaemon

public void setMulticastDaemon(java.lang.String port)
                        throws JMSException
Set the port on which the EMS client will connect to the multicast daemon.

A connection to the multicast daemon is required when multicast is enabled and a MessageConsumer is subscribed to a multicast-enabled topic.

NOTE: setting the port with this method will override the default port supplied by the EMS server.

Parameters:
port - the port of the multicast daemon
Throws:
JMSException
Since:
EMS 5.0

recoverConnection

public void recoverConnection(Connection connection)
                       throws JMSException
Recovers the given connection. This method is used to recover the broken connection on another available server. The sessions, message producers, message consumers, temporary destinations created by this broken connection are transparently recreated once the connection is recovered.

Parameters:
connection - connection to be recovered
Throws:
JMSException

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException

setBlockingOnRecovery

public void setBlockingOnRecovery(boolean blocking)
Enable or Disable blocking on JMS API call when the connection is diconnected or in recovery

Parameters:
blocking - true enables blocking and false disables blocking

TIBCO Enterprise Message Service

Copyright © TIBCO Software Inc. All rights reserved