Class XAStatementControl

  • All Implemented Interfaces:
    BrokeredStatementControl

    final class XAStatementControl
    extends java.lang.Object
    implements BrokeredStatementControl
    The Statement returned by an Connection returned by a XAConnection needs to float across the underlying real connections. We do this by implementing a wrapper statement.
    • Field Detail

      • realStatement

        private java.sql.Statement realStatement
      • realPreparedStatement

        private java.sql.PreparedStatement realPreparedStatement
      • realCallableStatement

        private java.sql.CallableStatement realCallableStatement
    • Constructor Detail

      • XAStatementControl

        XAStatementControl​(EmbedXAConnection xaConnection,
                           java.sql.Statement realStatement)
                    throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • XAStatementControl

        XAStatementControl​(EmbedXAConnection xaConnection,
                           java.sql.PreparedStatement realPreparedStatement,
                           java.lang.String sql,
                           java.lang.Object generatedKeys)
                    throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • XAStatementControl

        XAStatementControl​(EmbedXAConnection xaConnection,
                           java.sql.CallableStatement realCallableStatement,
                           java.lang.String sql)
                    throws java.sql.SQLException
        Throws:
        java.sql.SQLException
    • Method Detail

      • closeRealStatement

        public void closeRealStatement()
                                throws java.sql.SQLException
        Close the realStatement within this control.
        Specified by:
        closeRealStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • closeRealCallableStatement

        public void closeRealCallableStatement()
                                        throws java.sql.SQLException
        Close the realCallableStatement within this control.
        Specified by:
        closeRealCallableStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • closeRealPreparedStatement

        public void closeRealPreparedStatement()
                                        throws java.sql.SQLException
        Close the realPreparedStatement within this control.
        Specified by:
        closeRealPreparedStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • getRealStatement

        public java.sql.Statement getRealStatement()
                                            throws java.sql.SQLException
        Description copied from interface: BrokeredStatementControl
        Return the real JDBC statement for the brokered statement when this is controlling a Statement.
        Specified by:
        getRealStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • getRealPreparedStatement

        public java.sql.PreparedStatement getRealPreparedStatement()
                                                            throws java.sql.SQLException
        Description copied from interface: BrokeredStatementControl
        Return the real JDBC PreparedStatement for the brokered statement when this is controlling a PreparedStatement.
        Specified by:
        getRealPreparedStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • getRealCallableStatement

        public java.sql.CallableStatement getRealCallableStatement()
                                                            throws java.sql.SQLException
        Description copied from interface: BrokeredStatementControl
        Return the real JDBC CallableStatement for the brokered statement when this is controlling a CallableStatement.
        Specified by:
        getRealCallableStatement in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException
      • wrapResultSet

        public java.sql.ResultSet wrapResultSet​(java.sql.Statement s,
                                                java.sql.ResultSet rs)
        Don't need to wrap the ResultSet but do need to update its application Statement reference to be the one the application used to create the ResultSet.
        Specified by:
        wrapResultSet in interface BrokeredStatementControl
        Parameters:
        s - Statement that created the ResultSet.
      • checkHoldCursors

        public int checkHoldCursors​(int holdability)
                             throws java.sql.SQLException
        Can cursors be held across commits.
        Specified by:
        checkHoldCursors in interface BrokeredStatementControl
        Throws:
        java.sql.SQLException