Package com.j_spaces.sadapter.datasource
Class BulkDataPersisterContext
java.lang.Object
com.j_spaces.sadapter.datasource.BulkDataPersisterContext
BulkDataPersisterContext an operation context that is accessible on mirror in BulkDataPersister.executeBulk(ListBulkDataPersisterContext is not accessible on any other space except mirror and not in
any other method except BulkDataPersister.executeBulk(ListExample of mirror implementation:
public void executeBulk(List bulk) throws DataSourceException {
BulkDataPersisterContext context = BulkDataPersisterContext.getCurrentContext();
if (context.isConsolidatedDistributedTransaction()) {
// Built-in consolidation using multi-source replication mode
ConsolidatedDistributedTransactionMetaData metadata = getConsolidatedDistributedTransactionMetaData();
TransactionUniqueId transactionId = metadata.getTransactionUniqueId();
int participantsCount = metadata.getParticipantsCount();
} else if (context.isTransactional()) {
// Single participant transaction or distributed transaction failed to be consolidated
TransactionParticipantMetaData metadata getTransactionParticipantMetaData();
TransactionUniqueId transactionId = metadata.getTransactionUniqueId();
int participantsCount = metadata.getParticipantsCount();
int participantId = metadata.getParticipantId();
// Identify failed to consolidate transaction
if (participantsCount > 1) {
...
} else {
// Single participant transaction...
}
} else {
// Regular execution (no transaction)
....
}
}
- Since:
- 7.1
- Author:
- anna
-
Constructor Summary
ConstructorsConstructorDescriptionBulkDataPersisterContext(TransactionParticipantDataImpl transactionData, String sourceMemberSpaceName) -
Method Summary
Modifier and TypeMethodDescriptionstatic BulkDataPersisterContextGet the source space member name that sent this bulk.Deprecated.booleanbooleanstatic voidResets the current contextstatic voidsetContext(BulkDataPersisterContext context) Set the context for the current thread
-
Constructor Details
-
BulkDataPersisterContext
public BulkDataPersisterContext(TransactionParticipantDataImpl transactionData, String sourceMemberSpaceName) - Parameters:
transactionData-
-
-
Method Details
-
getCurrentContext
- Returns:
- the context of the current thread
-
setContext
Set the context for the current thread -
resetContext
public static void resetContext()Resets the current context -
getTransactionData
Deprecated.since 9.0.1 - usegetTransactionParticipantMetaData()instead.Gets transaction participant data if exists. -
getTransactionParticipantMetaData
- Returns:
- The transaction participant meta data. Before calling this method one should check if
the context does not contain a consolidated distributed transaction using the
isConsolidatedDistributedTransaction()method.
-
getConsolidatedDistributedTransactionMetaData
- Returns:
- The consolidated transaction meta data. Before calling this method one should check
if the context contains a consolidated distributed transaction using the
isConsolidatedDistributedTransaction()method.
-
getSourceSpaceMemberName
Get the source space member name that sent this bulk. -
isTransactional
public boolean isTransactional()- Returns:
- Whether the current context is transactional.
-
isConsolidatedDistributedTransaction
public boolean isConsolidatedDistributedTransaction()- Returns:
- Whether the current context is transactional and contains a consolidated distributed transaction.
-
getTransactionParticipantMetaData()instead.