quickfix-developers Mailing List for QuickFIX (Page 298)
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: <gar...@su...> - 2002-11-27 15:19:31
|
Is there anyway to confirm if validation is working? I would like to have validation turned on but I continue to receive messages that I think should fail validation. E.g. I am using FIX42.xml as the DataDictionary but I am able to send and receive ExecutionReport messages that do not have an OrderID set. Is there a way to determine if everything is configured properly? E.g. can I remove the DataDictionary file and see some exception thrown that it can't find the specified file? 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...> - 2002-11-26 17:27:05
|
Thanks Hugo, this does look like a forgotten pointer. We will add this change to the repository. Although there is actually very little heap allocation in QuickFIX, we have begun using auto pointers for those situations. This should prevent future occurences like this. --oren |---------+-----------------------------------------------> | | "Hugo Leote" | | | <Hug...@in...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/26/2002 10:01 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: qui...@li... | | cc: | | Subject: [Quickfix-developers] Leak at DataDictionary::readMSXML ? | >----------------------------------------------------------------------------------------------| I'm using quickfix 1.3.2 on Visual C++ 6.0 and I'm getting some memory leaks after creating an Acceptor. After tracking down the problem, it came to DataDictionary::readMSXML. If we look at the code (DataDictionary.cpp, line 323(?)): (...) FIXContent* pContent = new FIXContent( *this ); (...) When is this deleted ? Seems like a forgotten pointer. If I delete it at the end of readMSXML : (...) pRdr->Release(); CoUninitialize(); delete pContent; (...) the memory leaks go away. Thanks in advance, Hugo Leote ------------------------------------------------------- This SF.net email is sponsored by: Get the new Palm Tungsten T handheld. Power & Color in a compact size! http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Hugo L. <Hug...@in...> - 2002-11-26 16:01:34
|
I'm using quickfix 1.3.2 on Visual C++ 6.0 and I'm getting some memory leaks after creating an Acceptor. After tracking down the problem, it came to DataDictionary::readMSXML. If we look at the code (DataDictionary.cpp, line 323(?)): (...) FIXContent* pContent = new FIXContent( *this ); (...) When is this deleted ? Seems like a forgotten pointer. If I delete it at the end of readMSXML : (...) pRdr->Release(); CoUninitialize(); delete pContent; (...) the memory leaks go away. Thanks in advance, Hugo Leote |
From: <OM...@th...> - 2002-11-25 08:06:21
|
Constantin, As far as CPU time, I'm not sure such a thing would help you. FIX is an ASCII standard for the most part. The exception being the Encoded fields which can be transmitted with different character sets. At one point or another, these strings would need to be converted before being sent across the wire. If you still want QuickFIX to accept wstrings for ease of use, you should be able to do the following. In FieldTypes.h, change all the "typedef std::string <SOMETHING>" lines to read, "typedef std::wstring <SOMETHING>" In FieldConvertors.h, replace the line "typedef EmptyConvertor StringConvertor" with a class that will convert between strings and wstrings (see the other convertors in the file for how to do this) Finally, in Field.h, change all references in the StringField class from std::string to std::wstring. Use your new convertor where appropriate (see other field types for examples). I think that is all the steps. Alternatively, I usually like to have a small inline method I can use to conveniently do such conversions in a manner such as this: ClOrdID clOrdID(w2a(L"MY STRING")); --oren |---------+-----------------------------------------------> | | "Stancescu Constantin" | | | <Con...@sw...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/23/2002 09:20 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: "Stancescu Constantin" <Con...@sw...> | | Subject: [Quickfix-developers] Using UNICODE with the QuickFix C++ Library | >----------------------------------------------------------------------------------------------| Hi, I integrated QuickFix C++ as apart of a COM+ object in the context of Windows 2000; all the rest of data in my application is BSTR and UNICODE. I spend a lot of (CPU)time and lines of code converting between std::string and WCHAR; I saw that the .NET library implementation uses wstring, any idea to have the same with the C++ Windows library ? Regards, Constantin PS I also need some encryption(and even compression for some very big XmlData diels), does anyone have a hack to support opaque data type ? This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please notify the sender urgently and then immediately delete the message and any copies of it from your system. Please also immediately destroy any hardcopies of the message. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. The sender's company reserves the right to monitor all e-mail communications through their networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be the views of the sender's company. ------------------------------------------------------- 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: Stancescu C. <Con...@sw...> - 2002-11-23 15:20:29
|
Hi, I integrated QuickFix C++ as apart of a COM+ object in the context of Windows 2000; all the rest of data in my application is BSTR and UNICODE. I spend a lot of (CPU)time and lines of code converting between std::string and WCHAR; I saw that the .NET library implementation uses wstring, any idea to have the same with the C++ Windows library ? Regards, Constantin PS I also need some encryption(and even compression for some very big XmlData diels), does anyone have a hack to support opaque data type ? This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please notify the sender urgently and then immediately delete the message and any copies of it from your system. Please also immediately destroy any hardcopies of the message. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. The sender's company reserves the right to monitor all e-mail communications through their networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be the views of the sender's company. |
From: Manuel H. <mhe...@ca...> - 2002-11-21 08:09:20
|
Oren, I don't know what is a patch for you, but I send the 2 modified files. All, You can find in attachment the files Utility.h and Utility.cpp to install in the directory src/C++. I checked the modifications and it works. Manuel HENRIQUES (See attached file: Utility.h)(See attached file: Utility.cpp) OM...@th... on 11/20/2002 05:50:24 PM To: mhe...@ca... cc: qui...@li... Subject: Re: [Quickfix-developers] QickFix 1.3.1 : thread_spawn Manuel. The best thing to do is to create a patch and post it on the developers mailing list. That way anyone who would like to patch for themselves can apply it immediately, and developers with commit access ca= n apply it to the repository. --oren |---------+-----------------------------------------------> | | "Manuel HENRIQUES" | | | <mhe...@ca...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/20/2002 08:38 AM | | | | |---------+-----------------------------------------------> > -------------------------------------------------------------------------= ---------------------| | | | To: qui...@li..., | | qui...@li... | | cc: | | Subject: [Quickfix-developers] QickFix 1.3.1 : thread_spawn | > -------------------------------------------------------------------------= ---------------------| Hi all, I am using QuickFix 1.3.1. (C++) I found the following problem: There are 2 methods allowing to spawn threads in the file Utility.h bool thread_spawn( void*( *func ) ( void* ), void* var, int& thread ) bool thread_spawn( void*( *func ) ( void* ), void* var ) The second one is used in files Initiator.cpp and Acceptor.cpp (at line Acceptor.cpp:185 and Initiator.cpp:198): int threadid =3D thread_spawn( &startThread, this ); So in this line, the variable 'threadid' receives a boolean and not a thread id. What I suggest in file Utility.h at line 103 is : replace int thread_spawn( void*( *func ) ( void* ), void* var ); by bool thread_spawn( void*( *func ) ( void* ), void* var )= ; and replace in file Utility.cpp at line 251 bool thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; return thread_spawn( func, var, thread ); } by int thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; thread_spawn( func, var, thread ); return thread; } I don't know who is involved in checking these modifications and putting them in the official code. Can somebody help me ? Thank you. Manuel HENRIQUES "This message, including any attachments may contain confidential and privileged material; it is intended only for the person to whom it is addressed. Its contents do not constitute a commitment by Cr=E9dit Agricole Indosuez Cheuvreux except where provided for in a written agreement. Cr=E9dit Agricole Indosuez Cheuvreux assumes no liability or responsibility for the consequences arising out of a delay and/or loss in transit of this message, or for corruption or other error(s) arising in its transmission and for any misuse or fraudulent use which may be made thereof. If you are not the intended recipient, please contact us and abstain from any disclosure, use or dissemination. To the extent that this message contains research information and/or recommendations, these are provided on the same basis as Cr=E9dit Agricole Indosuez Cheuvreux's published research and the recipient must have regard to all disclosures and disclaimers contained therein." ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2002-11-20 16:50:34
|
Manuel. The best thing to do is to create a patch and post it on the developers mailing list. That way anyone who would like to patch for themselves can apply it immediately, and developers with commit access = can apply it to the repository. --oren |---------+-----------------------------------------------> | | "Manuel HENRIQUES" | | | <mhe...@ca...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/20/2002 08:38 AM | | | | |---------+-----------------------------------------------> >--------------------------------------------------------------------= --------------------------| | = | | To: qui...@li..., = | | qui...@li... = | | cc: = | | Subject: [Quickfix-developers] QickFix 1.3.1 : thread_spawn = | >--------------------------------------------------------------------= --------------------------| Hi all, I am using QuickFix 1.3.1. I found the following probleme: There are 2 methods allowing to spawn threads in the file Utility.h bool thread_spawn( void*( *func ) ( void* ), void* var, int& thread= ) bool thread_spawn( void*( *func ) ( void* ), void* var ) he second one is used files Initiator.cpp and Acceptor.cpp (at line Acceptor.cpp:185 and Initiator.cpp:198): int threadid =3D thread_spawn( &startThread, this ); So in this line, the variable 'threadid' receive a boolean and not a th= read id. What I suggest in file Utility.h ate line 103 is : replace int thread_spawn( void*( *func ) ( void* ), void* var = ); by bool thread_spawn( void*( *func ) ( void* ), void* var= ); and replace in file Utility.cpp at line 251 bool thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; return thread_spawn( func, var, thread ); } by int thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; thread_spawn( func, var, thread ); return thread; } I don't know who is involved in checking these modifications and puttin= g them in the official code. Can somebody help me ? Thank you. Manuel HENRIQUES "This message, including any attachments may contain confidential and privileged material; it is intended only for the person to whom it is addressed. Its contents do not constitute a commitment by Cr=E9di= t Agricole Indosuez Cheuvreux except where provided for in a written agreement. Cr=E9dit Agricole Indosuez Cheuvreux assumes no liability o= r responsibility for the consequences arising out of a delay and/or loss in transit of this message, or for corruption or other error(s) arising in its transmission and for any misuse or fraudulent use which may be made thereof. If you are not the intended recipient, please contact us and abstain from any disclosure, use or dissemination. To the extent that this message contains research information and/or recommendations, these are provided on the same basis as Cr=E9di= t Agricole Indosuez Cheuvreux's published research and the recipient must have regard to all disclosures and disclaimers contained therein." ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: Manuel H. <mhe...@ca...> - 2002-11-20 14:39:10
|
Hi all, I am using QuickFix 1.3.1. I found the following probleme: There are 2 methods allowing to spawn threads in the file Utility.h bool thread_spawn( void*( *func ) ( void* ), void* var, int& thread ) bool thread_spawn( void*( *func ) ( void* ), void* var ) he second one is used files Initiator.cpp and Acceptor.cpp (at line Accep= tor.cpp:185 and Initiator.cpp:198): int threadid =3D thread_spawn( &startThread, this ); So in this line, the variable 'threadid' receive a boolean and not a thre= ad id. What I suggest in file Utility.h ate line 103 is : replace int thread_spawn( void*( *func ) ( void* ), void* var ); by bool thread_spawn( void*( *func ) ( void* ), void* var )= ; and replace in file Utility.cpp at line 251 bool thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; return thread_spawn( func, var, thread ); } by int thread_spawn( void*( *func ) ( void* ), void* var ) { int thread =3D 0; thread_spawn( func, var, thread ); return thread; } I don't know who is involved in checking these modifications and putting = them in the official code. Can somebody help me ? Thank you. Manuel HENRIQUES "This message, including any attachments may contain confidential and privileged material; it is intended only for the person to whom it is addressed. Its contents do not constitute a commitment by Cr=E9dit Agricole Indosuez Cheuvreux except where provided for in a written agreement. Cr=E9dit Agricole Indosuez Cheuvreux assumes no liability or responsibility for the consequences arising out of a delay and/or loss in transit of this message, or for corruption or other error(s) arising in its transmission and for any misuse or fraudulent use which may be made thereof. If you are not the intended recipient, please contact us and abstain from any disclosure, use or dissemination. To the extent that this message contains research information and/or recommendations, these are provided on the same basis as Cr=E9dit Agricole Indosuez Cheuvreux's published research and the recipient must have regard to all disclosures and disclaimers contained therein." |
From: Gene G. <mus...@ya...> - 2002-11-19 21:37:44
|
I think the behavior that you are proposing is a good design change. I think, however, that both mechanisms (per-session and per-beginstring) custom dicts ought to be supported, and if only one is feasible, my personal preference would be BeginString (with, perhaps global -- once per application--custom overwrite) A downside of looking up protocol in session is that it will add a circular dependency (Message<->Session), and a non-transparent Message side-effect. I like beginstring because it makes Message truly self-contained, there is no chance of making an error of creating message with one data dictionary, and later parsing string from it with another one. Allowing a single for all sessions overwrite will handle the situation when beginstring cannot be changed, yet custom protocol is called for. I also suggest that whatever ends up being implemented, in the typical situation (i.e. no custom protocols), settings file will no longer need to reference external XMLs. Gene --- OM...@th... wrote: > > Good catch guys. That is a good patch. Anyone > using groups in java should > apply it, I'll also add it to the repository. > > You are right in noting that the design for groups > is not perfect. It > wasn't until support for groups was added that a > DataDictionary all of the > sudden was required in order to parse a message, so > there are definately a > few issues that have bled over. > > I think that having the default data dictionaries > embedded into the code > for use by the message is probably a good idea. I > think it is a better > idea than just using the configuration file because > I see use for the > message class as a standalone class. > > When there are sessions available, I think it would > be good to have > setString pick out the SessionID, do a > lookupSession, and pull out the data > dictionary for that session if available. If the > session does not exist > and no data dictionary is passed in, it will use the > default based on the > beginstring. If a data dictionary is passed in, it > will be used no matter > what. This should avoid the need for custom begin > strings. Thoughts? > > --oren > > > > |---------+-----------------------------------------------> > | | Gene Gorokhovsky > | > | | <mus...@ya...> > | > | | Sent by: > | > | | > qui...@li...ur| > | | ceforge.net > | > | | > | > | | > | > | | 11/19/2002 11:10 AM > | > | | > | > |---------+-----------------------------------------------> > > >----------------------------------------------------------------------------------------------| > | > | > | To: OM...@th..., > qui...@li... | > | cc: se...@mi... > | > | Subject: [Quickfix-developers] Java > Application::fromApp provides Message with lost | > | groups > | > > >----------------------------------------------------------------------------------------------| > > > > > Sergey Gribov and myself discovered the following > problem (QuickFIX 1.3.2): > When receiving a message with Group fields, the > message is corrupted -- group information is lost, > and message length is invalid, by the time it > reaches > Java Application fromApp and fromAdmin callbacks. > > We traced the problem to JNI layer. Here is the > patch > for src/java/Conversions.h (tested on Linux/gcc > 3.2.1) > > 124c124 > < pMessage->setString( message.toString() ); > --- > > *pMessage = message; > 141c141 > < pMessage->setString( message.toString() ); > --- > > *pMessage = message; > > ------------------------------------------ > While the above patch fixes the immediate problem at > hand, this does expose a design issue: setString > does > not work correctly for messages with repeating > groups > if DataDictionary is not supplied. The resulting > message has a corrupted structure (group count field > has correct count, the rest of group field are > present > only once). Athough setString returns false > (constructor using it even throws), I think that > this > method with DataDictinary not supplied is dangerous > and should be hidden from the public interface > altogether, or at the very least it should throw an > exception. > > The upshot is that the message cannot be safely > restored from a string without somehow externally > knowing the DataDictionary needed for that, despite > source string containing the protocol version (which > cannot be extracted without constructing Message...) > > I think that there could be a collection of > DataDictionaries available to Message internally > based > on the protocol's BeginString value. > They could be loaded based on entries in the Default > Section of the CFG file > DataDictionary.FIX41=./FIX41.xml, or perhaps their > content should be even be hard-coded as the strings > in > one of the header files, since providing a data-dict > XML different from the one used to generate code may > not be such a hot idea. That way sessions will refer > to the version of the protocol, with XML spec being > an > optional override, and Message class will pick up > the > correct spec themselves using BeginString, instead > of > always relying on the DataDictionary parameter. > > Custom tags will requite a custom XML spec > associated > with a custom FIX beginstring, or recompilation of > quickfix code, which I do not see as much of a > problem, since this is already required for > type-safe > usage of the custom tags. > > Changes are also required for non-validating mode, > since this mode is currently broken for reception of > messages with repeating groups -- Java fromApp is > silently never called, and C++ fromApp gets a > corrupted message. > Perhaps this mode should be an explicit setting in > the > config file, with meaningful exceptions thrown when > a > message with repeating tags is received. > > Gene > > __________________________________________________ > Do you Yahoo!? > Yahoo! Web Hosting - Let the expert host your site > http://webhosting.yahoo.com > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the > basics of securing > your web site with SSL, click here to get a FREE > TRIAL of a Thawte > Server Certificate: > http://www.gothawte.com/rd524.html > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the > basics of securing > your web site with SSL, click here to get a FREE > TRIAL of a Thawte > Server Certificate: > http://www.gothawte.com/rd524.html > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com |
From: <OM...@th...> - 2002-11-19 21:29:41
|
Well we do have this feature in the C++ version via the reset method on= Session. This will clear out the sequence numbers and reset the connection. This isn't exposed in java. The java version is getting v= ery popular and I'm sure we will be rapidly exposing more and more of the C= ++ api as people discover these things. BTW I checked in the patch for the repeating groups. You can check out= any of the following build labels from the repository to get a patched vers= ion 1.3.2: BUILD_windows_vc6-22 BUILD_windows_vc7-20 BUILD_linux_pgcc_2_95_2-20 BUILD_solaris_gcc_2_95_3_stlport-18 --oren = =20 GMui@PrescientMar = =20 kets.com To: OMiller@though= tworks.COM =20 cc: quickfix-devel= op...@li... =20 11/19/2002 03:12 Subject: Re: [Quickfix-= developers] How to stop a session? =20 PM = =20 = =20 = =20 My request for an interface to start and stop the session comes mostly during our testing phases where we need to recycle the session once in = a while. I apologize if the request comes out of ignorance (we are still= relatively new to FIX messaging), but we need to basically delete the s= tore files whenever we want to simiulate a new session (i.e. start over). F= or now, this isn't a big deal for us, but I have seen it in the API of oth= er FIX engines, so I thought others might find it useful. Clearly though, the issue with groups and repeating groups via Java aff= ects us much more. We will probably need to spend more time with those type= s of issues than with issues like controlling the session. 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 OM...@th... Sent by: To: GM...@Pr... qui...@li...urc cc: qui...@li..., eforge.net qui...@li..., td...@ho... Subjec= t: Re: [Quickfix-developers] How to stop a session? 11/18/02 07:06 PM The only way to do this currently is by setting the session times in yo= ur configuration file. By doing that you can have sessions start and stop= during various times of day. I guess to do what you want some sort of boolean is needed to allow you to override the session times. Is this = what you are thinking of? --oren GMui@PrescientMar kets.com To: OM...@th... cc: qui...@li..., 11/18/2002 04:59 qui...@li..., td...@ho... PM Subject: Re: [Quickfix-developers] How to stop a session? Is there any planned way to do shut down a session on a per-session lev= el rather than the entire engine? 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 OM...@th... Sent by: To: td...@ho..., qui...@li...urc <qui...@li...> eforge.net cc: Subjec= t: Re: [Quickfix-developers] How to stop a session? 11/18/02 04:10 PM The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> > -----------------------------------------------------------------------= -----------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] How to stop a session? | > -----------------------------------------------------------------------= -----------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a co= uple of questions. I have created a CLIENT (initiator) and a SERVER (accepto= r) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acce= ptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logg= er with an inifinite loop in onRun(). Acceptor.start() method is blocked u= ntil onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients.= To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER= and the CLIENT successfully establish a session and wait. When the CLIENT w= akes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message= comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D1=01... [22:26,528]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D2... [23:26,616]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D3... [23:56,740]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D4... [24:26,814]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D3... [25:02,877]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D2... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D4... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=3D0=0134=3D5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM= . Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=3D0x8a1ee= 0a Function name=3D(N/A) Library=3D(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: <GM...@Pr...> - 2002-11-19 21:12:25
|
My request for an interface to start and stop the session comes mostly during our testing phases where we need to recycle the session once in = a while. I apologize if the request comes out of ignorance (we are still= relatively new to FIX messaging), but we need to basically delete the s= tore files whenever we want to simiulate a new session (i.e. start over). F= or now, this isn't a big deal for us, but I have seen it in the API of oth= er FIX engines, so I thought others might find it useful. Clearly though, the issue with groups and repeating groups via Java aff= ects us much more. We will probably need to spend more time with those type= s of issues than with issues like controlling the session. 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 = =20 OM...@th... = =20 Sent by: To: = GM...@Pr... =20 qui...@li...urc cc: = qui...@li..., =20 eforge.net quickf= ix-...@li..., =20 tdjob@= hotmail.com =20 Subjec= t: Re: [Quickfix-developers] How to stop a session? =20 11/18/02 07:06 PM = =20 = =20 = =20 The only way to do this currently is by setting the session times in yo= ur configuration file. By doing that you can have sessions start and stop= during various times of day. I guess to do what you want some sort of boolean is needed to allow you to override the session times. Is this = what you are thinking of? --oren GMui@PrescientMar kets.com To: OM...@th... cc: qui...@li..., 11/18/2002 04:59 qui...@li..., td...@ho... PM Subject: Re: [Quickfix-developers] How to stop a session? Is there any planned way to do shut down a session on a per-session lev= el rather than the entire engine? 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 OM...@th... Sent by: To: td...@ho..., qui...@li...urc <qui...@li...> eforge.net cc: Subjec= t: Re: [Quickfix-developers] How to stop a session? 11/18/02 04:10 PM The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> > -----------------------------------------------------------------------= -----------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] How to stop a session? | > -----------------------------------------------------------------------= -----------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a co= uple of questions. I have created a CLIENT (initiator) and a SERVER (accepto= r) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acce= ptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logg= er with an inifinite loop in onRun(). Acceptor.start() method is blocked u= ntil onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients.= To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER= and the CLIENT successfully establish a session and wait. When the CLIENT w= akes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message= comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D1=01... [22:26,528]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D2... [23:26,616]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D3... [23:56,740]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D4... [24:26,814]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D3... [25:02,877]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D2... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D4... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=3D0=0134=3D5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM= . Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=3D0x8a1ee= 0a Function name=3D(N/A) Library=3D(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: <OM...@th...> - 2002-11-19 20:58:23
|
All admin messages are passed through the toAdmin callback before being sent to the counterparty. This give you the opportunity to add any fields you want to the message before it goes out. --oren |---------+-----------------------------------------------> | | "Bill Adelman" | | | <bad...@ae...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/19/2002 02:47 PM | | | Please respond to badelman | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] Logon Message | >----------------------------------------------------------------------------------------------| Is there a way to add custom fields in the logon message from java? Thanks, Billy -------------------------------------------------------------------- Bill Adelman Aegis Software Inc. 724-449-6047 bad...@ae... www.aegisoft.com -- Customized Software Solutions for Capital Markets & Trading Applications www.aegistaff.com -- Provides Full-Time and Contract Technical Staff ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Bill A. <bad...@ae...> - 2002-11-19 20:50:07
|
Is there a way to add custom fields in the logon message from java? Thanks, Billy -------------------------------------------------------------------- Bill Adelman Aegis Software Inc. 724-449-6047 bad...@ae... www.aegisoft.com -- Customized Software Solutions for Capital Markets & Trading Applications www.aegistaff.com -- Provides Full-Time and Contract Technical Staff |
From: <OM...@th...> - 2002-11-19 20:07:56
|
Good catch guys. That is a good patch. Anyone using groups in java should apply it, I'll also add it to the repository. You are right in noting that the design for groups is not perfect. It wasn't until support for groups was added that a DataDictionary all of the sudden was required in order to parse a message, so there are definately a few issues that have bled over. I think that having the default data dictionaries embedded into the code for use by the message is probably a good idea. I think it is a better idea than just using the configuration file because I see use for the message class as a standalone class. When there are sessions available, I think it would be good to have setString pick out the SessionID, do a lookupSession, and pull out the data dictionary for that session if available. If the session does not exist and no data dictionary is passed in, it will use the default based on the beginstring. If a data dictionary is passed in, it will be used no matter what. This should avoid the need for custom begin strings. Thoughts? --oren |---------+-----------------------------------------------> | | Gene Gorokhovsky | | | <mus...@ya...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/19/2002 11:10 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: OM...@th..., qui...@li... | | cc: se...@mi... | | Subject: [Quickfix-developers] Java Application::fromApp provides Message with lost | | groups | >----------------------------------------------------------------------------------------------| Sergey Gribov and myself discovered the following problem (QuickFIX 1.3.2): When receiving a message with Group fields, the message is corrupted -- group information is lost, and message length is invalid, by the time it reaches Java Application fromApp and fromAdmin callbacks. We traced the problem to JNI layer. Here is the patch for src/java/Conversions.h (tested on Linux/gcc 3.2.1) 124c124 < pMessage->setString( message.toString() ); --- > *pMessage = message; 141c141 < pMessage->setString( message.toString() ); --- > *pMessage = message; ------------------------------------------ While the above patch fixes the immediate problem at hand, this does expose a design issue: setString does not work correctly for messages with repeating groups if DataDictionary is not supplied. The resulting message has a corrupted structure (group count field has correct count, the rest of group field are present only once). Athough setString returns false (constructor using it even throws), I think that this method with DataDictinary not supplied is dangerous and should be hidden from the public interface altogether, or at the very least it should throw an exception. The upshot is that the message cannot be safely restored from a string without somehow externally knowing the DataDictionary needed for that, despite source string containing the protocol version (which cannot be extracted without constructing Message...) I think that there could be a collection of DataDictionaries available to Message internally based on the protocol's BeginString value. They could be loaded based on entries in the Default Section of the CFG file DataDictionary.FIX41=./FIX41.xml, or perhaps their content should be even be hard-coded as the strings in one of the header files, since providing a data-dict XML different from the one used to generate code may not be such a hot idea. That way sessions will refer to the version of the protocol, with XML spec being an optional override, and Message class will pick up the correct spec themselves using BeginString, instead of always relying on the DataDictionary parameter. Custom tags will requite a custom XML spec associated with a custom FIX beginstring, or recompilation of quickfix code, which I do not see as much of a problem, since this is already required for type-safe usage of the custom tags. Changes are also required for non-validating mode, since this mode is currently broken for reception of messages with repeating groups -- Java fromApp is silently never called, and C++ fromApp gets a corrupted message. Perhaps this mode should be an explicit setting in the config file, with meaningful exceptions thrown when a message with repeating tags is received. Gene __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Danis T. <td...@ho...> - 2002-11-19 17:46:39
|
OK. I modified my program a little. Let's see the code: 01 class Client { 02 ... 03 public void exchange() { 04 // Instantiating Initiator object 05 Initiator initiator = new SocketInitiator(new Callback(), ...); 06 07 (new Thread() { 08 public void run() { 09 initiator.start(); 10 System.out.println("Call to initiator.stop() has returned."); 11 } 12 }).start(); 13 14 // Wait for onRun() is called 15 waitForRun.receive(); 16 System.out.println("STARTED"); 17 18 // Do exchange 19 try { Thread.sleep(5000); } // any period sufficient to logon 20 catch(InterruptedException ex) {} 21 22 // It has been decided to logout. Wake up onRun() 23 synchronized(logoutLock) { logoutLock.notify(); } 24 25 System.out.println("FINISHED"); 26 } 27 28 private PostBox waitForRun; 29 private Object logoutLock; 30 31 32 class Callback implements Application { 33 ... // Interface methods are omitted. They just log out. 34 public void onRun() { 35 System.out.println("OnRun() started"); 36 synchronized(logoutLock) { 37 waitForRun.send(); 38 try { logoutLock.wait(); } 39 catch(InterruptedException wakeUp) {} 40 } 41 System.out.println("OnRun() finished"); 42 } 43 } 44 } ///:~ Here's the CLIENT's log: [35:07,869]: CLIENT: ON_CREATE OnRun() started STARTED [35:08,921]: CLIENT: TO_ADMIN: ...35=A|34=1... [35:08,951]: CLIENT: FROM_ADMIN: ...35=A|34=1... [35:08,951]: CLIENT: ON_LOGON <--- Here's a delay caused by sleep(...) FINISHED <--- Here we can OnRun() finished <--- see races Call to initiator.stop() has returned. After the last line of the log is printed the program "hangs up" and doesn't return control to the console. The SERVER sends Heartbeat respecting to the cinfigured schedule (every 30 seconds) and waits for the same msg from the CLIENT. But the CLIENT doesn't send Heartbeat and the SERVER asks its counterpart with TestRequest msg. After three such msgs leaved with no response the SERVER just logs out without sending LOGOUT msg. Now let me give some descriptions. PostBox class is an implementation of "post boxes" introduced in Operating Systems theory. It allows to "send" message to the "post box" which can be "received". If a message is sent earlier than someone tries to receive it then that one receives the message and continues execution. If you try to receive a message earlier than it is sent then the call to receive() method blocks execution until a message is sent. Hence, the line 18 is never executed while onRun() method doesn't reach the line 37. It means that logout will never be performed until the session isn't started properly. After onRun() has signaled that it's started it goes to sleep by a call to wait(). When the program logic decides to logout it wakes up sleeping onRun() method. The method finishes and a call to initiator.stop() in the line 09 returns. Why doesn't the program finish? If you replace the line 09 with the line 37 the program finishes successfully. Another question: I use MemoryStoreFactory. Can I somehow configure the QuickFix engine to allow it automatically send LOGON message with ResetSeqNumFlag set to 'Y'? ----- Original Message ----- From: <OM...@th...> To: <GM...@Pr...> Cc: <qui...@li...>; <qui...@li...>; <td...@ho...> Sent: Tuesday, November 19, 2002 3:06 AM Subject: Re: [Quickfix-developers] How to stop a session? The only way to do this currently is by setting the session times in your configuration file. By doing that you can have sessions start and stop during various times of day. I guess to do what you want some sort of boolean is needed to allow you to override the session times. Is this what you are thinking of? --oren GMui@PrescientMar kets.com To: OM...@th... cc: qui...@li..., 11/18/2002 04:59 qui...@li..., td...@ho... PM Subject: Re: [Quickfix-developers] How to stop a session? Is there any planned way to do shut down a session on a per-session level rather than the entire engine? 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 OM...@th... Sent by: To: td...@ho..., qui...@li...urc <qui...@li...> eforge.net cc: Subject: Re: [Quickfix-developers] How to stop a session? 11/18/02 04:10 PM The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> > ---------------------------------------------------------------------------- ------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] How to stop a session? | > ---------------------------------------------------------------------------- ------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a couple of questions. I have created a CLIENT (initiator) and a SERVER (acceptor) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acceptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logger with an inifinite loop in onRun(). Acceptor.start() method is blocked until onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients. To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER and the CLIENT successfully establish a session and wait. When the CLIENT wakes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=A34=1... [22:26,528]: CLIENT: FROM_ADMIN: ...35=A34=1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=034=2... [23:26,616]: CLIENT: TO_ADMIN: ...35=134=3... [23:56,740]: CLIENT: TO_ADMIN: ...35=134=4... [24:26,814]: CLIENT: TO_ADMIN: ...35=134=5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=A34=6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=A34=2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=234=3... [25:02,877]: CLIENT: TO_ADMIN: ...35=434=2... [25:32,911]: CLIENT: TO_ADMIN: ...35=034=7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=234=4... [25:32,911]: CLIENT: TO_ADMIN: ...35=434=6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=034=5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x8a1ee0a Function name=(N/A) Library=(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Gene G. <mus...@ya...> - 2002-11-19 17:13:39
|
Sergey Gribov and myself discovered the following problem (QuickFIX 1.3.2): When receiving a message with Group fields, the message is corrupted -- group information is lost, and message length is invalid, by the time it reaches Java Application fromApp and fromAdmin callbacks. We traced the problem to JNI layer. Here is the patch for src/java/Conversions.h (tested on Linux/gcc 3.2.1) 124c124 < pMessage->setString( message.toString() ); --- > *pMessage = message; 141c141 < pMessage->setString( message.toString() ); --- > *pMessage = message; ------------------------------------------ While the above patch fixes the immediate problem at hand, this does expose a design issue: setString does not work correctly for messages with repeating groups if DataDictionary is not supplied. The resulting message has a corrupted structure (group count field has correct count, the rest of group field are present only once). Athough setString returns false (constructor using it even throws), I think that this method with DataDictinary not supplied is dangerous and should be hidden from the public interface altogether, or at the very least it should throw an exception. The upshot is that the message cannot be safely restored from a string without somehow externally knowing the DataDictionary needed for that, despite source string containing the protocol version (which cannot be extracted without constructing Message...) I think that there could be a collection of DataDictionaries available to Message internally based on the protocol's BeginString value. They could be loaded based on entries in the Default Section of the CFG file DataDictionary.FIX41=./FIX41.xml, or perhaps their content should be even be hard-coded as the strings in one of the header files, since providing a data-dict XML different from the one used to generate code may not be such a hot idea. That way sessions will refer to the version of the protocol, with XML spec being an optional override, and Message class will pick up the correct spec themselves using BeginString, instead of always relying on the DataDictionary parameter. Custom tags will requite a custom XML spec associated with a custom FIX beginstring, or recompilation of quickfix code, which I do not see as much of a problem, since this is already required for type-safe usage of the custom tags. Changes are also required for non-validating mode, since this mode is currently broken for reception of messages with repeating groups -- Java fromApp is silently never called, and C++ fromApp gets a corrupted message. Perhaps this mode should be an explicit setting in the config file, with meaningful exceptions thrown when a message with repeating tags is received. Gene __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com |
From: Gene G. <mus...@ya...> - 2002-11-19 14:27:30
|
You could use "Message.toXML" method and iterate fields using XML DOM. --- OM...@th... wrote: > > I don't think that functionality is in there for > java right now. We can > probably create an enumerator that wraps the C++ > FieldMap iterator easily > enough. > > --oren > > > > |---------+-----------------------------------------------> > | | "Bill Adelman" > | > | | <bad...@ae...> > | > | | Sent by: > | > | | > qui...@li...ur| > | | ceforge.net > | > | | > | > | | > | > | | 11/18/2002 03:33 PM > | > | | Please respond to badelman > | > | | > | > |---------+-----------------------------------------------> > > >----------------------------------------------------------------------------------------------| > | > | > | To: > <qui...@li...> > | > | cc: > | > | Subject: [Quickfix-developers] Fields > iteration in a java FIX Message | > > >----------------------------------------------------------------------------------------------| > > > > > > > How do I iterate through all the fields in a Message > from java. > -------------------------------------------------------------------- > > Bill Adelman > Aegis Software Inc. > 724-449-6047 > bad...@ae... > > www.aegisoft.com -- Customized Software Solutions > for Capital Markets & > Trading Applications > > www.aegistaff.com -- Provides Full-Time and Contract > Technical Staff > > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the > basics of securing > your web site with SSL, click here to get a FREE > TRIAL of a Thawte > Server Certificate: > http://www.gothawte.com/rd524.html > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the > basics of securing > your web site with SSL, click here to get a FREE > TRIAL of a Thawte > Server Certificate: > http://www.gothawte.com/rd524.html > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com |
From: <OM...@th...> - 2002-11-19 00:20:15
|
I don't think that functionality is in there for java right now. We can probably create an enumerator that wraps the C++ FieldMap iterator easily enough. --oren |---------+-----------------------------------------------> | | "Bill Adelman" | | | <bad...@ae...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 03:33 PM | | | Please respond to badelman | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] Fields iteration in a java FIX Message | >----------------------------------------------------------------------------------------------| How do I iterate through all the fields in a Message from java. -------------------------------------------------------------------- Bill Adelman Aegis Software Inc. 724-449-6047 bad...@ae... www.aegisoft.com -- Customized Software Solutions for Capital Markets & Trading Applications www.aegistaff.com -- Provides Full-Time and Contract Technical Staff ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <OM...@th...> - 2002-11-19 00:11:36
|
The only way to do this currently is by setting the session times in yo= ur configuration file. By doing that you can have sessions start and stop= during various times of day. I guess to do what you want some sort of boolean is needed to allow you to override the session times. Is this = what you are thinking of? --oren = =20 GMui@PrescientMar = =20 kets.com To: OMiller@though= tworks.COM =20 cc: quickfix-devel= op...@li..., =20 11/18/2002 04:59 quickfix-developers-adm= in...@li..., td...@ho... =20 PM Subject: Re: [Quickfix-= developers] How to stop a session? =20 = =20 = =20 Is there any planned way to do shut down a session on a per-session lev= el rather than the entire engine? 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 OM...@th... Sent by: To: td...@ho..., qui...@li...urc <qui...@li...> eforge.net cc: Subjec= t: Re: [Quickfix-developers] How to stop a session? 11/18/02 04:10 PM The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> > -----------------------------------------------------------------------= -----------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] How to stop a session? | > -----------------------------------------------------------------------= -----------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a co= uple of questions. I have created a CLIENT (initiator) and a SERVER (accepto= r) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acce= ptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logg= er with an inifinite loop in onRun(). Acceptor.start() method is blocked u= ntil onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients.= To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER= and the CLIENT successfully establish a session and wait. When the CLIENT w= akes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message= comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D1=01... [22:26,528]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D2... [23:26,616]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D3... [23:56,740]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D4... [24:26,814]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D3... [25:02,877]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D2... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D4... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=3D0=0134=3D5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM= . Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=3D0x8a1ee= 0a Function name=3D(N/A) Library=3D(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: <GM...@Pr...> - 2002-11-18 22:59:32
|
Is there any planned way to do shut down a session on a per-session lev= el rather than the entire engine? 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 = =20 OM...@th... = =20 Sent by: To: = td...@ho..., =20 qui...@li...urc <quick= fix...@li...> =20 eforge.net cc: = =20 Subjec= t: Re: [Quickfix-developers] How to stop a session? =20 = =20 11/18/02 04:10 PM = =20 = =20 = =20 The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> > -----------------------------------------------------------------------= -----------------------| | | | To: <qui...@li...> | | cc: | | Subject: [Quickfix-developers] How to stop a session? | > -----------------------------------------------------------------------= -----------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a co= uple of questions. I have created a CLIENT (initiator) and a SERVER (accepto= r) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acce= ptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logg= er with an inifinite loop in onRun(). Acceptor.start() method is blocked u= ntil onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients.= To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER= and the CLIENT successfully establish a session and wait. When the CLIENT w= akes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message= comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D1=01... [22:26,528]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D2... [23:26,616]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D3... [23:56,740]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D4... [24:26,814]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D3... [25:02,877]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D2... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D4... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=3D0=0134=3D5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM= . Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=3D0x8a1ee= 0a Function name=3D(N/A) Library=3D(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: Bill A. <bad...@ae...> - 2002-11-18 21:36:02
|
How do I iterate through all the fields in a Message from java. -------------------------------------------------------------------- Bill Adelman Aegis Software Inc. 724-449-6047 bad...@ae... www.aegisoft.com -- Customized Software Solutions for Capital Markets & Trading Applications www.aegistaff.com -- Provides Full-Time and Contract Technical Staff |
From: <OM...@th...> - 2002-11-18 21:15:46
|
The proper way to stop the initiator is simply to let the onRun method exit. This will cause the initiator to close itself down. --oren |---------+-----------------------------------------------> | | "Danis Tazeev" <td...@ho...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/18/2002 10:51 AM | | | | |---------+-----------------------------------------------> >--------------------------------------------------------------------= --------------------------| | = | | To: <qui...@li...> = | | cc: = | | Subject: [Quickfix-developers] How to stop a session? = | >--------------------------------------------------------------------= --------------------------| Folks, I am experimenting with QuickFix using Java interfcace, and I have a co= uple of questions. I have created a CLIENT (initiator) and a SERVER (accepto= r) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acce= ptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logg= er with an inifinite loop in onRun(). Acceptor.start() method is blocked u= ntil onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients.= To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER= and the CLIENT successfully establish a session and wait. When the CLIENT w= akes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message= comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D1=01... [22:26,528]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D2... [23:26,616]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D3... [23:56,740]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D4... [24:26,814]: CLIENT: TO_ADMIN: ...35=3D1=0134=3D5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=3DA=0134=3D6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=3DA=0134=3D2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D3... [25:02,877]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D2... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D0=0134=3D7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=3D2=0134=3D4... [25:32,911]: CLIENT: TO_ADMIN: ...35=3D4=0134=3D6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=3D0=0134=3D5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM= . Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=3D0x8a1ee= 0a Function name=3D(N/A) Library=3D(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers = |
From: Danis T. <td...@ho...> - 2002-11-18 17:38:46
|
Folks, I am experimenting with QuickFix using Java interfcace, and I have a couple of questions. I have created a CLIENT (initiator) and a SERVER (acceptor) which run on different JVM. A structure of both programs is idential excluding that the CLIENT uses Initiator class and the SERVER uses Acceptor class. Initially both of them create initiator or acceptor objects and start them. The object that implements Application interface is a simple logger with an inifinite loop in onRun(). Acceptor.start() method is blocked until onRun() is running. That's why the SERVER listens infinitely. I intend to send messages being outside from onRun() method of clients. To make this possible I start a simple thread that starts initiator. Something like this: (new Thread() { public void run() { initiator.statr(); } }).start(); where initiator is an instance of Initiator class. After that the CLIENT goes to sleep for awhile (10 secodns). The SERVER and the CLIENT successfully establish a session and wait. When the CLIENT wakes up it just tries to stop the "started" initiator. The call to Initiator.stop() method doesn't return and the session doesn't finish. Instead onRun() is called again. And when the time of Heartbeat message comes up LOGON procedure is initiated. See the log (FIX 4.1): [22:15,511]: CLIENT: ON_CREATE [22:15,521]: CLIENT: ON_RUN [22:25,516]: CLIENT: ON_RUN <-- !!! trying to stop() [22:26,478]: CLIENT: TO_ADMIN: ...35=A34=1... [22:26,528]: CLIENT: FROM_ADMIN: ...35=A34=1... [22:26,528]: CLIENT: ON_LOGOUT [22:56,572]: CLIENT: TO_ADMIN: ...35=034=2... [23:26,616]: CLIENT: TO_ADMIN: ...35=134=3... [23:56,740]: CLIENT: TO_ADMIN: ...35=134=4... [24:26,814]: CLIENT: TO_ADMIN: ...35=134=5... [24:56,858]: CLIENT: ON_LOGOUT [25:02,857]: CLIENT: TO_ADMIN: ...35=A34=6... <--- Again [25:02,867]: CLIENT: FROM_ADMIN: ...35=A34=2... [25:02,867]: CLIENT: ON_LOGON [25:02,877]: CLIENT: FROM_ADMIN: ...35=234=3... [25:02,877]: CLIENT: TO_ADMIN: ...35=434=2... [25:32,911]: CLIENT: TO_ADMIN: ...35=034=7... [25:32,911]: CLIENT: FROM_ADMIN: ...35=234=4... [25:32,911]: CLIENT: TO_ADMIN: ...35=434=6... [26:02,034]: CLIENT: FROM_ADMIN: ...35=034=5... [26:02,044]: CLIENT: ON_LOGOUT An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x8a1ee0a Function name=(N/A) Library=(N/A) Current Java thread: at org.quickfix.SocketInitiator.doStart(Native Method) at org.quickfix.SocketInitiator.start(Unknown Source) at rawclient.Client$1.run(Client.java:37) at java.lang.Thread.run(Unknown Source) Is it allowed to use QuickFix this way? Where am I wrong? I don't know where to dig. Thanks. Danis Tazeev |
From: <OM...@th...> - 2002-11-15 14:43:26
|
Constantin, This DATA type has is not yet fully supported. Currently the DATA type is a typedef for a string. Which means you cannot have SOH or NULL as part of the string you are transmitting or receiving. We know this isn't correct, but the priority for this feature has been low. The features we are currently working on over here are support for FIX.4.3, and encryption. With encryption, proper support for the DATA type is necessary, so you will certainly see that show up soon. --oren |---------+-----------------------------------------------> | | "Stancescu Constantin" | | | <Con...@sw...> | | | Sent by: | | | qui...@li...ur| | | ceforge.net | | | | | | | | | 11/15/2002 05:01 AM | | | | |---------+-----------------------------------------------> >----------------------------------------------------------------------------------------------| | | | To: <qui...@li...> | | cc: "Stancescu Constantin" <Con...@sw...> | | Subject: [Quickfix-developers] Using Fields of type data (i.e. XmlData, RawData) | >----------------------------------------------------------------------------------------------| I have some problems using XmlData and in general raw data fields. - How do you can set set XmlData field excepting with std::string ? - It seems there is no check between XmlDataLen and the length of the field ? - It seems not to work if the data in XmlData contains SOH ? Does anybody have a working example of using xxxDataLen / xxxData ? Thanks, Constantin This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please notify the sender urgently and then immediately delete the message and any copies of it from your system. Please also immediately destroy any hardcopies of the message. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. The sender's company reserves the right to monitor all e-mail communications through their networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be the views of the sender's company. ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Stancescu C. <Con...@sw...> - 2002-11-15 11:01:27
|
I have some problems using XmlData and in general raw data fields. - How do you can set set XmlData field excepting with std::string ? - It seems there is no check between XmlDataLen and the length of the field ? - It seems not to work if the data in XmlData contains SOH ? Does anybody have a working example of using xxxDataLen / xxxData ? Thanks, Constantin This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please notify the sender urgently and then immediately delete the message and any copies of it from your system. Please also immediately destroy any hardcopies of the message. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. The sender's company reserves the right to monitor all e-mail communications through their networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be the views of the sender's company. |