Skip to content

Destination connectors ​

A channel has at least one destination and may have many. Each has its own filter, transformer, and connector, and processing it may or may not result in something being sent. Eleven types ship with the engine.

ConnectorSends data by
Channel WriterHanding the message to another channel on the same engine
Database WriterRunning a statement against a JDBC database
DICOM SenderOpening a DICOM association to a remote AE
Document WriterRendering a PDF or RTF
File WriterWriting to a local directory, FTP, SFTP, S3, SMB, or WebDAV
HTTP SenderMaking an HTTP request
JavaScript WriterRunning a script
JMS SenderPublishing to a JMS queue or topic
SMTP SenderSending email
TCP SenderOpening a TCP connection, MLLP included
Web Service SenderCalling a SOAP operation

Settings outside the connector's own fields ​

One block sits above the connector's own configuration, and unlike the source side every type gets it. These control the queue and what happens when a send fails.

SettingDefaultDescription
Queue MessagesNeverNever, On Failure, or Always. Decides whether a failed send, or every send, goes to this destination's queue
Retry Count Before Queue/Error0Attempts before the message queues or errors
Retry Interval (ms)10000Wait between those attempts
Rotate QueueNoMove a failing message to the back of the queue instead of blocking behind it
Queue Threads1Threads draining the queue. More than one drains it in parallel, so order is no longer guaranteed except within a Thread Assignment Variable group
Thread Assignment VariableGroups messages onto the same queue thread, so ordering is kept within a group
Queue Buffer Size0Messages held in memory before falling back to the database. Applied only when above 0; otherwise the queue keeps the server-wide buffer size from Settings
Include Filter/TransformerNoRe-run the destination's filter and transformer on each queue retry
Regenerate TemplateNoRebuild the template from the message on each retry, picking up map changes
Validate ResponseNoTreat the response transformer's status as the send result. The TCP Sender is the only type that ships with this on
Reattach AttachmentsYesRe-insert attachment content before sending

The queue is off by default on every destination; queueEnabled is false in the shared constructor and no connector overrides it.

Field values are run through Velocity replacement before the send, so a directory, a filename, a URL, a subject line, or a header can carry data from the message. The JavaScript Writer is the exception: it has no templated fields because the script reads the message itself.

Channel Writer ​

Hands the message to another channel on the same engine, where a Channel Reader picks it up.

SettingDefaultDescription
Channel IdnoneThe receiving channel
Template${message.encodedData}What the receiving channel gets as its raw message
Message MetadataMap variables to pass along. They arrive in the receiving channel's source map, not its channel map

Database Writer ​

Runs an insert, update, or delete against a database. Write it in SQL or build it in JavaScript.

SettingDefaultDescription
DriverPlease Select OneJDBC driver. Required, JavaScript mode included. See drivers and URL templates
URLJDBC connection URL
Username / PasswordDatabase credentials
Use JavaScriptNoBuild the statement in JavaScript instead of SQL
SQL / JavaScriptThe statement. The Generate buttons above it build a starting statement, or in JavaScript mode a connection block, from the settings above

JavaScript mode

As on the Database Reader, the connector opens no database connection in this mode and the script opens its own. Driver is required either way. The Administrator refuses to save while it reads Please Select One. URL is validated only when Use JavaScript is No, and the credentials are never validated. Generate: Connection, enabled only in this mode, pastes all four values, the password in plain text among them, into a connection block at the top of the script, and Generate: Insert inserts a dbConn.executeUpdate(...) line at the caret for the table you pick. Those values are string literals in the script from then on. Editing the fields does not change them, and the connector's own copies are never read at runtime.

The generated block opens a connection and closes it in a finally, with nothing in between until you add the statements yourself. What the script returns decides the response: nothing at all is a SENT with Database write success, a Response is used as-is, a Status sets only the status, and anything else becomes the response data.

Clicking the Use JavaScript radio rewrites the script field: Yes replaces its contents with the generated block, No empties it. Reopening a saved channel does not.

DICOM Sender ​

Opens an association to a remote application entity and sends the message as DICOM.

SettingDefaultDescription
Remote Host127.0.0.1Destination host
Remote Port104Destination port
Remote Application EntityAE title being called
Local Host / Local Port / Local Application EntityIdentity this connector presents
Template${DICOMMESSAGE}Content sent
User Name / Pass CodeCredentials for user identity negotiation
Request Positive User Identity ResponseNoRequire the remote AE to confirm the identity
Request Storage CommitmentNoAsk for a storage commitment after the send
PrioritymedPriority carried on the DIMSE operation
Max Async operations0Outstanding asynchronous operations. 0 is synchronous
Pack PDVNoPack command and data PDVs into one P-DATA-TF PDU
Default Presentation SyntaxNoOffer only the default presentation syntax
TCP DelayYesLeave Nagle's algorithm on

Timing

SettingDefaultDescription
TCP Connection Timeout (ms)0Connect timeout. 0 waits indefinitely
Timeout A-ASSOCIATE-AC (ms)5000Wait for the association to be accepted
DIMSE-RSP timeout (s)60Wait for a DIMSE response
DIMSE-RSP interval period (s)10Interval for the association reaper
A-RELEASE-RP timeout (s)5Wait for a release response
Socket Close Delay After A-ABORT (ms)50Delay before closing after an abort
Shutdown delay (ms)1000Delay before shutting the association down

Buffers

SettingDefaultDescription
P-DATA-TF PDUs max length sent (KB)16Maximum PDU length sent
P-DATA-TF PDUs max length received (KB)16Maximum PDU length accepted
Send Socket Buffer Size (KB)00 leaves the OS default
Receive Socket Buffer Size (KB)00 leaves the OS default
Transcoder Buffer Size (KB)1Buffer used when transcoding

TLS

SettingDefaultDescription
TLSNo TLSNo TLS, 3DES, AES, or Without
Client Authentication TLSPresent a client certificate
Accept ssl v2 TLS handshakeAccept the SSLv2-style handshake
Keystore / Keystore Password / Key PasswordIdentity presented to the remote AE
Trust Store / Trust Store PasswordCertificates this connector will trust

Document Writer ​

Renders the message as a document and writes it out.

SettingDefaultDescription
OutputFileWrite to a file, or attach the rendered document to the message
DirectoryWhere the file goes
File NameName of the file written
Document TypePDFPDF or RTF
Page Size8.5 x 11 inchesWidth, height, and unit
EncryptedNoEncrypt the PDF
PasswordPassword on the encrypted PDF
HTML TemplateThe HTML rendered into the document

File Writer ​

Writes the message to a file. Method is the first choice: it decides how the location is addressed, whether credentials apply, which connection fields are available, and even which File Exists options you get.

Method ​

MethodLocationCredentialsAlso enables
fileDirectory, a single fieldnonenothing
ftpftp:// host, then a pathAnonymous, or a username and passwordPassive Mode, Validate Connection, Timeout, Advanced Options
sftpsftp:// host, then a pathalways requiredTimeout, Advanced Options
smbsmb:// host, then a pathalways requiredTimeout, Advanced Options
webdavhttp:// or https:// host, then a pathAnonymous, or a username and passwordSecure Mode
Amazon S3S3 Bucket, then a pathAnonymous, or an AWS Access Key ID and Secret Access KeyTimeout, Advanced Options

Two methods restrict what else you can choose. Append is not available under S3 or WebDAV, so File Exists offers only Overwrite and Error, and selecting either method switches an existing Append setting to Overwrite. S3 additionally forces Create Temp File to No. Under S3 the credential fields are relabelled AWS Access Key ID and AWS Secret Access Key.

SettingDefaultDescription
Timeout (ms)10000How long to wait when connecting
Secure ModeYesWebDAV over HTTPS
Passive ModeYesFTP passive transfers
Validate ConnectionYesTest the connection before writing

Per-protocol extras sit behind Advanced Options; see file protocol advanced settings.

Writing the file ​

SettingDefaultDescription
File NameName of the file written
File ExistsAppendAppend, Overwrite, or Error when the file is already there. Append is unavailable under S3 and WebDAV
Create Temp FileNoWrite under a temporary name and rename on completion, so a reader never picks up a half-written file. Not available under S3
File TypeTextText or Binary. Binary base64 decodes the content before writing
EncodingDefaultCharacter set, Text only
TemplateContent written

HTTP Sender ​

Makes an HTTP request and treats the reply as the response.

SettingDefaultDescription
URLAddress the request goes to
Methodpostpost, get, put, delete, patch, or options
ContentRequest body
Content Typetext/plainValue of the request's Content-Type header
Data TypeTextText or Binary. Binary base64 decodes the content before sending
Charset EncodingUTF-8Character set for the body
MultipartNoSend the request as multipart
Send Timeout (ms)30000Socket timeout
HeadersRequest headers. Use Map takes them from a map variable instead of the table
Query ParametersQuery string parameters, same Use Map option
AuthenticationNoSend credentials with the request
Authentication TypeBasicBasic or Digest
Username / PasswordCredentials
Use Proxy ServerNoRoute through a proxy
Proxy Address / Proxy PortThe proxy
Response ContentPlain BodyPlain Body passes the reply through. XML Body wraps status, headers, and body in XML
Parse MultipartYesSplit a multipart reply into parts. XML Body only
Include MetadataNoInclude status line and headers. XML Body only
Binary MIME Typesapplication/.*(?<!json|xml)$|image/.*|video/.*|audio/.*Reply content types treated as binary and base64 encoded

