Documentation ¶
Index ¶
- Constants
- Variables
- func InitRm(cfg RmConfig)
- func IsTwoPhaseAction(v interface{}) bool
- type BranchRegisterParam
- type BranchReportParam
- type BranchResource
- type Config
- type LockConfig
- type LockQueryParam
- type RMRemoting
- type Resource
- type ResourceManager
- type ResourceManagerCache
- type ResourceManagerGetter
- type ResourceManagerInbound
- type ResourceManagerOutbound
- type RmConfig
- type TwoPhaseAction
- func (t *TwoPhaseAction) Commit(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error)
- func (t *TwoPhaseAction) GetActionName() string
- func (t *TwoPhaseAction) GetCommitMethodName() string
- func (t *TwoPhaseAction) GetPrepareMethodName() string
- func (t *TwoPhaseAction) GetRollbackMethodName() string
- func (t *TwoPhaseAction) GetTwoPhaseService() interface{}
- func (t *TwoPhaseAction) Prepare(ctx context.Context, params interface{}) (bool, error)
- func (t *TwoPhaseAction) Rollback(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error)
- type TwoPhaseInterface
Constants ¶
View Source
const ( TwoPhaseActionTag = "seataTwoPhaseAction" TwoPhaseActionNameTag = "seataTwoPhaseServiceName" TwoPhaseActionPrepareTagVal = "prepare" TwoPhaseActionCommitTagVal = "commit" TwoPhaseActionRollbackTagVal = "rollback" )
Variables ¶
View Source
var ErrBranchReportResponseFault = errors.New("branch report response fault")
View Source
var (
TypBusinessContextInterface = reflect.Zero(reflect.TypeOf((*tm.BusinessActionContext)(nil))).Type()
)
Functions ¶
func IsTwoPhaseAction ¶
func IsTwoPhaseAction(v interface{}) bool
Types ¶
type BranchRegisterParam ¶
type BranchRegisterParam struct { BranchType branch.BranchType ResourceId string ClientId string Xid string ApplicationData string LockKeys string }
BranchRegisterParam Branch register function param for ResourceManager
type BranchReportParam ¶
type BranchReportParam struct { BranchType branch.BranchType Xid string BranchId int64 Status branch.BranchStatus ApplicationData string }
BranchReportParam Branch report function param for ResourceManager
type BranchResource ¶
type BranchResource struct { BranchType branch.BranchType Xid string BranchId int64 ResourceId string ApplicationData []byte }
BranchResource contains branch to commit or rollback
type Config ¶
type Config struct { AsyncCommitBufferLimit int `yaml:"async-commit-buffer-limit" json:"async-commit-buffer-limit,omitempty" koanf:"async-commit-buffer-limit"` ReportRetryCount int `yaml:"report-retry-count" json:"report-retry-count,omitempty" koanf:"report-retry-count"` TableMetaCheckEnable bool `yaml:"table-meta-check-enable" json:"table-meta-check-enable" koanf:"table-meta-check-enable"` ReportSuccessEnable bool `yaml:"report-success-enable" json:"report-success-enable,omitempty" koanf:"report-success-enable"` SagaBranchRegisterEnable bool `yaml:"saga-branch-register-enable" json:"saga-branch-register-enable,omitempty" koanf:"saga-branch-register-enable"` SagaJsonParser string `yaml:"saga-json-parser" json:"saga-json-parser,omitempty" koanf:"saga-json-parser"` SagaRetryPersistModeUpdate bool `yaml:"saga-retry-persist-mode-update" json:"saga-retry-persist-mode-update,omitempty" koanf:"saga-retry-persist-mode-update"` SagaCompensatePersistModeUpdate bool `` /* 139-byte string literal not displayed */ TccActionInterceptorOrder int `yaml:"tcc-action-interceptor-order" json:"tcc-action-interceptor-order,omitempty" koanf:"tcc-action-interceptor-order"` SqlParserType string `yaml:"sql-parser-type" json:"sql-parser-type,omitempty" koanf:"sql-parser-type"` LockConfig LockConfig `yaml:"lock" json:"lock,omitempty" koanf:"lock"` }
type LockConfig ¶
type LockConfig struct { RetryInterval time.Duration `yaml:"retry-interval" json:"retry-interval,omitempty" koanf:"retry-interval"` RetryTimes int `yaml:"retry-times" json:"retry-times,omitempty" koanf:"retry-times"` RetryPolicyBranchRollbackOnConflict bool `` /* 154-byte string literal not displayed */ }
func (*LockConfig) RegisterFlagsWithPrefix ¶
func (cfg *LockConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)
type LockQueryParam ¶
type LockQueryParam struct { BranchType branch.BranchType ResourceId string Xid string LockKeys string }
LockQueryParam Lock query function param for ResourceManager
type RMRemoting ¶
type RMRemoting struct{}
func GetRMRemotingInstance ¶
func GetRMRemotingInstance() *RMRemoting
func (*RMRemoting) BranchRegister ¶
func (r *RMRemoting) BranchRegister(param BranchRegisterParam) (int64, error)
BranchRegister Register branch of global transaction
func (*RMRemoting) BranchReport ¶
func (r *RMRemoting) BranchReport(param BranchReportParam) error
BranchReport Report status of transaction branch
func (*RMRemoting) LockQuery ¶
func (r *RMRemoting) LockQuery(param LockQueryParam) (bool, error)
LockQuery Query lock status of transaction branch
func (*RMRemoting) RegisterResource ¶
func (r *RMRemoting) RegisterResource(resource Resource) error
type Resource ¶
type Resource interface { GetResourceGroupId() string GetResourceId() string GetBranchType() branch.BranchType }
Resource that can be managed by Resource Manager and involved into global transaction
type ResourceManager ¶
type ResourceManager interface { ResourceManagerInbound ResourceManagerOutbound // RegisterResource register a resource to be managed by resource manager RegisterResource(resource Resource) error // UnregisterResource unregister a resource from the Resource Manager UnregisterResource(resource Resource) error // GetCachedResources get all resources managed by this manager GetCachedResources() *sync.Map // GetBranchType get the branch type GetBranchType() branch.BranchType }
ResourceManager Resource Manager: common behaviors
type ResourceManagerCache ¶
type ResourceManagerCache struct {
// contains filtered or unexported fields
}
func GetRmCacheInstance ¶
func GetRmCacheInstance() *ResourceManagerCache
func (*ResourceManagerCache) GetResourceManager ¶
func (d *ResourceManagerCache) GetResourceManager(branchType branch.BranchType) ResourceManager
func (*ResourceManagerCache) RegisterResourceManager ¶
func (d *ResourceManagerCache) RegisterResourceManager(resourceManager ResourceManager)
type ResourceManagerGetter ¶
type ResourceManagerGetter interface {
GetResourceManager(branchType branch.BranchType) ResourceManager
}
type ResourceManagerInbound ¶
type ResourceManagerInbound interface { // BranchCommit commit a branch transaction BranchCommit(ctx context.Context, resource BranchResource) (branch.BranchStatus, error) // BranchRollback rollback a branch transaction BranchRollback(ctx context.Context, resource BranchResource) (branch.BranchStatus, error) }
ResourceManagerInbound Control a branch transaction commit or rollback
type ResourceManagerOutbound ¶
type ResourceManagerOutbound interface { // BranchRegister rm register the branch transaction BranchRegister(ctx context.Context, param BranchRegisterParam) (int64, error) // BranchReport branch transaction report the status BranchReport(ctx context.Context, param BranchReportParam) error // LockQuery lock query boolean LockQuery(ctx context.Context, param LockQueryParam) (bool, error) }
ResourceManagerOutbound Resource Manager: send outbound request to TC
type TwoPhaseAction ¶
type TwoPhaseAction struct {
// contains filtered or unexported fields
}
func ParseTwoPhaseAction ¶
func ParseTwoPhaseAction(v interface{}) (*TwoPhaseAction, error)
func ParseTwoPhaseActionByInterface ¶
func ParseTwoPhaseActionByInterface(v interface{}) (*TwoPhaseAction, error)
func (*TwoPhaseAction) Commit ¶
func (t *TwoPhaseAction) Commit(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error)
func (*TwoPhaseAction) GetActionName ¶
func (t *TwoPhaseAction) GetActionName() string
func (*TwoPhaseAction) GetCommitMethodName ¶
func (t *TwoPhaseAction) GetCommitMethodName() string
func (*TwoPhaseAction) GetPrepareMethodName ¶
func (t *TwoPhaseAction) GetPrepareMethodName() string
func (*TwoPhaseAction) GetRollbackMethodName ¶
func (t *TwoPhaseAction) GetRollbackMethodName() string
func (*TwoPhaseAction) GetTwoPhaseService ¶
func (t *TwoPhaseAction) GetTwoPhaseService() interface{}
func (*TwoPhaseAction) Prepare ¶
func (t *TwoPhaseAction) Prepare(ctx context.Context, params interface{}) (bool, error)
func (*TwoPhaseAction) Rollback ¶
func (t *TwoPhaseAction) Rollback(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error)
type TwoPhaseInterface ¶
type TwoPhaseInterface interface { Prepare(ctx context.Context, params interface{}) (bool, error) Commit(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error) Rollback(ctx context.Context, businessActionContext *tm.BusinessActionContext) (bool, error) GetActionName() string }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.