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
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,
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