JavaScript Writer ​

Runs a script instead of sending anywhere. The script's return value becomes the response.

SettingDescription
JavaScriptThe script to run

Unlike the JavaScript Reader, this connector has the full message scope: channelMap, connectorMap, sourceMap, responseMap, and connectorMessage are all available. See JavaScript Scripting Reference.

JMS Sender ​

Publishes to a JMS queue or topic. The connection fields are the same as the JMS Listener: Use JNDI, the connection factory, Initial Context Factory and Provider URL, Connection Properties, credentials, and the destination type and name.

SettingDefaultDescription
Template${message.encodedData}Message body published

SMTP Sender ​

Sends email.

SettingDefaultDescription
SMTP HostMail server
SMTP Port25Mail server port
Override Local BindingNoBind a specific local address and port for the outbound connection
Local Address / Local Port0.0.0.0 / 0The local binding. Enabled only when Override Local Binding is Yes
Send Timeout (ms)5000Connection timeout
EncryptionNoneNone, STARTTLS, or SSL
Use AuthenticationNoAuthenticate to the server. No greys out Username and Password
Username / PasswordSMTP credentials
ToRecipients, comma separated
FromSender address
SubjectSubject line of the email
Charset EncodingDefaultCharacter set for the body
HTML BodyNoSend the body as HTML rather than plain text
BodyBody of the email
HeadersAdditional headers. Use Map takes them from a map variable
AttachmentsFiles attached, each with a name, content, and MIME type. Use List takes them from a list variable

The connector exposes To and From only. cc, bcc, and replyTo exist on the underlying properties but have no control in the Administrator, so they cannot be set from the UI.

TCP Sender ​

Opens a TCP connection and sends the message, MLLP framing included.

SettingDefaultDescription
ModeClientClient connects out, and is the only mode with Remote Address, Remote Port, Override Local Binding, and Keep Connection Open. Server binds and waits, and is the only mode with Max Connections
Remote Address127.0.0.1Where to connect
Remote Port6660Port to connect to
Override Local BindingNoBind a specific local address and port. Client mode only
Local Address / Local Port0.0.0.0 / 0The local binding. Enabled in Server mode, or in Client mode when Override Local Binding is Yes
Send Timeout (ms)5000Connection and write timeout. Enabled only when Keep Connection Open is Yes
Buffer Size (bytes)65536Socket write buffer
Max Connections10Concurrent connections accepted. Server mode only
Keep Connection OpenNoHold the connection open between messages. Client mode only, and Yes is what enables Send Timeout and Check Remote Host
Check Remote HostNoTest the connection is still alive before sending. Enabled only when Keep Connection Open is Yes
Response Timeout (ms)5000Wait for a reply
Ignore ResponseNoA checkbox beside Response Timeout. Sends without waiting for a reply, and ticking it disables Queue on Response Timeout
Queue on Response TimeoutYesQueue the message when no reply arrives, rather than erroring
Data TypeTextText or Binary. Binary base64 decodes before sending
EncodingDefaultCharacter set, Text only
Transmission ModeMLLPMLLP or Basic. Sample Frame previews the framing bytes. See transmission modes
Template${message.encodedData}Content sent

This is the only destination that ships with Validate Response on, so by default the response transformer's status decides whether the send succeeded.

Web Service Sender ​

Calls a SOAP operation.

SettingDefaultDescription
WSDL URLWSDL to read. Get Operations populates the fields below from it
ServiceService from the WSDL
Port / EndpointPort from the WSDL
Location URIEndpoint address, when it differs from the one in the WSDL
SOAP ActionSOAPAction header
OperationOperation from the WSDL to invoke
SOAP EnvelopeThe envelope sent. Generated from the WSDL, then edited
Invocation TypeTwo-wayTwo-way waits for a response, one-way does not
Socket Timeout (ms)30000How long to wait on the socket before giving up
AuthenticationNoSend credentials with the request
Username / PasswordCredentials
HeadersRequest headers. Use Map takes them from a map variable
Use MTOMNoSend attachments as MTOM
AttachmentsAttachments, each with a name, content, and MIME type. Use List takes them from a list variable