[QFJ-778] Multi broker quickfix initiator side Created: 30/Apr/14  Updated: 05/May/14  Resolved: 30/Apr/14

Status: Closed
Project: QuickFIX/J
Component/s: Build, Engine
Affects Version/s: 1.5.3
Fix Version/s: None

Type: Other Priority: Major
Reporter: Cristian Manuel Vertiz Fernandez Assignee: Unassigned
Resolution: Not a bug Votes: 0
Labels: QuickfixJ, session


 Description   

I need to implement a multi broker (x, y ,z) quickfix initiator side session with different dictionary specification.
The quickfix engine is built respect to xml fix dictionary and some fields are required for "x" and "y" broker an not for "z" broker, and so on.
Suggest me, what I can do?



 Comments   
Comment by Christoph John [ 30/Apr/14 ]

I think this is more a question for the mailing list: https://lists.sourceforge.net/lists/listinfo/quickfixj-users

But basically, you just need to open different sessions. Each session can have a data dictionary of its own. http://www.quickfixj.org/quickfixj/usermanual/1.5.3/usage/configuration.html#Sample%20Settings%20File

Comment by Cristian Manuel Vertiz Fernandez [ 30/Apr/14 ]

Thank you, but you mean something like:
[session]
BeginString=FIX.4.4
SocketConnectPort=10201
DataDictionary=..\config\FIX44.xml

But what about quickfixj classes definition into .jar file?, how do them behave when y create new instance.

But the problem is here :

FOR BROKER "X"
<?xml version="1.0" encoding="utf-8"?>
<fix major="4" type="FIX" servicepack="0" minor="4">
<header>
<field name="BeginString" required="Y" />
<field name="BodyLength" required="Y" />
...
<field name="OnBehalfOfCompID" required="N" />
<field name="DeliverToCompID" required="N" />

//Create Instance
quickfix.fix44.MarketDataRequest mdRequest =
new quickfix.fix44.MarketDataRequest(.... /Not required OnBehalfOfCompID and DeliverToCompID/);

FOR BROKER "Z"
<?xml version="1.0" encoding="utf-8"?>
<fix major="4" type="FIX" servicepack="0" minor="4">
<header>
<field name="BeginString" required="Y" />
<field name="BodyLength" required="Y" />
...
<field name="OnBehalfOfCompID" required="Y" />
<field name="DeliverToCompID" required="Y" />

//Create Instance
quickfix.fix44.MarketDataRequest mdRequest =
new quickfix.fix44.MarketDataRequest(.... /Required OnBehalfOfCompID and DeliverToCompID/);

Comment by Christoph John [ 05/May/14 ]

If you want to validate the message against a specific data dictionary then you should call dataDictionary.validate(Message)

Generated at Mon May 06 20:51:53 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.