MLLP

Communicate with external systems using the MLLP protocol.

What’s inside

Please refer to the above links for usage and configuration details.

Maven coordinates

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-mllp-starter</artifactId>
</dependency>

Spring Boot Auto-Configuration

The starter supports 35 options, which are listed below.

Name Description Default Type

camel.component.mllp.accept-timeout

Timeout (in milliseconds) while waiting for a TCP connection TCP Server Only

60000

Integer

camel.component.mllp.auto-ack

Enable/Disable the automatic generation of a MLLP Acknowledgement MLLP Consumers only

true

Boolean

camel.component.mllp.autowired-enabled

Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.

true

Boolean

camel.component.mllp.backlog

The maximum queue length for incoming connection indications (a request to connect) is set to the backlog parameter. If a connection indication arrives when the queue is full, the connection is refused.

5

Integer

camel.component.mllp.bind-retry-interval

TCP Server Only - The number of milliseconds to wait between bind attempts

5000

Integer

camel.component.mllp.bind-timeout

TCP Server Only - The number of milliseconds to retry binding to a server port

30000

Integer

camel.component.mllp.bridge-error-handler

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to receive incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. If disabled, the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions by logging them at WARN or ERROR level and ignored.

true

Boolean

camel.component.mllp.charset-name

Sets the default charset to use

String

camel.component.mllp.configuration

Sets the default configuration to use when creating MLLP endpoints. The option is a org.apache.camel.component.mllp.MllpConfiguration type.

MllpConfiguration

camel.component.mllp.connect-timeout

Timeout (in milliseconds) for establishing for a TCP connection TCP Client only

30000

Integer

camel.component.mllp.default-charset

Set the default character set to use for byte to/from String conversions.

ISO-8859-1

String

camel.component.mllp.enabled

Whether to enable auto configuration of the mllp component. This is enabled by default.

Boolean

camel.component.mllp.exchange-pattern

Sets the exchange pattern when the consumer creates an exchange.

inout

ExchangePattern

camel.component.mllp.hl7-headers

Enable/Disable the automatic generation of message headers from the HL7 Message MLLP Consumers only

true

Boolean

camel.component.mllp.idle-timeout

The approximate idle time allowed before the Client TCP Connection will be reset. A null value or a value less than or equal to zero will disable the idle timeout.

Integer

camel.component.mllp.idle-timeout-strategy

decide what action to take when idle timeout occurs. Possible values are : RESET: set SO_LINGER to 0 and reset the socket CLOSE: close the socket gracefully default is RESET.

reset

MllpIdleTimeoutStrategy

camel.component.mllp.keep-alive

Enable/disable the SO_KEEPALIVE socket option.

true

Boolean

camel.component.mllp.lazy-start-producer

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

Boolean

camel.component.mllp.lenient-bind

TCP Server Only - Allow the endpoint to start before the TCP ServerSocket is bound. In some environments, it may be desirable to allow the endpoint to start before the TCP ServerSocket is bound.

false

Boolean

camel.component.mllp.log-phi

Whether to log PHI

true

Boolean

camel.component.mllp.log-phi-max-bytes

Set the maximum number of bytes of PHI that will be logged in a log entry.

5120

Integer

camel.component.mllp.max-buffer-size

Maximum buffer size used when receiving or sending data over the wire.

1073741824

Integer

camel.component.mllp.max-concurrent-consumers

The maximum number of concurrent MLLP Consumer connections that will be allowed. If a new connection is received and the maximum is number are already established, the new connection will be reset immediately.

5

Integer

camel.component.mllp.min-buffer-size

Minimum buffer size used when receiving or sending data over the wire.

2048

Integer

camel.component.mllp.read-timeout

The SO_TIMEOUT value (in milliseconds) used after the start of an MLLP frame has been received

5000

Integer

camel.component.mllp.receive-buffer-size

Sets the SO_RCVBUF option to the specified value (in bytes)

8192

Integer

camel.component.mllp.receive-timeout

The SO_TIMEOUT value (in milliseconds) used when waiting for the start of an MLLP frame

15000

Integer

camel.component.mllp.require-end-of-data

Enable/Disable strict compliance to the MLLP standard. The MLLP standard specifies START_OF_BLOCKhl7 payloadEND_OF_BLOCKEND_OF_DATA, however, some systems do not send the final END_OF_DATA byte. This setting controls whether or not the final END_OF_DATA byte is required or optional.

true

Boolean

camel.component.mllp.reuse-address

Enable/disable the SO_REUSEADDR socket option.

false

Boolean

camel.component.mllp.send-buffer-size

Sets the SO_SNDBUF option to the specified value (in bytes)

8192

Integer

camel.component.mllp.ssl-context-parameters

Sets the SSLContextParameters for securing TCP connections. If set, the MLLP component will use SSL/TLS for securing both producer and consumer TCP connections. This allows the configuration of trust stores, key stores, protocols, and other SSL/TLS settings. If not set, the MLLP component will use plain TCP communication. The option is a org.apache.camel.support.jsse.SSLContextParameters type.

SSLContextParameters

camel.component.mllp.string-payload

Enable/Disable converting the payload to a String. If enabled, HL7 Payloads received from external systems will be validated converted to a String. If the charsetName property is set, that character set will be used for the conversion. If the charsetName property is not set, the value of MSH-18 will be used to determine th appropriate character set. If MSH-18 is not set, then the default ISO-8859-1 character set will be use.

true

Boolean

camel.component.mllp.tcp-no-delay

Enable/disable the TCP_NODELAY socket option.

true

Boolean

camel.component.mllp.use-global-ssl-context-parameters

Enable usage of global SSL context parameters.

false

Boolean

camel.component.mllp.validate-payload

Enable/Disable the validation of HL7 Payloads If enabled, HL7 Payloads received from external systems will be validated (see Hl7Util.generateInvalidPayloadExceptionMessage for details on the validation). If and invalid payload is detected, a MllpInvalidMessageException (for consumers) or a MllpInvalidAcknowledgementException will be thrown.

false

Boolean