session

package
v0.19.7 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2026 License: BSD-3-Clause Imports: 10 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// IRODSSessionApplicationNameDefault is a default value of application name
	IRODSSessionApplicationNameDefault string = connection.ApplicationNameDefault
	// IRODSSessionConnectionCreationTimeoutDefault is a default value of connection error timeout
	IRODSSessionConnectionCreationTimeoutDefault time.Duration = connection.ConnectTimeoutDefault
	// IRODSSessionTcpBufferSizeDefault is a default value of tcp buffer size
	IRODSSessionTcpBufferSizeDefault int = connection.TcpBufferSizeDefault
	// IRODSSessionConnectionInitNumberDefault is a default value of connection init
	IRODSSessionConnectionInitNumberDefault int = 0
	// IRODSSessionConnectionMaxNumberDefault is a default value of connection max
	IRODSSessionConnectionMaxNumberDefault int = 10
	// IRODSSessionConnectionLifespanDefault is a default value of connection lifespan
	IRODSSessionConnectionLifespanDefault time.Duration = 1 * time.Hour
	// IRODSSessionConnectionIdleTimeoutDefault is a default value of connection idle timeout
	IRODSSessionConnectionIdleTimeoutDefault time.Duration = 5 * time.Minute
	// IRODSSessionOperationTimeoutDefault is a default value of operation timeout
	IRODSSessionOperationTimeoutDefault time.Duration = connection.OperationTimeoutDefault
	// IRODSSessionLongOperationTimeoutDefault is a default value of long operation timeout
	IRODSSessionLongOperationTimeoutDefault time.Duration = connection.LongOperationTimeoutDefault

	// IRODSSessionConnectionMaxIdleNumberDefault is a default value of max idle connections
	IRODSSessionConnectionMaxIdleNumberDefault int = 5
)

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(account *types.IRODSAccount, config *ConnectionPoolConfig) (*ConnectionPool, error)

NewConnectionPool creates a new ConnectionPool

func (*ConnectionPool) AddUsageCallback added in v0.18.0

func (pool *ConnectionPool) AddUsageCallback(callback ConnectionUsageCallback) string

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

func (pool *ConnectionPool) Get(new bool, noConnect bool, wait bool) (*connection.IRODSConnection, bool, error)

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

func (*ConnectionPool) GetAvailableConnections added in v0.18.0

func (pool *ConnectionPool) GetAvailableConnections() int

GetAvailableConnections returns connections that are available to use

func (*ConnectionPool) GetIdleConnections added in v0.18.0

func (pool *ConnectionPool) GetIdleConnections() int

GetIdleConnections returns total number of idle connections

func (*ConnectionPool) GetMaxConnections added in v0.18.0

func (pool *ConnectionPool) GetMaxConnections() int

GetMaxConnections returns connections that can be created

func (*ConnectionPool) GetOccupiedConnections added in v0.18.0

func (pool *ConnectionPool) GetOccupiedConnections() int

GetOccupiedConnections returns total number of connections in use

func (*ConnectionPool) GetOpenConnections added in v0.18.0

func (pool *ConnectionPool) GetOpenConnections() int

GetOpenConnections returns total number of connections

func (*ConnectionPool) Release added in v0.5.7

func (pool *ConnectionPool) Release()

Release releases all resources

func (*ConnectionPool) RemoveUsageCallback added in v0.18.0

func (pool *ConnectionPool) RemoveUsageCallback(id string)

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 {
	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
	ConnectTimeout       time.Duration // if there's no response for the timeout time, the connection will fail
	OperationTimeout     time.Duration // timeout for iRODS operations
	LongOperationTimeout time.Duration // timeout for long iRODS operations
	TcpBufferSize        int

	Metrics *metrics.IRODSMetrics // can be null
}

ConnectionPoolConfig is for connection pool configuration

func (*ConnectionPoolConfig) ToConnectionConfig added in v0.18.0

func (poolConfig *ConnectionPoolConfig) ToConnectionConfig() *connection.IRODSConnectionConfig

func (*ConnectionPoolConfig) Validate added in v0.18.0

