ems

package module
v0.0.0-...-307aabd Latest Latest
Warning

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

Go to latest
Published: May 17, 2020 License: MIT Imports: 8 Imported by: 0

README

TIBCO EMS Go client

This repository contains the source code for the TIBCO EMS Go client library.

Installation and Build

This client is designed to work with the EMS 8.4 client libraries as shipped with TIBCO EMS.

You will need to modify the cgo CFLAGS and LDFLAGS directives to the correct location of your local EMS Client Libaries

Symbolic links to the following dynamic libs are needed:

ln /opt/tibco/ems/ems841/ems/8.4/lib/libtibems64.dylib /usr/local/lib/.
ln /opt/tibco/ems/ems841/ems/8.4/lib/64/libssl.1.0.0.dylib /usr/local/lib/.
ln /opt/tibco/ems/ems841/ems/8.4/lib/64/libcrypto.1.0.0.dylib /usr/local/lib/.

Reporting bugs

Please report bugs by raising issues for this project in github https://github.com/mmussett/ems/issues

Update History

11-Nov-2019 - Breaking change to Send,SendReceive, and Receive functions

Changed Send, SendReceive, and Receive functions to include destinationType on signature. destinationType can take 'queue' or 'topic' for the destination type now. Tested Sending and Receiving message on both Queue and Topic types.

Documentation

Index

Constants

View Source
const (
	TIBEMS_SESSION_TRANSACTED  = 0
	TIBEMS_AUTO_ACKNOWLEDGE    = 1
	TIBEMS_CLIENT_ACKNOWLEDGE  = 2
	TIBEMS_DUPS_OK_ACKNOWLEDGE = 3

	TIBEMS_NO_ACKNOWLEDGE                      = 22 /* Extensions */
	TIBEMS_EXPLICIT_CLIENT_ACKNOWLEDGE         = 23
	TIBEMS_EXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE = 24
)
View Source
const (
	TIBEMS_FALSE = 0
	TIBEMS_TRUE  = 1
)
View Source
const (
	TIBEMS_UNKNOWN        = 0
	TIBEMS_QUEUE          = 1
	TIBEMS_TOPIC          = 2
	TIBEMS_DEST_UNDEFINED = 256
)
View Source
const (
	TIBEMS_NON_PERSISTENT = 1
	TIBEMS_PERSISTENT     = 2
	TIBEMS_RELIABLE       = 22 /* Extension */
)
View Source
const (
	NPSEND_CHECK_DEFAULT   = 0
	NPSEND_CHECK_ALWAYS    = 1
	NPSEND_CHECK_NEVER     = 2
	NPSEND_CHECK_TEMP_DEST = 3
	NPSEND_CHECK_AUTH      = 4
	NPSEND_CHECK_TEMP_AUTH = 5
)
View Source
const (
	TIBEMS_MESSAGE_UNKNOWN   = 0
	TIBEMS_MESSAGE           = 1
	TIBEMS_BYTES_MESSAGE     = 2
	TIBEMS_MAP_MESSAGE       = 3
	TIBEMS_OBJECT_MESSAGE    = 4
	TIBEMS_STREAM_MESSAGE    = 5
	TIBEMS_TEXT_MESSAGE      = 6
	TIBEMS_MESSAGE_UNDEFINED = 256
)
View Source
const (
	TIBEMS_OK = 0

	TIBEMS_ILLEGAL_STATE       = 1
	TIBEMS_INVALID_CLIENT_ID   = 2
	TIBEMS_INVALID_DESTINATION = 3
	TIBEMS_INVALID_SELECTOR    = 4

	TIBEMS_EXCEPTION          = 5
	TIBEMS_SECURITY_EXCEPTION = 6

	TIBEMS_MSG_EOF = 7

	TIBEMS_MSG_NOT_READABLE  = 9
	TIBEMS_MSG_NOT_WRITEABLE = 10

	TIBEMS_SERVER_NOT_CONNECTED = 11
	TIBEMS_VERSION_MISMATCH     = 12
	TIBEMS_SUBJECT_COLLISION    = 13

	TIBEMS_INVALID_PROTOCOL = 15
	TIBEMS_INVALID_HOSTNAME = 17
	TIBEMS_INVALID_PORT     = 18
	TIBEMS_NO_MEMORY        = 19
	TIBEMS_INVALID_ARG      = 20

	TIBEMS_SERVER_LIMIT = 21

	TIBEMS_MSG_DUPLICATE = 22

	TIBEMS_SERVER_DISCONNECTED = 23
	TIBEMS_SERVER_RECONNECTING = 24

	TIBEMS_NOT_PERMITTED = 27

	TIBEMS_SERVER_RECONNECTED = 28

	TIBEMS_INVALID_NAME      = 30
	TIBEMS_INVALID_TYPE      = 31
	TIBEMS_INVALID_SIZE      = 32
	TIBEMS_INVALID_COUNT     = 33
	TIBEMS_NOT_FOUND         = 35
	TIBEMS_ID_IN_USE         = 36
	TIBEMS_ID_CONFLICT       = 37
	TIBEMS_CONVERSION_FAILED = 38

	TIBEMS_INVALID_MSG      = 42
	TIBEMS_INVALID_FIELD    = 43
	TIBEMS_INVALID_INSTANCE = 44
	TIBEMS_CORRUPT_MSG      = 45

	TIBEMS_PRODUCER_FAILED = 47

	TIBEMS_TIMEOUT                    = 50
	TIBEMS_INTR                       = 51
	TIBEMS_DESTINATION_LIMIT_EXCEEDED = 52
	TIBEMS_MEM_LIMIT_EXCEEDED         = 53
	TIBEMS_USER_INTR                  = 54

	TIBEMS_INVALID_QUEUE_GROUP   = 63
	TIBEMS_INVALID_TIME_INTERVAL = 64
	TIBEMS_INVALID_IO_SOURCE     = 65
	TIBEMS_INVALID_IO_CONDITION  = 66
	TIBEMS_SOCKET_LIMIT          = 67

	TIBEMS_OS_ERROR = 68

	TIBEMS_WOULD_BLOCK = 69

	TIBEMS_INSUFFICIENT_BUFFER = 70

	TIBEMS_EOF            = 71
	TIBEMS_INVALID_FILE   = 72
	TIBEMS_FILE_NOT_FOUND = 73
	TIBEMS_IO_FAILED      = 74

	TIBEMS_NOT_FILE_OWNER = 80

	TIBEMS_ALREADY_EXISTS = 91

	TIBEMS_INVALID_CONNECTION = 100
	TIBEMS_INVALID_SESSION    = 101
	TIBEMS_INVALID_CONSUMER   = 102
	TIBEMS_INVALID_PRODUCER   = 103
	TIBEMS_INVALID_USER       = 104
	TIBEMS_INVALID_GROUP      = 105

	TIBEMS_TRANSACTION_FAILED   = 106
	TIBEMS_TRANSACTION_ROLLBACK = 107
	TIBEMS_TRANSACTION_RETRY    = 108

	TIBEMS_INVALID_XARESOURCE = 109

	TIBEMS_FT_SERVER_LACKS_TRANSACTION = 110

	TIBEMS_LDAP_ERROR         = 120
	TIBEMS_INVALID_PROXY_USER = 121

	/* SSL related errors */
	TIBEMS_INVALID_CERT         = 150
	TIBEMS_INVALID_CERT_NOT_YET = 151
	TIBEMS_INVALID_CERT_EXPIRED = 152
	TIBEMS_INVALID_CERT_DATA    = 153
	TIBEMS_ALGORITHM_ERROR      = 154
	TIBEMS_SSL_ERROR            = 155
	TIBEMS_INVALID_PRIVATE_KEY  = 156
	TIBEMS_INVALID_ENCODING     = 157
	TIBEMS_NOT_ENOUGH_RANDOM    = 158
	TIBEMS_INVALID_CRL_DATA     = 159
	TIBEMS_CRL_OFF              = 160
	TIBEMS_EMPTY_CRL            = 161

	TIBEMS_NOT_INITIALIZED    = 200
	TIBEMS_INIT_FAILURE       = 201
	TIBEMS_ARG_CONFLICT       = 202
	TIBEMS_SERVICE_NOT_FOUND  = 210
	TIBEMS_INVALID_CALLBACK   = 211
	TIBEMS_INVALID_QUEUE      = 212
	TIBEMS_INVALID_EVENT      = 213
	TIBEMS_INVALID_SUBJECT    = 214
	TIBEMS_INVALID_DISPATCHER = 215

	/* JVM related errors */
	TIBEMS_JNI_EXCEPTION = 230
	TIBEMS_JNI_ERR       = 231
	TIBEMS_JNI_EDETACHED = 232
	TIBEMS_JNI_EVERSION  = 233
	TIBEMS_JNI_EEXIST    = 235
	TIBEMS_JNI_EINVAL    = 236

	TIBEMS_NO_MEMORY_FOR_OBJECT = 237

	TIBEMS_UFO_CONNECTION_FAILURE = 240

	TIBEMS_NOT_IMPLEMENTED = 255
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*Client) Connect

