Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.txbridge.ba
Class SingleTransactionManager

    java.lang.Object
      org.jboss.txbridge.ba.SingleTransactionManager

All Implemented Interfaces:
  java.io.Serializable

    public class SingleTransactionManager

extends java.lang.Object
implements java.io.Serializable

The Single Transaction Manager component is responsible for maintaining information about a single Business Activity. It knows about the exact order of tasks that have been executed within the Business Activity, the participants that have been instantiated for this specific Business Activity and about participant managers responsible for those participants.

Version:
  0.1
Author:
  Maciej P. Machulak (mmachulak@redhat.com)
See Also:
  Serialized Form

Field Summary
`private static com.arjuna.mw.wst.BusinessActivityManager` | `businessActivityManager`
`private static org.apache.log4j.Logger` | `log`
`private java.util.concurrent.ConcurrentMap<Participant,com.arjuna.wst.BAParticipantManager>` | `participantManagerMapping`
`private static ServiceInformationManager` | `serviceInformationManager`
`private java.util.concurrent.ConcurrentMap<java.lang.String,Participant>` | `serviceParticipantMapping`
`private java.util.List<java.lang.String>` | `singleServiceList`
`private java.util.concurrent.ConcurrentMap<java.lang.String,com.arjuna.wst.BAParticipantManager>` | `taskBAManagerMapping`
`private java.util.List<java.lang.String>` | `taskList`
`private java.util.List<java.lang.String>` | `taskListFirst`
`private java.util.List<java.lang.String>` | `taskListLast`
`private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String>` | `taskServiceMapping`
`private java.lang.String` | `txId`

Constructor Summary
`SingleTransactionManager(java.lang.String txId)`

Method Summary
`void` | `cleanInvocation(TaskDescription taskDesc)` This method cleans invocation - if there was an error with invoking the required service then transaction-related information is removed.
`void` | `compensate()` This method executes compensation for all tasks that are associated with this transaction.
`private void` | `compensateList(java.util.Stack<java.lang.String> taskList)` This method executes a compensation for a given list of tasks.
`void` | `complete(java.lang.String taskId, BAServiceType serviceType)` This method completes the work done by the given participant within a certain transaction.
`void` | `completeInvocation(TaskDescription taskDesc, java.lang.Object[] arguments, java.lang.Object returnObject)` This method handles transaction management for a certain invocation of a method when this invocation has already completed.
`Participant` | `processInvocation(java.lang.String taskId, java.lang.String serviceId)` This method processes a single invocation within a scope of a transaction this single transaction manager is responsible for.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    private static org.apache.log4j.Logger log

### businessActivityManager

    private static com.arjuna.mw.wst.BusinessActivityManager businessActivityManager

### serviceInformationManager

    private static ServiceInformationManager serviceInformationManager

### txId

    private java.lang.String txId

### taskList

    private java.util.List<java.lang.String> taskList

### taskListFirst

    private java.util.List<java.lang.String> taskListFirst

### taskListLast

    private java.util.List<java.lang.String> taskListLast

### singleServiceList

    private java.util.List<java.lang.String> singleServiceList

### taskServiceMapping

    private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> taskServiceMapping

### serviceParticipantMapping

    private java.util.concurrent.ConcurrentMap<java.lang.String,Participant> serviceParticipantMapping

### taskBAManagerMapping

    private java.util.concurrent.ConcurrentMap<java.lang.String,com.arjuna.wst.BAParticipantManager> taskBAManagerMapping

### participantManagerMapping

    private java.util.concurrent.ConcurrentMap<Participant,com.arjuna.wst.BAParticipantManager> participantManagerMapping

Constructor Detail

### SingleTransactionManager

    public SingleTransactionManager(java.lang.String txId)

Method Detail

### processInvocation

    public Participant processInvocation(java.lang.String taskId,
                                         java.lang.String serviceId)
                                  throws TransactionProcessingException

  This method processes a single invocation within a scope of a transaction this single transaction manager is responsible for. It either creates a new participant for the service that is being invoked or associates this invocation with an existing participant.

  Parameters:
    `taskId` - is the task identifier.
    `serviceId` - is the service identifier.
  Returns:
    the participant associated with the invocation.
  Throws:
    `TransactionProcessingException` - if an error occurs

### completeInvocation

    public void completeInvocation(TaskDescription taskDesc,
                                   java.lang.Object[] arguments,
                                   java.lang.Object returnObject)
                            throws com.arjuna.wst.SystemException,
                                   com.arjuna.wst.UnknownTransactionException,
                                   com.arjuna.wst.WrongStateException,
                                   TransactionProcessingException

  This method handles transaction management for a certain invocation of a method when this invocation has already completed.

  Parameters:
    `taskDesc` - is the task description.
    `arguments` - is the list of original arguments.
    `returnObject` - is the return object.
  Throws:
    `com.arjuna.wst.SystemException` - if there was an error.
    `com.arjuna.wst.UnknownTransactionException` - if there was an error.
    `com.arjuna.wst.WrongStateException` - if there was an error.
    `TransactionProcessingException` - if there was an error.

### complete

    public void complete(java.lang.String taskId,
                         BAServiceType serviceType)
                  throws TransactionProcessingException,
                         com.arjuna.wst.SystemException,
                         com.arjuna.wst.UnknownTransactionException,
                         com.arjuna.wst.WrongStateException

  This method completes the work done by the given participant within a certain transaction.

  Parameters:
    `taskId` - is the participant which wants to complete its work.
    `serviceType` - is the type of the service.
  Throws:
    `TransactionProcessingException` - if processing was not successful.
    `com.arjuna.wst.SystemException` - if processing was not successful.
    `com.arjuna.wst.UnknownTransactionException` - if processing was not successful.
    `com.arjuna.wst.WrongStateException` - if processing was not successful.

### cleanInvocation

    public void cleanInvocation(TaskDescription taskDesc)
                         throws TransactionProcessingException

  This method cleans invocation - if there was an error with invoking the required service then transaction-related information is removed.

  Parameters:
    `taskDesc` - is the description of a certain task.
  Throws:
    `TransactionProcessingException` - an internal error.

### compensate

    public void compensate()

  This method executes compensation for all tasks that are associated with this transaction. It executes a compensationList() method on all lists that have been defined.

### compensateList

    private void compensateList(java.util.Stack<java.lang.String> taskList)

  This method executes a compensation for a given list of tasks. It gets reference to participants responsible for different tasks and asks them to compensate those tasks. If there is an error with compensating a task it is communicated to the coordinator so that the client knows if heuristics occur.

  Parameters:
    `taskList` - is the list of tasks which should be compensated.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD