You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by sh...@apache.org on 2023/05/12 16:09:36 UTC
svn commit: r1909775 [31/34] - in /synapse/site/3_0_2: ./ css/ dev/ fonts/ images/ images/logos/ images/profiles/ img/ js/ userguide/ userguide/samples/ userguide/samples/setup/ userguide/transports/
Added: synapse/site/3_0_2/userguide/transports/fix.html
URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/transports/fix.html?rev=1909775&view=auto
==============================================================================
--- synapse/site/3_0_2/userguide/transports/fix.html (added)
+++ synapse/site/3_0_2/userguide/transports/fix.html Fri May 12 16:09:34 2023
@@ -0,0 +1,822 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04
+ | Rendered using Apache Maven Fluido Skin 1.6
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta name="Date-Revision-yyyymmdd" content="20230504" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Apache Synapse – Apache Synapse - Financial Information eXchange Transport</title>
+ <link rel="stylesheet" href="../../css/apache-maven-fluido-1.6.min.css" />
+ <link rel="stylesheet" href="../../css/site.css" />
+ <link rel="stylesheet" href="../../css/print.css" media="print" />
+ <script type="text/javascript" src="../../js/apache-maven-fluido-1.6.min.js"></script>
+ </head>
+ <body class="topBarDisabled">
+ <div class="container-fluid">
+ <div id="banner">
+ <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2>
+</div>
+</div>
+ <div class="pull-right"></div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+ <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span>
+</li>
+ <li id="projectVersion">Version: 3.0.2</li>
+ </ul>
+ </div>
+ <div class="row-fluid">
+ <div id="leftColumn" class="span2">
+ <div class="well sidebar-nav">
+<ul class="nav nav-list">
+ <li class="nav-header">Main Menu</li>
+ <li><a href="../../index.html" title="Home"><span class="none"></span>Home</a> </li>
+ <li><a href="../../download.html" title="Download"><span class="none"></span>Download</a> </li>
+ <li><a href="../../history.html" title="History"><span class="none"></span>History</a> </li>
+ <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li>
+ <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li>
+ <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li>
+ <li class="nav-header">Documentation</li>
+ <li><a href="../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li>
+ <li><a href="../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li>
+ <li><a href="../../userguide/samples/setup/index.html" title="Samples Setup Guide"><span class="none"></span>Samples Setup Guide</a> </li>
+ <li><a href="../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li>
+ <li><a href="../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li>
+ <li><a href="../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li>
+ <li><a href="../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li>
+ <li><a href="../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li>
+ <li><a href="../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li>
+ <li><a href="../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li>
+ <li><a href="../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li>
+ <li><a href="../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li>
+ <li><a href="../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li>
+ <li><a href="../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li>
+ <li><a href="../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li>
+ <li class="nav-header">Developer Resources</li>
+ <li><a href="../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li>
+ <li><a href="../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li>
+ <li><a href="../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li>
+ <li class="nav-header">Project Details</li>
+ <li><a href="../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li>
+ <li><a href="../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li>
+ <li><a href="../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li>
+ <li><a href="../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li>
+ <li><a href="../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li>
+ <li><a href="../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li>
+ </ul>
+ <hr />
+ <div id="poweredBy">
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /></a>
+ </div>
+ </div>
+ </div>
+ <div id="bodyColumn" class="span10" >
+
+
+ <a name="Contents"></a>
+<div class="section" id="Contents">
+<h2><a name="Financial_Information_eXchange_FIX_Transport"></a>Financial Information eXchange (FIX) Transport</h2>
+
+<ul>
+
+<li>
+ <a href="#Introduction">Introduction</a>
+ </li>
+
+<li>
+ <a href="#Configuration">Transport Configuration</a>
+
+<ul>
+
+<li><a href="#Listener">FIX Transport Listener</a></li>
+
+<li><a href="#Sender">FIX Transport Sender</a></li>
+ </ul>
+ </li>
+
+<li>
+ <a href="#Mediation">Mediation FIX Messages</a>
+ </li>
+ </ul>
+ </div>
+ <a name="Introduction"></a>
+<div class="section" id="Introduction">
+<h2><a name="Introduction"></a>Introduction</h2>
+
+<p>
+ <a class="externalLink" href="http://www.fixtradingcommunity.org">FIX</a> is a public-domain messaging
+ standard developed specifically for the real-time electronic exchange of securities
+ transactions. It has a large user base, and the protocol specifications are
+ developed by the collaborative effort of banks, broker-dealers, exchanges, industry
+ utilities, institutional investors, and IT providers around the world.
+ </p>
+
+<p>
+ The FIX protocol specifications can be divided into two sections - the FIX session
+ protocol and the FIX application protocol. The session protocol is concerned with
+ the delivery of data, while the application protocol defines business-related data
+ content.
+ </p>
+
+<p>
+ Apache Synapse supports sending and receiving FIX messages via its FIX transport.
+ This transport is based on <a class="externalLink" href="http://www.quickfixj.org">Quickfix/J</a>, a
+ popular open source library used to develop applications based on the FIX protocol.
+ The FIX transport enables Synapse to operate as both a FIX acceptor and a FIX
+ initiator. If you have some prior experience working with Quickfix/J, you will realize
+ that most of the features and configuration options available in Quickfix/J are
+ applicable to the Synapse FIX transport as well.
+ </p>
+
+<p>
+ To learn more about the FIX protocol and the Synapse FIX transport, please refer
+ the following articles:
+ </p>
+
+<ul>
+
+<li>
+ <a class="externalLink" href="http://wso2.org/library/3449">Apache Synapse FIX'ed</a>
+ </li>
+
+<li>
+ <a class="externalLink" href="http://wso2.org/library/3837">Using the WSO2 ESB and FIX</a>
+ (also applies to Synapse)
+ </li>
+ </ul>
+ </div>
+ <a name="Configuration"></a>
+<div class="section" id="Configuration">
+<h2><a name="Transport_Configuration"></a>Transport Configuration</h2>
+
+<p>
+ Synapse binary distribution does not contain the Quickfix/J libraries. To use the
+ FIX transport, you must <a class="externalLink" href="http://www.quickfixj.org/downloads/">download Quickfix/J</a>
+ separately, and deploy the necessary jar files into the Synapse installation. We
+ recommend using Quickfix/J 1.4.0 with Synapse. Copy the following jar files from the
+ Quickfix/J binary distribution to the <b>SYNAPSE_HOME/lib</b> directory.
+ </p>
+
+<ul>
+
+<li>quickfixj-core.jar</li>
+
+<li>quickfixj-msg-fix40.jar</li>
+
+<li>quickfixj-msg-fix41.jar</li>
+
+<li>quickfixj-msg-fix42.jar</li>
+
+<li>quickfixj-msg-fix43.jar</li>
+
+<li>quickfixj-msg-fix44.jar</li>
+
+<li>mina-core.jar</li>
+
+<li>slf4j-api.jar</li>
+
+<li>slf4j-jdk14.jar</li>
+ </ul>
+
+<p>
+ Similar to the <a href="vfs.html">file transport</a>, the FIX transport is also mostly
+ configured at the proxy service and endpoint level. To receive FIX messages, we
+ expose a proxy service over the FIX transport, and specify the FIX connection settings
+ as proxy service parameters. To send FIX messages, we define an address endpoint
+ with a URL containing the FIX connection settings.
+ </p>
+ <a name="Listener"></a>
+<div class="section" id="Listener">
+<h3><a name="FIX_Transport_Listener"></a>FIX Transport Listener</h3>
+
+<p>
+ FIX transport listener enables Synapse to receive FIX messages from remote
+ applications. Synapse may operate as a FIX acceptor or as an initiator
+ when receiving FIX messages. To enable the FIX transport listener, uncomment
+ the following transport receiver configuration in the <b>SYNAPSE_HOME/repository/conf/axis2.xml</b>
+ file.
+ </p>
+
+<div class="xmlConf"><transportReceiver name="fix" class="org.apache.synapse.transport.fix.FIXTransportListener">
+ <parameter name="non-blocking">true</parameter>
+</transportReceiver></div>
+
+<p>
+ Now you may expose proxy services over the FIX transport by setting the "transports"
+ attribute on the proxy service element to "fix":
+ </p>
+
+<div class="xmlConf"><proxy name="MyFIXService" transports="fix">
+...
+</proxy></div>
+
+<p>
+ It's also possible to expose a proxy service on FIX transport and several other
+ transports. Simply specify the required transports as a space-separated list in
+ the "transports" attribute:
+ </p>
+
+<div class="xmlConf"><proxy name="MyFIXService" transports="fix http https">
+...
+</proxy></div>
+
+<p>
+ Exposing a proxy service over FIX is not sufficient. We must configure the proxy
+ service with FIX session and connection details. This is done by setting
+ a number of parameters on the proxy service configuration. Please refer <a href="../samples/sample257.html">sample 257</a>
+ for an example that demonstrates how this is done. Following table lists all the
+ FIX-specific parameters that can be set on a Synapse proxy service.
+ </p>
+
+<table border="0" class="table table-striped">
+
+<tr class="a">
+
+<th>Parameter Name</th>
+
+<th>Description/Example</th>
+
+<th>Required</th>
+
+<th>Default</th>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.AcceptorConfigURL</td>
+
+<td>
+ If a proxy service wishes to listen to incoming FIX messages from a remote
+ initiator, then Synapse needs to start a FIX acceptor. This parameter
+ specifies the URL to a file, which contains the FIX configuration
+ for the acceptor. The URL may point to a file in the local file system
+ or a remotely hosted file accessible over a standard protocol such as HTTP.
+ The file itself should be a standard <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Sample%20Settings%20File">.cfg file</a>,
+ typically used to
+ configure FIX acceptors in Quickfix/J. Parameter is required if the proxy
+ service should receive FIX traffic as an acceptor.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorConfigURL">file:conf/acceptor.cfg</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.InitiatorConfigURL</td>
+
+<td>
+ If a proxy service wishes to listen to incoming FIX messages from a remote
+ acceptor, then Synapse needs to start a FIX initiator. This parameter
+ specifies the URL to a file, which contains the FIX configuration
+ for the initiator. The URL may point to a file in the local file system
+ or a remotely hosted file accessible over a standard protocol such as HTTP.
+ The file itself should be a standard <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Sample%20Settings%20File">.cfg file</a>,
+ typically used to
+ configure FIX initiators in Quickfix/J. Parameter is required if the proxy
+ service should receive FIX traffic as an initiator.
+
+<div class="xmlConf"><parameter name="transport.fix.InitiatorConfigURL">file:conf/initiator.cfg</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.AcceptorMessageStore</td>
+
+<td>
+ The type of message store to be used with the acceptor. Allowed values for
+ this parameter are 'file', 'jdbc', 'memory' and 'sleepycat'. Additional
+ <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Storage">parameters</a>
+ required to configure the message store should be specified in the
+ acceptor configuration file. Ignored if the proxy service is not operating
+ in the acceptor mode.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorMessageStore">file</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>memory</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.InitiatorMessageStore</td>
+
+<td>
+ The type of message store to be used with the initiator. Allowed values for
+ this parameter are 'file', 'jdbc', 'memory' and 'sleepycat'. Additional
+ <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Storage">parameters</a>
+ required to configure the message store should be specified in the
+ initiator configuration file. Ignored if the proxy service is not operating
+ in the initiator mode.
+
+<div class="xmlConf"><parameter name="transport.fix.InitiatorMessageStore">file</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>memory</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.AcceptorLogFactory</td>
+
+<td>
+ Specifies the type of FIX log factory to be used to log messages going
+ through the acceptor. FIX messages are logged without putting them in SOAP
+ envelopes at this level. Accepted values are 'console', 'file' and 'jdbc'.
+ If not specified no logging will be done at the transport level. Additional
+ <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Logging">parameters</a>
+ required to configure each of the lof factories should be specified
+ in the acceptor configuration file. Ignored if the proxy service is not
+ operating in the acceptor mode.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorLogFactory">file</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.InitiatorLogFactory</td>
+
+<td>
+ Specifies the type of FIX log factory to be used to log messages going
+ through the initiator. FIX messages are logged without putting them in SOAP
+ envelopes at this level. Accepted values are 'console', 'file' and 'jdbc'.
+ If not specified no logging will be done at the transport level. Additional
+ <a class="externalLink" href="http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/configuration.html#Logging">parameters</a>
+ required to configure each of the lof factories should be specified
+ in the initiator configuration file. Ignored if the proxy service is not
+ operating in the initiator mode.
+
+<div class="xmlConf"><parameter name="transport.fix.InitiatorLogFactory">file</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.UseThreadedConnectors</td>
+
+<td>
+ Use multi-threaded acceptors and initiators. Setting this parameter to
+ true is equivalent to setting both transport.fix.UseThreadedAcceptor and
+ transport.fix.UseThreadedInitiator to true.
+
+<div class="xmlConf"><parameter name="transport.fix.UseThreadedConnectors">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.UseThreadedAcceptor</td>
+
+<td>
+ Run the FIX acceptor in the multi-threaded mode. That is use separate
+ threads for each acceptor session. Allowed values are true or false.
+ Has more priority than transport.fix.UseThreadedConnectors.
+
+<div class="xmlConf"><parameter name="transport.fix.UseThreadedAcceptor">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.UseThreadedInitiator</td>
+
+<td>
+ Run the FIX initiator in the multi-threaded mode. That is use separate
+ threads for each initiator session. Allowed values are true or false.
+ Has more priority than transport.fix.UseThreadedConnectors.
+
+<div class="xmlConf"><parameter name="transport.fix.UseThreadedInitiator">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.UseThreadedInitiator</td>
+
+<td>
+ Run the FIX initiator in the multi-threaded mode. That is use separate
+ threads for each initiator session. Allowed values are true or false.
+
+<div class="xmlConf"><parameter name="transport.fix.UseThreadedInitiator">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.ProcessSingleThreaded</td>
+
+<td>
+ Mediate all received FIX messages on the same thread used by Quickfix/J
+ to perform network I/O. Use this parameter to ensure that Synapse
+ mediates the FIX messages in the received order. By default Synapse
+ uses a pool of threads to process received FIX messages in parallel, which
+ may change their order. Also, using a single thread has the side effect
+ of forcing the FIX transport to control the request intake based on how
+ fast Synapse processes them. In some cases this turns out to be the
+ preferred behavior.
+
+<div class="xmlConf"><parameter name="transport.fix.ProcessSingleThreaded">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.AcceptorSingleThreaded</td>
+
+<td>
+ Mediate all FIX messages received as an acceptor on the same thread used
+ by Quickfix/J to perform network I/O. This has more priority over
+ transport.fix.ProcessSingleThreaded.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorSingleThreaded">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.InitiatorSingleThreaded</td>
+
+<td>
+ Mediate all FIX messages received as an initiator on the same thread used
+ by Quickfix/J to perform network I/O. This has more priority over
+ transport.fix.ProcessSingleThreaded.
+
+<div class="xmlConf"><parameter name="transport.fix.InitiatorSingleThreaded">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.AcceptorSessionEventHandler</td>
+
+<td>
+ Use this parameter to register a custom acceptor session event handler.
+ Can be used when it's required to inject some custom logic into the way
+ how the FIX transport handles key FIX session events. The value of this
+ parameter should be the full qualified name of a class that implements the
+ <a class="externalLink" href="https://synapse.apache.org/apidocs/org/apache/synapse/transport/fix/SessionEventHandler.html">org.apache.synapse.transport.fix.SessionEventHandler</a> interface.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorSessionEventHandler">foo.bar.MyEventHandler</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.InitiatorSessionEventHandler</td>
+
+<td>
+ Use this parameter to register a custom initiator session event handler.
+ Can be used when it's required to inject some custom logic into the way
+ how the FIX transport handles key FIX session events. The value of this
+ parameter should be the full qualified name of a class that implements the
+ <a class="externalLink" href="https://synapse.apache.org/apidocs/org/apache/synapse/transport/fix/SessionEventHandler.html">org.apache.synapse.transport.fix.SessionEventHandler</a> interface.
+
+<div class="xmlConf"><parameter name="transport.fix.AcceptorSessionEventHandler">foo.bar.MyEventHandler</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+ </table>
+ </div>
+ <a name="Sender"></a>
+<div class="section" id="Sender">
+<h3><a name="FIX_Transport_Sender"></a>FIX Transport Sender</h3>
+
+<p>
+ To enable the FIX transport sender, uncomment the following transport sender
+ configuration in the <b>SYNAPSE_HOME/repository/conf/axis2.xml</b> file.
+ </p>
+
+<div class="xmlConf"><transportSender name="fix" class="org.apache.synapse.transport.fix.FIXTransportSender">
+ <parameter name="non-blocking">true</parameter>
+</transportSender></div>
+
+<p>
+ To send a message using the FIX transport, define a Synapse endpoint with an
+ address that starts with the prefix 'fix://'. The rest of the address should
+ specify the target hostname, port and other FIX session settings. An example is
+ shown below:
+ </p>
+
+<div class="xmlConf"><endpoint>
+ <address uri="fix://localhost:19876?BeginString=FIX.4.0&SenderCompID=SYNAPSE&TargetCompID=EXEC"/>
+</endpoint></div>
+
+<p>
+ The above endpoint describes a FIX 4.0 session with the SenderCompID set to
+ 'SYNAPSE' and the TargetCompID set to 'EXEC'. If this session already exists
+ (created earlier by the proxy service), the message will be sent using that
+ session. Otherwise, the FIX transport sender will create a new initiator
+ session using the available session information and send the message using this
+ new session.
+ </p>
+
+<p>
+ Following list shows all the FIX session settings that can be configured at
+ the endpoint level, as URL query parameters.
+ </p>
+
+<ul>
+
+<li>BeginString</li>
+
+<li>SenderCompID</li>
+
+<li>SenderSubID</li>
+
+<li>SenderLocationID</li>
+
+<li>TargetCompID</li>
+
+<li>TargetSubID</li>
+
+<li>TargetLocationID</li>
+
+<li>DeliverToCompID</li>
+
+<li>DeliverToSubID</li>
+
+<li>DeliverToLocationID</li>
+
+<li>SessionQualifier</li>
+ </ul>
+
+<p>
+ The DeliverTo* fields will be actually set on the messages, as the messages are
+ forwarded to the remote FIX endpoint.
+ </p>
+
+<p>
+ There are several parameters that can be set at the proxy service level to
+ configure the behavior of the FIX transport sender. A complete list is given
+ below.
+ </p>
+
+<table border="0" class="table table-striped">
+
+<tr class="a">
+
+<th>Parameter Name</th>
+
+<th>Description/Example</th>
+
+<th>Required</th>
+
+<th>Default</th>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.BeginStringValidation</td>
+
+<td>
+ Use this parameter to enable BeginString validation for all outgoing
+ FIX messages. That is the BeginString value currently set on the message
+ (typically this is set by the original source application that sent the
+ message to Synapse), must match with the BeginString field of the target
+ FIX session. Allowed values are true or false.
+
+<div class="xmlConf"><parameter name="transport.fix.BeginStringValidation">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.DropExtraResponses</td>
+
+<td>
+ Sometimes FIX endpoints respond to requests with multiple responses. This
+ could be problematic, if Synapse received the original request via a protocol
+ like HTTP. In situations such as these, this parameter can be used to
+ force Synapse to only mediate the first response received from the remote
+ endpoint and discard the others. Allowed values are true or false.
+
+<div class="xmlConf"><parameter name="transport.fix.DropExtraResponses">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.SendAllToInSequence</td>
+
+<td>
+ In some integration scenarios it becomes necessary treat all received
+ FIX messages (both requests and responses) as a single message stream
+ and mediate them through the in-sequence of the proxy service. This parameter
+ enables doing that. Allowed values are true or false.
+
+<div class="xmlConf"><parameter name="transport.fix.SendAllToInSequence">true</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>false</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.ResponseDeliverToCompID</td>
+
+<td>
+ Configure the DeliverToCompID value that should be set on the response
+ messages sent by the proxy service. To set the DeliverToCompID on
+ requests, set the DeliverToCompID directly on the target FIX endpoint
+ as a query parameter.
+
+<div class="xmlConf"><parameter name="transport.fix.ResponseDeliverToCompID">APP</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="b">
+
+<td>transport.fix.ResponseDeliverToSubID</td>
+
+<td>
+ Configure the DeliverToSubID value that should be set on the response
+ messages sent by the proxy service. To set the DeliverToSubID on
+ requests, set the DeliverToSubID directly on the target FIX endpoint
+ as a query parameter.
+
+<div class="xmlConf"><parameter name="transport.fix.ResponseDeliverToSubID">APP</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+
+<tr class="a">
+
+<td>transport.fix.ResponseDeliverToLocationID</td>
+
+<td>
+ Configure the DeliverToLocationID value that should be set on the response
+ messages sent by the proxy service. To set the DeliverToLocationID on
+ requests, set the DeliverToLocationID directly on the target FIX endpoint
+ as a query parameter.
+
+<div class="xmlConf"><parameter name="transport.fix.ResponseDeliverToLocationID">APP</parameter></div>
+ </td>
+
+<td>No</td>
+
+<td>N/A</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <a name="Mediation"></a>
+<div class="section" id="Mediation">
+<h2><a name="Mediating_FIX_Messages"></a>Mediating FIX Messages</h2>
+
+<p>
+ The FIX transport converts all received messages into SOAP (XML). Therefore, you can
+ treat a FIX message as any other XML message at the mediation level. You may use
+ XPath to extract individual fields from the FIX messages, and use XSLT or XQuery to
+ transform them into other formats. An example FIX message and its equivalent SOAP
+ infoset as constructed by the FIX transport are shown below.
+ </p>
+
+<div class="xmlConf">8=FIX.4.0[SOH]9=105[SOH]35=D[SOH]34=2[SOH]49=BANZAI[SOH]52=20080711-06:42:26[SOH]56=SYNAPSE[SOH]11=1215758546278[SOH]21=1[SOH]38=9000000040=154=155=DEL59=010=121</div>
+
+<div class="xmlConf"><message>
+ <header>
+ <field id="8">FIX.4.0</field>
+ <field id="9">105</field>
+ <field id="34">2</field>
+ <field id="35">D</field>
+ <field id="49">BANZAI</field>
+ <field id="52">20080711-06:42:26</field>
+ <field id="56">SYNAPSE</field>
+ </header>
+ <body>
+ <field id="11">1215758546278</field>
+ <field id="21">1</field>
+ <field id="38">90000000</field>
+ <field id="40">1</field>
+ <field id="54">1</field>
+ <field id="55">DEL</field>
+ <field id="59">0</field>
+ </body>
+ <trailer>
+ <field id="10">121</field>
+ </trailer>
+</message></div>
+
+<p>
+ Notice how the FIX header, body and trailer sections are grouped under separate
+ parent XML elements. To extract the BeginString field (field no. 8), you may use
+ the following XPath expression:
+ </p>
+
+<div class="xmlConf">//header/field[@id='8']</div>
+
+<p>
+ Similarly to extract the value of field 55 from the FIX message body, you may use
+ the following XPath expression:
+ </p>
+
+<div class="xmlConf">//body/field[@id='55']</div>
+
+<p>
+ Representing FIX messages as XML enables you to use some of the most powerful
+ mediation features of Synapse with FIX message flows. This includes content-based
+ routing, message transformation and protocol switching.
+ </p>
+ </div>
+
+
+ </div>
+ </div>
+ </div>
+ <hr/>
+ <footer>
+ <div class="container-fluid">
+ <div class="row-fluid">
+ <p>Copyright ©2005–2023
+<a href="http://www.apache.org/">Apache Software Foundation</a>.
+All rights reserved.</p>
+ </div>
+ </div>
+ </footer>
+ </body>
+</html>