Class RESTRecord

  • All Implemented Interfaces:
    java.lang.Comparable

    public class RESTRecord
    extends com.arjuna.ats.arjuna.coordinator.AbstractRecord
    implements java.lang.Comparable
    Log record for driving participants through 2PC and recovery
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static org.jboss.logging.Logger log  
      • Fields inherited from class com.arjuna.ats.arjuna.StateManager

        modifyingActions, objectModel, objectUid, usingActions
    • Constructor Summary

      Constructors 
      Constructor Description
      RESTRecord()  
      RESTRecord​(java.lang.String txId, java.lang.String coordinatorURI, java.lang.String participantURI, java.lang.String terminateURI)  
      RESTRecord​(java.lang.String txId, java.lang.String coordinatorURI, java.lang.String participantURI, java.lang.String commitURI, java.lang.String prepareURI, java.lang.String rollbackURI, java.lang.String commitOnePhaseURI)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void alter​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      int compareTo​(java.lang.Object o)  
      boolean doSave()  
      boolean forgetHeuristic()  
      long getAge()  
      java.lang.String getCoordinatorURI()  
      protected java.lang.String getParticipantURI()  
      java.lang.String getRecoveryURI()  
      java.lang.String getStatus()  
      java.lang.String getTxId()  
      java.lang.String httpRequest​(int[] expect, java.lang.String url, java.lang.String method, java.lang.String mediaType, java.lang.String content, java.util.Map<java.lang.String,​java.lang.String> linkHeaders, java.util.Map<java.lang.String,​java.lang.String> reqHeaders)  
      void merge​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      int nestedAbort()  
      int nestedCommit()  
      int nestedOnePhaseCommit()  
      int nestedPrepare()  
      boolean restore_state​(com.arjuna.ats.arjuna.state.InputObjectState os, int t)  
      boolean save_state​(com.arjuna.ats.arjuna.state.OutputObjectState os, int t)  
      void setFault​(java.lang.String name)  
      void setRecoveryURI​(java.lang.String recoveryURI)  
      void setValue​(java.lang.Object o)  
      boolean shouldAdd​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      boolean shouldAlter​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      boolean shouldMerge​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      boolean shouldReplace​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)  
      int topLevelAbort()  
      int topLevelCommit()  
      int topLevelOnePhaseCommit()
      For commit_one_phase we can do whatever we want since the transaction outcome is whatever we want.
      int topLevelPrepare()  
      java.lang.String type()  
      int typeIs()  
      static java.lang.String typeName()  
      java.lang.Object value()  
      • Methods inherited from class com.arjuna.ats.arjuna.coordinator.AbstractRecord

        clearHeuristicDecision, create, equals, getNext, getPrevious, getTypeOfObject, greaterThan, isPermittedTopLevelOnePhaseCommit, lessThan, nestedCleanup, order, print, propagateOnAbort, propagateOnCommit, replace, setNext, setPrevious, topLevelCleanup
      • Methods inherited from class com.arjuna.ats.arjuna.StateManager

        activate, activate, cleanup, createLists, deactivate, deactivate, deactivate, destroy, disable, forgetAction, get_uid, getMutex, getObjectModel, getStore, getStoreRoot, loadObjectState, lockMutex, modified, objectType, packHeader, persist, rememberAction, setStatus, setupStore, setupStore, setupStore, status, terminate, tryLockMutex, unlockMutex, unpackHeader
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • log

        protected static final org.jboss.logging.Logger log
    • Constructor Detail

      • RESTRecord

        public RESTRecord()
      • RESTRecord

        public RESTRecord​(java.lang.String txId,
                          java.lang.String coordinatorURI,
                          java.lang.String participantURI,
                          java.lang.String terminateURI)
      • RESTRecord

        public RESTRecord​(java.lang.String txId,
                          java.lang.String coordinatorURI,
                          java.lang.String participantURI,
                          java.lang.String commitURI,
                          java.lang.String prepareURI,
                          java.lang.String rollbackURI,
                          java.lang.String commitOnePhaseURI)
    • Method Detail

      • getCoordinatorURI

        public java.lang.String getCoordinatorURI()
      • getTxId

        public java.lang.String getTxId()
      • getRecoveryURI

        public java.lang.String getRecoveryURI()
      • getParticipantURI

        protected java.lang.String getParticipantURI()
      • typeIs

        public int typeIs()
        Specified by:
        typeIs in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • value

        public java.lang.Object value()
        Specified by:
        value in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • getStatus

        public java.lang.String getStatus()
      • getAge

        public long getAge()
      • setValue

        public void setValue​(java.lang.Object o)
        Specified by:
        setValue in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • nestedAbort

        public int nestedAbort()
        Specified by:
        nestedAbort in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • nestedCommit

        public int nestedCommit()
        Specified by:
        nestedCommit in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • nestedPrepare

        public int nestedPrepare()
        Specified by:
        nestedPrepare in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • forgetHeuristic

        public boolean forgetHeuristic()
        Overrides:
        forgetHeuristic in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • topLevelPrepare

        public int topLevelPrepare()
        Specified by:
        topLevelPrepare in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • topLevelAbort

        public int topLevelAbort()
        Specified by:
        topLevelAbort in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • topLevelCommit

        public int topLevelCommit()
        Specified by:
        topLevelCommit in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • nestedOnePhaseCommit

        public int nestedOnePhaseCommit()
        Overrides:
        nestedOnePhaseCommit in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • topLevelOnePhaseCommit

        public int topLevelOnePhaseCommit()
        For commit_one_phase we can do whatever we want since the transaction outcome is whatever we want. Therefore, we do not need to save any additional recoverable state, such as a reference to the transaction coordinator, since it will not have an intentions list anyway.
        Overrides:
        topLevelOnePhaseCommit in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • save_state

        public boolean save_state​(com.arjuna.ats.arjuna.state.OutputObjectState os,
                                  int t)
        Overrides:
        save_state in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • restore_state

        public boolean restore_state​(com.arjuna.ats.arjuna.state.InputObjectState os,
                                     int t)
        Overrides:
        restore_state in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • type

        public java.lang.String type()
        Overrides:
        type in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • typeName

        public static java.lang.String typeName()
      • doSave

        public boolean doSave()
        Overrides:
        doSave in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • merge

        public void merge​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        merge in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • alter

        public void alter​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        alter in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • shouldAdd

        public boolean shouldAdd​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        shouldAdd in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • shouldAlter

        public boolean shouldAlter​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        shouldAlter in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • shouldMerge

        public boolean shouldMerge​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        shouldMerge in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • shouldReplace

        public boolean shouldReplace​(com.arjuna.ats.arjuna.coordinator.AbstractRecord a)
        Specified by:
        shouldReplace in class com.arjuna.ats.arjuna.coordinator.AbstractRecord
      • setRecoveryURI

        public void setRecoveryURI​(java.lang.String recoveryURI)
      • setFault

        public void setFault​(java.lang.String name)
      • compareTo

        public int compareTo​(java.lang.Object o)
        Specified by:
        compareTo in interface java.lang.Comparable
      • httpRequest

        public java.lang.String httpRequest​(int[] expect,
                                            java.lang.String url,
                                            java.lang.String method,
                                            java.lang.String mediaType,
                                            java.lang.String content,
                                            java.util.Map<java.lang.String,​java.lang.String> linkHeaders,
                                            java.util.Map<java.lang.String,​java.lang.String> reqHeaders)