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 |
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 |
|
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 |
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:
|
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:
|
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:
|
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:
|
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:
|
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 |