Class FBManagedConnectionFactory

java.lang.Object
org.firebirdsql.jca.FBManagedConnectionFactory
All Implemented Interfaces:
Serializable, javax.resource.spi.ManagedConnectionFactory, FirebirdConnectionProperties

public class FBManagedConnectionFactory extends Object implements javax.resource.spi.ManagedConnectionFactory, FirebirdConnectionProperties, Serializable
FBManagedConnectionFactory implements the jca ManagedConnectionFactory interface and also many of the internal functions of ManagedConnection. This nonstandard behavior is required due to firebird requiring all work done in a transaction to be done over one connection. To support xa semantics, the correct db handle must be located whenever a ManagedConnection is associated with an xid. WARNING: this adapter will probably not work properly in an environment where ManagedConnectionFactory is serialized and deserialized, and the deserialized copy is expected to function as anything other than a key.
Author:
David Jencks , Mark Rotteveel
See Also:
  • Constructor Details

    • FBManagedConnectionFactory

      public FBManagedConnectionFactory()
      Create a new pure-Java FBManagedConnectionFactory.
    • FBManagedConnectionFactory

      public FBManagedConnectionFactory(GDSType gdsType)
      Create a new FBManagedConnectionFactory based around the given GDSType.
      Parameters:
      gdsType - The GDS implementation to use
    • FBManagedConnectionFactory

      public FBManagedConnectionFactory(GDSType gdsType, FBConnectionProperties connectionProperties)
  • Method Details

    • getDatabaseFactory

      public FbDatabaseFactory getDatabaseFactory()
    • getGDSType

      public GDSType getGDSType()
      Get the GDS implementation type around which this factory is based.
      Returns:
      The GDS implementation type
    • getBlobBufferLength

      @Deprecated public int getBlobBufferLength()
      Deprecated.
    • setBlobBufferLength

      @Deprecated public void setBlobBufferLength(int value)
      Deprecated.
    • getTransactionIsolation

      @Deprecated public Integer getTransactionIsolation()
    • setTransactionIsolation

      @Deprecated public void setTransactionIsolation(Integer value)
    • getTransactionIsolationName

      @Deprecated public String getTransactionIsolationName()
      Deprecated.
    • setTransactionIsolationName

      @Deprecated public void setTransactionIsolationName(String name)
    • getLocalEncoding

      @Deprecated public String getLocalEncoding()
      Deprecated.
      use getCharSet() instead.
    • setLocalEncoding

      @Deprecated public void setLocalEncoding(String localEncoding)
      Deprecated.
      use setCharSet(String) instead.
    • getBlobBufferSize

      public int getBlobBufferSize()
      Specified by:
      getBlobBufferSize in interface FirebirdConnectionProperties
      Returns:
      BLOB buffer size in bytes.
    • getBuffersNumber

      public int getBuffersNumber()
      Specified by:
      getBuffersNumber in interface FirebirdConnectionProperties
      Returns:
      number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.
    • getCharSet

      public String getCharSet()
      Specified by:
      getCharSet in interface FirebirdConnectionProperties
      Returns:
      Character set for the connection.
      See Also:
    • getDatabase

      public String getDatabase()
      Specified by:
      getDatabase in interface FirebirdConnectionProperties
      Returns:
      path to the database including the server name and the port, if needed.
    • getDatabaseParameterBuffer

      public DatabaseParameterBuffer getDatabaseParameterBuffer() throws SQLException
      Description copied from interface: FirebirdConnectionProperties
      Get the database parameter buffer corresponding to the current connection request information.
      Specified by:
      getDatabaseParameterBuffer in interface FirebirdConnectionProperties
      Returns:
      instance of DatabaseParameterBuffer.
      Throws:
      SQLException - if database parameter buffer cannot be created.
    • getDefaultIsolation

      public String getDefaultIsolation()
      Description copied from interface: FirebirdConnectionProperties
      Get the default transaction isolation level as string. This method is complementary to the FirebirdConnectionProperties.getDefaultTransactionIsolation(), however it takes a string as parameter instead of a numeric constant.
      Specified by:
      getDefaultIsolation in interface FirebirdConnectionProperties
      Returns:
      default transaction isolation as string.
      See Also:
    • getDefaultTransactionIsolation

      public int getDefaultTransactionIsolation()
      Description copied from interface: FirebirdConnectionProperties
      Get the default transaction isolation level. This is the transaction isolation level for the newly created connections.
      Specified by:
      getDefaultTransactionIsolation in interface FirebirdConnectionProperties
      Returns:
      default transaction isolation level.
    • getEncoding

      public String getEncoding()
      Specified by:
      getEncoding in interface FirebirdConnectionProperties
      Returns:
      Character encoding for the connection.
      See Also:
    • getNonStandardProperty

      public String getNonStandardProperty(String key)
      Description copied from interface: FirebirdConnectionProperties
      Get the property that does not have corresponding getter method by its name.
      Specified by:
      getNonStandardProperty in interface FirebirdConnectionProperties
      Parameters:
      key - name of the property to get.
      Returns:
      value of the property.
    • getPassword

      public String getPassword()
      Specified by:
      getPassword in interface FirebirdConnectionProperties
      Returns:
      password corresponding to the specified user name.
    • getRoleName

      public String getRoleName()
      Specified by:
      getRoleName in interface FirebirdConnectionProperties
      Returns:
      SQL role to use.
    • getSocketBufferSize

      public int getSocketBufferSize()
      Specified by:
      getSocketBufferSize in interface FirebirdConnectionProperties
      Returns:
      socket buffer size in bytes, or -1 is not specified.
    • getSqlDialect

      public String getSqlDialect()
      Specified by:
      getSqlDialect in interface FirebirdConnectionProperties
      Returns:
      SQL dialect of the client.
    • getTpbMapping

      public String getTpbMapping()
      Description copied from interface: FirebirdConnectionProperties
      Get the used TPB mapping.
      Specified by:
      getTpbMapping in interface FirebirdConnectionProperties
      Returns:
      path to the TPB mapping.
      See Also:
    • getTransactionParameters

      public TransactionParameterBuffer getTransactionParameters(int isolation)
      Description copied from interface: FirebirdConnectionProperties
      Get the transaction parameter buffer corresponding to the current connection request information.
      Specified by:
      getTransactionParameters in interface FirebirdConnectionProperties
      Parameters:
      isolation - transaction isolation level for which TPB should be returned.
      Returns:
      instance of TransactionParameterBuffer.
    • getType

      public String getType()
      Specified by:
      getType in interface FirebirdConnectionProperties
      Returns:
      type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.
    • getUserName

      public String getUserName()
      Specified by:
      getUserName in interface FirebirdConnectionProperties
      Returns:
      name of the user that will be used when connecting to the database.
    • isTimestampUsesLocalTimezone

      public boolean isTimestampUsesLocalTimezone()
      Specified by:
      isTimestampUsesLocalTimezone in interface FirebirdConnectionProperties
      Returns:
      true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
    • isUseStandardUdf

      public boolean isUseStandardUdf()
      Specified by:
      isUseStandardUdf in interface FirebirdConnectionProperties
      Returns:
      true if driver should assume that standard UDF are installed.
    • isUseStreamBlobs

      public boolean isUseStreamBlobs()
      Specified by:
      isUseStreamBlobs in interface FirebirdConnectionProperties
      Returns:
      true if stream blobs should be created, otherwise false.
    • setBlobBufferSize

      public void setBlobBufferSize(int bufferSize)
      Specified by:
      setBlobBufferSize in interface FirebirdConnectionProperties
      Parameters:
      bufferSize - size of the BLOB buffer in bytes.
    • setBuffersNumber

      public void setBuffersNumber(int buffersNumber)
      Specified by:
      setBuffersNumber in interface FirebirdConnectionProperties
      Parameters:
      buffersNumber - number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.
    • setCharSet

      public void setCharSet(String charSet)
      Specified by:
      setCharSet in interface FirebirdConnectionProperties
      Parameters:
      charSet - Character set for the connection. Similar to encoding property, but accepts Java names instead of Firebird ones.
    • setDatabase

      public void setDatabase(String database)
      Specified by:
      setDatabase in interface FirebirdConnectionProperties
      Parameters:
      database - path to the database including the server name and the port, if needed.
    • setDefaultIsolation

      public void setDefaultIsolation(String isolation)
      Description copied from interface: FirebirdConnectionProperties
      Set the default transaction isolation level as string. This method is complementary to the FirebirdConnectionProperties.setDefaultTransactionIsolation(int), however it takes a string as parameter instead of a numeric constant.

      Following strings are allowed:

      • "TRANSACTION_READ_COMMITTED" for a READ COMMITTED isolation level.
      • "TRANSACTION_REPEATABLE_READ" for a REPEATABLE READ isolation level.
      • "TRANSACTION_SERIALIZABLE" for a SERIALIZABLE isolation level.
      Specified by:
      setDefaultIsolation in interface FirebirdConnectionProperties
      Parameters:
      isolation - string constant representing a default isolation level.
    • setDefaultTransactionIsolation

      public void setDefaultTransactionIsolation(int defaultIsolationLevel)
      Description copied from interface: FirebirdConnectionProperties
      Set the default transaction isolation level.
      Specified by:
      setDefaultTransactionIsolation in interface FirebirdConnectionProperties
      Parameters:
      defaultIsolationLevel - default transaction isolation level.
    • setEncoding

      public void setEncoding(String encoding)
      Specified by:
      setEncoding in interface FirebirdConnectionProperties
      Parameters:
      encoding - Character encoding for the connection. See Firebird documentation for more information.
    • setNonStandardProperty

      public void setNonStandardProperty(String key, String value)
      Description copied from interface: FirebirdConnectionProperties
      Set the property that does not have corresponding setter method.
      Specified by:
      setNonStandardProperty in interface FirebirdConnectionProperties
      Parameters:
      key - name of the property to set.
      value - value of the property.
    • setNonStandardProperty

      public void setNonStandardProperty(String propertyMapping)
      Description copied from interface: FirebirdConnectionProperties
      Set the property that does not have corresponding setter method.
      Specified by:
      setNonStandardProperty in interface FirebirdConnectionProperties
      Parameters:
      propertyMapping - parameter value in the ?propertyName[=propertyValue]? form, this allows setting non-standard parameters using configuration files.
    • setPassword

      public void setPassword(String password)
      Specified by:
      setPassword in interface FirebirdConnectionProperties
      Parameters:
      password - password corresponding to the specified user name.
    • setRoleName

      public void setRoleName(String roleName)
      Specified by:
      setRoleName in interface FirebirdConnectionProperties
      Parameters:
      roleName - SQL role to use.
    • setSocketBufferSize

      public void setSocketBufferSize(int socketBufferSize)
      Specified by:
      setSocketBufferSize in interface FirebirdConnectionProperties
      Parameters:
      socketBufferSize - socket buffer size in bytes.
    • setSqlDialect

      public void setSqlDialect(String sqlDialect)
      Specified by:
      setSqlDialect in interface FirebirdConnectionProperties
      Parameters:
      sqlDialect - SQL dialect of the client.
    • setTimestampUsesLocalTimezone

      public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
      Specified by:
      setTimestampUsesLocalTimezone in interface FirebirdConnectionProperties
      Parameters:
      timestampUsesLocalTimezone - true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
    • setTpbMapping

      public void setTpbMapping(String tpbMapping)
      Description copied from interface: FirebirdConnectionProperties
      Set path to the properties file with the TPB mapping. The path begins with the protocol specification followed by the path to the resource. A special protocol "res:" should be used to specify resource in the classpath.

      For the compatibility reasons, if no protocol is specified, classpath is used by default.

      Properties file contains a mapping between the transaction isolation level (name of the constant in the Connection interface and a comma-separated list of TPB parameters.

      Specified by:
      setTpbMapping in interface FirebirdConnectionProperties
      Parameters:
      tpbMapping - path to the properties file.
    • setTransactionParameters

      public void setTransactionParameters(int isolation, TransactionParameterBuffer tpb)
      Description copied from interface: FirebirdConnectionProperties
      Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.
      Specified by:
      setTransactionParameters in interface FirebirdConnectionProperties
      Parameters:
      isolation - transaction isolation level.
      tpb - instance of TransactionParameterBuffer containing transaction parameters.
    • setType

      public void setType(String type)
      Specified by:
      setType in interface FirebirdConnectionProperties
      Parameters:
      type - type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.
    • setUserName

      public void setUserName(String userName)
      Specified by:
      setUserName in interface FirebirdConnectionProperties
      Parameters:
      userName - name of the user that will be used when connecting to the database.
    • setUseStandardUdf

      public void setUseStandardUdf(boolean useStandardUdf)
      Specified by:
      setUseStandardUdf in interface FirebirdConnectionProperties
      Parameters:
      useStandardUdf - true if driver should assume that standard UDF are installed.
    • setUseStreamBlobs

      public void setUseStreamBlobs(boolean useStreamBlobs)
      Specified by:
      setUseStreamBlobs in interface FirebirdConnectionProperties
      Parameters:
      useStreamBlobs - true if stream blobs should be created, otherwise false.
    • isDefaultResultSetHoldable

      public boolean isDefaultResultSetHoldable()
      Description copied from interface: FirebirdConnectionProperties
      Get the default ResultSet holdability.
      Specified by:
      isDefaultResultSetHoldable in interface FirebirdConnectionProperties
      Returns:
      true when ResultSets are holdable by default, false not holdable.
    • setDefaultResultSetHoldable

      public void setDefaultResultSetHoldable(boolean isHoldable)
      Description copied from interface: FirebirdConnectionProperties
      Sets the default ResultSet holdability.
      Specified by:
      setDefaultResultSetHoldable in interface FirebirdConnectionProperties
      Parameters:
      isHoldable - true when ResultSets are holdable by default, false not holdable.
    • setDefaultConnectionManager

      public void setDefaultConnectionManager(javax.resource.spi.ConnectionManager defaultCm)
    • getSoTimeout

      public int getSoTimeout()
      Description copied from interface: FirebirdConnectionProperties
      Get the current Socket blocking timeout (SoTimeout).
      Specified by:
      getSoTimeout in interface FirebirdConnectionProperties
      Returns:
      The socket blocking timeout in milliseconds (0 is 'infinite')
    • setSoTimeout

      public void setSoTimeout(int soTimeout)
      Description copied from interface: FirebirdConnectionProperties
      Set the Socket blocking timeout (SoTimeout).
      Specified by:
      setSoTimeout in interface FirebirdConnectionProperties
      Parameters:
      soTimeout - Timeout in milliseconds (0 is 'infinite')
    • getConnectTimeout

      public int getConnectTimeout()
      Description copied from interface: FirebirdConnectionProperties
      Get the current connect timeout.
      Specified by:
      getConnectTimeout in interface FirebirdConnectionProperties
      Returns:
      Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)
    • setConnectTimeout

      public void setConnectTimeout(int connectTimeout)
      Description copied from interface: FirebirdConnectionProperties
      Set the connect timeout.
      Specified by:
      setConnectTimeout in interface FirebirdConnectionProperties
      Parameters:
      connectTimeout - Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)
    • isUseFirebirdAutocommit

      public boolean isUseFirebirdAutocommit()
      Description copied from interface: FirebirdConnectionProperties
      Get whether to use Firebird autocommit (experimental).
      Specified by:
      isUseFirebirdAutocommit in interface FirebirdConnectionProperties
      Returns:
      true use Firebird autocommit
    • setUseFirebirdAutocommit

      public void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
      Description copied from interface: FirebirdConnectionProperties
      Set whether to use Firebird autocommit (experimental).
      Specified by:
      setUseFirebirdAutocommit in interface FirebirdConnectionProperties
      Parameters:
      useFirebirdAutocommit - true Use Firebird autocommit
    • getWireCrypt

      public String getWireCrypt()
      Description copied from interface: FirebirdConnectionProperties
      Get the wire encryption level value.
      Specified by:
      getWireCrypt in interface FirebirdConnectionProperties
      Returns:
      Wire encryption level (null implies DEFAULT)
    • setWireCrypt

      public void setWireCrypt(String wireCrypt)
      Description copied from interface: FirebirdConnectionProperties
      Sets the wire encryption level.

      Values are defined by WireCrypt, values are handled case insensitive. Invalid values are accepted, but will cause an error when a connection is established.

      Specified by:
      setWireCrypt in interface FirebirdConnectionProperties
      Parameters:
      wireCrypt - Wire encryption level
    • getDbCryptConfig

      public String getDbCryptConfig()
      Description copied from interface: FirebirdConnectionProperties
      Get the database encryption plugin configuration.
      Specified by:
      getDbCryptConfig in interface FirebirdConnectionProperties
      Returns:
      Database encryption plugin configuration, meaning plugin specific
    • setDbCryptConfig

      public void setDbCryptConfig(String dbCryptConfig)
      Description copied from interface: FirebirdConnectionProperties
      Sets the database encryption plugin configuration.
      Specified by:
      setDbCryptConfig in interface FirebirdConnectionProperties
      Parameters:
      dbCryptConfig - Database encryption plugin configuration, meaning plugin specific
    • getAuthPlugins

      public String getAuthPlugins()
      Description copied from interface: FirebirdConnectionProperties
      Get the list of authentication plugins to try.
      Specified by:
      getAuthPlugins in interface FirebirdConnectionProperties
      Returns:
      comma-separated list of authentication plugins, or null for driver default
    • setAuthPlugins

      public void setAuthPlugins(String authPlugins)
      Description copied from interface: FirebirdConnectionProperties
      Sets the authentication plugins to try.

      Invalid names are skipped during authentication.

      Specified by:
      setAuthPlugins in interface FirebirdConnectionProperties
      Parameters:
      authPlugins - comma-separated list of authentication plugins, or null for driver default
    • getGeneratedKeysEnabled

      public String getGeneratedKeysEnabled()
      Description copied from interface: FirebirdConnectionProperties
      Get the generatedKeysEnabled configuration.
      Specified by:
      getGeneratedKeysEnabled in interface FirebirdConnectionProperties
      Returns:
      configuration value for generatedKeysEnabled, or null for driver default
    • setGeneratedKeysEnabled

      public void setGeneratedKeysEnabled(String generatedKeysEnabled)
      Description copied from interface: FirebirdConnectionProperties
      Sets the generatedKeysEnabled configuration.
      Specified by:
      setGeneratedKeysEnabled in interface FirebirdConnectionProperties
      Parameters:
      generatedKeysEnabled - Generated keys support configuration: default (or null/empty), disabled, ignored, or a list of statement types to enable (possible values: insert, update, delete, update_or_insert, merge)
    • getDataTypeBind

      public String getDataTypeBind()
      Description copied from interface: FirebirdConnectionProperties
      Get the dataTypeBind configuration.
      Specified by:
      getDataTypeBind in interface FirebirdConnectionProperties
      Returns:
      configuration value for dataTypeBind, or null for driver default
    • setDataTypeBind

      public void setDataTypeBind(String dataTypeBind)
      Description copied from interface: FirebirdConnectionProperties
      Sets the dataTypeBind configuration.

      If the value is explicitly set to a non-null value and the connected server is Firebird 4 or higher, this will configure the data type binding with the specified values using isc_dpb_set_bind, which is equivalent to executing SET BIND statements with the values.

      See also Firebird documentation for SET BIND.

      Specified by:
      setDataTypeBind in interface FirebirdConnectionProperties
      Parameters:
      dataTypeBind - Firebird 4+ data type bind configuration, a semicolon-separated list of <from-type> TO <to-type>
    • getSessionTimeZone

      public String getSessionTimeZone()
      Description copied from interface: FirebirdConnectionProperties
      Get the sessionTimeZone.
      Specified by:
      getSessionTimeZone in interface FirebirdConnectionProperties
      Returns:
      value for sessionTimeZone, or null for driver default (JVM default time zone)
    • setSessionTimeZone

      public void setSessionTimeZone(String sessionTimeZone)
      Description copied from interface: FirebirdConnectionProperties
      Sets the sessionTimeZone.
      Specified by:
      setSessionTimeZone in interface FirebirdConnectionProperties
      Parameters:
      sessionTimeZone - Firebird 4+ session time zone name (we strongly suggest to use Java compatible names only), use "server" to use server default time zone (note: conversion will use JVM default time zone)
    • isIgnoreProcedureType

      public boolean isIgnoreProcedureType()
      Description copied from interface: FirebirdConnectionProperties
      Get the value for ignoreProcedureType.
      Specified by:
      isIgnoreProcedureType in interface FirebirdConnectionProperties
      Returns:
      value for ignoreProcedureType
    • setIgnoreProcedureType

      public void setIgnoreProcedureType(boolean ignoreProcedureType)
      Description copied from interface: FirebirdConnectionProperties
      Sets the value ignoreProcedureType.

      When set to true, the CallableStatement implementation in Jaybird will ignore metadata information about the stored procedure type and default to using EXECUTE PROCEDURE, unless the type is explicitly set using FirebirdCallableStatement.setSelectableProcedure(boolean). This can be useful in situations where a stored procedure is selectable, but tooling or code expects an executable stored procedure.

      Specified by:
      setIgnoreProcedureType in interface FirebirdConnectionProperties
      Parameters:
      ignoreProcedureType - true Ignore procedure type
    • isWireCompression

      public boolean isWireCompression()
      Description copied from interface: FirebirdConnectionProperties
      Get if wire compression should be enabled.

      Wire compression requires Firebird 3 or higher, and the server must have the zlib library. If compression cannot be negotiated, the connection will be made without wire compression.

      This property will be ignored for native connections. For native connections, the configuration in firebird.conf read by the client library will be used.

      Specified by:
      isWireCompression in interface FirebirdConnectionProperties
      Returns:
      true wire compression enabled
    • setWireCompression

      public void setWireCompression(boolean wireCompression)
      Description copied from interface: FirebirdConnectionProperties
      Sets if the connection should try to enable wire compression.
      Specified by:
      setWireCompression in interface FirebirdConnectionProperties
      Parameters:
      wireCompression - true enable wire compression, false disable wire compression (the default)
      See Also:
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface javax.resource.spi.ManagedConnectionFactory
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Specified by:
      equals in interface javax.resource.spi.ManagedConnectionFactory
      Overrides:
      equals in class Object
    • getDefaultConnectionRequestInfo

      public FBConnectionRequestInfo getDefaultConnectionRequestInfo() throws javax.resource.ResourceException
      Throws:
      javax.resource.ResourceException
    • getDefaultTpb

      public FBTpb getDefaultTpb() throws javax.resource.ResourceException
      Throws:
      javax.resource.ResourceException
    • getTpb

      public FBTpb getTpb(int defaultTransactionIsolation) throws FBResourceException
      Throws:
      FBResourceException
    • createConnectionFactory

      public Object createConnectionFactory(javax.resource.spi.ConnectionManager cxManager) throws javax.resource.ResourceException
      The createConnectionFactory method creates a DataSource using the supplied ConnectionManager.
      Specified by:
      createConnectionFactory in interface javax.resource.spi.ManagedConnectionFactory
      Parameters:
      cxManager - a ConnectionManager value
      Returns:
      a java.lang.Object value
      Throws:
      javax.resource.ResourceException - if an error occurs
    • createConnectionFactory

      public Object createConnectionFactory() throws javax.resource.ResourceException
      The createConnectionFactory method creates a DataSource with a default stand alone ConnectionManager. Ours can implement pooling.
      Specified by:
      createConnectionFactory in interface javax.resource.spi.ManagedConnectionFactory
      Returns:
      a new javax.sql.DataSource based around this connection factory
      Throws:
      javax.resource.ResourceException - if an error occurs
    • createManagedConnection

      public javax.resource.spi.ManagedConnection createManagedConnection(Subject subject, javax.resource.spi.ConnectionRequestInfo cri) throws javax.resource.ResourceException
      Creates a new physical connection to the underlying EIS resource manager, ManagedConnectionFactory uses the security information (passed as Subject) and additional ConnectionRequestInfo (which is specific to ResourceAdapter and opaque to application server) to create this new connection.
      Specified by:
      createManagedConnection in interface javax.resource.spi.ManagedConnectionFactory
      Parameters:
      subject - Caller's security information
      cri - Additional resource adapter specific connection request information
      Returns:
      ManagedConnection instance
      Throws:
      javax.resource.ResourceException - generic exception
      javax.resource.spi.SecurityException - security related error
      javax.resource.spi.ResourceAllocationException - failed to allocate system resources for connection request
      javax.resource.spi.ResourceAdapterInternalException - resource adapter related error condition
      javax.resource.spi.EISSystemException - internal error condition in EIS instance
    • matchManagedConnections

      public javax.resource.spi.ManagedConnection matchManagedConnections(Set connectionSet, Subject subject, javax.resource.spi.ConnectionRequestInfo cxRequestInfo) throws javax.resource.ResourceException
      Returns a matched connection from the candidate set of connections. ManagedConnectionFactory uses the security info (as in Subject) and information provided through ConnectionRequestInfo and additional Resource Adapter specific criteria to do matching. Note that criteria used for matching is specific to a resource adapter and is not prescribed by the Connector specification.

      This method returns a ManagedConnection instance that is the best match for handling the connection allocation request.

      Specified by:
      matchManagedConnections in interface javax.resource.spi.ManagedConnectionFactory
      Parameters:
      connectionSet - candidate connection set
      subject - caller's security information
      cxRequestInfo - additional resource adapter specific connection request information
      Returns:
      ManagedConnection if resource adapter finds an acceptable match otherwise null
      Throws:
      javax.resource.ResourceException - - generic exception
      javax.resource.spi.SecurityException - - security related error
      javax.resource.spi.ResourceAdapterInternalException - - resource adapter related error condition
      javax.resource.NotSupportedException - - if operation is not supported
    • setLogWriter

      public void setLogWriter(PrintWriter out) throws javax.resource.ResourceException
      Set the log writer for this ManagedConnectionFactory instance. The log writer is a character output stream to which all logging and tracing messages for this ManagedConnectionFactory instance will be printed. ApplicationServer manages the association of output stream with the ManagedConnectionFactory. When a ManagedConnectionFactory object is created the log writer is initially null, in other words, logging is disabled. Once a log writer is associated with a ManagedConnectionFactory, logging and tracing for ManagedConnectionFactory instance is enabled.

      The ManagedConnection instances created by ManagedConnectionFactory "inherits" the log writer, which can be overridden by ApplicationServer using ManagedConnection.setLogWriter(java.io.PrintWriter)to set ManagedConnection specific logging and tracing.

      Specified by:
      setLogWriter in interface javax.resource.spi.ManagedConnectionFactory
      Parameters:
      out - an out stream for error logging and tracing
      Throws:
      javax.resource.ResourceException - generic exception
      javax.resource.spi.ResourceAdapterInternalException - resource adapter related error condition
    • getLogWriter

      public PrintWriter getLogWriter()
      Get the log writer for this ManagedConnectionFactory instance. The log writer is a character output stream to which all logging and tracing messages for this ManagedConnectionFactory instance will be printed. ApplicationServer manages the association of output stream with the ManagedConnectionFactory. When a ManagedConnectionFactory object is created the log writer is initially null, in other words, logging is disabled.
      Specified by:
      getLogWriter in interface javax.resource.spi.ManagedConnectionFactory
      Returns:
      PrintWriter instance
      Throws:
      javax.resource.ResourceException - generic exception
    • canonicalize

      public FBManagedConnectionFactory canonicalize()
      The canonicalize method is used in FBDriver to reuse previous fbmcf instances if they have been create. It should really be package access level
      Returns:
      a FBManagedConnectionFactory value
    • forget

      public void forget(FBManagedConnection mc, Xid xid) throws GDSException
      Throws:
      GDSException
    • recover

      public void recover(FBManagedConnection mc, Xid xid) throws GDSException
      Throws:
      GDSException
    • getCacheKey

      public final FBConnectionProperties getCacheKey()