org.hibernate.engine.jdbc.spi
Interface JdbcCoordinator

All Superinterfaces:
Serializable
All Known Implementing Classes:
JdbcCoordinatorImpl

public interface JdbcCoordinator
extends Serializable

Coordinates JDBC-related activities.


Method Summary
 void abortBatch()
          Abort the currently managed batch (if any)
 void afterStatementExecution()
          Used to signify that a statement has completed execution which may indicate that this logical connection need to perform an aggressive release of its physical connection.
 void afterTransaction()
          Signals the end of transaction.
 void cancelLastQuery()
          Attempt to cancel the last query sent to the JDBC driver.
 Connection close()
          Close this coordinator and release and resources.
<T> T
coordinateWork(WorkExecutorVisitable<T> work)
          Perform the requested work handling exceptions, coordinating and handling return processing.
 int determineRemainingTransactionTimeOutPeriod()
          Calculate the amount of time, in seconds, still remaining before transaction timeout occurs.
 void disableReleases()
           
 void enableReleases()
           
 void executeBatch()
          Execute the currently managed batch (if any)
 void flushBeginning()
          Callback to let us know that a flush is beginning.
 void flushEnding()
          Callback to let us know that a flush is ending.
 Batch getBatch(BatchKey key)
          Get a batch instance.
 LogicalConnectionImplementor getLogicalConnection()
          Retrieves the logical connection associated with this JDBC coordinator.
 ResultSetReturn getResultSetReturn()
          Obtain the resultset extractor associated with this JDBC coordinator.
 StatementPreparer getStatementPreparer()
          Obtain the statement preparer associated with this JDBC coordinator.
 TransactionCoordinator getTransactionCoordinator()
          Retrieve the transaction coordinator associated with this JDBC coordinator.
 boolean hasRegisteredResources()
          Does this registry currently have any registered resources?
 boolean isReadyForSerialization()
           
 void register(ResultSet resultSet, Statement statement)
          Register a JDBC result set.
 void register(Statement statement)
          Register a JDBC statement.
 void registerLastQuery(Statement statement)
          Register a query statement as being able to be cancelled.
 void release(ResultSet resultSet, Statement statement)
          Release a previously registered result set.
 void release(Statement statement)
          Release a previously registered statement.
 void releaseResources()
          Release all registered resources.
 void setTransactionTimeOut(int seconds)
          Set the effective transaction timeout period for the current transaction, in seconds.
 

Method Detail

getTransactionCoordinator

TransactionCoordinator getTransactionCoordinator()
Retrieve the transaction coordinator associated with this JDBC coordinator.

Returns:
The transaction coordinator

getLogicalConnection

LogicalConnectionImplementor getLogicalConnection()
Retrieves the logical connection associated with this JDBC coordinator.

Returns:
The logical connection

getBatch

Batch getBatch(BatchKey key)
Get a batch instance.

Parameters:
key - The unique batch key.
Returns:
The batch

executeBatch

void executeBatch()
Execute the currently managed batch (if any)


abortBatch

void abortBatch()
Abort the currently managed batch (if any)


getStatementPreparer

StatementPreparer getStatementPreparer()
Obtain the statement preparer associated with this JDBC coordinator.

Returns:
This coordinator's statement preparer

getResultSetReturn

ResultSetReturn getResultSetReturn()
Obtain the resultset extractor associated with this JDBC coordinator.

Returns:
This coordinator's resultset extractor

flushBeginning

void flushBeginning()
Callback to let us know that a flush is beginning. We use this fact to temporarily circumvent aggressive connection releasing until after the flush cycle is complete flushEnding()


flushEnding

void flushEnding()
Callback to let us know that a flush is ending. We use this fact to stop circumventing aggressive releasing connections.


close

Connection close()
Close this coordinator and release and resources.

Returns:
The Connection associated with the managed logical connection
See Also:
LogicalConnection.close()

afterTransaction

void afterTransaction()
Signals the end of transaction.

Intended for use from the transaction coordinator, after local transaction completion. Used to conditionally release the JDBC connection aggressively if the configured release mode indicates.


afterStatementExecution

void afterStatementExecution()
Used to signify that a statement has completed execution which may indicate that this logical connection need to perform an aggressive release of its physical connection.


coordinateWork

<T> T coordinateWork(WorkExecutorVisitable<T> work)
Perform the requested work handling exceptions, coordinating and handling return processing.

Type Parameters:
T - The result type.
Parameters:
work - The work to be performed.
Returns:
The work result.

cancelLastQuery

void cancelLastQuery()
Attempt to cancel the last query sent to the JDBC driver.


setTransactionTimeOut

void setTransactionTimeOut(int seconds)
Set the effective transaction timeout period for the current transaction, in seconds.

Parameters:
seconds - The number of seconds before a time out should occur.

determineRemainingTransactionTimeOutPeriod

int determineRemainingTransactionTimeOutPeriod()
Calculate the amount of time, in seconds, still remaining before transaction timeout occurs.

Returns:
The number of seconds remaining until until a transaction timeout occurs. A negative value indicates no timeout was requested.
Throws:
TransactionException - Indicates the time out period has already been exceeded.

register

void register(Statement statement)
Register a JDBC statement.

Parameters:
statement - The statement to register.

release

void release(Statement statement)
Release a previously registered statement.

Parameters:
statement - The statement to release.

register

void register(ResultSet resultSet,
              Statement statement)
Register a JDBC result set.

Implementation note: Second parameter has been introduced to prevent multiple registrations of the same statement in case ResultSet.getStatement() does not return original Statement object.

Parameters:
resultSet - The result set to register.
statement - Statement from which ResultSet has been generated.

release

void release(ResultSet resultSet,
             Statement statement)
Release a previously registered result set.

Parameters:
resultSet - The result set to release.
statement - Statement from which ResultSet has been generated.

hasRegisteredResources

boolean hasRegisteredResources()
Does this registry currently have any registered resources?

Returns:
True if the registry does have registered resources; false otherwise.

releaseResources

void releaseResources()
Release all registered resources.


enableReleases

void enableReleases()

disableReleases

void disableReleases()

registerLastQuery

void registerLastQuery(Statement statement)
Register a query statement as being able to be cancelled.

Parameters:
statement - The cancel-able query statement.

isReadyForSerialization

boolean isReadyForSerialization()


Copyright © 2001-2015 Red Hat, Inc. All Rights Reserved.