Added: synapse/site/userguide/transports/fix.html
URL: 
http://svn.apache.org/viewvc/synapse/site/userguide/transports/fix.html?rev=1777276&view=auto
==============================================================================
--- synapse/site/userguide/transports/fix.html (added)
+++ synapse/site/userguide/transports/fix.html Wed Jan  4 10:30:06 2017
@@ -0,0 +1,1060 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2017-01-04 
+ | Rendered using Apache Maven Fluido Skin 1.4
+-->
+<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="20170104" />
+    <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.4.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.4.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: 2017-01-04
+                      <span class="divider">|</span>
+                   </li>
+                  <li id="projectVersion">Version: 3.0.0
+                      </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" >
+                                  
+            <!-- ~  Licensed to the Apache Software Foundation (ASF) under one
+  ~  or more contributor license agreements.  See the NOTICE file
+  ~  distributed with this work for additional information
+  ~  regarding copyright ownership.  The ASF licenses this file
+  ~  to you under the Apache License, Version 2.0 (the
+  ~  "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~  Unless required by applicable law or agreed to in writing,
+  ~  software distributed under the License is distributed on an
+  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~  KIND, either express or implied.  See the License for the
+  ~  specific language governing permissions and limitations
+  ~  under the License. -->
+    
+        <a name="Contents"></a>
+<div class="section" id="Contents">
+<h2>Financial Information eXchange (FIX) Transport<a 
name="Financial_Information_eXchange_FIX_Transport"></a></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>Introduction<a name="Introduction"></a></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>Transport Configuration<a name="Transport_Configuration"></a></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>FIX Transport Listener<a name="FIX_Transport_Listener"></a></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>FIX Transport Sender<a name="FIX_Transport_Sender"></a></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>Mediating FIX Messages<a name="Mediating_FIX_Messages"></a></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;2017
+                        <a href="http://www.apache.org/";>Apache Software 
Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+                </div>
+
+        
+                </div>
+    </footer>
+        </body>
+</html>


Reply via email to