quickfix-developers Mailing List for QuickFIX (Page 295)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Vitor C. <vc...@hi...> - 2003-01-10 12:33:30
|
Hi Rob, I also ran into this problem while evaluating QF. I believe it has to do with the fact that VB is not case sensitive. As you can see there is a C++ namespace named FIX where the Application class in defined. There is also another Managed C++ namespace named Fix where the .Net Application Wrapper is declared and which is the one you want to use. As VB is not case sensitive it tries to implement the C++ interface which is not possible. I'm not completely sure of this as I was using C# at the time but I hope it helps. Regards -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Rob Kulseth Sent: segunda-feira, 6 de Janeiro de 2003 19:46 To: qui...@li... Subject: [Quickfix-developers] VB.net I am trying to Implement the Fix.Application interface in a VB.net class file and the IDE keeps telling me that the "Fix.Application is not accessible in this context because it is 'Private'". I looked at the interface definition, and it is defiantly public. Has anyone successfully implemented the application interface in VB.net? Any clue how to do this in VB.net? Here is my class definition. Pretty simple. Public Class FixConnection : Implements Fix.Application End Class ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2003-01-09 15:19:58
|
This bears some explanation as this gets asked a lot. With the SocketAcceptor and the SocketInitiator, all processing by QuickFIX sessions occurs on one thread. This means that all sessions share the same thread of execution. This is done through a standard select statement on all open sockets. When a message comes across the wire, it is passed along to the associated session and processed. This has some disadvantages. First it means that sessions that require a lot of processing can easily make the system less responsive for other sessions. Second, since QF won't read off the socket until it is done processing a message, it is possible for the socket to queue up messages and be overloaded. These are generally ideal for small applications that have relatively few sessions and smaller traffic requirements. Actually you can handle a considerable amount of traffic with these and is suitable for most small and moderately sized firms. Its effectiveness depends on the length of your operations in your callbacks. It breaks down when you need to do long operations and fair distribution of processor time between sessions. I wouldn't use these, for example, if your callbacks wrote to a database. -- The ThreadedSocketAcceptor and ThreadedSocketInitiator address these shortcomings. With these, each session spawns two threads. One that is dedicated to nothing else but reading bytes off of the socket as fast as it can and pushing them onto a queue, and another that pulls off of the queue and parses than processes the messages within the session. This allows the sessions to process considerably more traffic since the socket is much less likely to get overloaded, and also allows all sessions to remain responsive regardless of what another session may be doing. The thing to keep in mind when using this however, is that there is no guarantee which thread of execution will be entering your callbacks. Unlike the SocketAcceptor and Initiator, which can always be expected to be called by the same thread no matter what, there is no such guaranteee here. This makes syncrhonization between shared resources very important. These are what I would use for any effort that required the creation of a responsive or large scale system. --oren |---------+-----------------------------------------------> | | "Bill Adelman" | | | <bad...@ae...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/09/2003 07:53 AM | | | Please respond to badelman | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] ThreadedSocketAcceptor vrs SocketAcceptor | >----------------------------------------------------------------------------------------------| What are the differences between ThreadedSocketAcceptor.cpp and SocketAcceptor.cpp and between ThreadedSocketInitiator.cpp and SocketInitiator.cpp thanks Billy ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Bill A. <bad...@ae...> - 2003-01-09 13:53:40
|
What are the differences between ThreadedSocketAcceptor.cpp and SocketAcceptor.cpp and between ThreadedSocketInitiator.cpp and SocketInitiator.cpp thanks Billy |
From: <OM...@th...> - 2003-01-08 21:48:54
|
FYI, To all who were interested in this thread: The latest version in the repository has two methods called setNextSenderMsgSeqNum and setNextTargetMsgSeqNum. These are available from C++, java and .NET. Please make sure you understand the symantics of sequence number processing before you use these. --oren "Rattinger, John" <John.Rattinger@s To: "'OM...@th...'" <OM...@th...>, ac.com> xw...@qt... cc: qui...@li..., 01/03/2003 12:43 qui...@li... PM Subject: RE: [Quickfix-developers] Re: How to set my own seq number? Hello Oren, All, I have been reading this thread with some interest. I am in the process of evaluating quickfix at the moment, so I'm not sure of all of it's capabilities. My initial opinions are that it looks like a great product - very clean. When dealing with seqno's, other than at the end/start of day, you never want to lower seqno's. This could cause problems including possibly duping orders (Although any good engine should catch them, that's not always the case). It is however reasonable to want to be able do something like raise your outgoing seqno. This can be helpful in a situation where you are sending a seqno that is less than expected. By bumping up your seqno to some number higher than what the other engine is expecting should resolve the problem. You can certainly bring the engine down and modify the seqno file, but it would be nicer if you can programmatically do this. Is there a way to do this? Thanks John ----------------------------------------------------- John Rattinger SAC Capital Advisors, LLC - Synapse Group joh...@sa... -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, January 03, 2003 12:44 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: RE: [Quickfix-developers] Re: How to set my own seq number? QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2003-01-08 21:27:02
|
I can't believe I missed this suggestion before. Someone actually ran into this problem today. I diagnosed quickly enough but should have made this change when you sent it 2 months ago!!! I happened to run into this because I was browsing your emails since you always have good suggestions concerning threading issues. Needless to say I'm checking this in today. --oren Gene Gorokhovsky <musor102@yahoo.c To: OM...@th..., qui...@li... om> cc: Subject: Session::send sync issue 11/05/2002 12:03 AM Locker(m_mutex) should be moved from Session::send to Session::sendRaw, otherwise there is a race condition between app-level and admin-level messages if the application spawns separate (from the primary Session queue processing) threads to send app-level messages. I happened to actually run into that because I have another thread per session that provides async sendToTarget outgoing queue. Gene __________________________________________________ Do you Yahoo!? HotJobs - Search new jobs daily now http://hotjobs.yahoo.com/ |
From: <OM...@th...> - 2003-01-08 18:52:06
|
Actually, looking at it again it looks like it is finding the file but not the symbol. Have you run 'nm' on libquickfix_jni.so to see if that method definitions exists in the library? --oren |---------+-----------------------------------------------> | | "Martin Janssen" | | | <mar...@no...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/08/2003 06:35 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] Java on Solaris | >----------------------------------------------------------------------------------------------| Hi there, Eventhough I exactly followed all the instructions I could find to try a short sample application of my own, written in Java, this is what I get when I try to run it: Exception in thread "main" java.lang.UnsatisfiedLinkError: /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: ld.so.1: /usr/bin/../java/bin/../bin/sparc/native_threads/java: fatal: relocation error: file /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: symbol _ZTVN3FIX16ScreenLogFactoryE: referenced symbol not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1414) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1338) at java.lang.Runtime.loadLibrary0(Runtime.java:744) at java.lang.System.loadLibrary(System.java:815) at MJMain.<clinit>(MJMain.java:8) Any clue on what I could be doing wrong ? Thanks in advance, Martin |
From: <OM...@th...> - 2003-01-08 18:48:44
|
Make sure that libquickfix_jni.so is in a place that java can find it. You can use -Djava.library.path to explicitly specify the directory it is in. --oren |---------+-----------------------------------------------> | | "Martin Janssen" | | | <mar...@no...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/08/2003 06:35 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] Java on Solaris | >----------------------------------------------------------------------------------------------| Hi there, Eventhough I exactly followed all the instructions I could find to try a short sample application of my own, written in Java, this is what I get when I try to run it: Exception in thread "main" java.lang.UnsatisfiedLinkError: /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: ld.so.1: /usr/bin/../java/bin/../bin/sparc/native_threads/java: fatal: relocation error: file /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: symbol _ZTVN3FIX16ScreenLogFactoryE: referenced symbol not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1414) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1338) at java.lang.Runtime.loadLibrary0(Runtime.java:744) at java.lang.System.loadLibrary(System.java:815) at MJMain.<clinit>(MJMain.java:8) Any clue on what I could be doing wrong ? Thanks in advance, Martin |
From: Martin J. <mar...@no...> - 2003-01-08 12:35:51
|
Hi there, Eventhough I exactly followed all the instructions I could find to try a = short sample application of my own, written in Java, this is what I get = when I try to run it: Exception in thread "main" java.lang.UnsatisfiedLinkError: = /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: ld.so.1: = /usr/bin/../java/bin/../bin/sparc/native_threads/java: fatal: relocation = error: file /export/home/mj/QuickFIX/mjtst/libquickfix_jni.so: symbol = _ZTVN3FIX16ScreenLogFactoryE: referenced symbol not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1414) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1338) at java.lang.Runtime.loadLibrary0(Runtime.java:744) at java.lang.System.loadLibrary(System.java:815) at MJMain.<clinit>(MJMain.java:8) Any clue on what I could be doing wrong ? Thanks in advance, Martin |
From: <OM...@th...> - 2003-01-06 20:18:16
|
Reject messages are administrative. You will see them come through on = the fromAdmin method. From there you can pull fields out like you would an= y other message. Determining the reject reason can be trickier. FIX 4.2= and up have a SessionRejectReason field that tells you why a message was rejected. Earlier versions only have a text field which may or may not= be consistent among various conterparties. In FIX 4.2, to follow your example, an message with an incorrect tag va= lue can be detected like so. SessionRejectReason sessionRejectReason; message.get(sessionRejectReason); if( sessionRejectReason =3D=3D SessionRejectReason_VALUE_IS_INCORRECT )= { RefTagID refTagID; /* the field tag that has the incorrect value */ RefSeqNum refSeqNum; /* the sequence number of the rejected message *= / RefMsgType refMsgType; /* the message type of the rejected message */= Text text; message.get(refTagID); message.get(refSeqNum); message.get(refMsgType); message.get(text); } For versions before 4.2, all you have are the Text and RefSeqNum fields= . If you want to know the reason the message was rejected, you are going = to have to do some sort of check against the Text, which is often a proprietary message. --oren |---------+-----------------------------------------------> | | s....@gm... | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/06/2003 08:18 AM | | | | |---------+-----------------------------------------------> >--------------------------------------------------------------------= --------------------------| | = | | To: qui...@li... = | | cc: = | | Subject: [Quickfix-developers] reject messages = | >--------------------------------------------------------------------= --------------------------| Hello guys, how would one parse reject messages ? i didnt find anything in the exam= ple code. for example, if the peer sends a reject message like FIX::IncorrectTagValue, how would the other side catch this message on application side ? a short and simple piece of code would be great. thanks in advance. saw -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ NEU: Mit GMX ins Internet. Rund um die Uhr f=FCr 1 ct/ Min. surfen! ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: Rob K. <ro...@ri...> - 2003-01-06 19:46:12
|
I am trying to Implement the Fix.Application interface in a VB.net class = file and the IDE keeps telling me that the "Fix.Application is not = accessible in this context because it is 'Private'". I looked at the = interface definition, and it is defiantly public. Has anyone = successfully implemented the application interface in VB.net? Any clue = how to do this in VB.net? Here is my class definition. Pretty simple. Public Class FixConnection : Implements Fix.Application End Class |
From: <s....@gm...> - 2003-01-06 14:19:05
|
Hello guys, how would one parse reject messages ? i didnt find anything in the example code. for example, if the peer sends a reject message like FIX::IncorrectTagValue, how would the other side catch this message on application side ? a short and simple piece of code would be great. thanks in advance. saw -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen! |
From: <OM...@th...> - 2003-01-03 21:47:35
|
Ah yes, you are right about fromString. I think that it should be made public. The equivalent C++ method setString is public already. What you are doing right now, although a little convenient, is ok. In fact it is very similar to how the JNI library does it. --oren gary.mui@sungard. com To: OM...@th... cc: qui...@li..., 01/03/2003 02:54 qui...@li... PM Subject: Re: [Quickfix-developers] Message creation You're right on the Constructor. I guess a constructor can't return a derived class, can it? But it probably belongs in MessageFactory like you say, but I can't find any fromString method in MessageFactory (I am using the 1.3.2 distribution). The fromString in Message is a private native method. Am I not looking in the right place? For now, is it a problem for me to do this for now as described below? Thanks, Gary Mui Prescient Markets, Inc 914-989-3118 (W) 445 Hamilton Avenue 914-422-3693 (F) White Plains, NY 10601 Please visit us at http://www.cpmarket.com OMiller@though tworks.COM To: gar...@su... cc: qui...@li..., 01/03/03 03:39 qui...@li... PM Subject: Re: [Quickfix-developers] Message creation >> It would be nice if the Message constructor (taking a String value) could >> do this automatically. In order to this, I needed to make the >> Message.initFromString(String str) method public instead of protected. >> Is this a reasonable request? Or is there an easier way to create a >> message object? I'm not sure how the message constructor can do this automatically. Once in the constructor you are already creating a message object and not one of the derived objects you need. Am I misunderstanding you? Do you mean maybe to have a create method on the MessageFactory that takes in a string? In any case you do not need to make initFromString public as there already is a public method called fromString. initFromString is designed to be called from constructors because it creates an underlying C++ class. >> Another related question is what happens if you request a message (via >> sequence number) from the MessageStore but it doesn't exists? I'm going to >> have the client basically ask for all messages since (lastMsgRecvd + 1). Depends on which method you use. If you use the signature for requesting one message, it will return false if not available. If you use the method for requesting a range, it will return a collection with whatever is available. So if you have 1-50, and ask for 30-60, you will get 30-50. |
From: <gar...@su...> - 2003-01-03 20:54:37
|
You're right on the Constructor. I guess a constructor can't return a derived class, can it? But it probably belongs in MessageFactory like you say, but I can't find any fromString method in MessageFactory (I am using the 1.3.2 distribution). The fromString in Message is a private native method. Am I not looking in the right place? For now, is it a problem for me to do this for now as described below? Thanks, Gary Mui Prescient Markets, Inc 914-989-3118 (W) 445 Hamilton Avenue 914-422-3693 (F) White Plains, NY 10601 Please visit us at http://www.cpmarket.com OMiller@though tworks.COM To: gar...@su... cc: qui...@li..., 01/03/03 03:39 qui...@li... PM Subject: Re: [Quickfix-developers] Message creation >> It would be nice if the Message constructor (taking a String value) could >> do this automatically. In order to this, I needed to make the >> Message.initFromString(String str) method public instead of protected. >> Is this a reasonable request? Or is there an easier way to create a >> message object? I'm not sure how the message constructor can do this automatically. Once in the constructor you are already creating a message object and not one of the derived objects you need. Am I misunderstanding you? Do you mean maybe to have a create method on the MessageFactory that takes in a string? In any case you do not need to make initFromString public as there already is a public method called fromString. initFromString is designed to be called from constructors because it creates an underlying C++ class. >> Another related question is what happens if you request a message (via >> sequence number) from the MessageStore but it doesn't exists? I'm going to >> have the client basically ask for all messages since (lastMsgRecvd + 1). Depends on which method you use. If you use the signature for requesting one message, it will return false if not available. If you use the method for requesting a range, it will return a collection with whatever is available. So if you have 1-50, and ask for 30-60, you will get 30-50. |
From: <OM...@th...> - 2003-01-03 20:42:00
|
>> It would be nice if the Message constructor (taking a String value) could >> do this automatically. In order to this, I needed to make the >> Message.initFromString(String str) method public instead of protected. >> Is this a reasonable request? Or is there an easier way to create a >> message object? I'm not sure how the message constructor can do this automatically. Once in the constructor you are already creating a message object and not one of the derived objects you need. Am I misunderstanding you? Do you mean maybe to have a create method on the MessageFactory that takes in a string? In any case you do not need to make initFromString public as there already is a public method called fromString. initFromString is designed to be called from constructors because it creates an underlying C++ class. >> Another related question is what happens if you request a message (via >> sequence number) from the MessageStore but it doesn't exists? I'm going to >> have the client basically ask for all messages since (lastMsgRecvd + 1). Depends on which method you use. If you use the signature for requesting one message, it will return false if not available. If you use the method for requesting a range, it will return a collection with whatever is available. So if you have 1-50, and ask for 30-60, you will get 30-50. |
From: <gar...@su...> - 2003-01-03 19:25:04
|
I am using the Quickfix library to build a FIX engine that other applications could connect to and receive / send messages for any particular session. Basically, I would like to create a Middleware solution where FIX messages are processed by my primary application and not by the Quickfix application itself. My trading application would connect to my FIX engine (via RMI) and send and receive messages via the RMI interface of the FIX engine. However, one of the issues I must address is handling the case where my primary application loses the RMI connection to my FIX engine while that same FIX engine remains connected to the 3rd party FIX engine. By the time my primary application reconnects to my FIX engine, my FIX engine may have received messages from the 3rd party FIX engine that need to get sent to and processed by my primary application. In order to deal with this, I am using a FileMessageStore in my Application implementation to store every inbound FIX message for that session. When my primary application reconnects via RMI, it always requests all messages since the last one the primary application received through the last one that the FIX engine received. The problem I'm having is when I retrieve the messages from the MessageStore, I get the text format of the FIX message. I then need to instantiate the appropriate Message instance and there doesn't seem to be any easy way to do this. While the org.quickfix.Message constructor with a String parameter does take that string value and construct a Message object, it doesn't create the appropriate Message object based on the BeginString and message type. When I try to resend that message, I get a ClassCastException because the crack method in MessageCracker only deals with explicit Message types (not the Message parent class). The only way around this has been for me to do the following: // Instantiate the Message object org.quickfix.Message msg = new org.quickfix.Message (msgStr); // Get the BeginString BeginString beginString = new BeginString(); msg.getHeader().getField (beginString); // Get the MsgType MsgType msgType = new MsgType(); msg.getHeader().getField (msgType); // Instantiate a second Message object using the DefaultMessageFactory org.quickfix.Message fMsg = msgFactory.create (beginString.getValue(), msgType.getValue()); // Then initializte that new Message with the original message string (stored from the MessageStore) fMsg.initFromString (msgStr, false); // Now crack can understand the Message object Application.getInstance().recrack (fMsg, sessId); It would be nice if the Message constructor (taking a String value) could do this automatically. In order to this, I needed to make the Message.initFromString(String str) method public instead of protected. Is this a reasonable request? Or is there an easier way to create a message object? Another related question is what happens if you request a message (via sequence number) from the MessageStore but it doesn't exists? I'm going to have the client basically ask for all messages since (lastMsgRecvd + 1). Thanks, Gary Mui Prescient Markets, Inc 914-989-3118 (W) 445 Hamilton Avenue 914-422-3693 (F) White Plains, NY 10601 Please visit us at http://www.cpmarket.com |
From: <OM...@th...> - 2003-01-03 19:13:02
|
There is, it just isn't publicly exposed. It sounds like a lot of people want this and it will be trivial to add support for this. The MessageStore interface already has the following signatures (from the repository): virtual void setNextSenderMsgSeqNum( int ) throw ( IOException& ) = 0; virtual void setNextTargetMsgSeqNum( int ) throw ( IOException& ) = 0; Exposing these through the API is all that would be needed to get this functionality. --oren "Rattinger, John" <John.Rattinger@s To: "'OM...@th...'" <OM...@th...>, ac.com> xw...@qt... cc: qui...@li..., 01/03/2003 12:43 qui...@li... PM Subject: RE: [Quickfix-developers] Re: How to set my own seq number? Hello Oren, All, I have been reading this thread with some interest. I am in the process of evaluating quickfix at the moment, so I'm not sure of all of it's capabilities. My initial opinions are that it looks like a great product - very clean. When dealing with seqno's, other than at the end/start of day, you never want to lower seqno's. This could cause problems including possibly duping orders (Although any good engine should catch them, that's not always the case). It is however reasonable to want to be able do something like raise your outgoing seqno. This can be helpful in a situation where you are sending a seqno that is less than expected. By bumping up your seqno to some number higher than what the other engine is expecting should resolve the problem. You can certainly bring the engine down and modify the seqno file, but it would be nicer if you can programmatically do this. Is there a way to do this? Thanks John ----------------------------------------------------- John Rattinger SAC Capital Advisors, LLC - Synapse Group joh...@sa... -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, January 03, 2003 12:44 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: RE: [Quickfix-developers] Re: How to set my own seq number? QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <dwi...@jp...> - 2003-01-03 18:58:19
|
Correction it is the posdupeflag (tag 43) ----- Forwarded by Dwight J Browne/JPMCHASE on 01/03/2003 01:56 PM ----- |---------+----------------------------> | | Dwight J Browne | | | | | | 01/03/2003 01:55 | | | PM | | | | |---------+----------------------------> >-------------------------------------------------------------------------------------------------------------------| | | | To: Joh...@sa... | | cc: OM...@th..., qui...@li..., | | qui...@li..., xw...@qt... | | Subject: RE: [Quickfix-developers] Re: How to set my own seq number?(Document link: Dwight J Browne) | >-------------------------------------------------------------------------------------------------------------------| You should not lower your sequence number but if you do the possresend (tag 97) should be "Y" for each resent message and the receiving FIX engine/OMS should process them accordingly. Lowering the sequence number can be helpful when dealing with a stateless system. Optimally, changing the sequence number should be performed programmatically and not through file modification. For a production environment, this can be a violation of both IT and compliance policies (depending upon your organization) Thanks Dwight Browne Exchange connectivity and GTW FIX re-engineering 277 Park 46th floor : 622 4358 |---------+-----------------------------------------------> | | Joh...@sa... | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/03/2003 01:43 PM | | | | |---------+-----------------------------------------------> >-------------------------------------------------------------------------------------------------------------------| | | | To: OM...@th..., xw...@qt... | | cc: qui...@li..., qui...@li... | | Subject: RE: [Quickfix-developers] Re: How to set my own seq number? | >-------------------------------------------------------------------------------------------------------------------| Hello Oren, All, I have been reading this thread with some interest. I am in the process of evaluating quickfix at the moment, so I'm not sure of all of it's capabilities. My initial opinions are that it looks like a great product - very clean. When dealing with seqno's, other than at the end/start of day, you never want to lower seqno's. This could cause problems including possibly duping orders (Although any good engine should catch them, that's not always the case). It is however reasonable to want to be able do something like raise your outgoing seqno. This can be helpful in a situation where you are sending a seqno that is less than expected. By bumping up your seqno to some number higher than what the other engine is expecting should resolve the problem. You can certainly bring the engine down and modify the seqno file, but it would be nicer if you can programmatically do this. Is there a way to do this? Thanks John ----------------------------------------------------- John Rattinger SAC Capital Advisors, LLC - Synapse Group joh...@sa... -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, January 03, 2003 12:44 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: RE: [Quickfix-developers] Re: How to set my own seq number? QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers This communication is for informational purposes only. It is not intended as an offer or solicitation for the purchase or sale of any financial instrument or as an official confirmation of any transaction. All market prices, data and other information are not warranted as to completeness or accuracy and are subject to change without notice. Any comments or statements made herein do not necessarily reflect those of J.P. Morgan Chase & Co., its subsidiaries and affiliates. |
From: <dwi...@jp...> - 2003-01-03 18:55:27
|
You should not lower your sequence number but if you do the possresend (tag 97) should be "Y" for each resent message and the receiving FIX engine/OMS should process them accordingly. Lowering the sequence number can be helpful when dealing with a stateless system. Optimally, changing the sequence number should be performed programmatically and not through file modification. For a production environment, this can be a violation of both IT and compliance policies (depending upon your organization) Thanks Dwight Browne Exchange connectivity and GTW FIX re-engineering 277 Park 46th floor : 622 4358 |---------+-----------------------------------------------> | | Joh...@sa... | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/03/2003 01:43 PM | | | | |---------+-----------------------------------------------> >-------------------------------------------------------------------------------------------------------------------| | | | To: OM...@th..., xw...@qt... | | cc: qui...@li..., qui...@li... | | Subject: RE: [Quickfix-developers] Re: How to set my own seq number? | >-------------------------------------------------------------------------------------------------------------------| Hello Oren, All, I have been reading this thread with some interest. I am in the process of evaluating quickfix at the moment, so I'm not sure of all of it's capabilities. My initial opinions are that it looks like a great product - very clean. When dealing with seqno's, other than at the end/start of day, you never want to lower seqno's. This could cause problems including possibly duping orders (Although any good engine should catch them, that's not always the case). It is however reasonable to want to be able do something like raise your outgoing seqno. This can be helpful in a situation where you are sending a seqno that is less than expected. By bumping up your seqno to some number higher than what the other engine is expecting should resolve the problem. You can certainly bring the engine down and modify the seqno file, but it would be nicer if you can programmatically do this. Is there a way to do this? Thanks John ----------------------------------------------------- John Rattinger SAC Capital Advisors, LLC - Synapse Group joh...@sa... -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, January 03, 2003 12:44 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: RE: [Quickfix-developers] Re: How to set my own seq number? QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers This communication is for informational purposes only. It is not intended as an offer or solicitation for the purchase or sale of any financial instrument or as an official confirmation of any transaction. All market prices, data and other information are not warranted as to completeness or accuracy and are subject to change without notice. Any comments or statements made herein do not necessarily reflect those of J.P. Morgan Chase & Co., its subsidiaries and affiliates. |
From: Rattinger, J. <Joh...@sa...> - 2003-01-03 18:43:21
|
Hello Oren, All, I have been reading this thread with some interest. I am in the process of evaluating quickfix at the moment, so I'm not sure of all of it's capabilities. My initial opinions are that it looks like a great product - very clean. When dealing with seqno's, other than at the end/start of day, you never want to lower seqno's. This could cause problems including possibly duping orders (Although any good engine should catch them, that's not always the case). It is however reasonable to want to be able do something like raise your outgoing seqno. This can be helpful in a situation where you are sending a seqno that is less than expected. By bumping up your seqno to some number higher than what the other engine is expecting should resolve the problem. You can certainly bring the engine down and modify the seqno file, but it would be nicer if you can programmatically do this. Is there a way to do this? Thanks John ----------------------------------------------------- John Rattinger SAC Capital Advisors, LLC - Synapse Group joh...@sa... -----Original Message----- From: OM...@th... [mailto:OM...@th...] Sent: Friday, January 03, 2003 12:44 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: RE: [Quickfix-developers] Re: How to set my own seq number? QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2003-01-03 17:46:36
|
QuickFIX does this for you. If you receive a seq num reset request, QuickFIX will use it to reset the numbers as specified. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/03/2003 08:50 Subject: RE: [Quickfix-developers] Re: How to set my own seq number? AM What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Alvin W. <xw...@qt...> - 2003-01-03 14:58:29
|
What if my side receives a seq num reset request? How can I do it in the code? Thanks! -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Alvin W. <xw...@qt...> - 2003-01-02 22:37:45
|
But can I do it in the code? -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of OM...@th... Sent: Thursday, January 02, 2003 5:04 PM To: xw...@qt... Cc: qui...@li...; qui...@li... Subject: [Quickfix-developers] Re: How to set my own seq number? You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2003-01-02 22:28:14
|
Matt, 1) If the documentation states the C++ quickfix library is created as a DLL by default, it is mistaken. The C++ library is static, the .NET library is a DLL. Also note that you shouldn't have to convert the dsw, as QuickFIX comes with a .sln file. This is the one you should use to build. This will create a static C++, and a .NET assembly DLL. If you want to create the C++ library it as a DLL, you will need to link in the same libraries you would if you were using the static library in an application. If you check the section in the documentation on setting up your project http://quickfix.thoughtworks.com/documentation/project.html#Windows%20(C++) , it says you need to link in ws2_32.lib. This library contains the winsock methods that QuickFIX uses for connectivity. If you link this library in, you should be able to build the C++ library as a DLL. 2) Unit tests are designed to be very narrow tests of specific functions within the library. It allows us to isolate the testing of classes and methods so that we can verify that each individual component within QuickFIX is working correctly. Acceptance tests are much broader tests that verify the system works as a whole. It is an end to end test that verifies that all the components are interacting correctly and the external interface behaves as expected. So basically, unit tests verify that the components work correctly. Acceptance tests verify that all the components integrate correctly. 3) What version of Ruby are you running? --oren |---------+-----------------------------------------------> | | "Matt Adams" <ma...@em...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 01/02/2003 09:23 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: in...@th... | | cc: qui...@li... | | Subject: [Quickfix-developers] Setup problems quickfix | >----------------------------------------------------------------------------------------------| Hello, I am currently evaluating quickfix and downloaded the newest version v1.3.2. I tried to set it up under Win2000 with the newest MS Visual .Net C++ compiler according to the instructions given in "Installing QuickFix". Some problems came up: 1.) If click on quickfix.dsw the Visual Studio asked me if the old project definition format should be converted to the new .Net format. I clicked "yes" and all projects are imported. Finally they could be compiled successfully. To my surprise I found out that the default configuration (and thus output) type is a static library (.lib) and NOT (like it is written in the documentation) a dynamic library (.dll). When I tried to change the configuration type in the properties of the quickfix_lib project in the "general" tab from .lib to .dll and recompiled it I got the following errors. Why ? Keep in mind that I didn't change anything from the original src. Btw: quickfix_jni_debug creates the desired dll but I want to have it for quickfix_debug too. Output (Ignore line wraps): Parser.obj : error LNK2019: Unresolved external symbol __imp__recv@16, referred in function "public: bool __thiscall FIX::Parser::readFromStream(void)" (?readFromStream@Parser@FIX@@QAE_NXZ) ThreadedSocketConnection.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__recv@16 Utility.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8, referred in function "void __cdecl FIX::socket_init(void)" (?socket_init@FIX@@YAXXZ) Utility.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0, referred in function "void __cdecl FIX::socket_term(void)" (?socket_term@FIX@@YAXXZ) Utility.obj : error LNK2019: unresolved external symbol __imp__listen@8, referred in function "int __cdecl FIX::socket_createAcceptor(int)" (?socket_createAcceptor@FIX@@YAHH@Z) SocketServer.obj : error LNK2019: unresolved external symbol __imp__listen@8, referred in function "public: __thiscall FIX::SocketServer::SocketServer(int,int)" (??0SocketServer@FIX@@QAE@HH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__bind@12, referred in function "int __cdecl FIX::socket_createAcceptor(int)" (?socket_createAcceptor@FIX@@YAHH@Z) SocketServer.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__bind@12 Utility.obj : error LNK2019: unresolved external symbol __imp__htons@4, referred in function "int __cdecl FIX::socket_createAcceptor(int)" (?socket_createAcceptor@FIX@@YAHH@Z) SocketConnector.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__htons@4 SocketServer.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__htons@4 Utility.obj : error LNK2019: unresolved external symbol __imp__socket@12, referred in function "int __cdecl FIX::socket_createAcceptor(int)" (?socket_createAcceptor@FIX@@YAHH@Z) SocketConnector.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__socket@12 SocketServer.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__socket@12 Utility.obj : error LNK2019: unresolved external symbol __imp__connect@12, referred in function "int __cdecl FIX::socket_createConnector(char const *,int)" (?socket_createConnector@FIX@@YAHPBDH@Z) SocketConnector.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__connect@12 Utility.obj : error LNK2019: unresolved external symbol __imp__inet_addr@4, referred in function "int __cdecl FIX::socket_createConnector(char const *,int)" (?socket_createConnector@FIX@@YAHPBDH@Z) SocketConnector.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__inet_addr@4 Utility.obj : error LNK2019: unresolved external symbol __imp__accept@12, referred in function "int __cdecl FIX::socket_accept(int)" (?socket_accept@FIX@@YAHH@Z) SocketServer.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__accept@12 Utility.obj : error LNK2019: unresolved external symbol __imp__send@16, referred in function "bool __cdecl FIX::socket_send(int,char const *,int)" (?socket_send@FIX@@YA_NHPBDH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__closesocket@4, referred in function "void __cdecl FIX::socket_close(int)" (?socket_close@FIX@@YAXH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__shutdown@8, referred in function "void __cdecl FIX::socket_close(int)" (?socket_close@FIX@@YAXH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__ioctlsocket@12, referred in function "bool __cdecl FIX::socket_fionread(int,int &)" (?socket_fionread@FIX@@YA_NHAAH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__setsockopt@20, referred in function "void __cdecl FIX::socket_setsockopt(int)" (?socket_setsockopt@FIX@@YAXH@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__inet_ntoa@4, referred in function "char const * __cdecl FIX::socket_hostname(char const *)" (?socket_hostname@FIX@@YAPBDPBD@Z) Utility.obj : error LNK2019: unresolved external symbol __imp__gethostbyname@4, referred in function "char const * __cdecl FIX::socket_hostname(char const *)" (?socket_hostname@FIX@@YAPBDPBD@Z) SocketMonitor.obj : error LNK2019: unresolved external symbol __imp__select@20, referred in function "public: void __thiscall FIX::SocketMonitor::block(class FIX::SocketMonitor::Strategy &)" (?block@SocketMonitor@FIX@@QAEXAAVStrategy@12@@Z) 2.) Ok, for the first time I decided to work with the lib instead of the dll and compiled all the other sources successfully. However I am wondering what the difference is between the unit tests and the acceptance tests. Do the unit test only perform plausibilty checks inside the lib and do not send FIX messages to server whereas the acceptance test do send them to the test server ? In other words: For acceptance test is a running (test) server necessary - for unit test not. Is this correct ? 3.) When performing the unit (and acceptance) tests I got the following output with warnings/errors for some cases. What do these errors mean ? E.g. ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective ... <E>8=FIX.4.2*9=55*35=0*34=2*49=ISLD*52=00000000-00:00:00*56=TW*112=HELLO*10=0*</E> <A>8=FIX.4.2*9=105*35=3*34=2*49=ISLD*52=20030102-14:10:43*56=TW*45=1*58=Incorrect data format for value*371=122*372=4*373=6*10=194*</A></message> Thank you Matt Adams D:\test\quickfix\test>runat.bat D:\test\quickfix\test>echo off "Usage: runat [release | debug] [port]" D:\test\quickfix\test>runat.bat debug 5023 D:\test\quickfix\test>echo off ./ReflectorClient.rb:84: warning: parenthesize argument(s) for future version <at> <test name='definitions/server/fix40/10_MsgSeqNumEqual.def' result ='success'/> <test name='definitions/server/fix40/10_MsgSeqNumGreater.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name='definitions/server/fix40/10_MsgSeqNumLess.def' result ='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix40/11a_NewSeqNoGreater.def' result ='success'/> <test name='definitions/server/fix40/11b_NewSeqNoEqual.def' result ='success'/> <test name='definitions/server/fix40/11c_NewSeqNoLess.def' result ='success'/> <test name='definitions/server/fix40/13b_UnsolicitedLogoutMessage.def' result='success'/> <test name='definitions/server/fix40/14a_BadField.def' result='success'/> <test name='definitions/server/fix40/14b_RequiredFieldMissing.def' result ='success'/> <test name='definitions/server/fix40/14c_TagNotDefinedForMsgType.def' result='success'/> <test name='definitions/server/fix40/14d_TagSpecifiedWithoutValue.def' result='success'/> <test name='definitions/server/fix40/14e_IncorrectEnumValue.def' result ='success'/> <test name='definitions/server/fix40/14f_IncorrectDataFormat.def' result ='success'/> <test name ='definitions/server/fix40/14g_HeaderBodyTrailerFieldsOutOfOrder.def' result='success'/> <test name ='definitions/server/fix40/15_HeaderAndBodyFieldsOrderedDifferently.def' result='success'/> <test name ='definitions/server/fix40/19a_PossResendMessageThatHAsAlreadyBeenSent.def' result='success'/> <test name ='definitions/server/fix40/19b_PossResendMessageThatHasNotBeenSent.def' result='success'/> <test name='definitions/server/fix40/1a_ValidLogonMsgSeqNumTooHigh.def' result='success'/> <test name ='definitions/server/fix40/1a_ValidLogonWithCorrectMsgSeqNum.def' result ='success'/> <test name='definitions/server/fix40/1b_DuplicateIdentity.def' result ='success'/> <test name='definitions/server/fix40/1c_InvalidSenderCompID.def' result ='success'/> <test name='definitions/server/fix40/1c_InvalidTargetCompID.def' result ='success'/> <test name='definitions/server/fix40/1d_InvalidLogonLengthInvalid.def' result='success'/> <test name='definitions/server/fix40/1d_InvalidLogonWrongBeginString.def' result='success'/> <test name='definitions/server/fix40/1e_NotLogonMessage.def' result ='success'/> <test name='definitions/server/fix40/20_SimultaneousResendRequest.def' result='success'/> <test name='definitions/server/fix40/2a_MsgSeqNumCorrect.def' result ='success'/> <test name='definitions/server/fix40/2b_MsgSeqNumTooHigh.def' result ='success'/> <test name='definitions/server/fix40/2c_MsgSeqNumTooLow.def' result ='success'/> <test name='definitions/server/fix40/2d_GarbledMessage.def' result ='success'/> <test name='definitions/server/fix40/2e_PossDupAlreadyReceived.def' result='success'/> <test name='definitions/server/fix40/2e_PossDupNotReceived.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name ='definitions/server/fix40/2f_PossDupOrigSendingTimeTooHigh.def' result ='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix40/2g_PossDupNoOrigSendingTime.def' result='success'/> <test name='definitions/server/fix40/2i_BeginStringValueUnexpected.def' result='success'/> <test name='definitions/server/fix40/2k_CompIDDoesNotMatchProfile.def' result='success'/> <test name='definitions/server/fix40/2m_BodyLengthValueNotCorrect.def' result='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name='definitions/server/fix40/2o_SendingTimeValueOutOfRange.def' result='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix40/2q_MsgTypeNotValid.def' result ='success'/> <test name='definitions/server/fix40/2r_UnregisteredMsgType.def' result ='success'/> <test name='definitions/server/fix40/2t_FirstThreeFieldsOutOfOrder.def' result='success'/> <test name='definitions/server/fix40/3b_InvalidChecksum.def' result ='success'/> <test name='definitions/server/fix40/3c_GarbledMessage.def' result ='success'/> <test name='definitions/server/fix40/4a_NoDataSentDuringHeartBtInt.def' result='success'/> <test name='definitions/server/fix40/4b_ReceivedTestRequest.def' result ='success'/> <test name='definitions/server/fix40/6_SendTestRequest.def' result ='success'/> <test name='definitions/server/fix40/7_ReceiveRejectMessage.def' result ='success'/> <test name='definitions/server/fix40/8_AdminAndApplicationMessages.def' result='success'/> <test name='definitions/server/fix40/8_OnlyAdminMessages.def' result ='success'/> <test name='definitions/server/fix40/8_OnlyApplicationMessages.def' result='success'/> <test name='definitions/server/fix41/10_MsgSeqNumEqual.def' result ='success'/> <test name='definitions/server/fix41/10_MsgSeqNumGreater.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name='definitions/server/fix41/10_MsgSeqNumLess.def' result ='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix41/11a_NewSeqNoGreater.def' result ='success'/> <test name='definitions/server/fix41/11b_NewSeqNoEqual.def' result ='success'/> <test name='definitions/server/fix41/11c_NewSeqNoLess.def' result ='success'/> <test name='definitions/server/fix41/13b_UnsolicitedLogoutMessage.def' result='success'/> <test name='definitions/server/fix41/14a_BadField.def' result='success'/> <test name='definitions/server/fix41/14b_RequiredFieldMissing.def' result ='success'/> <test name='definitions/server/fix41/14c_TagNotDefinedForMsgType.def' result='success'/> <test name='definitions/server/fix41/14d_TagSpecifiedWithoutValue.def' result='success'/> <test name='definitions/server/fix41/14e_IncorrectEnumValue.def' result ='success'/> <test name='definitions/server/fix41/14f_IncorrectDataFormat.def' result ='success'/> <test name ='definitions/server/fix41/14g_HeaderBodyTrailerFieldsOutOfOrder.def' result='success'/> <test name ='definitions/server/fix41/15_HeaderAndBodyFieldsOrderedDifferently.def' result='success'/> <test name ='definitions/server/fix41/19a_PossResendMessageThatHAsAlreadyBeenSent.def' result='success'/> <test name ='definitions/server/fix41/19b_PossResendMessageThatHasNotBeenSent.def' result='success'/> <test name='definitions/server/fix41/1a_ValidLogonMsgSeqNumTooHigh.def' result='success'/> <test name ='definitions/server/fix41/1a_ValidLogonWithCorrectMsgSeqNum.def' result ='success'/> <test name='definitions/server/fix41/1b_DuplicateIdentity.def' result ='success'/> <test name='definitions/server/fix41/1c_InvalidSenderCompID.def' result ='success'/> <test name='definitions/server/fix41/1c_InvalidTargetCompID.def' result ='success'/> <test name='definitions/server/fix41/1d_InvalidLogonLengthInvalid.def' result='success'/> <test name='definitions/server/fix41/1d_InvalidLogonWrongBeginString.def' result='success'/> <test name='definitions/server/fix41/1e_NotLogonMessage.def' result ='success'/> <test name='definitions/server/fix41/20_SimultaneousResendRequest.def' result='success'/> <test name='definitions/server/fix41/2a_MsgSeqNumCorrect.def' result ='success'/> <test name='definitions/server/fix41/2b_MsgSeqNumTooHigh.def' result ='success'/> <test name='definitions/server/fix41/2c_MsgSeqNumTooLow.def' result ='success'/> <test name='definitions/server/fix41/2d_GarbledMessage.def' result ='success'/> <test name='definitions/server/fix41/2e_PossDupAlreadyReceived.def' result='success'/> <test name='definitions/server/fix41/2e_PossDupNotReceived.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name ='definitions/server/fix41/2f_PossDupOrigSendingTimeTooHigh.def' result ='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix41/2g_PossDupNoOrigSendingTime.def' result='success'/> <test name='definitions/server/fix41/2i_BeginStringValueUnexpected.def' result='success'/> <test name='definitions/server/fix41/2k_CompIDDoesNotMatchProfile.def' result='success'/> <test name='definitions/server/fix41/2m_BodyLengthValueNotCorrect.def' result='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name='definitions/server/fix41/2o_SendingTimeValueOutOfRange.def' result='failure' > <message>Was disconnected, expected data</message> <trace><![CDATA[./FixParser.rb:59:in `readFixMessage']]></trace> <trace><![CDATA[./ReflectorClient.rb:114:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix41/2q_MsgTypeNotValid.def' result ='success'/> <test name='definitions/server/fix41/2r_UnregisteredMsgType.def' result ='success'/> <test name='definitions/server/fix41/2t_FirstThreeFieldsOutOfOrder.def' result='success'/> <test name='definitions/server/fix41/3b_InvalidChecksum.def' result ='success'/> <test name='definitions/server/fix41/3c_GarbledMessage.def' result ='success'/> <test name='definitions/server/fix41/4a_NoDataSentDuringHeartBtInt.def' result='success'/> <test name='definitions/server/fix41/4b_ReceivedTestRequest.def' result ='success'/> <test name='definitions/server/fix41/6_SendTestRequest.def' result ='success'/> <test name='definitions/server/fix41/7_ReceiveRejectMessage.def' result ='success'/> <test name='definitions/server/fix41/8_AdminAndApplicationMessages.def' result='success'/> <test name='definitions/server/fix41/8_OnlyAdminMessages.def' result ='success'/> <test name='definitions/server/fix41/8_OnlyApplicationMessages.def' result='success'/> <test name='definitions/server/fix42/10_MsgSeqNumEqual.def' result ='success'/> <test name='definitions/server/fix42/10_MsgSeqNumGreater.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name='definitions/server/fix42/10_MsgSeqNumLess.def' result ='failure' > <message> <E>8=FIX.4.2*9=55*35=0*34=2*49=ISLD*52=00000000-00:00:00*56=TW*112=HELLO*10=0*</E> <A>8=FIX.4.2*9=105*35=3*34=2*49=ISLD*52=20030102-14:10:43*56=TW*45=1*58=Incorrect data format for value*371=122*372=4*373=6*10=194*</A></message> <trace><![CDATA[Runner.rb:64:in `compareAction']]></trace> <trace><![CDATA[./ReflectorClient.rb:116:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix42/11a_NewSeqNoGreater.def' result ='success'/> <test name='definitions/server/fix42/11b_NewSeqNoEqual.def' result ='success'/> <test name='definitions/server/fix42/11c_NewSeqNoLess.def' result ='success'/> <test name='definitions/server/fix42/13b_UnsolicitedLogoutMessage.def' result='success'/> <test name='definitions/server/fix42/14a_BadField.def' result='success'/> <test name='definitions/server/fix42/14b_RequiredFieldMissing.def' result ='success'/> <test name='definitions/server/fix42/14c_TagNotDefinedForMsgType.def' result='success'/> <test name='definitions/server/fix42/14d_TagSpecifiedWithoutValue.def' result='success'/> <test name='definitions/server/fix42/14e_IncorrectEnumValue.def' result ='success'/> <test name='definitions/server/fix42/14f_IncorrectDataFormat.def' result ='success'/> <test name ='definitions/server/fix42/14g_HeaderBodyTrailerFieldsOutOfOrder.def' result='success'/> <test name ='definitions/server/fix42/15_HeaderAndBodyFieldsOrderedDifferently.def' result='success'/> <test name ='definitions/server/fix42/19a_PossResendMessageThatHAsAlreadyBeenSent.def' result='success'/> <test name ='definitions/server/fix42/19b_PossResendMessageThatHasNotBeenSent.def' result='success'/> <test name='definitions/server/fix42/1a_ValidLogonMsgSeqNumTooHigh.def' result='success'/> <test name ='definitions/server/fix42/1a_ValidLogonWithCorrectMsgSeqNum.def' result ='success'/> <test name='definitions/server/fix42/1b_DuplicateIdentity.def' result ='success'/> <test name='definitions/server/fix42/1c_InvalidSenderCompID.def' result ='success'/> <test name='definitions/server/fix42/1c_InvalidTargetCompID.def' result ='success'/> <test name='definitions/server/fix42/1d_InvalidLogonLengthInvalid.def' result='success'/> <test name='definitions/server/fix42/1d_InvalidLogonWrongBeginString.def' result='success'/> <test name='definitions/server/fix42/1e_NotLogonMessage.def' result ='success'/> <test name='definitions/server/fix42/20_SimultaneousResendRequest.def' result='success'/> <test name ='definitions/server/fix42/21_RepeatingGroupSpecifierWithValueOfZero.def' result='success'/> <test name='definitions/server/fix42/2a_MsgSeqNumCorrect.def' result ='success'/> <test name='definitions/server/fix42/2b_MsgSeqNumTooHigh.def' result ='success'/> <test name='definitions/server/fix42/2c_MsgSeqNumTooLow.def' result ='success'/> <test name='definitions/server/fix42/2d_GarbledMessage.def' result ='success'/> <test name='definitions/server/fix42/2e_PossDupAlreadyReceived.def' result='success'/> <test name='definitions/server/fix42/2e_PossDupNotReceived.def' result ='success'/> ./Reflector.rb:154: warning: string pattern instead of regexp; metacharacters no longer effective <test name ='definitions/server/fix42/2f_PossDupOrigSendingTimeTooHigh.def' result ='failure' > <message> <E>8=FIX.4.2*9=95*35=3*34=4*49=ISLD*52=00000000-00:00:00*56=TW*45=2*58=SendingTime accuracy problem*372=D*373=10*10=0*</E> <A>8=FIX.4.2*9=105*35=3*34=4*49=ISLD*52=20030102-14:10:47*56=TW*45=2*58=Incorrect data format for value*371=122*372=D*373=6*10=217*</A></message> <trace><![CDATA[Runner.rb:64:in `compareAction']]></trace> <trace><![CDATA[./ReflectorClient.rb:116:in `expectedAction']]></trace> <trace><![CDATA[./Reflector.rb:79:in `processFile']]></trace> <trace><![CDATA[./Reflector.rb:61:in `each_line']]></trace> <trace><![CDATA[./Reflector.rb:61:in `processFile']]></trace> <trace><![CDATA[./ReflectorClient.rb:132:in `start']]></trace> <trace><![CDATA[Runner.rb:143]]></trace> <trace><![CDATA[Runner.rb:125:in `each']]></trace> <trace><![CDATA[Runner.rb:125]]></trace> </test> <test name='definitions/server/fix42/2g_PossDupNoOrigSendingTime.def' result='success'/> <test name='definitions/server/fix42/2i_BeginStringValueUnexpected.def' resul -- _______________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup Meet Singles http://corp.mail.com/lavalife ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2003-01-02 22:06:15
|
You can do this by modifying the .seqnum file for the session. --oren "Alvin Wang" <xwang@qtechservi To: <OM...@th...> ces.com> cc: <qui...@li...>, <qui...@li...> 01/02/2003 03:57 Subject: How to set my own seq number? PM Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin |
From: Alvin W. <xw...@qt...> - 2003-01-02 22:02:40
|
Hi! In QuickFix, how to reset my own seq number? I know I can send Msg 4 to reset the seq num of the other side. Is there a way I can reset my own? Thanks! Alvin |