com.ibm.tivoli.maximo.dbmanage.connection

Class MTConnection

  • java.lang.Object
    • com.ibm.tivoli.maximo.dbmanage.connection.MTConnection
  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper


    public class MTConnection
    extends java.lang.Object
    implements java.sql.Connection
    Handles a database connection where MultiTenancy is enabled.
    See Also:
    Used to set context within MultiTenancy.
    • Field Detail

      • CONTEXTCHANGE

        public static final java.lang.String CONTEXTCHANGE
        Used to log changes in context.
        See Also:
        Constant Field Values
      • UNSUPPORTED

        public static final java.lang.String UNSUPPORTED
        Used to log unsupported operations.
        See Also:
        Constant Field Values
    • Constructor Detail

      • MTConnection

        public MTConnection(java.sql.Connection conDB,
                            java.util.Properties properties)
                     throws java.lang.Exception
        Constructor
        Parameters:
        conDB -
        properties -
        Throws:
        java.lang.Exception
    • Method Detail

      • setEnableUpdateTeantCodeDefaultValue

        public void setEnableUpdateTeantCodeDefaultValue(boolean enableUpdateTeantCodeDefaultValue)
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • close

        public void close()
                   throws java.sql.SQLException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • commit

        public void commit()
                    throws java.sql.SQLException
        All connections with uncommitted changes are committed. This may produce multiple context changes. After this command, context will return back to the value it was before the commit.
        Specified by:
        commit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
        See Also:
        Connection.commit()
      • getContextConnection

        public java.sql.Connection getContextConnection(MTContext context)
      • getContext

        public MTContext getContext()
        Get the current context.
      • createArrayOf

        public java.sql.Array createArrayOf(java.lang.String arg0,
                                            java.lang.Object[] arg1)
                                     throws java.sql.SQLException
        Specified by:
        createArrayOf in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createBlob

        public java.sql.Blob createBlob()
                                 throws java.sql.SQLException
        Specified by:
        createBlob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createClob

        public java.sql.Clob createClob()
                                 throws java.sql.SQLException
        Specified by:
        createClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createNClob

        public java.sql.NClob createNClob()
                                   throws java.sql.SQLException
        Specified by:
        createNClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createSQLXML

        public java.sql.SQLXML createSQLXML()
                                     throws java.sql.SQLException
        Specified by:
        createSQLXML in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement(int resultSetType,
                                                  int resultSetConcurrency)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStruct

        public java.sql.Struct createStruct(java.lang.String arg0,
                                            java.lang.Object[] arg1)
                                     throws java.sql.SQLException
        Specified by:
        createStruct in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getAutoCommit

        public boolean getAutoCommit()
                              throws java.sql.SQLException
        Specified by:
        getAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

        public java.lang.String getCatalog()
                                    throws java.sql.SQLException
        Specified by:
        getCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.util.Properties getClientInfo()
                                           throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.lang.String getClientInfo(java.lang.String arg0)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getHoldability

        public int getHoldability()
                           throws java.sql.SQLException
        Specified by:
        getHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.DatabaseMetaData getMetaData()
                                              throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
                                    throws java.sql.SQLException
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTypeMap

        public java.util.Map getTypeMap()
                                 throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isValid

        public boolean isValid(int arg0)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • nativeSQL

        public java.lang.String nativeSQL(java.lang.String arg0)
                                   throws java.sql.SQLException
        Specified by:
        nativeSQL in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall(java.lang.String arg0,
                                                      int arg1,
                                                      int arg2)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall(java.lang.String arg0,
                                                      int arg1,
                                                      int arg2,
                                                      int arg3)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • releaseSavepoint

        public void releaseSavepoint(java.sql.Savepoint arg0)
                              throws java.sql.SQLException
        Specified by:
        releaseSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback()
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setAutoCommit

        public void setAutoCommit(boolean autoCommit)
                           throws java.sql.SQLException
        All sub-connection will have the same AutoCommit setting.
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
        See Also:
        MTConnection.getAutoCommit(), Connection.setAutoCommit(boolean)
      • setCatalog

        public void setCatalog(java.lang.String arg0)
                        throws java.sql.SQLException
        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo(java.util.Properties arg0)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo(java.lang.String arg0,
                                  java.lang.String arg1)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setHoldability

        public void setHoldability(int arg0)
                            throws java.sql.SQLException
        Specified by:
        setHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setReadOnly

        public void setReadOnly(boolean arg0)
                         throws java.sql.SQLException
        Specified by:
        setReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint()
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint(java.lang.String arg0)
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTransactionIsolation

        public void setTransactionIsolation(int arg0)
                                     throws java.sql.SQLException
        Specified by:
        setTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

        public void setTypeMap(java.util.Map arg0)
                        throws java.sql.SQLException
        Specified by:
        setTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor(java.lang.Class iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public java.lang.Object unwrap(java.lang.Class iface)
                                throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setStorageType

        public void setStorageType(java.lang.String tbname,
                                   MTStorageType st)
        Tell the connection the storage type of a table. Used for temporary tables that aren't stored in MaxTable.
        Parameters:
        tbname - Name of the table.
        st - StorageType of the table.
      • getStorageType

        public MTStorageType getStorageType(java.lang.String tbname)
                                     throws java.sql.SQLException
        Returns a table's storage type. Caches the value also.
        Parameters:
        tbname - Name of the table.
        Returns:
        A value from 0 to 6, or -1 if data for the table is not found
        Throws:
        MXException
        java.sql.SQLException
      • getContextForSql

        public java.util.List getContextForSql(java.lang.String sql)
                                        throws java.sql.SQLException
        Builds a set of contexts to properly execute the SQL statement.
        Parameters:
        sql -
        Returns:
        The list of contexts where the execution needs to occur, plus the SQL to use in that context. The list is ordered.
        Throws:
        java.sql.SQLException
      • getContextForQuery

        public MTContext getContextForQuery(java.lang.String sql)
                                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getTenantContexts

        public java.util.Set getTenantContexts()
        Returns all contexts except the Master context.
      • getAllContexts

        public java.util.Set getAllContexts()
      • setTargetContexts

        public void setTargetContexts(java.util.Collection c)
        When the target context is set, only this context will be used for operations & selects on TRANSACTIONAL, DELTA, and TEMPLATE tables.
        Parameters:
        c -
      • setTargetContext

        public void setTargetContext(MTContext c)
      • getTargetContext

        public java.util.List getTargetContext()
        Get the Target Context list.
        Returns:
        list of targetContext
      • setTargetContextByName

        public void setTargetContextByName(java.lang.String context)
        Set the targeted context for future statements. Applies until changed.
        Parameters:
        context - Can be master", "landlord", null, or a TenantCode from the TenantReg table.
      • pushContext

        public void pushContext(MTContext context)
                         throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • pushContext

        public void pushContext(java.util.List contextList)
                         throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • popContext

        public void popContext()
                        throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNetworkTimeout

        public void setNetworkTimeout(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getNetworkTimeout

        public int getNetworkTimeout()
                              throws java.sql.SQLException
        Specified by:
        getNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getSchema

        public java.lang.String getSchema()
                                   throws java.sql.SQLException
        Specified by:
        getSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • abort

        public void abort(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException