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>