Fix Session and Fix Connections

Imported from previous forum

Hello I am newer to Fix, and I am confused about the Fix Session and Fix connection concept on FIX Session Protocol Version 1.1.

Fix Session is a bi-directional stream of ordered messages between two parties within a continuous sequence number series. A single FIX session can exist across multiple sequential(not concurrent) physical connections.
Fix Session is comprised of one or more FIX connections, meaning that a FIX Session spans multiple logins.

So one fix session can have multiple connections at below scenarios:

  1. A fix session is created between two physical parties, and there are multiple connections on top of this physical connection. Those multiple connections has different application versions within this fix session.

  2. A single FIX session can exist across multiple sequential(not concurrent) physical connections. For such case, since the physical connections are not concurrent, so there is no mean to maintain multiple connections that spans different physical connections. Saying, connection 1 is ip1:port1 - ip2:port2, connection 2 is ip1:port1 - ip3:port3. When connection 1 is down, connection 2 is up, do we need to keep connection 1’s info still in session, or we can just delete connection 1? Shall we keep connection 1’s sequence number for next log on to trigger resend?

Thanks for your reading and please help to answer if you know it.

[Quote]A single FIX session can exist across multiple sequential (not concurrent) physical connections.[/Quote] means that a FIX Session starts, runs successfully for some time, an abnormal termination occurs ie without a logout, it reconnects with a logon and the session continues from the previous sequence numbers.This disconnect-reconnect could happen multiple times, so the different connections are sequential NOT concurrent.

For the examples below, lets say the buy side is Hog HedgeFund (HH) and Sell side is Broke Stoke Brokerage (BSB).

Maintaining multiple FIX Sessions

Two Sessions are established with CompIDs as follows

HHEquity - BSBEquity for trading Equities
HHFI - BSBFI for Trading Fixed Income

This is done mostly because different trading desks trade different asset classes, different trading applications are used for trading different asset classes, different asset classes are traded on different exchanges with different trading hours, etc. though technically nothing in the FIX Spec prevents multiple asset classes to be traded over a single FIX Session. This seperation is a business decision.

Failover scenario in a single FIX Session

We take the case of a single Session HHEquity - BSBEquity.

Primary connection ip1:port1 - ip2:port2

Failover connection for HHEquity is ip3:port3
Failover connection for BSBEquity is ip4:port4

New FIX Session starts on ip1:port1 - ip2:port2.

HHEquity FIXEngine failes over. HHEquity FIXEngine reconnects ip3:port3 - ip2:port2 because BSBEquity is still running in its primary connection. Connection is successful and session continues.

Next BSBEquity FIXEngine failes over. HHEquity tries reconnecting ip3:port3 - ip2:port2 but connection attempt gets rejected. Meanwhile BSBEquity production support team notifies all BuySide counterparties production support teams about BSBEquity FIXEngine failover requesting them to connect to BSBEquity failover connection at ip4:port4. HHEquity FIXEngine reconnects ip3:port3 - ip4:port4. Connection is successful and Session continues.

As you see, the multiple physical connections ip1:port1 - ip2:port2 / ip3:port3 - ip2:port2 / ip3:port3 - ip4:port4 are sequential NOT concurrent.

Hello I am newer to Fix, and I am confused about the Fix Session and Fix
connection concept on FIX Session Protocol Version 1.1.

Fix Session is a bi-directional stream of ordered messages between two
parties within a continuous sequence number series. A single FIX session
can exist across multiple sequential(not concurrent) physical
connections. Fix Session is comprised of one or more FIX connections,
meaning that a FIX Session spans multiple logins.

So one fix session can have multiple connections at below scenarios:

  1. A fix session is created between two physical parties, and there are
    multiple connections on top of this physical connection. Those
    multiple connections has different application versions within this
    fix session.

  2. A single FIX session can exist across multiple sequential(not
    concurrent) physical connections. For such case, since the physical
    connections are not concurrent, so there is no mean to maintain multiple
    connections that spans different physical connections. Saying,
    connection 1 is ip1:port1 - ip2:port2, connection 2 is ip1:port1 -
    ip3:port3. When connection 1 is down, connection 2 is up, do we need to
    keep connection 1’s info still in session, or we can just delete
    connection 1? Shall we keep connection 1’s sequence number for next log
    on to trigger resend?

Thanks for your reading and please help to answer if you know it.