The mllp test tool
mllp is the equivalent of BizTalk's MLLPSend.exe and MLLPReceive.exe: mllp send plays a system that sends to your trigger or gateway, and mllp receive plays a system your Send message action sends to.
Get the tool
Download it from Downloads (sign in first), next to the connector package: one self-contained executable for Windows, Linux (x86_64, arm64) or macOS (Apple silicon, Intel). It needs no .NET install and no license. Check the archive against mllp-<version>-sha256.txt, extract it, and run mllp --help. The archive also holds the two messages used below in samples/. On macOS the binary isn't notarized: run xattr -d com.apple.quarantine mllp after extracting.
Examples
# Play an EMR that sends to your trigger or gateway listener
mllp send --host <gateway-host> --port 2575 --file samples\adt-a01.hl7
mllp send --port 2575 --file samples\oru-r01-enhanced.hl7 # enhanced mode (MSH-15 = AL)
# Play a receiving system for Send message, returning ACKs
mllp receive --port 2600
# Over TLS: a throwaway certificate, a TLS receiver, and a sender pinned to it
mllp cert --out server.pfx --password pw
mllp receive --port 2601 --tls --cert server.pfx --cert-password pw
mllp send --port 2577 --tls --pin <server SHA-1 thumbprint> --file samples\adt-a01.hl7
# Load test: messages per second and latency percentiles
mllp load --port 2575 --file samples\adt-a01.hl7 --connections 10 --duration 30A test plan for a new interface
- 1Positive path.
Send representative messages for every message type and check for AA and a successful run.
- 2Rejections.
Send a message without MSH-10 and an unsupported type, and check for AR with no run (or your workflow's AR).
- 3Enhanced mode and batches,
if your partners use them: MSH-15/16 filled in, and an FHS/BHS batch.
- 4Failures.
Stop the receiver and check that Send message retries; stop the archive target and check the spool.
- 5Load.
Run
mllp loadat your peak rate on the production plan, with your real workflows.