Top Fields Constructors Methods
org.apache.derby.impl.store.raw.xact

public Class XactFactory

extends Object
implements TransactionFactory, ModuleControl, ModuleSupportable
Class Inheritance
All Implemented Interfaces
org.apache.derby.iapi.services.monitor.ModuleSupportable, org.apache.derby.iapi.services.monitor.ModuleControl, org.apache.derby.iapi.store.raw.xact.TransactionFactory, org.apache.derby.iapi.store.raw.Corruptable
Imports
org.apache.derby.shared.common.reference.Property, .SQLState, org.apache.derby.iapi.services.context.ContextService, .ContextManager, org.apache.derby.iapi.services.daemon.DaemonService, .Serviceable, org.apache.derby.iapi.services.locks.CompatibilitySpace, .LockFactory, org.apache.derby.iapi.services.monitor.ModuleControl, .ModuleFactory, .ModuleSupportable, .Monitor, org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.iapi.services.io.Formatable, org.apache.derby.iapi.services.uuid.UUIDFactory, org.apache.derby.catalog.UUID, org.apache.derby.iapi.store.access.AccessFactoryGlobals, .TransactionController, .TransactionInfo, org.apache.derby.iapi.store.raw.LockingPolicy, .RawStoreFactory, org.apache.derby.iapi.store.raw.data.DataFactory, org.apache.derby.iapi.store.raw.log.LogFactory, .LogInstant, org.apache.derby.iapi.store.raw.xact.RawTransaction, .TransactionFactory, .TransactionId, org.apache.derby.iapi.types.DataValueFactory, org.apache.derby.shared.common.error.StandardException, org.apache.derby.iapi.util.InterruptStatus, java.util.Properties, java.util.concurrent.atomic.AtomicLong

Field Summary

Modifier and TypeField and Description
private long
private Object
protected ContextService
protected DataFactory
protected DataValueFactory
private boolean
private boolean
protected static final String
protected LockFactory
private LockingPolicy[][]
protected LogFactory
protected static final String
protected static final String
protected static final String
protected DaemonService
protected RawStoreFactory
private final AtomicLong
tranId

The id of the next transaction to be started.

public TransactionTable
protected static final String
private UUIDFactory
private Object

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
add(Xact xact, boolean excludeMe)

protected void
addUpdateTransaction(TransactionId id, RawTransaction t, int transactionStatus)

Add a transaction to the list of transactions that has updated the raw store.

protected boolean

Returns:

true if backup is blocked. false otherwise.
blockBackup
(boolean
if true, waits until the backup is blocked.
wait
)

Block the online backup.

public boolean

Returns:

true if no backup blocking operations are in progress false otherwise.
blockBackupBlockingOperations
(boolean
if true, waits for the current backup blocking operation in progress to finish.
wait
)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.blockBackupBlockingOperations.

Checks if there are any backup blocking operations in progress and prevents new ones from starting until the backup is finished.

public void
boot(boolean
True if the database should be created
create
,
Properties
Configuration properties
properties
)

Implements org.apache.derby.iapi.services.monitor.ModuleControl.boot.

Boot this module with the given properties.

private static Object
bootServiceModule(final boolean create, final Object serviceModule, final String factoryInterface, final Properties properties)

Must be private so that user code can't call this entry point.

public boolean
canSupport(Properties startParams)

Implements org.apache.derby.iapi.services.monitor.ModuleSupportable.canSupport.

See if this implementation can support any attributes that are listed in properties.

public void
private static Object
findServiceModule(final Object serviceModule, final String factoryInterface)

Must be private so that user code can't call this entry point.

public boolean
findTransaction(TransactionId id, RawTransaction tran)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.findTransaction.

Find the TransactionTableEntry with the given ID and make the passed in transaction assume the identity and properties of that TransactionTableEntry.

public RawTransaction
findUserTransaction(RawStoreFactory rsf, ContextManager contextMgr, String transName)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.findUserTransaction.