func (c *Client) Connect() error

func (*Client) Disconnect

func (c *Client) Disconnect() error

func (*Client) IsConnected

func (c *Client) IsConnected() bool

func (*Client) Receive

func (c *Client) Receive(destination string, destinationType string, timeout int) (string, bool, error)

func (*Client) Send

func (c *Client) Send(destination string, destinationType string, message string, deliveryDelay int, deliveryMode string, expiration int) error

func (*Client) SendReceive

func (c *Client) SendReceive(destination string, destinationType string, message string, deliveryMode string, expiration int) (string, error)

type ClientOptions

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

func NewClientOptions

func NewClientOptions() *ClientOptions

func (*ClientOptions) GetPassword

func (o *ClientOptions) GetPassword() string

func (*ClientOptions) GetServerUrl

func (o *ClientOptions) GetServerUrl() url.URL

func (*ClientOptions) GetUsername

func (o *ClientOptions) GetUsername() string

func (*ClientOptions) SetPassword

func (o *ClientOptions) SetPassword(p string) *ClientOptions

func (*ClientOptions) SetServerUrl

func (o *ClientOptions) SetServerUrl(p string) *ClientOptions

func (*ClientOptions) SetUsername

func (o *ClientOptions) SetUsername(p string) *ClientOptions

type IClient

type IClient interface {
	IsConnected() bool
	Connect() error
	Disconnect() error
	Send(destination string, destinationType string, message string, deliveryDelay int, deliveryMode string, expiration int) error
	SendReceive(destination string, destinationType string, message string, deliveryMode string, expiration int) (string, error)
	Receive(destination string, destinationType string, timeout int) (string, bool, error)
}

func NewClient

func NewClient(o *ClientOptions) IClient

Jump to

Keyboard shortcuts

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