|
From: Nick F. <ni...@ox...> - 2006-10-19 09:53:10
|
I've been doing some network robustness tests on my code with Quickfix/J. Ok, if I'm honest I pulled the network cable out, then plugged it back in again to see what would happen, and also tried killing the SSL tunnel. The quickfix code and my app worked really well, and reconnected nicely. I just wondered where all this magic happened, as I couldn't find the relevant lines in the quickfix/J code. It would be nice to know programmatically that the connection has been lost, so I can do various things in the code, for example, alert the user. Does this information get back to my application (say with an admin message)? Nick |
|
From: Nick F. <ni...@ox...> - 2006-10-19 11:23:28
|
OK, it seems silly answering my own question, but for the benefit of the
archive...
I didn't look hard enough. On an abnormal disconnect a logout message is not
returned, but the method Session.disconnect() is called, which calls
onLogout() in the application and also calls
getLog().onEvent("Disconnecting"). So that gives two ways of telling. The
onLogout() message is obviously preferred.
This method (Session.disconnect()) handles the reset decisions and so on.
Nick
-----Original Message-----
From: qui...@li...
[mailto:qui...@li...] On Behalf Of Nick
Fortescue
Sent: 19 October 2006 10:53
To: qui...@li...
Subject: [Quickfixj-users] Explaining reconnect
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/
I've been doing some network robustness tests on my code with Quickfix/J.
Ok, if I'm honest I pulled the network cable out, then plugged it back in
again to see what would happen, and also tried killing the SSL tunnel.
The quickfix code and my app worked really well, and reconnected nicely. I
just wondered where all this magic happened, as I couldn't find the relevant
lines in the quickfix/J code.
It would be nice to know programmatically that the connection has been lost,
so I can do various things in the code, for example, alert the user. Does
this information get back to my application (say with an admin message)?
Nick
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Quickfixj-users mailing list
Qui...@li...
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
|
|
From: Matyas B. <ma...@ba...> - 2006-10-19 14:19:32
|
Hi EveryBody! We have a very strange problem here! We have an acceptor and an initiator. They use a same Quickfix binary (1.0.4). BUT, every time, when the initiator try to log in, we get the following error: SEVERE: Invalid message: Actual body length=53, Expected body length=70 Our login message: (8=FIX.4.4☺9=70☺35=A☺34=89☺49=AAA☺52=20061019-14:13:44.858☺56=XXXXXX☺96=t☺98=0☺108=20☺10=214☺) The really strange thing is, that before the QuickfixJ we had a simple C++ Quickfix engine, and it worked correctly! We checked the Dictionary files, and it is almost the same like in the old version. If somebody know some information about this, please don't hesitate to tell us :) Thank you, Matyas |
|
From: Oren M. <or...@qu...> - 2006-10-19 15:06:30
|
At a length of 53 is exactly where field 96 begins. I wonder if QuickFIX/J is confused that you have a RawData field (96) that isn't preceded by a RawDataLength field (95). Any reason for this? --oren On Oct 19, 2006, at 9:19 AM, Matyas Barakonyi wrote: > We have a very strange problem here! We have an acceptor and an > initiator. They use a same Quickfix binary (1.0.4). BUT, every time, > when the initiator try to log in, we get the following error: > SEVERE: Invalid message: Actual body length=53, Expected body > length=70 |
|
From: Matyas B. <ma...@ba...> - 2006-10-24 09:32:29
|
Hi! Thanks! We tried it with the RawDataLength (Tag #96) field, and it works! But I don't see in the FIX 4.4 Documentation, that the RawDataLenght is required for the RawData (Tag #96). We checked the DataDictionary file, and FieldMap.java (in the source), but we didn't find the reason of this problem. Our problem really is that we have to modify our User Specifications because of this, and we have to update it for all of our users... It could be easier to just leave the RawDataLength field for us... If it is not possible, we will use it of course, but if somebody has any ideas, please let us know about it! Thanks, Matyas Oren Miller wrote: > At a length of 53 is exactly where field 96 begins. I wonder if > QuickFIX/J is confused that you have a RawData field (96) that isn't > preceded by a RawDataLength field (95). Any reason for this? > > --oren > > On Oct 19, 2006, at 9:19 AM, Matyas Barakonyi wrote: > >> We have a very strange problem here! We have an acceptor and an >> initiator. They use a same Quickfix binary (1.0.4). BUT, every time, >> when the initiator try to log in, we get the following error: >> SEVERE: Invalid message: Actual body length=53, Expected body length=70 > |
|
From: Steve B. <st...@te...> - 2006-10-24 12:20:57
|
Hi Matyas, According to the FIX 4.4 specification (in the data type descriptions)... "Data fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH)." It must be there because the data field could have 0x01 bytes (SOH) in it so the normal parsing can't be used. Regards, Steve -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Matyas Barakonyi Sent: Tuesday, October 24, 2006 5:32 AM To: Oren Miller Cc: qui...@li... Subject: Re: [Quickfixj-users] SEVERE: Invalid message: Actual body length=53, Expected body length=70 QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ QuickFIX/J Support: http://www.quickfixj.org/support/ Hi! Thanks! We tried it with the RawDataLength (Tag #96) field, and it works! But I don't see in the FIX 4.4 Documentation, that the RawDataLenght is required for the RawData (Tag #96). We checked the DataDictionary file, and FieldMap.java (in the source), but we didn't find the reason of this problem. Our problem really is that we have to modify our User Specifications because of this, and we have to update it for all of our users... It could be easier to just leave the RawDataLength field for us... If it is not possible, we will use it of course, but if somebody has any ideas, please let us know about it! Thanks, Matyas Oren Miller wrote: > At a length of 53 is exactly where field 96 begins. I wonder if > QuickFIX/J is confused that you have a RawData field (96) that isn't > preceded by a RawDataLength field (95). Any reason for this? > > --oren > > On Oct 19, 2006, at 9:19 AM, Matyas Barakonyi wrote: > >> We have a very strange problem here! We have an acceptor and an >> initiator. They use a same Quickfix binary (1.0.4). BUT, every time, >> when the initiator try to log in, we get the following error: >> SEVERE: Invalid message: Actual body length=53, Expected body >> length=70 > ------------------------------------------------------------------------ - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Quickfixj-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfixj-users |
|
From: Matyas B. <ma...@ba...> - 2006-10-24 14:04:00
|
Hi Steve! Thank you very much! It seems I didn't read enough carefully the FIX doc. :) Regards, Matyas Steve Bate wrote: > Hi Matyas, > > According to the FIX 4.4 specification (in the data type > descriptions)... > > "Data fields are always immediately preceded by a length field. The > length field should specify the number of bytes of the value of the data > field (up to but not including the terminating SOH)." > > It must be there because the data field could have 0x01 bytes (SOH) in > it so the normal parsing can't be used. > > Regards, > > Steve > > > -----Original Message----- > From: qui...@li... > [mailto:qui...@li...] On Behalf Of > Matyas Barakonyi > Sent: Tuesday, October 24, 2006 5:32 AM > To: Oren Miller > Cc: qui...@li... > Subject: Re: [Quickfixj-users] SEVERE: Invalid message: Actual body > length=53, Expected body length=70 > > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > Hi! > > Thanks! We tried it with the RawDataLength (Tag #96) field, and it > works! But I don't see in the FIX 4.4 Documentation, that the > RawDataLenght is required for the RawData (Tag #96). We checked the > DataDictionary file, and FieldMap.java (in the source), but we didn't > find the reason of this problem. Our problem really is that we have to > modify our User Specifications because of this, and we have to update it > > for all of our users... It could be easier to just leave the > RawDataLength field for us... If it is not possible, we will use it of > course, but if somebody has any ideas, please let us know about it! > > Thanks, > Matyas > > Oren Miller wrote: > >> At a length of 53 is exactly where field 96 begins. I wonder if >> QuickFIX/J is confused that you have a RawData field (96) that isn't >> preceded by a RawDataLength field (95). Any reason for this? >> >> --oren >> >> On Oct 19, 2006, at 9:19 AM, Matyas Barakonyi wrote: >> >> >>> We have a very strange problem here! We have an acceptor and an >>> initiator. They use a same Quickfix binary (1.0.4). BUT, every time, >>> when the initiator try to log in, we get the following error: >>> SEVERE: Invalid message: Actual body length=53, Expected body >>> length=70 >>> > > > ------------------------------------------------------------------------ > - > Using Tomcat but need to do more? Need to support web services, > security? Get stuff done quickly with pre-integrated technology to make > your job easier Download IBM WebSphere Application Server v.1.0.1 based > on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Quickfixj-users mailing list Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > |
|
From: Nick F. <ni...@ox...> - 2006-10-19 15:59:02
|
I think I've found a File locking resource leak in quickfixj (SVN Trunk, head). I wondered if anyone could confirm it is a defect, and if so the best way to fix it. When you create a FileStore for a given session it opens two RandomAccessFiles for the message store and sequence number file. These files are only closed by the method closeFiles(), which is only used in initialize. And when initialize closes the files it immediately opens them again. This means that unless you call closeFiles() yourself, the file will remain open (and for example, you can't delete the files programmatically). However, if you create an initiator, you do it with a MessageStoreFactory, not a MessageStore, which means you have no access to the FileStore to let you close the files. This is a problem for me. I am running some conformance tests for my counterparty, and I want to do them in a single Application - create a fix session, do the test, close the session, delete the files, and then proceed with the next test. At the moment this seems to be impossible, as once I am finished with the first session I have no way of deleting the files without exiting the VM. Am I going to have to write my own FileStoreFactory? Nick |
|
From: Steve <st...@te...> - 2006-10-20 20:32:12
|
Would a memory store work for your testing purposes? If not, you can get the MessageStore from the Session and cast it to a FileStore to call closeFiles() or deleteFiles() (which closes the files first). See the FileStoreTest for an example. The tests close and reopen the files for each test. HTH. Steve Nick Fortescue wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > I think I've found a File locking resource leak in quickfixj (SVN Trunk, > head). I wondered if anyone could confirm it is a defect, and if so the best > way to fix it. > > When you create a FileStore for a given session it opens two > RandomAccessFiles for the message store and sequence number file. These > files are only closed by the method closeFiles(), which is only used in > initialize. And when initialize closes the files it immediately opens them > again. This means that unless you call closeFiles() yourself, the file will > remain open (and for example, you can't delete the files programmatically). > > However, if you create an initiator, you do it with a MessageStoreFactory, > not a MessageStore, which means you have no access to the FileStore to let > you close the files. > > This is a problem for me. I am running some conformance tests for my > counterparty, and I want to do them in a single Application - create a fix > session, do the test, close the session, delete the files, and then proceed > with the next test. At the moment this seems to be impossible, as once I am > finished with the first session I have no way of deleting the files without > exiting the VM. Am I going to have to write my own FileStoreFactory? > > Nick > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > |
|
From: Alvin W. <AW...@FF...> - 2006-10-23 15:04:10
|
Hi Steve,
I got the following exceptions when I tried to run my application on
QuickFIXJ. Below is my configuration file. Do you have any idea what went
wrong? I have made sure the connection is ok by running telnet.
Pls note that
AbnormalLogoutAlert=Y
LogonTimeout=120
are my custom configurations.
Many thanks.
Alvin
quickfix.ConfigError: error during session initialization
at
quickfix.mina.initiator.AbstractSocketInitiator.createSessions(AbstractSocketInitiator.java:113)
at
quickfix.mina.initiator.AbstractSocketInitiator.<init>(AbstractSocketInitiator.java:68)
at
quickfix.mina.initiator.AbstractSocketInitiator.<init>(AbstractSocketInitiator.java:60)
at
quickfix.ThreadedSocketInitiator.<init>(ThreadedSocketInitiator.java:32)
.................
Caused by: java.lang.RuntimeException: java.io.EOFException
at quickfix.FileStoreFactory.create(FileStoreFactory.java:65)
at quickfix.Session.<init>(Session.java:193)
at
quickfix.DefaultSessionFactory.create(DefaultSessionFactory.java:125)
at
quickfix.mina.SessionConnector.createSession(SessionConnector.java:109)
at
quickfix.mina.initiator.AbstractSocketInitiator.createSessions(AbstractSocketInitiator.java:107)
... 7 more
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:448)
at quickfix.FileStore.initializeMessageIndex(FileStore.java:172)
at quickfix.FileStore.initializeCache(FileStore.java:107)
at quickfix.FileStore.initialize(FileStore.java:102)
at quickfix.FileStore.<init>(FileStore.java:89)
at quickfix.FileStoreFactory.create(FileStoreFactory.java:63)
... 11 more
[DEFAULT]
ConnectionType=initiator
HeartBtInt=30
FileStorePath=store
FileLogPath=store
CheckLatency=N
UseDataDictionary=Y
DataDictionary=FIX44.xml
ValidateUserDefinedFields=N
BeginString=FIX.4.4
ValidateFieldsHaveValues=N
AbnormalLogoutAlert=Y
LogonTimeout=120
[SESSION]
SenderCompID=ABC
TargetCompID=DEF
SocketConnectHost=localhost
SocketConnectPort=17000
StartTime=08:00:00
EndTime=23:55:00
Steve
<steve@technoetic
.com> To
Sent by: qui...@li....n
quickfixj-users-b et
ou...@li... cc
ceforge.net
Subject
Re: [Quickfixj-users] File Lock on
10/20/2006 04:32 FileStore impossible to free
PM
Please respond to
quickfixj-users@l
ists.sourceforge.
net
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/
Would a memory store work for your testing purposes? If not, you can get
the MessageStore from the Session and cast it to a FileStore to call
closeFiles() or deleteFiles() (which closes the files first). See the
FileStoreTest for an example. The tests close and reopen the files for
each test. HTH.
Steve
Nick Fortescue wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J Support: http://www.quickfixj.org/support/
> I think I've found a File locking resource leak in quickfixj (SVN Trunk,
> head). I wondered if anyone could confirm it is a defect, and if so the
best
> way to fix it.
>
> When you create a FileStore for a given session it opens two
> RandomAccessFiles for the message store and sequence number file. These
> files are only closed by the method closeFiles(), which is only used in
> initialize. And when initialize closes the files it immediately opens
them
> again. This means that unless you call closeFiles() yourself, the file
will
> remain open (and for example, you can't delete the files
programmatically).
>
> However, if you create an initiator, you do it with a
MessageStoreFactory,
> not a MessageStore, which means you have no access to the FileStore to
let
> you close the files.
>
> This is a problem for me. I am running some conformance tests for my
> counterparty, and I want to do them in a single Application - create a
fix
> session, do the test, close the session, delete the files, and then
proceed
> with the next test. At the moment this seems to be impossible, as once I
am
> finished with the first session I have no way of deleting the files
without
> exiting the VM. Am I going to have to write my own FileStoreFactory?
>
> Nick
>
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Quickfixj-users mailing list
> Qui...@li...
> https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Quickfixj-users mailing list
Qui...@li...
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
*******************************************************************************
This e-mail message is intended solely for the use of the addressee.
The message may contain information that is privileged and
confidential.
Disclosure to anyone other than the intended recipient is prohibited.
If you are not the intended recipient, please do not disseminate,
distribute or copy this communication, by e-mail or otherwise. Instead,
please notify us immediately by return e-mail(including the original
message with your reply) and then delete and discard all copies of the
message. We have taken precautions to minimize the risk of transmitting
software viruses but nevertheless advise you to carry out your own
virus checks on any attachment to this message. We accept
no liability for any loss or damage caused by software viruses.
*******************************************************************************
|
|
From: Steve <st...@te...> - 2006-10-23 15:52:48
|
Alvin Wang wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > Hi Steve, > > I got the following exceptions when I tried to run my application on > QuickFIXJ. Below is my configuration file. Do you have any idea what went > wrong? I have made sure the connection is ok by running telnet. > > Usually this error occurs if the store file is corrupt or if you try to use a store file created by QF. In the latter case, just delete the store file and QFJ will create a new one automatically. Obviously you should do this outside a scheduled session time. :-) Steve |
|
From: Alvin W. <AW...@FF...> - 2006-10-23 19:35:46
|
Steve, thank you!
BTW, Is there a way that I can specify my own database name rather than the
default db name quickfix if I use JDBC?
thanks.
Steve
<steve@technoetic
.com> To
Sent by: qui...@li....n
quickfixj-users-b et
ou...@li... cc
ceforge.net
Subject
Re: [Quickfixj-users] File Lock on
10/23/2006 11:52 FileStore impossible to free
AM
Please respond to
quickfixj-users@l
ists.sourceforge.
net
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/
Alvin Wang wrote:
> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> QuickFIX/J Support: http://www.quickfixj.org/support/
> Hi Steve,
>
> I got the following exceptions when I tried to run my application on
> QuickFIXJ. Below is my configuration file. Do you have any idea what went
> wrong? I have made sure the connection is ok by running telnet.
>
>
Usually this error occurs if the store file is corrupt or if you try to
use a store file created by QF. In the latter case, just delete the
store file and QFJ will create a new one automatically. Obviously you
should do this outside a scheduled session time. :-)
Steve
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Quickfixj-users mailing list
Qui...@li...
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
*******************************************************************************
This e-mail message is intended solely for the use of the addressee.
The message may contain information that is privileged and
confidential.
Disclosure to anyone other than the intended recipient is prohibited.
If you are not the intended recipient, please do not disseminate,
distribute or copy this communication, by e-mail or otherwise. Instead,
please notify us immediately by return e-mail(including the original
message with your reply) and then delete and discard all copies of the
message. We have taken precautions to minimize the risk of transmitting
software viruses but nevertheless advise you to carry out your own
virus checks on any attachment to this message. We accept
no liability for any loss or damage caused by software viruses.
*******************************************************************************
|