5-34 Oracle Fusion Middleware Users Guide for Oracle B2B
The image shows the Exchange Protocol Parameters tab. It has the following fields: Immediate ACK, Custom Immediate ACK File, Map ACK Control ID, Map Trigger
Event, Discard HL7 ACK, Start Block Character, End Block Character, Carriage Return Character, Identify TP by delivery channel, Start Block, End Block, Header Length,
Message Length Index, and Retain Header.
See Table 5–5, Exchange Protocol Parameters
for descriptions of these parameters. Table 5–7
describes how Oracle B2B processes messages using MLLP when data is sent or received using the parameters that support generic TCP.
5.5.1.3 Dynamic Endpoints
The dynamic IP feature of MLLP provides flexibility to dynamically change the endpoints associated with a delivery channel. This is done by overriding the IP
Note: When you create a generic TCP channel using the MLLP
protocol, the parameters on the Exchange Protocol Parameters tab appear as shown in
Figure 5–21 . After creating the channel, two
subtabs appear, with MLLP-specific and generic TCP-specific parameters grouped under them.
Table 5–7 Generic TCP Solutions
Generic TCP Solution Description
Send or receive data by specifying a start block and end block
Use the Start Block and End Block parameters available on the Exchange Protocol Parameters
tab when you select MLLP-1.0 for a remote trading partner. See
Table 5–5 for descriptions of the Start Block and End Block
parameters. Example: start blockDataend block
Send or receive data by specifying a start block, end block, and data length
Use the Start Block, End Block, Message Length Index, and Header Length parameters available on the Exchange Protocol Parameters tab when you
select MLLP-1.0 for a remote trading partner. See Table 5–5
for descriptions of the parameters.
Example: start blocklengthDataend block Send or receive data by specifying the data
length Use the Message Length Index and Header Length parameters available on
the Exchange Protocol Parameters tab when you select MLLP-1.0 for a remote trading partner. See
Table 5–5 for descriptions of the Message Length Index
and Header Length parameters.
Example: lengthData Example: length+headerData
That is, 15HDRDATADATADATA, where you configure: Message Length Index=1-2
Header length=5 15 is the length start after end index of Message Length Index. HDR is the
header. Send or receive data by specifying the start block
and data size Use the Start Block, Message Length Index, and Header Length parameters
available on the Exchange Protocol Parameters tab when you select MLLP-1.0 for a remote trading partner. See
Table 5–5 for descriptions of the Start Block,
Message Length Index , and Header Length parameters.
Note: In this case, the start block is part of the header and the minimum message length index must be more than the start block size.
Example: start blocklengthData Retain the back-end application header and B2B
will not add the start block, data size, and end block.
To send data to the trading partner without adding a header and retain the back-end application header, select the Retain Header property. See
Table 5–5
for a description of Retain Header parameter.
Configuring Trading Partners 5-35
address of the delivery channel through the actionNameeventName attribute in the message enqueue header.
For example: eventName=DynamicIP:GlobalChips:IP_address:port_number
or actionName=DynamicIP:GlobalChips:IP_address:port_number
This feature is also available in B2B composites as part of the SOA Service Component Architecture SCA assembly model using the following syntax:
b2b.toDynamicIP=GlobalChips:IP_address:port_number The b2b.toDynamicIP property is set in a normalized message property that is sent
to B2B. Oracle B2B generates a unique control number for each message. For a broadcasting
case involving multiple dynamic endpoints corresponding to the same trading partner, the back-end application must provide the control number. Oracle B2B stores and uses
the dynamic endpoint details for correlation of the acknowledgment. No additional configuration is required.
5.5.1.4 Using a Transport Callout to Extract Custom Headers
To extract a custom header for outbound messages, add the CUSTOM_HEADER property in the actionName property from the back-end application. This property
will be available in the callout as a CUSTOM_HEADER parameter of CalloutMessage. You can retrieve the property in the callout for your usage.
For example: eventName= CUSTOM_HEADER:your_value
For default integration: b2b.customHeader= your_value
To extract a custom header for inbound messages, set the CUSTOM_HEADER property as the CalloutMessage parameter in the callout. The property will be available as
part of the actionName properties in the back-end application. See Example 13–1,
Setting and Getting the CUSTOM_HEADER Property for details.
5.5.2 Message Sequencing
Exchanging messages in sequence can be challenging in a multi-threaded system, because the first message produced may not necessarily arrive at the destination first.
For enterprises with this business requirement, Oracle B2B provides a sequencer and a dispatcher. The sequencer sequences a message based on arrival time. The dispatcher
dispatches the sequenced message. Message sequencing is available for outbound and inbound directions.
Protocols supported for message sequencing include MLLP Exchange TCP transport and Generic Exchange FILE, FTP, SFTP, JMS, AQ, and HTTP transports.
5-36 Oracle Fusion Middleware Users Guide for Oracle B2B
5.5.2.1 Outbound Message Sequencing
Outbound Message Sequencing for AQ and JMS Delivery Channels To enable sequencing for an outbound message, for AQ and JMS delivery channels,
enqueue the message by setting the ACTION_NAME property to TARGET:sequence_target_name as shown in
Example 5–1 .
However, when using the ENQUEUE utility that is provided with the b2b.jar, set eventName not ACTION_NAME to TARGET:sequence_target_name; for example,
eventName=TARGET:sequence1.
To enable sequencing when using the default channel, use b2b.sequencingTarget = sequence_target_name.
When using a self written AQ Enqueue utility, the AQ Header to be used is ACTION_NAME. eventName is to be used when using the B2B provided Enqueue
utility in b2b.jar.
Example 5–1 Outbound Message Sequencing for AQ and JMS Delivery Channels
ACTION_NAME = TARGET:sequence_target_name
Outbound Message Sequencing for FTP and SFTP Delivery Channels To enable FTPSFTP sequencing selecting only the sequencing flag in the delivery
channel configuration does not work. You must also configure an FTP listening channel with following parameters:
Sequencing TimeStamp Format
TimeStamp Offset TimeStamp Source
For example the following are sample values for the parameters: Sequencing: true
TimeStamp Format: 43,55,MMM d yyyy
Notes: Even though it works for all documents, message sequencing
is certified only for EDI, HL7, and Custom document protocols. Sequencing is not supported for transient mode MLLP connections.
EDI batching is not supported for message sequencing. If sequencing is enabled on messages as part of BATCH, it can lead to errors and not
all messages are processed. Do not use EDI batching on the messages that are sequenced.
FunctionalAckFA and AcknowledgementACKMDN are not sequenced.
Sequencing does not support the Delivery Channel retry feature. Use the Auto Stack Handler in the Sequencing feature to retry delivery of
failed document delivery attempts rather than the retry setting in delivery channel. When documents are sequenced, the delivery
channel used for the documents should avoid the use of retry settings.
Configuring Trading Partners 5-37
TimeStamp Offset: +0000 TimeStamp Source: MMM dd yyyy
Note that, if sequencing is enabled, the order in which files are copied to the folder is the order in which they are processed. If a large payload is copied, the partner must
wait until the large payload copy is complete. Then the sender may send the next file, as sequencing is based on the last-modified-timestamp on the file.
Outbound Message Sequencing for HTTP Delivery Channels Post the message in b2bsequenceReceiver, and add an additional HTTP header