[QFJ-263] ConfigError when trying to setup SessionSettings from code by filling out Dictionary object Created: 04/Nov/07  Updated: 01/Feb/08  Resolved: 01/Feb/08

Status: Closed
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.3.0
Fix Version/s: None

Type: Other Priority: Major
Reporter: Ionel Roman Assignee: Unassigned
Resolution: Incomplete Votes: 0
Labels: None
Environment:

Windows XP Professional with JRE 1.6.0.03 running Eclipse 3.3.1.1 and QuickFix/J 1.3.0



 Description   

I`m new to Java but I hope my stupidness regarding this environment is not the case of this issue I`m having.

I`m trying to have a QuickFix/J application running. I`m using the same method used in C# with QuickFix.NET: I`m creating the SessionSettings and its configuration Dictionary manually from code. Anyway, the thing is that when I try to assign the Dictionary object to SessionSettings Eclipse tells me I have a ConfigError. I tried different schematics, I even tried with sample config files, still ConfigError. Here is my code:

import quickfix.ConfigError;
import quickfix.Message;
import quickfix.SessionID;

public class QFApplication extends quickfix.MessageCracker implements quickfix.Application {

public QFApplication() {
quickfix.SessionSettings settings = new quickfix.SessionSettings();

quickfix.Dictionary dictionary = new quickfix.Dictionary("session");
dictionary.setLong(quickfix.Session.SETTING_HEARTBTINT, 600);
dictionary.setLong(quickfix.Initiator.SETTING_RECONNECT_INTERVAL, 1);
dictionary.setString(quickfix.FileStoreFactory.SETTING_FILE_STORE_PATH, "c:/qfstore");
dictionary.setString(quickfix.FileLogFactory.SETTING_FILE_LOG_PATH, "c:/qfstore/log");
dictionary.setString(quickfix.Session.SETTING_START_TIME, "00:00:00");
dictionary.setString(quickfix.Session.SETTING_END_TIME, "00:00:00");
dictionary.setBool(quickfix.Session.SETTING_USE_DATA_DICTIONARY, true);
dictionary.setString(quickfix.Session.SETTING_DATA_DICTIONARY, "c:/qfstore/dictionaries/FIX42.xml");
dictionary.setString("BeginString", quickfix.FixVersions.BEGINSTRING_FIX42);
dictionary.setString(quickfix.SessionSettings.SENDERCOMPID, "sender");
dictionary.setString(quickfix.SessionSettings.TARGETCOMPID, "receiver");
dictionary.setString(quickfix.SessionFactory.SETTING_CONNECTION_TYPE, quickfix.SessionFactory.INITIATOR_CONNECTION_TYPE);
dictionary.setBool(quickfix.Session.SETTING_RESET_ON_LOGON, false);
dictionary.setBool(quickfix.Session.SETTING_RESET_ON_LOGOUT, true);
dictionary.setBool(quickfix.Session.SETTING_RESET_ON_DISCONNECT, true);
dictionary.setString(quickfix.Initiator.SETTING_SOCKET_CONNECT_HOST, "127.0.0.1");
dictionary.setLong(quickfix.Initiator.SETTING_SOCKET_CONNECT_PORT, 1025);
dictionary.setBool(quickfix.Session.SETTING_PERSIST_MESSAGES, true);

/*
so I`m setting up the dictionary all ready to be added to session, I need to create a new session with the BeginString identical with the one from Dictionary otherwise QuickFix will not let me add the dictionary to the sessionid and that "settings.set(session, dictionary);" throws exception in the IDE, I can`t get to the source of it though and when the try / catch is there it will not enter the catch part like it did not crash
*/

quickfix.SessionID session = new quickfix.SessionID(
new quickfix.field.BeginString("FIX.4.2"),
new quickfix.field.SenderCompID("sender"),
new quickfix.field.TargetCompID("receiver")
);
try

{ settings.set(session, dictionary); }

catch (ConfigError e)

{ e.printStackTrace(System.out); }

quickfix.FileLogFactory logger = new quickfix.FileLogFactory(settings);
quickfix.FileStoreFactory storer = new quickfix.FileStoreFactory(settings);
quickfix.MessageFactory messages = new quickfix.DefaultMessageFactory();
try

{ quickfix.SocketInitiator initiator = new quickfix.SocketInitiator(this, storer, settings, logger, messages); }

catch (ConfigError e)

{ // TODO Auto-generated catch block e.printStackTrace(System.out); }

}

public void onCreate(SessionID sessionID) {}

public void onLogon(SessionID sessionID) {}

public void onLogout(SessionID sessionID) {}

public void toAdmin(Message message, SessionID sessionID) {}

public void fromAdmin(Message message, SessionID sessionID)
throws quickfix.FieldNotFound, quickfix.IncorrectDataFormat, quickfix.IncorrectTagValue, quickfix.RejectLogon {}

public void toApp(Message message, SessionID sessionID)
throws quickfix.DoNotSend {}

public void fromApp(Message message, SessionID sessionID)
throws quickfix.FieldNotFound, quickfix.IncorrectDataFormat, quickfix.IncorrectTagValue, quickfix.UnsupportedMessageType

{ crack(message, sessionID); }

}

all the best and I hope I did not upset any Java gurus out there with my stupid newbie code,
thank you, my respects to you all,
Ionel Roman


Generated at Wed May 15 17:31:47 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.