An extension for sending and receiving connections through both TCP and UDP protocols.

Configurations


Listener Config

Config for listener sockets

Parameters

Name Type Description Default Value Required

Name

String

The name for this configuration. Connectors reference the configuration with this name.

x 

Connection

The connection types that can be provided to this configuration.

x 

Expiration Policy

Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform will expire the instance at the exact moment that it becomes eligible. The runtime will actually purge the instances when it sees it fit.

 

Connection Types

Tcp Listener

A ConnectionProvider which provides instances of TcpListenerConnection to be used by SocketListener

Parameters
Name Type Description Default Value Required

Protocol

TcpProtocol that knows how the data is going to be read and written. If not specified, the SafeProtocol will be used.

 

TLS Configuration

Tls

Its presence will imply the use of SSLServerSocket instead of plain TCP ServerSocket for accepting new SSL connections.

 

Port

Number

Connection's port number

x 

Host

String

Connection's host name

x 

Reconnection

When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn't pass after exhausting the associated reconnection strategy

 

Send Buffer Size

Number

The size of the buffer (in bytes) used when sending data, set on the socket itself.

 

Receive Buffer Size

Number

The size of the buffer (in bytes) used when receiving data, set on the socket itself.

 

Client Timeout

Number

This sets the SO_TIMEOUT value on sockets. Indicates the amount of time (in milliseconds) that the socket will wait in a blocking operation before failing.

A value of 0 (the default) means waiting indefinitely.

 

Reuse Address

Boolean

If set (the default), SO_REUSEADDRESS is set on the sockets before binding. This helps reduce "address already in use" errors when a socket is re-used.

true

 

Send TCP With No Delay

Boolean

If set, transmitted data is not collected together for greater efficiency but sent immediately.

Defaults to true even though Socket default is false because optimizing to reduce amount of network traffic over latency is hardly ever a concern today.

true

 

Linger

Number

This sets the SO_LINGER value. This is related to how long (in milliseconds) the socket will take to close so that any remaining data is transmitted correctly.

 

Keep Alive

Boolean

Enables SO_KEEPALIVE behavior on open sockets. This automatically checks socket connections that are open but unused for long periods and closes them if the connection becomes unavailable.

This is a property on the socket itself and is used by a server socket to control whether connections to the server are kept alive before they are recycled.

false

 

Fail On Unresolved Host

Boolean

Whether the socket should fail during its creation if the host set on the endpoint cannot be resolved. However, it can be set to false to allow unresolved hosts (useful when connecting through a proxy).

true

 

Server Timeout

Number

This sets the SO_TIMEOUT value when the socket is used as a server. This is the timeout that applies to the "accept" operation. A value of 0 (the ServerSocket default) causes the accept to wait indefinitely (if no connection arrives).

 

Receive Backlog

Number

The maximum queue length for incoming connections.

50

 

Udp Listener

A ConnectionProvider which provides instances of UdpListenerConnection to be used by SocketListener

Parameters
Name Type Description Default Value Required

Port

Number

Connection's port number

x 

Host

String

Connection's host name

x 

Reconnection

When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn't pass after exhausting the associated reconnection strategy

 

Send Buffer Size

Number

The size of the buffer (in bytes) used when sending data, set on the socket itself.

 

Receive Buffer Size

Number

The size of the buffer (in bytes) used when receiving data, set on the socket itself.

 

Client Timeout

Number

This sets the SO_TIMEOUT value on sockets. Indicates the amount of time (in milliseconds) that the socket will wait in a blocking operation before failing.

A value of 0 (the default) means waiting indefinitely.

 

Reuse Address

Boolean

If set (the default), SO_REUSEADDRESS is set on the sockets before binding. This helps reduce "address already in use" errors when a socket is re-used.

true

 

Broadcast

Boolean

Enable/disable SO_BROADCAST into the DatagramSocket

false

 

Associated Sources


Request Config

Config for requester sockets

Parameters

Name Type Description Default Value Required

Name

String

The name for this configuration. Connectors reference the configuration with this name.

x 

Connection

The connection types that can be provided to this configuration.

x 

Expiration Policy

Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform will expire the instance at the exact moment that it becomes eligible. The runtime will actually purge the instances when it sees it fit.

 

Connection Types

Tcp Requester

A ConnectionProvider which provides instances of TcpRequesterConnection to be used by the SocketOperations

Parameters
Name Type Description Default Value Required

Local Address Settings

This configuration parameter refers to the address where the Socket should bind to.

 

Protocol

TcpProtocol that knows how the data is going to be read and written. If not specified, the SafeProtocol will be used.

 

TLS Configuration

Tls

Its presence will imply the use of SSLSocket instead of plain TCP Socket for establishing a connection over SSL.

 

Port

Number

Connection's port number

x 

Host

String

Connection's host name

x 

Reconnection

When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn't pass after exhausting the associated reconnection strategy

 

Pooling Profile

Characteristics of the connection pool

 

Send Buffer Size

Number

The size of the buffer (in bytes) used when sending data, set on the socket itself.

 

Receive Buffer Size

Number

The size of the buffer (in bytes) used when receiving data, set on the socket itself.

 

Client Timeout

Number

This sets the SO_TIMEOUT value on sockets. Indicates the amount of time (in milliseconds) that the socket will wait in a blocking operation before failing.

A value of 0 (the default) means waiting indefinitely.

 

Reuse Address

Boolean

If set (the default), SO_REUSEADDRESS is set on the sockets before binding. This helps reduce "address already in use" errors when a socket is re-used.

true

 

Send TCP With No Delay

Boolean

If set, transmitted data is not collected together for greater efficiency but sent immediately.

Defaults to true even though Socket default is false because optimizing to reduce amount of network traffic over latency is hardly ever a concern today.

true

 

Linger

Number

This sets the SO_LINGER value. This is related to how long (in milliseconds) the socket will take to close so that any remaining data is transmitted correctly.

 

Keep Alive

Boolean

Enables SO_KEEPALIVE behavior on open sockets. This automatically checks socket connections that are open but unused for long periods and closes them if the connection becomes unavailable.

This is a property on the socket itself and is used by a server socket to control whether connections to the server are kept alive before they are recycled.

false

 

Fail On Unresolved Host

Boolean

Whether the socket should fail during its creation if the host set on the endpoint cannot be resolved. However, it can be set to false to allow unresolved hosts (useful when connecting through a proxy).

true

 

Connection Timeout

Number

Number of milliseconds to wait until an outbound connection to a remote server is successfully created. Defaults to 30 seconds.

30000

 

Udp Requester

A ConnectionProvider which provides instances of UdpRequesterConnection to be used by the SocketOperations

Parameters
Name Type Description Default Value Required

Local Address Settings

This configuration parameter refers to the address where the DatagramSocket should bind to.

 

Port

Number

Connection's port number

x 

Host

String

Connection's host name

x 

Reconnection

When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn't pass after exhausting the associated reconnection strategy

 

Pooling Profile

Characteristics of the connection pool

 

Send Buffer Size

Number

The size of the buffer (in bytes) used when sending data, set on the socket itself.

 

Receive Buffer Size

Number

The size of the buffer (in bytes) used when receiving data, set on the socket itself.

 

Client Timeout

Number

This sets the SO_TIMEOUT value on sockets. Indicates the amount of time (in milliseconds) that the socket will wait in a blocking operation before failing.

A value of 0 (the default) means waiting indefinitely.

 

Reuse Address

Boolean

If set (the default), SO_REUSEADDRESS is set on the sockets before binding. This helps reduce "address already in use" errors when a socket is re-used.

true

 

Broadcast

Boolean

Enable/disable SO_BROADCAST into the DatagramSocket

false

 

Associated Operations

Operations

Send

<sockets:send>

Sends the data using the client associated to the RequesterConnection.

Parameters

Name Type Description Default Value Required

Configuration

String

The name of the configuration to use.

x 

Content

Binary

data that will be serialized and sent through the socket.

#[payload]

 

Reconnection Strategy

A retry strategy in case of connectivity errors

 

For Configurations.

Throws

  • SOCKETS:UNKNOWN_HOST  

  • SOCKETS:RETRY_EXHAUSTED  

  • SOCKETS:LENGTH_EXCEEDED  

  • SOCKETS:CONNECTION_TIMEOUT  

  • SOCKETS:CONNECTIVITY  

Send And Receive

<sockets:send-and-receive>

Sends the data using the client associated to the RequesterConnection and then blocks until a response is received or the timeout is met, in which case the operation will return a null payload.

Parameters

Name Type Description Default Value Required

Configuration

String

The name of the configuration to use.

x 

Content

Binary

data that will be serialized and sent through the socket.

#[payload]

 

Output Mime Type

String

The mime type of the payload that this operation outputs.

 

Output Encoding

String

The encoding of the payload that this operation outputs.

 

Streaming Strategy

Configure if repeatable streams should be used and their behaviour

 

Target Variable

String

The name of a variable on which the operation's output will be placed

 

Target Value

String

An expression that will be evaluated against the operation's output and the outcome of that expression will be stored in the target variable

#[payload]

 

Reconnection Strategy

A retry strategy in case of connectivity errors

 

Output

Type

Binary

Attributes Type

For Configurations.

Throws

  • SOCKETS:UNKNOWN_HOST  

  • SOCKETS:RETRY_EXHAUSTED  

  • SOCKETS:LENGTH_EXCEEDED  

  • SOCKETS:CONNECTION_TIMEOUT  

  • SOCKETS:CONNECTIVITY  

Sources

Listener

<sockets:listener>

Listens for socket connections of the given protocol in the configured host and port.

Whenever a new connection is received, this Source will schedule a a SocketWorker that will handle the communication for that particular connection.

Parameters

Name Type Description Default Value Required

Configuration

String

The name of the configuration to use.

x 

Output Mime Type

String

The mime type of the payload that this operation outputs.

 

Output Encoding

String

The encoding of the payload that this operation outputs.

 

Redelivery Policy

Defines a policy for processing the redelivery of the same message

 

Streaming Strategy

