session

package
v0.14.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: BSD-3-Clause Imports: 8 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// IRODSSessionConnectionErrorTimeoutDefault is a default value of connection error timeout
	IRODSSessionConnectionErrorTimeoutDefault = 1 * time.Minute
	// IRODSSessionConnectionInitNumberDefault is a default value of connection init number
	IRODSSessionConnectionInitNumberDefault = 0
	// IRODSSessionConnectionMaxMin is a minimum value of connection max
	IRODSSessionConnectionMaxMin = 5
	// IRODSSessionConnectionMaxDefault is a default value of connection max
	IRODSSessionConnectionMaxDefault = 10
	// IRODSSessionConnectionLifespanDefault is a default value of connection lifespan
	IRODSSessionConnectionLifespanDefault = 1 * time.Hour
	// IRODSSessionTimeoutDefault is a default value of timeout
	IRODSSessionTimeoutDefault = 5 * time.Minute
	// IRODSSessionTCPBufferSizeDefault is a default value of tcp buffer size
	IRODSSessionTCPBufferSizeDefault = 4 * 1024 * 1024
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddressResolver added in v0.14.0

type AddressResolver func(address string) string

type ConnectionPool added in v0.5.7

type ConnectionPool struct {
	// contains filtered or unexported fields
}

ConnectionPool is a struct for connection pool

func NewConnectionPool added in v0.5.7

func NewConnectionPool(config *ConnectionPoolConfig, metrics *metrics.IRODSMetrics) (*ConnectionPool, error)

NewConnectionPool creates a new ConnectionPool

func (*ConnectionPool) AvailableConnections added in v0.9.6

func (pool *ConnectionPool) AvailableConnections() int

AvailableConnections returns connections that are available to use

func (*ConnectionPool) Discard added in v0.5.9

func (pool *ConnectionPool) Discard(conn *connection.IRODSConnection)

Discard discards the connection

func (*ConnectionPool) Get added in v0.5.7

Get gets a new or an idle connection out of the pool the boolean return value indicates if the returned conneciton is new (True) or existing idle (False)

func (*ConnectionPool) GetNew added in v0.5.9

func (pool *ConnectionPool) GetNew() (*connection.IRODSConnection, error)

GetNew gets a new connection out of the pool

func (*ConnectionPool) IdleConnections added in v0.5.7

func (pool *ConnectionPool) IdleConnections() int

IdleConnections returns total number of idle connections

func (*ConnectionPool) OccupiedConnections added in v0.5.7

func (pool *ConnectionPool) OccupiedConnections() int

OccupiedConnections returns total number of connections in use

func (*ConnectionPool) OpenConnections added in v0.5.7

func (pool *ConnectionPool) OpenConnections() int

OpenConnections returns total number of connections

func (*ConnectionPool) Release added in v0.5.7

func (pool *ConnectionPool) Release()

Release releases all resources

func (*ConnectionPool) Return added in v0.5.7

func (pool *ConnectionPool) Return(conn *connection.IRODSConnection) error

Return returns the connection after use

type ConnectionPoolConfig added in v0.5.7

type ConnectionPoolConfig struct {
	Account          *types.IRODSAccount
	ApplicationName  string
	InitialCap       int
	MaxIdle          int
	MaxCap           int           // output warning if total connections exceeds maxcap number
	Lifespan         time.Duration // if a connection exceeds its lifespan, the connection will die
	IdleTimeout      time.Duration // if there's no activity on a connection for the timeout time, the connection will die
	OperationTimeout time.Duration // if there's no response for the timeout time, the request will fail
	TcpBufferSize    int
}

ConnectionPoolConfig is for connection pool configuration

type IRODSSession

type IRODSSession struct {
	// contains filtered or unexported fields
}

IRODSSession manages connections to iRODS

func NewIRODSSession

func NewIRODSSession(account *types.IRODSAccount, config *IRODSSessionConfig) (*IRODSSession, error)

NewIRODSSession create a IRODSSession

func NewIRODSSessionWithAddressResolver added in v0.14.0

func NewIRODSSessionWithAddressResolver(account *types.IRODSAccount, config *IRODSSessionConfig, addressResolver AddressResolver) (*IRODSSession, error)

NewIRODSSessionWithAddressResolver create a IRODSSession

func (*IRODSSession) AcquireConnection

func (sess *IRODSSession) AcquireConnection() (*connection.IRODSConnection, error)

AcquireConnection returns an idle connection

func (*IRODSSession) AcquireConnectionsMulti added in v0.9.6

func (sess *IRODSSession) AcquireConnectionsMulti(number int) ([]*connection.IRODSConnection, error)

AcquireConnectionsMulti returns idle connections

func (*IRODSSession) AcquireUnmanagedConnection added in v0.10.11

func (sess *IRODSSession) AcquireUnmanagedConnection() (*connection.IRODSConnection, error)

AcquireUnmanagedConnection returns a connection that is not managed

func (*IRODSSession) ConnectionTotal added in v0.9.7

func (sess *IRODSSession) ConnectionTotal() int

Connections returns the number of connections in the pool

func (*IRODSSession) DiscardConnection added in v0.5.9

func (sess *IRODSSession) DiscardConnection(conn *connection.IRODSConnection) error

DiscardConnection discards a connection

func (*IRODSSession) GetAccount added in v0.7.6

func (sess *IRODSSession) GetAccount() *types.IRODSAccount

GetAccount returns an account

func (*IRODSSession) GetConfig added in v0.9.6

func (sess *IRODSSession) GetConfig() *IRODSSessionConfig

GetConfig returns a configuration

func (*IRODSSession) GetLastConnectionError added in v0.12.17

func (sess *IRODSSession) GetLastConnectionError() (time.Time, error)

IsConnectionError returns if there is a failure

func (*IRODSSession) GetMetrics added in v0.9.7

func (sess *IRODSSession) GetMetrics() *metrics.IRODSMetrics

GetMetrics returns metrics

func (*IRODSSession) GetRedirectionConnection added in v0.14.0

func (sess *IRODSSession) GetRedirectionConnection(controlConnection *connection.IRODSConnection, redirectionInfo *types.IRODSRedirectionInfo) *connection.IRODSResourceServerConnection

GetRedirectionConnection returns redirection connection to resource server

func (*IRODSSession) IsPermanantFailure added in v0.12.17

func (sess *IRODSSession) IsPermanantFailure() bool

IsPermanantFailure returns if there is a failure that is unfixable, permanant

func (*IRODSSession) Release

func (sess *IRODSSession) Release()

Release releases all connections

func (*IRODSSession) ReturnConnection

func (sess *IRODSSession) ReturnConnection(conn *connection.IRODSConnection) error

ReturnConnection returns an idle connection with transaction close

func (*IRODSSession) SetCommitFail added in v0.12.7

func (sess *IRODSSession) SetCommitFail(commitFail bool)

SetCommitFail sets commit fail

func (*IRODSSession) SetPoormansRollbackFail added in v0.12.7

func (sess *IRODSSession) SetPoormansRollbackFail(poormansRollbackFail bool)

SetPoormansRollbackFail sets poormans rollback fail

func (*IRODSSession) SetTransactionFailureHandler added in v0.12.7

func (sess *IRODSSession) SetTransactionFailureHandler(handler TransactionFailureHandler)

SetTransactionFailureHandler sets transaction failure handler

func (*IRODSSession) SupportParallelUpload added in v0.10.11

func (sess *IRODSSession) SupportParallelUpload() bool

SupportParallelUpload returns if parallel upload is supported

type IRODSSessionConfig

type IRODSSessionConfig struct {
	ApplicationName        string
	ConnectionErrorTimeout time.Duration
	ConnectionLifespan     time.Duration
	OperationTimeout       time.Duration
	ConnectionIdleTimeout  time.Duration
	ConnectionMax          int
	ConnectionInitNumber   int
	ConnectionMaxIdle      int
	TcpBufferSize          int
	StartNewTransaction    bool
}

IRODSSessionConfig is for session configuration

func NewIRODSSessionConfig

func NewIRODSSessionConfig(applicationName string, connectionErrorTimeout time.Duration, connectionInitNumber int, connectionLifespan time.Duration, operationTimeout time.Duration, idleTimeout time.Duration, connectionMax int, tcpBufferSize int, startNewTransaction bool) *IRODSSessionConfig

NewIRODSSessionConfig create a IRODSSessionConfig

func NewIRODSSessionConfigWithDefault

func NewIRODSSessionConfigWithDefault(applicationName string) *IRODSSessionConfig

NewIRODSSessionConfigWithDefault create a IRODSSessionConfig with a default settings

type TransactionFailureHandler added in v0.12.7

type TransactionFailureHandler func(commitFail bool, poormansRollbackFail bool)

TransactionFailureHandler is an handler that is called when transaction operation fails

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL