Documentation
¶
Index ¶
- Constants
- type AddressResolver
- type ConnectionPool
- func (pool *ConnectionPool) AddUsageCallback(callback ConnectionUsageCallback) string
- func (pool *ConnectionPool) Discard(conn *connection.IRODSConnection)
- func (pool *ConnectionPool) Get(new bool, noConnect bool, wait bool) (*connection.IRODSConnection, bool, error)
- func (pool *ConnectionPool) GetAvailableConnections() int
- func (pool *ConnectionPool) GetIdleConnections() int
- func (pool *ConnectionPool) GetMaxConnections() int
- func (pool *ConnectionPool) GetOccupiedConnections() int
- func (pool *ConnectionPool) GetOpenConnections() int
- func (pool *ConnectionPool) Release()
- func (pool *ConnectionPool) RemoveUsageCallback(id string)
- func (pool *ConnectionPool) Return(conn *connection.IRODSConnection) error
- type ConnectionPoolConfig
- type ConnectionUsageCallback
- type IRODSSession
- func (sess *IRODSSession) AcquireConnection(allowShared bool) (*connection.IRODSConnection, error)
- func (sess *IRODSSession) AcquireConnectionsMulti(number int, allowShared bool) ([]*connection.IRODSConnection, error)
- func (sess *IRODSSession) AcquireNewConnection(allowShared bool) (*connection.IRODSConnection, error)
- func (sess *IRODSSession) AddConnectionUsageCallback(callback ConnectionUsageCallback) string
- func (sess *IRODSSession) DiscardConnection(conn *connection.IRODSConnection)
- func (sess *IRODSSession) GetAccount() *types.IRODSAccount
- func (sess *IRODSSession) GetAvailableConnections() int
- func (sess *IRODSSession) GetConfig() *IRODSSessionConfig
- func (sess *IRODSSession) GetIdleConnections() int
- func (sess *IRODSSession) GetLastConnectionError() (time.Time, error)
- func (sess *IRODSSession) GetMaxConnections() int
- func (sess *IRODSSession) GetMetrics() *metrics.IRODSMetrics
- func (sess *IRODSSession) GetOccupiedConnections() int
- func (sess *IRODSSession) GetOpenConnections() int
- func (sess *IRODSSession) GetRedirectionConnection(controlConnection *connection.IRODSConnection, ...) (*connection.IRODSResourceServerConnection, error)
- func (sess *IRODSSession) IsPermanantFailure() bool
- func (sess *IRODSSession) Release()
- func (sess *IRODSSession) RemoveConnectionUsageCallback(id string)
- func (sess *IRODSSession) ReturnConnection(conn *connection.IRODSConnection) error
- func (sess *IRODSSession) ReturnConnectionsMulti(conns []*connection.IRODSConnection) error
- func (sess *IRODSSession) SetCommitFail(commitFail bool)
- func (sess *IRODSSession) SetPoormansRollbackFail(poormansRollbackFail bool)
- func (sess *IRODSSession) SetTransactionFailureHandler(handler TransactionFailureHandler)
- func (sess *IRODSSession) SupportParallelUpload() bool
- type IRODSSessionConfig
- type TransactionFailureHandler
Constants ¶
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 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 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) 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
TransactionFailureHandler is an handler that is called when transaction operation fails