You are on the right track with String username = sessionSettings.getString(sessionId, "Username");, but the method call in QuickFIX/n is slightly different. The call is more like sessionSettings.Get(sessionId).GetString("Username");. See this example: var configuration = new System.Text.StringBuilder().AppendLine("[ DEFAULT ]") .AppendLine("ConnectionType=initiator") .AppendLine("[SESSION]") .AppendLine("BeginString=FIX.4.4") .AppendLine("SenderCompID=Sender") .AppendLine("TargetCompID=Target") .AppendLine("Username=Gandalf")...
QuickfixJ comes with an example called OrderMatcher. It is a simple order matching engine that accepts orders and generated ER when matches occurs.
See the QuickFIX/J User FAQ, topic "I altered my data dictionary. Should I regenerate/rebuild QF/J?". Specifically following excerpts: If your DD changes aren't very extensive, maybe just a few field changes, then you don't really need to. If you added a whole new custom message type, then you probably should....
Importing the second example as-is instead of trying to implement into my own Eclipse project worked. The problem appears to have been caused by using an incorrect import from the quickfix-all jar causing the wrong method to be called during start up.
When the begin string is FIXT.1.1 quickfix will treat the message as FIX50 with the DefaultMessageFactory. So it will automatically generate a FIX.5.0 message. The resolution is to write your own custom message factory to generate a SP2 message when the transport is FIXT.1.1. Here's how I did it. Write...
One way to do this is to customize the Data Dictionary FIX4.4.xml and replace the fields in it that can sometimes be in FIX 5.0 format. Eg by copying them from FIX5.0.xml and placing them in the proper messages in FIX4.4.xml. From the QuickFIX/J user manual: The simplest customization is...
quickfixj does not send logout message when we explicitly disconnect from the session.
Don't use Notepad. I don't mean that to be a flippant answer, but as a fellow developer I'm sure you know that there are dozens of other text editors out there, and all of them are better than Notepad. This won't be the last time you open a file that...
java,session,quickfix,fix,quickfixj
It is normal behavior that the sessions are not ordered as the SessionID->Sessions are stored in a HashMap and converted to a List on the getSessions() method. from SessionConnector (superclass of SocketInitiator) public ArrayList<SessionID> getSessions() { return new ArrayList<SessionID>(sessions.keySet()); } (As a reminder, a HashMap doesn't guarantee order of the...
Not all counterparties run acceptors but all of the ones that I have ever worked with (50 or so) are so you will (probably) not need to run an acceptor. Usually each client has its own CompID pair, given by the counterparty, and it is those details that (uniquely)...
It's a header field used for transport-layer control, so yes, the engine will set it accordingly. The behavior you're asking for is pretty non-standard. If you want to catch it and override it, your only options are to use toApp or hack the engine's source....