Thread: [Quickfix-developers] Problem running banzai
Brought to you by:
orenmnero
From: <ap...@ds...> - 2003-03-18 15:31:09
Attachments:
hs_err_pid10507.log
|
Hi, Firstly thanks for quickfix! I am very interested in FIX and I can't wait to try it out! I am just getting to learn more about quickfix. I have built it (quickfix-1.4.0) on Linux (RedhLinux version 2.4.9-e.8enterprise (bhc...@da...) (gcc version 2.96 20000731 (Red Hat Linux 7.2 2.96-108.1)) using gcc 2.95.3 and both java 1.3.1 and 1.4. It works fine. I am at least able to fire up the examples, though I have not had yet a chance to really go through them. A couple of points: I had difficulty building (probably my ignorance!). These is what I had to do to get it all to compile: - had to set the LTCONFIG_VERSION env variable to 3.??? (can't remember by heart, I will look it up). I had never used libtool, etc, so it took me a while to figure this out. - Had to use the notestxml option. Could not get it to see my libxml lib. - Used the STLPort - Had to modify some makefiles (ie. executor/C++/Makefile) to see the include and lib dirs for quickfix (basically to add -Ixxx/quickfix-1.4.0/include) etc. - Had to build the src/java directory separately, i.e., it was not built during the main make. Threw me off trying to build the samples first :-( Otherwise, great stuff! I enclose the single nasty problem I could not resolve, ie, whenever I run the run_banzai script I get the sessions showing up on the console, the gui's main frame shows up blank and then an fatal jni execption, whose log I enclose. This did not happen when I ran the run_executor_java script! I would be gratefull if you could spare it a glance. I have several questions about the architecture of quickfix (ie threading, resilience (I have seen some mails in the archive about it and I am digesting them), administration etc). Is this the right forum to ask them? I send you my best regards and many thanks. David |
From: Oren M. <ore...@ya...> - 2003-03-18 16:39:06
|
> I am just getting to learn more about quickfix. I > have built it > (quickfix-1.4.0) on Linux (RedhLinux version > 2.4.9-e.8enterprise > (bhc...@da...) (gcc version 2.96 > 20000731 (Red Hat Linux 7.2 > 2.96-108.1)) using gcc 2.95.3 and both java 1.3.1 > and 1.4. One thing, be careful compiling with gcc 2.9.6. Please see the warning on our download page pertaining to this: http://quickfix.thoughtworks.com/download.html There are known problems with this compiler, and known problems when compiling QuickFIX with it. > - had to set the LTCONFIG_VERSION env variable to > 3.??? (can't remember by > heart, I will look it up). I had never used > libtool, etc, so it took me a while > to figure this out. Usually problems like this can be resolved by just running the ./bootstrap script before running ./configure. Unfortunately the autotools generated scripts arn't always compatible with every system and regenerating them is often the bost option. > - Had to use the notestxml option. Could not get it > to see my libxml lib. This is ussually a result of an incomplete installation of libxml2. You may want to check to see if that installation was done properly. > - Had to modify some makefiles (ie. > executor/C++/Makefile) to see the include > and lib dirs for quickfix (basically to add > -Ixxx/quickfix-1.4.0/include) etc. Hmmm. How did your directory structure end up like that? The tar file should set up the directory to be quickfix/include, not quickfix-1.4.0/include. > - Had to build the src/java directory separately, > i.e., it was not built during > the main make. Threw me off trying to build the > samples first :-( This would happen if the build script is unable to detect the presenct of JNI. Is your JAVA_HOME environment set up correctly? > > Otherwise, great stuff! > > I enclose the single nasty problem I could not > resolve, ie, whenever I run the > run_banzai script I get the sessions showing up on > the console, the gui's main > frame shows up blank and then an fatal jni > execption, whose log I enclose. This > did not happen when I ran the run_executor_java > script! Don't know the answer to this straight away. Will have to investigate this. > > I have several questions about the architecture of > quickfix (ie threading, > resilience (I have seen some mails in the archive > about it and I am digesting > them), administration etc). Is this the right forum > to ask them? Yes, it is. __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com |
From: <ap...@ds...> - 2003-03-18 17:03:46
|
Hi Oren, Quoting Oren Miller <ore...@ya...>: > > > I am just getting to learn more about quickfix. I > > have built it > > (quickfix-1.4.0) on Linux (RedhLinux version > > 2.4.9-e.8enterprise > > (bhc...@da...) (gcc version 2.96 > > 20000731 (Red Hat Linux 7.2 > > 2.96-108.1)) using gcc 2.95.3 and both java 1.3.1 > > and 1.4. > > One thing, be careful compiling with gcc 2.9.6. > Please see the warning on our download page pertaining > to this: > http://quickfix.thoughtworks.com/download.html > > There are known problems with this compiler, and known > problems when compiling QuickFIX with it. I actually compiled with gcc-2.95.3! The kernel was built with 2.96! > > > - had to set the LTCONFIG_VERSION env variable to > > 3.??? (can't remember by > > heart, I will look it up). I had never used > > libtool, etc, so it took me a while > > to figure this out. > > Usually problems like this can be resolved by just > running the ./bootstrap script before running > ./configure. Unfortunately the autotools generated > scripts arn't always compatible with every system and > regenerating them is often the bost option. > Did not try that! Will do again to verify my build. > > - Had to use the notestxml option. Could not get it > > to see my libxml lib. > > This is ussually a result of an incomplete > installation of libxml2. You may want to check to see > if that installation was done properly. > I did not install the libxml at this server. I guess that is the problem. > > - Had to modify some makefiles (ie. > > executor/C++/Makefile) to see the include > > and lib dirs for quickfix (basically to add > > -Ixxx/quickfix-1.4.0/include) etc. > > Hmmm. How did your directory structure end up like > that? The tar file should set up the directory to be > quickfix/include, not quickfix-1.4.0/include. > What happened is that I ran configure with --prefix=xxx/quickfix-1.4.0 When I tried to build the java stuff, it failed. I then added the above (which was the target of the "make install" runs... The tree is actually /quickfix/examples/executor/java. I think that since I gave a prefix, it should have added it to the Makefile? > > - Had to build the src/java directory separately, > > i.e., it was not built during > > the main make. Threw me off trying to build the > > samples first :-( > > This would happen if the build script is unable to > detect the presenct of JNI. Is your JAVA_HOME > environment set up correctly? > > > > > Otherwise, great stuff! > > > > I enclose the single nasty problem I could not > > resolve, ie, whenever I run the > > run_banzai script I get the sessions showing up on > > the console, the gui's main > > frame shows up blank and then an fatal jni > > execption, whose log I enclose. This > > did not happen when I ran the run_executor_java > > script! > > Don't know the answer to this straight away. Will > have to investigate this. No problem. Thanks. > > > > > I have several questions about the architecture of > > quickfix (ie threading, > > resilience (I have seen some mails in the archive > > about it and I am digesting > > them), administration etc). Is this the right forum > > to ask them? > > Yes, it is. > > Let me have a play with the examples. But to start, what is the threading model. Basically, an app derives from a base class and implements an interface which gets called on different fix events. How many threads (if any) are making these callbacks? Is there a thread per Fix Session or a pool? What is the synchronization scheme? Do the callbacks have to be re-entrant? Is there a way to connect to the application to issue admin commands (ie the app listens on a command port to which I can connect to and get a list of available admin commands such as "list sessions", "kill session", "connect", or whatever? I saw something about Admins but did not get a chance to read further. Can my app have its own pool of threads for handling events? Can the app receive (and process) another fix message (from a different session) while I am handling a callback, ie, more than one thread...? Anyways, just a question or two? ;-) Is there a way to download all the archives for "homework"? Thanks David PS I am being rude! My name is David Monheit and I work for Morgan Stanley IT, based in London, UK. I will be replying to mails from this (my personal email account) and/or the office account (dav...@mo...). > __________________________________________________ > Do you Yahoo!? > Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! > http://platinum.yahoo.com > |
From: Oren M. <ore...@ya...> - 2003-03-18 20:14:44
|
Well the number of threads making calls depends on the variety of Initiator or Acceptor you use. The two types currently available are the SocketInitiator/Acceptor and the ThreadedSocketInitiator/Acceptor. The SocketInitiator/Acceptor manages all events in one thread, while the ThreadedSocketInitiator/Acceptor uses a different thread for each session. In the future, other Initiators and Acceptors may be added that use different threading models. If you do not know for sure which Acceptor or Initiator your Application will be passed to, then you must assume that it is possible multiple threads will access the same callbacks at the same time. This means you can handle multiple requests concurrently, but you must also take care to synchronize your shared resources. Unfortunately, I do not know of any way to download the mailing list archive. __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com |
From: Oren M. <ore...@ya...> - 2003-03-18 20:35:14
|
Oh, and concerning admin. No there isn't anything built in to do this. You could implement these features in your application or create an admin FIX session that does this. Part of the reason we have nott done this is that we have not done a release with encryption yet. It would be dangerous to have such a feature without encryption. --------------------------------- Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! |
From: Gene G. <mus...@ya...> - 2003-03-19 06:41:26
Attachments:
libxml_dom.patch
|
LIBXML implementation of DOMDocument has a problem: it skips over every second node. I am not sure whether the idea was to skip over newlines or some such, but the end-result is that on my configuration (Redhat Linux AS 2.1, libxml 2.4.24. gcc 3.21) only half of the spec xml gets read into memory. This leads to disasterous consequences -- acceptor cannot even be created with half of the fields definitions missing. I have attached a patch; fixed code does not skip nodes. If the reasoning behind double-step was indeed to skip useless newline nodes (and not a plain oversight), check out xmlKeepBlanksDefault () in libxml2. Gene __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com |
From: Gene G. <mus...@ya...> - 2003-03-19 07:12:59
Attachments:
ddict.patch
|
Attached is another patch which deals with XML parsing. DataDictionary did not ignore empty nodes which were siblings of "value" correctly. I have also made exceptions text a tad more informative here and there. Gene --- Gene Gorokhovsky <mus...@ya...> wrote: > LIBXML implementation of DOMDocument has a problem: > it > skips over every second node. I am not sure whether > the idea was to skip over newlines or some such, but > the end-result is that on my configuration (Redhat > Linux AS 2.1, libxml 2.4.24. gcc 3.21) only half of > the spec xml gets read into memory. This leads to > disasterous consequences -- acceptor cannot even be > created with half of the fields definitions missing. > I have attached a patch; fixed code does not skip > nodes. > > If the reasoning behind double-step was indeed to > skip > useless newline nodes (and not a plain oversight), > check out xmlKeepBlanksDefault () in libxml2. > > Gene > > __________________________________________________ > Do you Yahoo!? > Yahoo! Platinum - Watch CBS' NCAA March Madness, > live on your desktop! > http://platinum.yahoo.com> --- /home/geneg/tmp/LIBXML_DOMDocument.cpp Wed Mar > 19 01:11:51 2003 > +++ LIBXML_DOMDocument.cpp Wed Mar 19 01:13:44 2003 > @@ -72,6 +72,5 @@ > DOMNodePtr LIBXML_DOMNode::getFirstChildNode() > { > - if( !m_pNode->children ) return DOMNodePtr(); > - xmlNodePtr pNode = m_pNode->children->next; > + xmlNodePtr pNode = m_pNode->children; > if( pNode == NULL ) return DOMNodePtr(); > return DOMNodePtr(new LIBXML_DOMNode(pNode)); > @@ -80,6 +79,5 @@ > DOMNodePtr LIBXML_DOMNode::getNextSiblingNode() > { > - if( !m_pNode->next ) return DOMNodePtr(); > - xmlNodePtr pNode = m_pNode->next->next; > + xmlNodePtr pNode = m_pNode->next; > if( pNode == NULL ) return DOMNodePtr(); > return DOMNodePtr(new LIBXML_DOMNode(pNode)); > __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com |
From: David M. <Dav...@mo...> - 2003-03-19 09:04:38
|
Hi Oren Thanks a lot for the replies. Makes good sense. I started going through the samples in detail so that should help. Shame about the archives :-( Do you have any stats at all about engine throughput, both single and multi threaded? Interesting thought about using a fix session for admin. I had not thought of that... I guess that I think in terms of all applications having this not just a fix engine :-) I see now why you are worried about security, as an external connection to the engine could create havoc with admin... We could create a list of valid host addresses or domains which can log in as admin... No worries. Is encryption in the cards? Thanks a million for the help, David Oren Miller wrote: > Oh, and concerning admin. No there isn't anything built in to do > this. You could implement these features in your application or > create an admin FIX session that does this. Part of the reason we > have nott done this is that we have not done a release with encryption > yet. It would be dangerous to have such a feature without encryption. > > > ----------------------------------------------------------------------- > Do you Yahoo!? > Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! -- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited. |