| Modifier and Type | Field and Description |
|---|---|
| protected RAMAccessManager | accessmanager
The access manager this transaction is under. |
| private boolean | alterTableCallMade
Set by alter table to indicate that the conglomerate cache needs to be invalidated if a transaction aborting error is encountered, cleared after cleanup. |
| private ArrayList | |
| protected RAMTransactionContext | context
The context this transaction is being managed by. |
| private ArrayList | freeSortIds
List of sort identifiers (represented as |
| private long | nextTempConglomId
Next id to use for a temporary conglomerate. |
| protected RAMTransaction | parent_tran
The parent transaction if this is a nested user transaction. |
| protected Transaction | rawtran
The corresponding raw store transaction. |
| private ArrayList | |
| private ArrayList | |
| private ArrayList | |
| protected HashMap | tempCongloms
Where to look for temporary conglomerates. |
| private int | transaction_lock_level
The lock level of the transaction. |
| Access | Constructor and Description |
|---|---|
| protected | RAMTransaction(RAMAccessManager myaccessmanager, Transaction theRawTran, RAMTransaction parent_transaction)
|
| pack-priv | RAMTransaction(RAMAccessManager myaccessmanager, RAMTransaction tc, int format_id, byte[] global_id, byte[] branch_id)
|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public void | abort()
Implements org. Abort all changes made by this transaction since the last commit, abort or the point the transaction was started, whichever is the most recent. |
| public void | addColumnToConglomerate(long
The identifier of the conglomerate to drop. conglomId, int The column number to add this column at. column_id, Storable An instance of the column to be added to table. template_column, int collation id of the added column. collation_id)Implements org. Add a column to a conglomerate. |
| public void | addPostCommitWork(Serviceable
The post commit work to do. work)Implements org. Add to the list of post commit work. |
| public boolean | anyoneBlocked()
Implements org. Return true if any transaction is blocked (even if not by this one). |
| public boolean | Returns: true if the database has been upgraded to
the required level, false otherwise.required database Engine major version requiredMajorVersion, int required database Engine minor version requiredMinorVersion, String Non-null to throw an exception, null to
return the state of the version match. feature)Implements org. Check to see if a database has been upgraded to the required level in order to use a store feature. |
| protected void | |
| public void | closeMe(ConglomerateController conglom_control)
Implements org. The ConglomerateController.close() method has been called on "conglom_control". |
| public void | closeMe(SortController sort_control)
Implements org. The SortController.close() method has been called on "sort_control". |
| public void | closeMe(ScanManager scan)
Implements org. The ScanManager.close() method has been called on "scan". |
| public void | commit()
Implements org. Commit this transaction. |
| public DatabaseInstant | commitNoSync(int commitflag)
Implements org. "Commit" this transaction without sync'ing the log. |
| public void | compressConglomerate(long
Id of the conglomerate to purge. conglomId)Implements org. Return free space from the conglomerate back to the OS. |
| public boolean | conglomerateExists(long
The identifier of the conglomerate to check for. conglomId)Implements org. Check whether a conglomerate exists. |
| private final int | |
| public int | Returns: The nunber of open's of a type indicated by "which_to_count" parameter.Which kind of open to report on. which_to_count)Implements org. Report on the number of open conglomerates in the transaction. |
| public long | createAndLoadConglomerate(String
Specifies what kind of conglomerate to create.
THE WAY THAT THE IMPLEMENTATION IS CHOSEN STILL NEEDS SOME WORK.
For now, use "BTREE" or "heap" for a local access manager. implementation, DataValueDescriptor[] A row which describes the prototypical
row that the conglomerate will be holding.
Typically this row gives the conglomerate
information about the number and type of
columns it will be holding. The implementation
may require a specific subclass of row type.
Note that the createConglomerate call reads the template and makes a copy
of any necessary information from the template, no reference to the
template is kept (and thus this template can be re-used in subsequent
calls - such as openScan()). This field is required when creating either
a heap or btree conglomerate. template, ColumnOrdering[] Specifies the colummns sort order.
Useful only when the conglomerate is of type BTREE, default
value is 'null', which means all columns needs to be sorted in
Ascending order. columnOrder, int[] Specifies the collation id of each of the columns
in the new conglomerate. Collation id along with format id may be used
to create DataValueDescriptor's which may subsequently be used for
comparisons. For instance the correct collation specific order and
searching is maintained by correctly specifying the collation id of
the columns in the index when the index is created. collationIds, Properties Implementation-specific properties of the
conglomerate. properties, int temporaryFlag, RowLocationRetRowSource the interface to recieve rows to load into the
conglomerate. rowSource, long[] - if not null the number of rows loaded into the table
will be returned as the first element of the array. rowCount)Implements org. Create a conglomerate and populate it with rows from rowSource. |
| public BackingStoreHashtable | createBackingStoreHashtableFromScan(long
see openScan() conglomId, int see openScan() open_mode, int see openScan() lock_level, int see openScan() isolation_level, FormatableBitSet see openScan() scanColumnList, DataValueDescriptor[] see openScan() startKeyValue, int see openScan() startSearchOperator, Qualifier[][] see openScan() qualifier, DataValueDescriptor[] see openScan() stopKeyValue, int see openScan() stopSearchOperator, long The maximum number of rows to insert into
the HashSet. Pass in -1 if there is no
maximum. max_rowcnt, int[] The column numbers of the columns in the
scan result row to be the key to the
Hashtable. "0" is the first column in the
scan result row (which may be different
than the first row in the table of the
scan). key_column_numbers, boolean Should the HashSet automatically remove
duplicates, or should it create the Vector
of duplicates? remove_duplicates, long The number of rows that the caller
estimates will be inserted into the sort.
-1 indicates that the caller has no idea.
Used by the sort to make good choices about
in-memory vs. external sorting, and to size
merge runs. estimated_rowcnt, long The number of rows at which the underlying
Hashtable implementation should cut over
from an in-memory hash to a disk based
access method. max_inmemory_rowcnt, int If not "-1" used to initialize the java
Hashtable. initialCapacity, float If not "-1" used to initialize the java
Hashtable. loadFactor, boolean If true will collect up runtime stats during
scan processing for retrieval by
BackingStoreHashtable.getRuntimeStats(). collect_runtimestats, boolean Whether or not to skip rows with 1 or more null key columns skipNullKeyColumns, boolean If true then keep hash table after commit keepAfterCommit, boolean If true then rows should include RowLocations. includeRowLocations)Implements org. Create a BackingStoreHashtable which contains all rows that qualify for the described scan. |
| public long | createConglomerate(String
Specifies what kind of conglomerate to create.
THE WAY THAT THE IMPLEMENTATION IS CHOSEN STILL NEEDS SOME WORK.
For now, use "BTREE" or "heap" for a local access manager. implementation, DataValueDescriptor[] A row which describes the prototypical
row that the conglomerate will be holding.
Typically this row gives the conglomerate
information about the number and type of
columns it will be holding. The implementation
may require a specific subclass of row type.
Note that the createConglomerate call reads the template and makes a copy
of any necessary information from the template, no reference to the
template is kept (and thus this template can be re-used in subsequent
calls - such as openScan()). This field is required when creating either
a heap or btree conglomerate. template, ColumnOrdering[] Specifies the colummns sort order.
Useful only when the conglomerate is of type BTREE, default
value is 'null', which means all columns needs to be sorted in
Ascending order. columnOrder, int[] Specifies the collation id of each of the columns
in the new conglomerate. Collation id along with format id may be used
to create DataValueDescriptor's which may subsequently be used for
comparisons. For instance the correct collation specific order and
searching is maintained by correctly specifying the collation id of
the columns in the index when the index is created. collationIds, Properties Implementation-specific properties of the
conglomerate. properties, int Where temporaryFlag can have the following values:
IS_DEFAULT - no bit is set.
IS_TEMPORARY - if set, the conglomerate is temporary
IS_KEPT - only looked at if IS_TEMPORARY,
if set, the temporary container is not
removed automatically by store when
transaction terminates.
If IS_TEMPORARY is set, the conglomerate is temporary.
Temporary conglomerates are only visible through the transaction
controller that created them. Otherwise, they are opened,
scanned, and dropped in the same way as permanent conglomerates.
Changes to temporary conglomerates persist across commits, but
temporary conglomerates are truncated on abort (or rollback
to savepoint). Updates to temporary conglomerates are not
locked or logged.
A temporary conglomerate is only visible to the transaction
controller that created it, even if the conglomerate IS_KEPT
when the transaction termination.
All temporary conglomerate is removed by store when the
conglomerate controller is destroyed, or if it is dropped by an explicit
dropConglomerate. If Derby reboots, all temporary
conglomerates are removed. temporaryFlag)Implements org. Create a new conglomerate. |
| public long | createSort(Properties
Properties which help in choosing
implementation-specific sort options. If null, a
"generally useful" sort will be used. implParameters, DataValueDescriptor[] A row which is prototypical for the sort.
All rows inserted into the sort controller must have
exactly the same number of columns as the template row.
Every column in an inserted row must have the same type
as the corresponding column in the template. template, ColumnOrdering[] An array which specifies which columns
participate in ordering - see interface ColumnOrdering for
details. The column referenced in the 0th columnOrdering
object is compared first, then the 1st, etc. To sort on a single
column specify an array with a single entry. columnOrdering, SortObserver An object that is used to observe
the sort. It is used to provide a callback into the sorter.
If the sortObserver is null, then the sort proceeds as normal.
If the sortObserver is non null, then it is called as
rows are loaded into the sorter. It can be used to implement
a distinct sort, aggregates, etc. sortObserver, boolean Indicates that the rows inserted into
the sort controller will already be in order. This is used
to perform aggregation only. alreadyInOrder, long The number of rows that the caller
estimates will be inserted into the sort. -1 indicates that
the caller has no idea. Used by the sort to make good choices
about in-memory vs. external sorting, and to size merge runs. estimatedRows, int The estimated average row size of the
rows being sorted. This is the client portion of the rowsize, it should
not attempt to calculate Store's overhead. -1 indicates that the caller
has no idea (and the sorter will use 100 bytes in that case. Used by the
sort to make good choices about in-memory vs. external sorting, and to size
merge runs. The client is not expected to estimate the per column/
per row overhead of raw store, just to make a guess about the storage
associated with each row (ie. reasonable estimates for some implementations
would be 4 for int, 8 for long, 102 for char(100),
202 for varchar(200), a number out of hat for user types, ...). estimatedRowSize)Implements org. Create a sort. |
| public Object | createXATransactionFromLocalTransaction(int
the format id part of the Xid - ie. Xid.getFormatId(). format_id, byte[] the global transaction identifier part of XID - ie.
Xid.getGlobalTransactionId(). global_id, byte[] The branch qualifier of the Xid - ie.
Xid.getBranchQaulifier() branch_id)Implements org. Convert a local transaction to a global transaction. |
| public String | Returns: String with debugging information.Implements org. Return a string with debug information about opened congloms/scans/sorts. |
| public GroupFetchScanController | Returns: The GroupFetchScanController to be used to fetch the rows.see openScan() conglomId, boolean online, boolean see openScan() hold, int see openScan() open_mode, int see openScan() lock_level, int see openScan() isolation_level)Implements org. Compress table in place. |
| public void | destroy()
Implements org. Abort the current transaction and pop the context. |
| private int | |
| private LockingPolicy | determine_locking_policy(int requested_lock_level, int isolation_level)
Determine correct locking policy for a conglomerate open. |
| public void | dropConglomerate(long
The identifier of the conglomerate to drop. conglomId)Implements org. Drop a conglomerate. |
| public void | dropSort(long
The identifier of the sort to drop, as returned from
createSort. sortid)Implements org. Drop a sort. |
| public boolean | Returns: boolean indicating if a row was found and retrieved or not.The identifier of the conglomerate
to open the scan for. conglomId, int Specifiy flags to control opening of table.
OPENMODE_FORUPDATE - if set open the table for
update otherwise open table shared. open_mode, int One of (MODE_TABLE, MODE_RECORD, or MODE_NONE). lock_level, int The isolation level to lock the conglomerate at.
One of (ISOLATION_READ_COMMITTED or
ISOLATION_SERIALIZABLE). isolation_level, FormatableBitSet A description of which columns to return from
every fetch in the scan. template,
and scanColumnList work together
to describe the row to be returned by the scan -
see RowUtil for description of how these three
parameters work together to describe a "row". scanColumnList, DataValueDescriptor[] The row to retrieve the maximum value into. fetchRow)Implements org. Retrieve the maximum value row in an ordered conglomerate. |
| private Conglomerate | |
| public long | findConglomid(long container_id)
Implements org. For debugging, find the conglomid given the containerid. |
| public long | findContainerid(long conglom_id)
Implements org. For debugging, find the containerid given the conglomid. |
| private Conglomerate | |
| public Conglomerate | Returns: If successful returnscontainer key of target conglomerate. container_key)Implements org. Return existing Conglomerate after doing lookup by ContainerKey Throws exception if it can't find a matching conglomerate for the ContainerKey. |
| public AccessFactory | Returns: The AccessFactory which started this transaction.Implements org. Get reference to access factory which started this transaction. |
| public String | getActiveStateTxIdString()
Implements org. Get string id of the transaction that would be when the Transaction is IN active state. |
| public ContextManager | Returns: The context manager that the transaction was created with.Implements org. Get the context manager that the transaction was created with. |
| public DynamicCompiledOpenConglomInfo | Returns: The dynamic information.The identifier of the conglomerate to open. conglomId)Implements org. Return dynamic information about the conglomerate to be dynamically reused in repeated execution of a statement. |
| public FileResource | getFileHandler()
Implements org. Get an object to handle non-transactional files. |
| public TransactionManager | Returns: The new internal transaction.Implements org. Get an Internal transaction. |
| public CompatibilitySpace | getLockSpace()
Implements org. Return an object that when used as the compatibility space,
and the object returned when calling
|
| public Properties | getProperties()
Implements org. Get properties that can be stored in a java.util.Properties object. |
| public Serializable | getProperty(String
The "key" of the property that is being requested. key)Implements org. Gets a value for a stored property. |
| public Serializable | getPropertyDefault(String
The "key" of the property that is being requested. key)Implements org. Gets a default value for a stored property. |
| public Transaction | Returns: The raw store transaction.Implements org. Get the Transaction from the Transaction manager. |
| public StaticCompiledOpenConglomInfo | Returns: The static compiled information.The identifier of the conglomerate to open. conglomId)Implements org. Return static information about the conglomerate to be included in a a compiled plan. |
| public String | Returns: The a string which identifies the transaction.Implements org. Get string id of the transaction. |
| public Properties | Returns: The superset of properties that "users" can specify.Implements org. A superset of properties that "users" can specify. |
| private final void | init(RAMAccessManager myaccessmanager, Transaction theRawTran, RAMTransaction parent_tran)
Constructors for This class: |
| protected void | |
| public boolean | Returns: true If the transaction was either started by AccessFactory.startXATransaction() or was morphed to a global transaction by calling AccessFactory.createXATransactionFromLocalTransaction().Implements org. Reveals whether the transaction is a global or local transaction. |
| public boolean | Returns: true If the transaction has never read or written data.Implements org. Reveals whether the transaction has ever read or written data. |
| public boolean | Returns: true If the transaction is Pristine.Implements org. Reveals whether the transaction is currently pristine. |
| public long | Returns: true The number of rows loaded.The conglomerate Id. conglomId, boolean If true, the conglomerate is being created in the
same operation as the loadConglomerate. The enables further
optimization as recovery does not require page allocation to be
logged. createConglom, RowLocationRetRowSource Where the rows come from. rowSource)Bulk load into the conglomerate. |
| public void | loadConglomerate(long
the conglomerate Id conglomId, RowLocationRetRowSource where the rows to be loaded comes from rowSource)Use this for incremental load in the future. |
| public void | logAndDo(Loggable
the operation that is to be applied operation)Implements org. Log an operation and then action it in the context of this transaction. |
| public ConglomerateController | openCompiledConglomerate(boolean
If true, will be maintained open over commits. hold, int Specifiy flags to control opening of table. open_mode, int One of (MODE_TABLE, MODE_RECORD). lock_level, int The isolation level to lock the conglomerate at.
One of (ISOLATION_READ_COMMITTED,
ISOLATION_REPEATABLE_READ or
ISOLATION_SERIALIZABLE). isolation_level, StaticCompiledOpenConglomInfo object returned from
getStaticCompiledConglomInfo() call on this id. static_info, DynamicCompiledOpenConglomInfo object returned from
getDynamicCompiledConglomInfo() call on this id. dynamic_info)Implements org. Open a conglomerate for use, optionally include "compiled" info. |
| public ScanController | openCompiledScan(boolean hold, int
see openScan() open_mode, int see openScan() lock_level, int see openScan() isolation_level, FormatableBitSet see openScan() scanColumnList, DataValueDescriptor[] see openScan() startKeyValue, int see openScan() startSearchOperator, Qualifier[][] see openScan() qualifier, DataValueDescriptor[] see openScan() stopKeyValue, int see openScan() stopSearchOperator, StaticCompiledOpenConglomInfo object returned from
getStaticCompiledConglomInfo() call on this id. static_info, DynamicCompiledOpenConglomInfo object returned from
getDynamicCompiledConglomInfo() call on this id. dynamic_info)Implements org. Open a scan on a conglomerate, optionally providing compiled info. |
| private ConglomerateController | openConglomerate(Conglomerate conglom, boolean hold, int open_mode, int lock_level, int isolation_level, StaticCompiledOpenConglomInfo static_info, DynamicCompiledOpenConglomInfo dynamic_info)
|
| public ConglomerateController | openConglomerate(long
The identifier of the conglomerate to open. conglomId, boolean If true, will be maintained open over commits. hold, int Specifiy flags to control opening of table.
OPENMODE_FORUPDATE - if set open the table for
update otherwise open table shared. open_mode, int One of (MODE_TABLE, MODE_RECORD). lock_level, int The isolation level to lock the conglomerate at.
One of (ISOLATION_READ_COMMITTED,
ISOLATION_REPEATABLE_READ or
ISOLATION_SERIALIZABLE). isolation_level)Implements org. Open a conglomerate for use. |
| public GroupFetchScanController | openGroupFetchScan(long
see openScan() conglomId, boolean hold, int see openScan() open_mode, int see openScan() lock_level, int see openScan() isolation_level, FormatableBitSet see openScan() scanColumnList, DataValueDescriptor[] see openScan() startKeyValue, int see openScan() startSearchOperator, Qualifier[][] see openScan() qualifier, DataValueDescriptor[] see openScan() stopKeyValue, int see openScan() stopSearchOperator)Implements org. Open a scan which gets copies of multiple rows at a time. |
| private ScanController | openScan(Conglomerate conglom, boolean hold, int open_mode, int lock_level, int isolation_level, FormatableBitSet scanColumnList, DataValueDescriptor[] startKeyValue, int startSearchOperator, Qualifier[][] qualifier, DataValueDescriptor[] stopKeyValue, int stopSearchOperator, StaticCompiledOpenConglomInfo static_info, DynamicCompiledOpenConglomInfo dynamic_info)
|
| public ScanController | openScan(long
The identifier of the conglomerate
to open the scan for. conglomId, boolean If true, this scan will be maintained open over
commits. hold, int Specifiy flags to control opening of table.
OPENMODE_FORUPDATE - if set open the table for
update otherwise open table shared. open_mode, int One of (MODE_TABLE, MODE_RECORD). lock_level, int The isolation level to lock the conglomerate at.
One of (ISOLATION_READ_COMMITTED,
ISOLATION_REPEATABLE_READ or
ISOLATION_SERIALIZABLE). isolation_level, FormatableBitSet A description of which columns to return from
every fetch in the scan. template, and scanColumnList
work together to describe the row to be returned by the scan - see RowUtil
for description of how these three parameters work together to describe
a "row". scanColumnList, DataValueDescriptor[] An indexable row which holds a
(partial) key value which, in combination with the
startSearchOperator, defines the starting position of
the scan. If null, the starting position of the scan
is the first row of the conglomerate.
The startKeyValue must only reference columns included
in the scanColumnList. startKeyValue, int an operator which defines
how the startKeyValue is to be searched for. If
startSearchOperation is ScanController.GE, the scan starts on
the first row which is greater than or equal to the
startKeyValue. If startSearchOperation is ScanController.GT,
the scan starts on the first row whose key is greater than
startKeyValue. The startSearchOperation parameter is
ignored if the startKeyValue parameter is null. startSearchOperator, Qualifier[][] A 2 dimensional array encoding a conjunctive normal
form (CNF) datastructure of of qualifiers which, applied
to each key, restrict the rows returned by the scan. Rows
for which the CNF expression returns false are not
returned by the scan. If null, all rows are returned.
Qualifiers can only reference columns which are included in the
scanColumnList. The column id that a qualifier returns is the
column id the table, not the column id in the partial row being
returned.
For detailed description of 2-dimensional array passing @see Qualifier qualifier, DataValueDescriptor[] An indexable row which holds a
(partial) key value which, in combination with the
stopSearchOperator, defines the ending position of
the scan. If null, the ending position of the scan
is the last row of the conglomerate.
The stopKeyValue must only reference columns included
in the scanColumnList. stopKeyValue, int an operator which defines
how the stopKeyValue is used to determine the scan stopping
position. If stopSearchOperation is ScanController.GE, the scan
stops just before the first row which is greater than or
equal to the stopKeyValue. If stopSearchOperation is
ScanController.GT, the scan stops just before the first row whose
key is greater than startKeyValue. The stopSearchOperation
parameter is ignored if the stopKeyValue parameter is null. stopSearchOperator)Implements org. Open a scan on a conglomerate. |
| public SortController | openSort(long
The identifier of the sort to open, as returned from
createSort. id)Implements org. Open a sort controller for a sort previously created in this transaction. |
| public SortCostController | Returns: The open StoreCostController.Implements org. Return an open SortCostController. |
| public RowLocationRetRowSource | openSortRowSource(long
The identifier of the sort to scan, as returned
from createSort. id)Implements org. Open a scan for retrieving rows from a sort. |
| public ScanController | openSortScan(long
The identifier of the sort to scan, as returned from createSort. id, boolean If true, this scan will be maintained open over commits. hold)Implements org. Open a scan for retrieving rows from a sort. |
| public StoreCostController | Returns: The open StoreCostController.The identifier of the conglomerate to open. conglomId)Implements org. Return an open StoreCostController for the given conglomid. |
| public boolean | propertyDefaultIsVisible(String
The "key" of the property that is being requested. key)Implements org. Return true if the default property is visible. |
| public void | purgeConglomerate(long
Id of the conglomerate to purge. conglomId)Implements org. Purge all committed deleted rows from the conglomerate. |
| public long | recreateAndLoadConglomerate(String
Specifies what kind of conglomerate to create.
THE WAY THAT THE IMPLEMENTATION IS CHOSEN STILL NEEDS SOME WORK.
For now, use "BTREE" or "heap" for a local access manager. implementation, boolean If false, and the rowsource used to load the new
conglomerate returns no rows, then the original
conglomid will be returned. To the client it will
be as if no call was made. Underlying
implementations may actually create and drop a
container.
If true, then a new empty container will be
created and it's conglomid will be returned. recreate_ifempty, DataValueDescriptor[] A row which describes the prototypical
row that the conglomerate will be holding.
Typically this row gives the conglomerate
information about the number and type of
columns it will be holding. The implementation
may require a specific subclass of row type.
Note that the createConglomerate call reads the template and makes a copy
of any necessary information from the template, no reference to the
template is kept (and thus this template can be re-used in subsequent
calls - such as openScan()). This field is required when creating either
a heap or btree conglomerate. template, ColumnOrdering[] Specifies the colummns sort order.
Useful only when the conglomerate is of type BTREE, default
value is 'null', which means all columns needs to be sorted in
Ascending order. columnOrder, int[] Specifies the collation id of each of the columns
in the new conglomerate. Collation id along with format id may be used
to create DataValueDescriptor's which may subsequently be used for
comparisons. For instance the correct collation specific order and
searching is maintained by correctly specifying the collation id of
the columns in the index when the index is created. collationIds, Properties Implementation-specific properties of the conglomerate. properties, int If true, the conglomerate is temporary.
Temporary conglomerates are only visible through the transaction
controller that created them. Otherwise, they are opened,
scanned, and dropped in the same way as permanent conglomerates.
Changes to temporary conglomerates persist across commits, but
temporary conglomerates are truncated on abort (or rollback
to savepoint). Updates to temporary conglomerates are not
locked or logged. temporaryFlag, long The conglomid of the original conglomerate. orig_conglomId, RowLocationRetRowSource interface to receive rows to load into the conglomerate. rowSource, long[] - if not null the number of rows loaded into the table
will be returned as the first element of the array. rowCount)Implements org. recreate a conglomerate and populate it with rows from rowSource. |
| public int | releaseSavePoint(String
The user provided name of the savepoint, set by the user
in the setSavePoint() call. name, Object A NULL value means it is an internal savepoint (ie not a user defined savepoint)
Non NULL value means it is a user defined savepoint which can be a SQL savepoint or a JDBC savepoint
A String value for kindOfSavepoint would mean it is SQL savepoint
A JDBC Savepoint object value for kindOfSavepoint would mean it is JDBC savepoint kindOfSavepoint)Implements org. Release the save point of the given name. |
| public int | rollbackToSavePoint(String
The identifier of the SavePoint to roll back to. name, boolean boolean indicating whether or not the controller
should close open controllers. close_controllers, Object A NULL value means it is an internal savepoint (ie not a user defined savepoint)
Non NULL value means it is a user defined savepoint which can be a SQL savepoint or a JDBC savepoint
A String value for kindOfSavepoint would mean it is SQL savepoint
A JDBC Savepoint object value for kindOfSavepoint would mean it is JDBC savepoint kindOfSavepoint)Implements org. Rollback all changes made since the named savepoint was set. |
| pack-priv void | |
| public void | setNoLockWait(boolean
if noWait)true never wait for a lock in this transaction,
but time out immediatelyImplements org. Tell this transaction whether it should time out immediately if a lock cannot be granted without waiting. |
| public void | setProperty(String
The key used to lookup this property. key, Serializable The value to be associated with this key. If null,
delete the property from the properties list. value, boolean True if property is only ever searched for int the database properties. dbOnlyProperty)Implements org. Sets the Serializable object associated with a property key. |
| public void | setPropertyDefault(String
The key used to lookup this propertyDefault. key, Serializable The default value to be associated with this key.
If null, delete the property default from the
properties list. value)Implements org. Sets the Serializable object default value associated with a property key. |
| public int | setSavePoint(String
The user provided name of the savepoint. name, Object A NULL value means it is an internal savepoint (ie not a user defined savepoint)
Non NULL value means it is a user defined savepoint which can be a SQL savepoint or a JDBC savepoint
A String value for kindOfSavepoint would mean it is SQL savepoint
A JDBC Savepoint object value for kindOfSavepoint would mean it is JDBC savepoint kindOfSavepoint)Implements org. Set a save point in the current transaction. |
| public TransactionController | Returns: The new nested user transaction.Is transaction readonly? Only 1 non-read
only nested transaction is allowed per
transaction. readOnly, boolean By default should the transaction commit
and abort be synced to the log. Normal
usage should pick true, unless there is
specific performance need and usage
works correctly if a commit can be lost
on system crash. flush_log_on_xact_end)Implements org. Get an nested user transaction. |
| public String | |
| public void | xa_commit(boolean
If true, the resource manager should use a one-phase
commit protocol to commit the work done on behalf of
current xid. onePhase)Implements org. This method is called to commit the current XA global transaction. |
| public int | Returns: A value indicating the resource manager's vote on the the outcome of the transaction. The possible values are: XA_RDONLY or XA_OK. If the resource manager wants to roll back the transaction, it should do so by throwing an appropriate XAException in the prepare method.Implements org. This method is called to ask the resource manager to prepare for a transaction commit of the transaction specified in xid. |
| public void | xa_rollback()
Implements org. rollback the current global transaction. |