To configure a Secure Messaging delivery channel, navigate to Company Admin -> Campaigns -> Delivery Channels
in the Connect UI. Select the New Delivery Channel command in the Commands menu.
You will see the
Enter Delivery Channel Information screen. The top part of this screen
has three elements:
- Name - the name of the delivery channel. This can be anything.
- Type - a dropdown that determines the type of the delivery channel. Set this to Secure Message.
The configuration info in the bottom part of the screen will change to match the delivery channel type.
- Address Attribute - each delivery channel has an associated customer attribute that contains the endpoint address.
In this example we use the Alternate Customer ID attribute.
Configuring a Database Secure Endpoint
When the secure endpoint is a database table or stored procedure, you must provide two kinds of information:
- The information required to connect to the database, and
- The database query used to store the message in the table, or to pass the message to the stored procedure.
The database contact information consists of the database type, the JDBC driver class, the JDBC URL to the database,
database username and password, and the connection pool size. Each outside node will have a separate connection pool so the
total number of connections will be the connection pool size times the number of send nodes.
When the endpoint is a database query, the query will be parsed by the
JDBC prepareStatement method. The query will most likely
be a SQL INSERT statement such as the following:
INSERT INTO MY_MESSAGE_TABLE (CUSTOMER_KEY, MESSAGE) VALUES (?,?)
Note that the '?' characters represent parameters to the query that will be supplied at runtime.
When the endpoint is a stored procedure, the query will be parsed by the
JDBC prepareCall method. The query will most likely
be a statement such as the following:
{ call MY_STORED_PROC (?,?) }
Once you have set the query, you must configure values for each query parameter. Click the
Add Parameter
button to create the right number of parameters. For each parameter, set the type and the value. Each value expression
may include the following variables which are set at runtime:
- customer_id
- instance_id
- event_queue_id
- email -- the string representation of the message
- message_definition - an internal object describing the message
- message_object - an internal object representing the message; the string representation is generated from this
- current_time_millis - a Java Long object set to the current time in milliseconds since January 1, 1970.
The expressions are evaluated using
Apache JEXL
and may use the full JEXL syntax.
Configuring a Message Queue Secure Endpoint
When the secure endpoint is a message queue, you must provide the information needed
to connect to the queue using the Java Messaging Service (JMS) API. This information
consists of the following:
- JMS.Provider - Name of Java Naming Provider. Example: Websphere
- JMS.Provider.URL - URL of Java Naming Provider. Example: ldap://somehost:389
- JMS.InitialContextFactory - Class name of Initial Context Factory
- JMS.FactoryName - Name used to lookup Queue Connection Factory with Java Naming Provider
- JMS.DestinationQueue.Name - Name used to lookup destination queue with Java Naming Provider
- JMS.DestinationQueue.User - User name used to connect to destination queue
- JMS.DestinationQueue.Password - Password used to connect to destination queue

When delivering a message to queue, the secure messaging channel will create a MapMessage object (javax.jms.MapMessage)
with the following name/value pairs:
- customerID - set to destination customer id (long value, such as 1234567890)
- context - set to message context string (customer_id.instance_id.event_queue_id or "1234567890.54321.0")
- data - set to outgoing message in string form
The MapMessage object will be sent to the destination queue.