func (poolConfig *ConnectionPoolConfig) Validate() error

type ConnectionUsageCallback added in v0.18.0

type ConnectionUsageCallback func(occupied int, idle int, max int)

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 (*IRODSSession) AcquireConnection

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

AcquireConnection acquires an idle connection

func (*IRODSSession) AcquireConnectionsMulti added in v0.9.6

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

AcquireConnectionsMulti acquires multiple idle connections

func (*IRODSSession) AcquireNewConnection added in v0.18.0

func (sess *IRODSSession) AcquireNewConnection(allowShared bool) (*connection.IRODSConnection, error)

AcquireNewConnection acquires a new connection

func (*IRODSSession) AddConnectionUsageCallback added in v0.18.0

func (sess *IRODSSession) AddConnectionUsageCallback(callback ConnectionUsageCallback) string

AddConnectionUsageCallback adds connection usage callback

func (*IRODSSession) DiscardConnection added in v0.5.9

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

DiscardConnection discards a connection

func (*IRODSSession) GetAccount added in v0.7.6

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

GetAccount returns an account

func (*IRODSSession) GetAvailableConnections added in v0.18.0

func (sess *IRODSSession) GetAvailableConnections() int

GetAvailableConnections returns the number of available connections in the pool

func (*IRODSSession) GetConfig added in v0.9.6

func (sess *IRODSSession) GetConfig() *IRODSSessionConfig

GetConfig returns a configuration

func (*IRODSSession) GetIdleConnections added in v0.18.0

func (sess *IRODSSession) GetIdleConnections() int

GetIdleConnections returns total number of idle connections

func (*IRODSSession) GetLastConnectionError added in v0.12.17

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

IsConnectionError returns if there is a failure

func (*IRODSSession) GetMaxConnections added in v0.18.0

func (sess *IRODSSession) GetMaxConnections() int

GetMaxConnections returns the maximum number of connections in the pool

func (*IRODSSession) GetMetrics added in v0.9.7

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

GetMetrics returns metrics

func (*IRODSSession) GetOccupiedConnections added in v0.18.0

func (sess *IRODSSession) GetOccupiedConnections() int

GetOccupiedConnections returns the number of occupied connections in the pool

func (*IRODSSession) GetOpenConnections added in v0.18.0

func (sess *IRODSSession) GetOpenConnections() int

GetOpenConnections returns the number of connections open in the pool

func (*IRODSSession) GetRedirectionConnection added in v0.14.0

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

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, permanent

func (*IRODSSession) Release

func (sess *IRODSSession) Release()

Release releases all connections

func (*IRODSSession) RemoveConnectionUsageCallback added in v0.18.0

func (sess *IRODSSession) RemoveConnectionUsageCallback(id string)

RemoveConnectionUsageCallback removes connection usage callback

func (*IRODSSession) ReturnConnection

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

ReturnConnection returns an idle connection with transaction close

func (*IRODSSession) ReturnConnectionsMulti added in v0.18.0

func (sess *IRODSSession) ReturnConnectionsMulti(conns []*connection.IRODSConnection) error

ReturnConnectionsMulti returns multiple idle connections 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

	ConnectionCreationTimeout time.Duration
	ConnectionInitNumber      int
	ConnectionMaxNumber       int
	ConnectionLifespan        time.Duration
	ConnectionIdleTimeout     time.Duration
	ConnectionMaxIdleNumber   int
	OperationTimeout          time.Duration // timeout for iRODS operations
	LongOperationTimeout      time.Duration // timeout for long iRODS operations
	TcpBufferSize             int
	StartNewTransaction       bool

	WaitConnection  bool            // if true, wait for a connection to be available when the pool is exhausted
	AddressResolver AddressResolver // can be nil
}

IRODSSessionConfig is for session configuration

func (*IRODSSessionConfig) ToConnectionPoolConfig added in v0.18.0

func (sessionConfig *IRODSSessionConfig) ToConnectionPoolConfig() *ConnectionPoolConfig

func (*IRODSSessionConfig) Validate added in v0.18.0

func (sessionConfig *IRODSSessionConfig) Validate() error

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