When to send a Logout vs. when to just disconnect

Imported from previous forum

In FIXT.1.1 specs, In section “When to send a Logout vs. when to just disconnect” Page 37 of 66 states

{Start Quote}

* If during a Logon one receives a second connection attempt while a valid FIX session is already underway for that same SenderCompID, it is recommended that the session acceptor immediately terminate the second connection attempt and not send a Logout message.  Sending a Logout message runs the risk of interfering with and possibly adversely affecting the current active FIX connection.  For example, in some FIX system implementations, sending a Logout message might consume a sequence number that would cause an out of sequence condition for the established FIX session.  

{End Quote}

My system is the Sell side system i.e. Session Acceptor (though I could not confirm from the FIXProtocol specs that session initiator == Buyside & session acceptor == Sellside), also I am agnostic between a broker system or Exchange system. To make this discussion simple I am only considering FIX version & SenderCompID & TargetCompID & SenderSubID & TargetSubID & No other CompIDs are present.

While a remote buy side system is connected to my sell side system using the following parameters

FIX version = FIX.4.0
SenderCompID = Buyside
TargetCompID = Sellside
SenderSubID = Buy-A
TargetSubID = Sell-A

After the above session has started

the Sellside system receives another logon / session initiation request with the following parameters (multiple cases to be considered - not all listed below)

Case 1) FIX version is different - trying version independence

FIX version = FIX.4.2
SenderCompID = Buyside
TargetCompID = Sellside
SenderSubID = Buy-A
TargetSubID = Sell-A

Case 2) SenderSubID is different

FIX version = FIX.4.0
SenderCompID = Buyside
TargetCompID = Sellside
SenderSubID = Buy-B
TargetSubID = Sell-A

Case 3) TargetSubID is different

FIX version = FIX.4.0
SenderCompID = Buyside
TargetCompID = Sellside
SenderSubID = Buy-A
TargetSubID = Sell-B

There are many more permutations / combinations / if; else if; else possible

My question :- Should my session acceptor / sell side system reject the 2nd logon attempt ? This is based on the specs stating “… receives a second connection attempt while a valid FIX session is already underway for that same SenderCompID …”. Only SenderCompID is mentioned.

My preference :- Permit the 2nd & following logon attempts because at least one of the parameters is different.

There could be more case(s) where a session initiator system sends a logon without any SubIds as a cron job / TimerTask / ClockWatcher kicks in and later as individual users of trading systems logon, further logon / system connection attempts are made which have SubIds.

One more case I can think of is all the above parameters are same, but the order origination systems are different - the same user is using different order entry / portfolio management systems etc. the need I mentioned for

OrderSourceUserID
OrderSourceSystemID

http://www.fixtradingcommunity.org/forum/message.php?m=fdcd1b0e&base=6dde9c9d

Multiple users in the same organization could be using different instances of the same order source, hence both OrderSourceUserID & OrderSourceSystemID would be required.

The standard FIX session specification assumes a single session between two counterparties. Therefore, only SenderCompID is needed to uniquely identify the session. Your use cases go well beyond that and as such, you will not find any detailed information in the FIX spec on how to handle them. It should be subject to bilateral agreement, how many parallel sessions based on which criteria (=unique set of fields) you want to support. The more flexibility you want to support the more complexity you will have to deal with.

Hi,

I am new to this community, can you please tell me how to post my questions, right now i am facing a problem in compiling my c++ code with fix vs2010 binary. can anyone please help me with this.

Hi Bikram Kumar Sahoo, You have already posted a message, so you already know how to post a message. To answer your question of "how to post my questions", I am mentioning below some webpages which could prove very useful in how to formulate your question post so that you get the best answers :-

SSCCE :- Short, Self Contained, Correct (Compilable), Example

http://sscce.org/

 

MCVE :- How to create a Minimal, Complete, and Verifiable example

http://stackoverflow.com/help/mcve

 

How do I ask a good question?

http://stackoverflow.com/help/how-to-ask

 

Writing the perfect question

http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/

 

How To Ask Questions On Java Ranch

http://www.coderanch.com/how-to/java/HowToAskQuestionsOnJavaRanch

 

Remember, the better you formulate your question, the higher the probability of getting a good answer because the members who are answering your question are volunteering their time, effort and energy.

 

To answer your other question "facing a problem in compiling my c++ code with fix vs2010 binary". Please provide more details like :-

Q 1) What exact compiler error are you getting ? include the actual C++ source code which is giving the error.

Q 2) What is fix vs2010 binary ?

Also post your question to the "FIX Technology" discussion forum at

http://www.fixtradingcommunity.org/pg/discussions/169891/fix-technology/

Hope this helps. Wish you best of luck in your FIX projects ;-)

Regards,

FIXWorld.net@gmail.com

FIXWorld.net

Some guidelines for posting questions in the forums

 

http://www.codeproject.com/Articles/18654/Some-guidelines-for-posting-questions-in-the-forum

 

Hope these help

Netiquette: Ground Rules for Online Discussions

 

http://teaching.colostate.edu/tips/tip.cfm?tipid=128