Configure if repeatable streams should be used and their behaviour

 

Reconnection Strategy

A retry strategy in case of connectivity errors

 

Response Value

Binary

#[payload]

 

Output

Type

Binary

Attributes Type

For Configurations.

Types

Tls

Field Type Description Default Value Required

Enabled Protocols

String

A comma separated list of protocols enabled for this context.

Enabled Cipher Suites

String

A comma separated list of cipher suites enabled for this context.

Trust Store

Key Store

Trust Store

Field Type Description Default Value Required

Path

String

The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store.

Password

String

The password used to protect the trust store.

Type

String

The type of store used.

Algorithm

String

The algorithm used by the trust store.

Insecure

Boolean

If true, no certificate validations will be performed, rendering connections vulnerable to attacks. Use at your own risk.

Key Store

Field Type Description Default Value Required

Path

String

The location (which will be resolved relative to the current classpath and file system, if possible) of the key store.

Type

String

The type of store used.

Alias

String

When the key store contains many private keys, this attribute indicates the alias of the key that should be used. If not defined, the first key in the file will be used by default.

Key Password

String

The password used to protect the private key.

Password

String

The password used to protect the key store.

Algorithm

String

The algorithm used by the key store.

Reconnection

Field Type Description Default Value Required

Fails Deployment

Boolean

When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn’t pass after exhausting the associated reconnection strategy

Reconnection Strategy

The reconnection strategy to use

Reconnect

Field Type Description Default Value Required

Frequency

Number

How often (in ms) to reconnect

Count

Number

How many reconnection attempts to make

Reconnect Forever

Field Type Description Default Value Required

Frequency

Number

How often (in ms) to reconnect

Expiration Policy

Field Type Description Default Value Required

Max Idle Time

Number

A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration

Time Unit

Enumeration, one of:

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

A time unit that qualifies the maxIdleTime attribute

Redelivery Policy

Field Type Description Default Value Required

Max Redelivery Count

Number

The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message

Use Secure Hash

Boolean

Whether to use a secure hash algorithm to identify a redelivered message

Message Digest Algorithm

String

The secure hashing algorithm to use. If not set, the default is SHA-256.

Id Expression

String

Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if useSecureHash is false.

Object Store

The object store where the redelivery counter for each message is going to be stored.

Repeatable In Memory Stream

Field Type Description Default Value Required

Initial Buffer Size

Number

This is the amount of memory that will be allocated in order to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then it will be expanded by according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize.

Buffer Size Increment

Number

This is by how much will be buffer size by expanded if it exceeds its initial size. Setting a value of zero or lower will mean that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised when the buffer gets full.

Max Buffer Size

Number

This is the maximum amount of memory that will be used. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised. A value lower or equal to zero means no limit.

Buffer Unit

Enumeration, one of:

  • BYTE

  • KB

  • MB

  • GB

The unit in which all these attributes are expressed

Repeatable File Store Stream

Field Type Description Default Value Required

Max In Memory Size

Number

Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk.

Buffer Unit

Enumeration, one of:

  • BYTE

  • KB

  • MB

  • GB

The unit in which maxInMemorySize is expressed

Socket Connection Settings

Field Type Description Default Value Required

Port

Number

x

Host

String

x

Pooling Profile

Field Type Description Default Value Required

Max Active

Number

Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted.

Max Idle

Number

Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time.

Max Wait

Number

Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT.

Min Eviction Millis

Number

Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone.

Eviction Check Interval Millis

Number

Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed.

Exhausted Action

Enumeration, one of:

  • WHEN_EXHAUSTED_GROW

  • WHEN_EXHAUSTED_WAIT

  • WHEN_EXHAUSTED_FAIL

Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: "WHEN_EXHAUSTED_FAIL", which will throw a NoSuchElementException, "WHEN_EXHAUSTED_WAIT", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely.

Initialisation Policy

Enumeration, one of:

  • INITIALISE_NONE

  • INITIALISE_ONE

  • INITIALISE_ALL

Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)

Disabled

Boolean

Whether pooling should be disabled

Safe Protocol

Field Type Description Default Value Required

Max Message Leght

Number

-1

Encoding

String

Rethrow Exception On Read

Boolean

false

Direct Protocol

Field Type Description Default Value Required

Rethrow Exception On Read

Boolean

false

Length Protocol

Field Type Description Default Value Required

Max Message Length

Number

-1

Rethrow Exception On Read

Boolean

false

Streaming Protocol

Field Type Description Default Value Required

Rethrow Exception On Read

Boolean

false

Xml Message Protocol

Field Type Description Default Value Required

Rethrow Exception On Read

Boolean

false

Xml Message Eof Protocol

Field Type Description Default Value Required

Rethrow Exception On Read

Boolean

false

Custom Protocol

Field Type Description Default Value Required

Class

String

x

Eof Protocol

Field Type Description Default Value Required

Rethrow Exception On Read

Boolean

false

Custom Class Loading Length Protocol

Field Type Description Default Value Required

Class Loader

Any

Max Message Length

Number

-1

Rethrow Exception On Read

Boolean

false