Find a user transaction within the given raw store and the given contextMgr.

public LogInstant
firstUpdateInstant()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.firstUpdateInstant.

Get the earliest log instant that is still active, ie, the first log record logged by the earliest transaction that is still active.

private static ContextService
getContextService()

Private so that user code can't call this entry point.

public LockFactory
getLockFactory()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getLockFactory.

Get the LockFactory to use with this store.

pack-priv final LockingPolicy
getLockingPolicy(int mode, int isolation, boolean stricterOk)

Get a locking policy for a transaction.

private static ModuleFactory
getMonitor()

Must be private so that user code can't call this entry point.

public TransactionInfo[]
public Formatable
getTransactionTable()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getTransactionTable.

Return the transaction table to be logged with the checkpoint operation

public Object
getXAResourceManager()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getXAResourceManager.

Return the module providing XAresource interface to the transaction table.

public void
handlePreparedXacts(RawStoreFactory rsf)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.handlePreparedXacts.

Run through all prepared transactions known to this factory and restore their state such that they remain after recovery, and can be found and handled by a XA transaction manager.

public boolean

Returns:

true if there are prepared transactions in the transaction table, false otherwise.
hasPreparedXact
()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.hasPreparedXact.

Check if there are any prepared transanctions in the transaction table.

public boolean

Returns:

false, if the Database creation finished
inDatabaseCreation
()

public UUID
makeNewUUID()

Make a new UUID for whomever that wants it

public StandardException
markCorrupt(StandardException originalError)

Implements org.apache.derby.iapi.store.raw.Corruptable.markCorrupt.

Really this is just a convience routine for callers that might not have access to a log factory.

public boolean
noActiveUpdateTransaction()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.noActiveUpdateTransaction.

Returns true if there is no in flight updating tranasaction.

protected void
prepareTransaction(TransactionId id)

Change state of transaction to prepared.

protected void
pushTransactionContext(ContextManager cm, String
the name of the transaction context
contextName
,
Xact
the Transaction object
xact
,
boolean
if true, then any error will abort the whole transaction. Otherwise, let XactContext.cleanupOnError decide what to do
abortAll
,
RawStoreFactory
the raw store factory
rsf
,
boolean
during systeme quiesce, i.e., this transaction should not be allowed to be active during a quiesce state.
excludeMe
)

Create a new RawTransaction, a context for it and push the context onto the current context manager.

protected boolean
remove(TransactionId xactId)

remove the transaction Id an return false iff the transaction is found in the table and it doesn't need exclusion from quiesce state

protected void
removeUpdateTransaction(TransactionId id)

Remove a transaction from the list of transactions that has updated the raw store.

public void
resetTranId()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.resetTranId.

Set the shortTranId, this is called by the log factory after recovery

public void
rollbackAllTransactions(RawTransaction
use this transaction to do all the user transaction work
recoveryTransaction
,
RawStoreFactory rsf)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.rollbackAllTransactions.

Rollback all active transactions that has updated the raw store.</nl>

public void
public void
setRawStoreFactory(RawStoreFactory rsf)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.setRawStoreFactory.

make Transaction factory aware of which raw store factory it belongs to

private Xact
startCommonTransaction(RawStoreFactory
the raw store factory creating this xact.
rsf
,
Xact
parent transaction (if this is a nested user transaction)
parentTransaction
,
ContextManager
the current context manager to associate the xact with.
cm
,
boolean readOnly, CompatibilitySpace
if null, use the transaction being created, else if non-null use this compatibilitySpace.
compatibilitySpace
,
String xact_context_id, String transName, boolean excludeMe, boolean flush_log_on_xact_end)

Common work done to create local or global transactions.

