Package org.firebirdsql.gds.ng.jna
Class JnaTransaction
- java.lang.Object
-
- org.firebirdsql.gds.ng.AbstractFbTransaction
-
- org.firebirdsql.gds.ng.jna.JnaTransaction
-
- All Implemented Interfaces:
FbTransaction
,ExceptionListenable
public class JnaTransaction extends AbstractFbTransaction
Implementation ofFbTransaction
for native client access.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Field Summary
-
Fields inherited from class org.firebirdsql.gds.ng.AbstractFbTransaction
exceptionListenerDispatcher, transactionListenerDispatcher
-
-
Constructor Summary
Constructors Constructor Description JnaTransaction(JnaDatabase database, com.sun.jna.ptr.IntByReference transactionHandle, TransactionState initialState)
Initializes AbstractFbTransaction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commit()
Commit the transactionJnaDatabase
getDatabase()
int
getHandle()
com.sun.jna.ptr.IntByReference
getJnaHandle()
byte[]
getTransactionInfo(byte[] requestItems, int maxBufferLength)
Performs a transaction info request.void
prepare(byte[] recoveryInformation)
Prepare the transaction for two-phase commit/rollback.void
rollback()
Roll back the transaction-
Methods inherited from class org.firebirdsql.gds.ng.AbstractFbTransaction
addExceptionListener, addTransactionListener, addWeakTransactionListener, finalize, getState, getTransactionId, getTransactionInfo, removeExceptionListener, removeTransactionListener, switchState, withLock
-
-
-
-
Constructor Detail
-
JnaTransaction
public JnaTransaction(JnaDatabase database, com.sun.jna.ptr.IntByReference transactionHandle, TransactionState initialState)
Initializes AbstractFbTransaction.- Parameters:
database
- FbDatabase that created this handle.transactionHandle
- Transaction handleinitialState
- Initial transaction state (allowed values areTransactionState.ACTIVE
andTransactionState.PREPARED
)
-
-
Method Detail
-
getDatabase
public JnaDatabase getDatabase()
- Overrides:
getDatabase
in classAbstractFbTransaction
-
getHandle
public int getHandle()
- Returns:
- The Firebird transaction handle identifier
-
getJnaHandle
public com.sun.jna.ptr.IntByReference getJnaHandle()
-
commit
public void commit() throws java.sql.SQLException
Description copied from interface:FbTransaction
Commit the transaction- Throws:
java.sql.SQLException
-
rollback
public void rollback() throws java.sql.SQLException
Description copied from interface:FbTransaction
Roll back the transaction- Throws:
java.sql.SQLException
-
prepare
public void prepare(byte[] recoveryInformation) throws java.sql.SQLException
Description copied from interface:FbTransaction
Prepare the transaction for two-phase commit/rollback.- Parameters:
recoveryInformation
- Transaction recovery information (stored in RDB$TRANSACTION_DESCRIPTION of RDB$TRANSACTIONS), ornull
to prepare without recovery information.- Throws:
java.sql.SQLException
-
getTransactionInfo
public byte[] getTransactionInfo(byte[] requestItems, int maxBufferLength) throws java.sql.SQLException
Description copied from interface:FbTransaction
Performs a transaction info request.- Parameters:
requestItems
- Information items to requestmaxBufferLength
- Maximum response buffer length to use- Returns:
- The response buffer (note: length is the actual length of the
response, not
maxBufferLength
- Throws:
java.sql.SQLException
- For errors retrieving the information.
-
-