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 &#x2013; 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">&lt;transportReceiver name=&quot;fix&quot; 
class=&quot;org.apache.synapse.transport.fix.FIXTransportListener&quot;&gt;
+    &lt;parameter name=&quot;non-blocking&quot;&gt;true&lt;/parameter&gt;
+&lt;/transportReceiver&gt;</div>
+                
+<p>
+                    Now you may expose proxy services over the FIX transport 
by setting the &quot;transports&quot;
+                    attribute on the proxy service element to &quot;fix&quot;:
+                </p>
+                
+<div class="xmlConf">&lt;proxy name=&quot;MyFIXService&quot; 
transports=&quot;fix&quot;&gt;
+...
+&lt;/proxy&gt;</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 &quot;transports&quot; attribute:
+                </p>
+                
+<div class="xmlConf">&lt;proxy name=&quot;MyFIXService&quot; 
transports=&quot;fix http https&quot;&gt;
+...
+&lt;/proxy&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorConfigURL&quot;&gt;file:conf/acceptor.cfg&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.InitiatorConfigURL&quot;&gt;file:conf/initiator.cfg&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorMessageStore&quot;&gt;file&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.InitiatorMessageStore&quot;&gt;file&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorLogFactory&quot;&gt;file&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.InitiatorLogFactory&quot;&gt;file&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.UseThreadedConnectors&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.UseThreadedAcceptor&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.UseThreadedInitiator&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.UseThreadedInitiator&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.ProcessSingleThreaded&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorSingleThreaded&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.InitiatorSingleThreaded&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorSessionEventHandler&quot;&gt;foo.bar.MyEventHandler&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.AcceptorSessionEventHandler&quot;&gt;foo.bar.MyEventHandler&lt;/parameter&gt;</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">&lt;transportSender name=&quot;fix&quot; 
class=&quot;org.apache.synapse.transport.fix.FIXTransportSender&quot;&gt;
+    &lt;parameter name=&quot;non-blocking&quot;&gt;true&lt;/parameter&gt;
+&lt;/transportSender&gt;</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">&lt;endpoint&gt;
+    &lt;address 
uri=&quot;fix://localhost:19876?BeginString=FIX.4.0&amp;SenderCompID=SYNAPSE&amp;TargetCompID=EXEC&quot;/&gt;
+&lt;/endpoint&gt;</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">&lt;parameter 
name=&quot;transport.fix.BeginStringValidation&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.DropExtraResponses&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.SendAllToInSequence&quot;&gt;true&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.ResponseDeliverToCompID&quot;&gt;APP&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.ResponseDeliverToSubID&quot;&gt;APP&lt;/parameter&gt;</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">&lt;parameter 
name=&quot;transport.fix.ResponseDeliverToLocationID&quot;&gt;APP&lt;/parameter&gt;</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">&lt;message&gt;
+    &lt;header&gt;
+        &lt;field id=&quot;8&quot;&gt;FIX.4.0&lt;/field&gt;
+        &lt;field id=&quot;9&quot;&gt;105&lt;/field&gt;
+        &lt;field id=&quot;34&quot;&gt;2&lt;/field&gt;
+        &lt;field id=&quot;35&quot;&gt;D&lt;/field&gt;
+        &lt;field id=&quot;49&quot;&gt;BANZAI&lt;/field&gt;
+        &lt;field id=&quot;52&quot;&gt;20080711-06:42:26&lt;/field&gt;
+        &lt;field id=&quot;56&quot;&gt;SYNAPSE&lt;/field&gt;
+    &lt;/header&gt;
+    &lt;body&gt;
+        &lt;field id=&quot;11&quot;&gt;1215758546278&lt;/field&gt;
+        &lt;field id=&quot;21&quot;&gt;1&lt;/field&gt;
+        &lt;field id=&quot;38&quot;&gt;90000000&lt;/field&gt;
+        &lt;field id=&quot;40&quot;&gt;1&lt;/field&gt;
+        &lt;field id=&quot;54&quot;&gt;1&lt;/field&gt;
+        &lt;field id=&quot;55&quot;&gt;DEL&lt;/field&gt;
+        &lt;field id=&quot;59&quot;&gt;0&lt;/field&gt;
+    &lt;/body&gt;
+    &lt;trailer&gt;
+        &lt;field id=&quot;10&quot;&gt;121&lt;/field&gt;
+    &lt;/trailer&gt;
+&lt;/message&gt;</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 &copy;2005&#x2013;2023
+<a href="http://www.apache.org/";>Apache Software Foundation</a>.
+All rights reserved.</p>
+        </div>
+        </div>
+    </footer>
+    </body>
+</html>



Reply via email to