public RawTransaction
startGlobalTransaction(RawStoreFactory rsf, ContextManager
is the context manager to use. It must be the current context manager.
cm
,
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.apache.derby.iapi.store.raw.xact.TransactionFactory.startGlobalTransaction.

Start a new transaction within the given raw store.

public RawTransaction
public RawTransaction
startNestedReadOnlyUserTransaction(RawStoreFactory
the RawStoreFactory
rsf
,
RawTransaction
the parent transaction
parentTransaction
,
CompatibilitySpace
compatibility space to use for locks.
compatibilitySpace
,
ContextManager
is the context manager to use. It must be the current context manager.
cm
,
String
is the transaction name. It will be displayed in the transactiontable VTI.
transName
)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedReadOnlyUserTransaction.

Start a new read only transaction within the given raw store.

public RawTransaction
public RawTransaction
startNestedUpdateUserTransaction(RawStoreFactory
the RawStoreFactory
rsf
,
RawTransaction
the parent transaction
parentTransaction
,
ContextManager
is the context manager to use. It must be the current context manager.
cm
,
String
is the transaction name. It will be displayed in the transactiontable VTI.
transName
,
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.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedUpdateUserTransaction.

Start a new update transaction within the given raw store.

public RawTransaction
startTransaction(RawStoreFactory rsf, ContextManager
is the context manager to use. It must be the current context manager.
cm
,
String
is the transaction name. It will be displayed in the transactiontable VTI.
transName
)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startTransaction.

Start a new transaction within the given raw store.

public void
public boolean
submitPostCommitWork(Serviceable work)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.submitPostCommitWork.

Submit this post commit work to the post commit daemon

protected void
unblockBackup()

Unblock the backup, a backup blocking operation finished.

public void
public void
useTransactionTable(Formatable transactionTable)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.useTransactionTable.

Use this transaction table, which is gotten from a checkpoint operation.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

backupBlockingOperationsback to summary
private long backupBlockingOperations
backupSemaphoreback to summary
private Object backupSemaphore
contextFactoryback to summary
protected ContextService contextFactory
dataFactoryback to summary
protected DataFactory dataFactory
dataValueFactoryback to summary
protected DataValueFactory dataValueFactory
inBackupback to summary
private boolean inBackup
inCreateNoLogback to summary
private boolean inCreateNoLog
INTERNAL_CONTEXT_IDback to summary
protected static final String INTERNAL_CONTEXT_ID
lockFactoryback to summary
protected LockFactory lockFactory
lockingPoliciesback to summary
private LockingPolicy[][] lockingPolicies
logFactoryback to summary
protected LogFactory logFactory
NESTED_READONLY_USER_CONTEXT_IDback to summary
protected static final String NESTED_READONLY_USER_CONTEXT_ID
NESTED_UPDATE_USER_CONTEXT_IDback to summary
protected static final String NESTED_UPDATE_USER_CONTEXT_ID
NTT_CONTEXT_IDback to summary
protected static final String NTT_CONTEXT_ID
rawStoreDaemonback to summary
protected DaemonService rawStoreDaemon
rawStoreFactoryback to summary
protected RawStoreFactory rawStoreFactory
tranIdback to summary
private final AtomicLong tranId

The id of the next transaction to be started.

ttabback to summary
public TransactionTable ttab
USER_CONTEXT_IDback to summary
protected static final String USER_CONTEXT_ID
uuidFactoryback to summary
private UUIDFactory uuidFactory
xa_resourceback to summary
private Object xa_resource

Constructor Detail

XactFactoryback to summary
public XactFactory()

Method Detail

addback to summary
protected void add(Xact xact, boolean excludeMe)
addUpdateTransactionback to summary
protected void addUpdateTransaction(TransactionId id, RawTransaction t, int transactionStatus)

Add a transaction to the list of transactions that has updated the raw store.

This is called underneath the BeginXact log operation's doMe method. The logging system must guarentee that transactions are added in the true order they are started, as defined by the order of beginXact log record in the log.

blockBackupback to summary
protected boolean blockBackup(boolean wait)

Block the online backup. Backup needs to be blocked while executing any unlogged operations or any opearation that prevents from making a consistent backup.

Parameters
wait:boolean

if true, waits until the backup is blocked.

Returns:boolean

true if backup is blocked. false otherwise.

blockBackupBlockingOperationsback to summary
public boolean blockBackupBlockingOperations(boolean wait)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.blockBackupBlockingOperations.

Checks if there are any backup blocking operations in progress and prevents new ones from starting until the backup is finished. If backup blocking operations are in progress and wait parameter value is true, then it will wait for the current backup blocking operations to finish. A Consistent backup can not be made if there are any backup blocking operations (like unlogged operations) are in progress

Parameters
wait:boolean

if true, waits for the current backup blocking operation in progress to finish.

Returns:boolean

true if no backup blocking operations are in progress false otherwise.

Exceptions
RuntimeException:
if runtime exception occurs, in which case other threads blocked on backupSemaphore are notified
bootback to summary
public void boot(boolean create, Properties properties) throws StandardException

Implements org.apache.derby.iapi.services.monitor.ModuleControl.boot.

Doc from org.apache.derby.iapi.services.monitor.ModuleControl.boot.

Boot this module with the given properties. Creates a module instance that can be found using the findModule() methods of Monitor. The module can only be found using one of these findModule() methods once this method has returned.

An implementation's boot method can throw StandardException. If it is thrown the module is not registered by the monitor and therefore cannot be found through a findModule(). In this case the module's stop() method is not called, thus throwing this exception must free up any resources.

When create is true the contents of the properties object will be written to the service.properties of the persistent service. Thus any code that requires an entry in service.properties must explicitly place the value in this properties set using the put method.
Typically the properties object contains one or more default properties sets, which are not written out to service.properties. These default sets are how callers modify the create process. In a JDBC connection database create the first set of defaults is a properties object that contains the attributes that were set on the jdbc:derby: URL. This attributes properties set has the second default properties set as its default. This set (which could be null) contains the properties that the user set on their DriverManager.getConnection() call, and are thus not owned by Derby code, and thus must not be modified by Derby code.

When create is false the properties object contains all the properties set in the service.properties file plus a limited number of attributes from the JDBC URL attributes or connection properties set. This avoids properties set by the user compromising the boot process. An example of a property passed in from the JDBC world is the bootPassword for encrypted databases.

Code should not hold onto the passed in properties reference after boot time as its contents may change underneath it. At least after the complete boot is completed, the links to all the default sets will be removed.

Parameters
create:boolean

True if the database should be created

properties:Properties

Configuration properties

Exceptions
StandardException:
Module cannot be started.
bootServiceModuleback to summary
private static Object bootServiceModule(final boolean create, final Object serviceModule, final String factoryInterface, final Properties properties) throws StandardException

Must be private so that user code can't call this entry point.

canSupportback to summary
public boolean canSupport(Properties startParams)

Implements org.apache.derby.iapi.services.monitor.ModuleSupportable.canSupport.

Doc from org.apache.derby.iapi.services.monitor.ModuleSupportable.canSupport.

See if this implementation can support any attributes that are listed in properties. This call may be made on a newly created instance before the boot() method has been called, or after the boot method has been called for a running module.

The module can check for attributes in the properties to see if it can fulfill the required behaviour. E.g. the raw store may define an attribute called RawStore.Recoverable. If a temporary raw store is required the property RawStore.recoverable=false would be added to the properties before calling bootServiceModule. If a raw store cannot support this attribute its canSupport method would return null. Also see the Monitor class's prologue to see how the identifier is used in looking up properties.
Actually a better way maybe to have properties of the form RawStore.Attributes.mandatory=recoverable,smallfootprint and RawStore.Attributes.requested=oltp,fast

Returns:boolean

true if this instance can be used, false otherwise.

createFinishedback to summary
public void createFinished() throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.createFinished.

Database creation finished

Exceptions
StandardException:
standard Derby error policy
findServiceModuleback to summary
private static Object findServiceModule(final Object serviceModule, final String factoryInterface) throws StandardException

Must be private so that user code can't call this entry point.

findTransactionback to summary
public boolean findTransaction(TransactionId id, RawTransaction tran)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.findTransaction.

Find the TransactionTableEntry with the given ID and make the passed in transaction assume the identity and properties of that TransactionTableEntry. Used in recovery only.

findUserTransactionback to summary
public RawTransaction findUserTransaction(RawStoreFactory rsf, ContextManager contextMgr, String transName) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.findUserTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.findUserTransaction.

Find a user transaction within the given raw store and the given contextMgr. If no user transaction exist, then start one with name transName. This method will push a transaction context as described in RawStoreFactory.startTransaction

Exceptions
StandardException:
Standard Derby error policy.
firstUpdateInstantback to summary
public LogInstant firstUpdateInstant()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.firstUpdateInstant.

Get the earliest log instant that is still active, ie, the first log record logged by the earliest transaction that is still active.
The logging system must guarentee that the transaction table is populated in the order transactions are started. Used in recovery only.

getContextServiceback to summary
private static ContextService getContextService()

Private so that user code can't call this entry point.

getLockFactoryback to summary
public LockFactory getLockFactory()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getLockFactory.

Get the LockFactory to use with this store.

getLockingPolicyback to summary
pack-priv final LockingPolicy getLockingPolicy(int mode, int isolation, boolean stricterOk)

Get a locking policy for a transaction.

getMonitorback to summary
private static ModuleFactory getMonitor()

Must be private so that user code can't call this entry point.

getTransactionInfoback to summary
public TransactionInfo[] getTransactionInfo()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getTransactionInfo.

getTransactionTableback to summary
public Formatable getTransactionTable()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getTransactionTable.

Return the transaction table to be logged with the checkpoint operation

getXAResourceManagerback to summary
public Object getXAResourceManager() throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.getXAResourceManager.

Return the module providing XAresource interface to the transaction table.

Exceptions
StandardException:
Standard Derby exception policy.
handlePreparedXactsback to summary
public void handlePreparedXacts(RawStoreFactory rsf) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.handlePreparedXacts.

Run through all prepared transactions known to this factory and restore their state such that they remain after recovery, and can be found and handled by a XA transaction manager. This includes creating a context manager for each, pushing a xact context, and reclaiming update locks on all data changed by the transaction. Expected to be called just after the redo and undo recovery loops, where the transaction table should be empty except for prepared xacts. Used only in recovery.

Exceptions
StandardException:
Derby Standard Error policy
hasPreparedXactback to summary
public boolean hasPreparedXact()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.hasPreparedXact.

Check if there are any prepared transanctions in the transaction table. Caller must be aware that if there is no other mechanism to stop transactions from starting and ending, then this information is outdated as soon as it is reported.

Returns:boolean

true if there are prepared transactions in the transaction table, false otherwise.

inDatabaseCreationback to summary
public boolean inDatabaseCreation()
Returns:boolean

false, if the Database creation finished

makeNewUUIDback to summary
public UUID makeNewUUID()

Make a new UUID for whomever that wants it

markCorruptback to summary
public StandardException markCorrupt(StandardException originalError)

Implements org.apache.derby.iapi.store.raw.Corruptable.markCorrupt.

Really this is just a convience routine for callers that might not have access to a log factory.

Returns:StandardException

Doc from org.apache.derby.iapi.store.raw.Corruptable.markCorrupt.

Must always return its parameter.

noActiveUpdateTransactionback to summary
public boolean noActiveUpdateTransaction()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.noActiveUpdateTransaction.

Returns true if there is no in flight updating tranasaction. Caller must be aware that if there is no other mechanism to stop transactions from starting and ending, then this information is outdated as soon as it is reported. Only call this function in special times - e.g, during recovery

prepareTransactionback to summary
protected void prepareTransaction(TransactionId id)

Change state of transaction to prepared. Used by recovery to update the transaction table entry to prepared state.

pushTransactionContextback to summary
protected void pushTransactionContext(ContextManager cm, String contextName, Xact xact, boolean abortAll, RawStoreFactory rsf, boolean excludeMe) throws StandardException

Create a new RawTransaction, a context for it and push the context onto the current context manager. Then add the transacion to the transaction table.

Parameters
contextName:String

the name of the transaction context

xact:Xact

the Transaction object

abortAll:boolean

if true, then any error will abort the whole transaction. Otherwise, let XactContext.cleanupOnError decide what to do

rsf:RawStoreFactory

the raw store factory

excludeMe:boolean

during systeme quiesce, i.e., this transaction should not be allowed to be active during a quiesce state.

Exceptions
StandardException:
Standard Derby error policy
removeback to summary
protected boolean remove(TransactionId xactId)

remove the transaction Id an return false iff the transaction is found in the table and it doesn't need exclusion from quiesce state

removeUpdateTransactionback to summary
protected void removeUpdateTransaction(TransactionId id)

Remove a transaction from the list of transactions that has updated the raw store.

resetTranIdback to summary
public void resetTranId()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.resetTranId.

Set the shortTranId, this is called by the log factory after recovery

rollbackAllTransactionsback to summary
public void rollbackAllTransactions(RawTransaction recoveryTransaction, RawStoreFactory rsf) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.rollbackAllTransactions.

Rollback all active transactions that has updated the raw store. Use the recovery Transaction that is passed in to do all the work. Used in recovery only.

Transactions are rolled back in the following order:

  1. internal transactions in reversed beginXact chronological order,
  2. all other transactions in reversed beginXact chronological order,
    Parameters
    recoveryTransaction:RawTransaction

    use this transaction to do all the user transaction work

    Exceptions
    StandardException:
    any exception thrown during rollback
setNewTransactionIdback to summary
public void setNewTransactionId(TransactionId oldxid, Xact t)
setRawStoreFactoryback to summary
public void setRawStoreFactory(RawStoreFactory rsf) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.setRawStoreFactory.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.setRawStoreFactory.

make Transaction factory aware of which raw store factory it belongs to

startCommonTransactionback to summary
private Xact startCommonTransaction(RawStoreFactory rsf, Xact parentTransaction, ContextManager cm, boolean readOnly, CompatibilitySpace compatibilitySpace, String xact_context_id, String transName, boolean excludeMe, boolean flush_log_on_xact_end) throws StandardException

Common work done to create local or global transactions.

Parameters
rsf:RawStoreFactory

the raw store factory creating this xact.

parentTransaction:Xact

parent transaction (if this is a nested user transaction)

cm:ContextManager

the current context manager to associate the xact with.

compatibilitySpace:CompatibilitySpace

if null, use the transaction being created, else if non-null use this compatibilitySpace.

Exceptions
StandardException:
Standard exception policy.
startGlobalTransactionback to summary
public RawTransaction startGlobalTransaction(RawStoreFactory rsf, ContextManager cm, int format_id, byte[] global_id, byte[] branch_id) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startGlobalTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startGlobalTransaction.

Start a new transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startTransaction

Parameters
cm:ContextManager

is the context manager to use. It must be the current context manager.

format_id:int

the format id part of the Xid - ie. Xid.getFormatId().

global_id:byte[]

the global transaction identifier part of XID - ie. Xid.getGlobalTransactionId().

branch_id:byte[]

The branch qualifier of the Xid - ie. Xid.getBranchQaulifier()

Exceptions
StandardException:
Standard Derby error policy.
startInternalTransactionback to summary
public RawTransaction startInternalTransaction(RawStoreFactory rsf, ContextManager cm) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startInternalTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startInternalTransaction.

Start a new internal transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startInternalTransaction

Exceptions
StandardException:
Standard Derby error policy.
startNestedReadOnlyUserTransactionback to summary
public RawTransaction startNestedReadOnlyUserTransaction(RawStoreFactory rsf, RawTransaction parentTransaction, CompatibilitySpace compatibilitySpace, ContextManager cm, String transName) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedReadOnlyUserTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedReadOnlyUserTransaction.

Start a new read only transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startNestedTransaction

Parameters
rsf:RawStoreFactory

the RawStoreFactory

parentTransaction:RawTransaction

the parent transaction

compatibilitySpace:CompatibilitySpace

compatibility space to use for locks.

cm:ContextManager

is the context manager to use. It must be the current context manager.

transName:String

is the transaction name. It will be displayed in the transactiontable VTI.

Exceptions
StandardException:
Standard Derby error policy.
startNestedTopTransactionback to summary
public RawTransaction startNestedTopTransaction(RawStoreFactory rsf, ContextManager cm) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedTopTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedTopTransaction.

Start a new nested top transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startNestedTopTransaction

Exceptions
StandardException:
Standard Derby error policy.
startNestedUpdateUserTransactionback to summary
public RawTransaction startNestedUpdateUserTransaction(RawStoreFactory rsf, RawTransaction parentTransaction, ContextManager cm, String transName, boolean flush_log_on_xact_end) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedUpdateUserTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startNestedUpdateUserTransaction.

Start a new update transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startNestedTransaction

Parameters
rsf:RawStoreFactory

the RawStoreFactory

parentTransaction:RawTransaction

the parent transaction

cm:ContextManager

is the context manager to use. It must be the current context manager.

transName:String

is the transaction name. It will be displayed in the transactiontable VTI.

flush_log_on_xact_end: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.

Exceptions
StandardException:
Standard Derby error policy.
startTransactionback to summary
public RawTransaction startTransaction(RawStoreFactory rsf, ContextManager cm, String transName) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.startTransaction.

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.startTransaction.

Start a new transaction within the given raw store. This method will push a transaction context as described in RawStoreFactory.startTransaction

Parameters
cm:ContextManager

is the context manager to use. It must be the current context manager.

transName:String

is the transaction name. It will be displayed in the transactiontable VTI.

Exceptions
StandardException:
Standard Derby error policy.
stopback to summary
public void stop()

Implements org.apache.derby.iapi.services.monitor.ModuleControl.stop.

Doc from org.apache.derby.iapi.services.monitor.ModuleControl.stop.

Stop the module. The module may be found via a findModule() method until some time after this method returns. Therefore the factory must be prepared to reject requests to it once it has been stopped. In addition other modules may cache a reference to the module and make requests of it after it has been stopped, these requests should be rejected as well.

submitPostCommitWorkback to summary
public boolean submitPostCommitWork(Serviceable work)

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.submitPostCommitWork.

Submit this post commit work to the post commit daemon

Returns:boolean

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.submitPostCommitWork.

true if the daemon indicates it is being overloaded, false it's happy. must be MT-safe

unblockBackupback to summary
protected void unblockBackup()

Unblock the backup, a backup blocking operation finished.

unblockBackupBlockingOperationsback to summary
public void unblockBackupBlockingOperations()

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.unblockBackupBlockingOperations.

Backup completed. Allow backup blocking operations.

useTransactionTableback to summary
public void useTransactionTable(Formatable transactionTable) throws StandardException

Implements org.apache.derby.iapi.store.raw.xact.TransactionFactory.useTransactionTable.

Use this transaction table, which is gotten from a checkpoint operation. Use ONLY during recovery.

Exceptions
StandardException:

Doc from org.apache.derby.iapi.store.raw.xact.TransactionFactory.useTransactionTable.

Standard Derby exception policy.