Quantcast

Message-sending when session is logged out

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Message-sending when session is logged out

traggatt
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/


Apologies if this question has been asked before. This page (http://www.quickfixj.org/quickfixj/usermanual/1.6.1/usage/application.html) in the documentation makes the following claim:

"Sessions exist whether or not a counter party is connected to it. As soon as a session is created, you can begin sending messages to it. If no one is logged on, the messages will be sent at the time a connection is established with the counterparty."

I have been testing this behaviour via the following sequence of steps:

1. Initialize a new QuickFix session connecting as normal
2. Interrupt the connection to the remote server so a logout occurs for the session.
3. Send a message via Session.sendToTarget()
4. Allow QuickFix to restore the connection (so a login occurs for the session)

As far as I can see, the message is never sent.

Debugging through the code, I see we hit this line shortly after the toApp() callback is made:

https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/Session.java#L2494

As far as I can see, the message is only sent when isLoggedOn() is true. In the event of it not being true (as here), no alternative action is taken.

My expectation from the documentation quoted above is that QuickFix/J should somehow queue up the message internally so that, when the session is restored, it will be sent. Two questions:

1. Is this interpretation correct?
2. If so, where and how is this implemented?

Here are my connection parameters for reference:


[DEFAULT]
ConnectionType=initiator
LogonTimeout=60
ReconnectInterval=30
FileStorePath= ...
HeartBtInt=30
StartTime=22:15:00
EndTime=21:55:00
UseDataDictionary=Y


[SESSION]
BeginString=FIX.4.4
SenderCompID= ...
TargetCompID= ...
PersistMessages=Y
ResetOnLogon=Y
SessionQualifier= ...
SocketConnectHost= ...
SocketConnectPort= ...
Username= ...
Password= ...
DataDictionary=config/dict/fix44.xml


Many thanks in advance

This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan  Lane, London, EC4R 3AD.
The contents of this email are for the named addressee(s) only. It contains information which may be confidential and privileged. If you are not the intended recipient, please notify the sender immediately, destroy this email and any attachments and do not otherwise disclose or use them. Email transmission is not a secure method of communication and Man cannot accept responsibility for the completeness or accuracy of this email or any attachments. Whilst Man makes every effort to keep its network free from viruses, it does not accept responsibility for any computer virus which might be transferred by way of this email or any attachments. This email does not constitute a request, offer, recommendation or solicitation of any kind to buy, subscribe, sell or redeem any investment instruments or to perform other such transactions of any kind. Man reserves the right to monitor, record and retain all electronic and telephone communications through its network in accordance with applicable laws and regulations. --UwQe9f5k7pI3vplngP


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Message-sending when session is logged out

Eric San Mateo
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/



Can you try it without the setting

ResetOnLogon=Y

My understanding here is that this will reset the sequence numbers upon logon, discarding the queued up offline messages.

Regards,

Eric San Mateo
AFIX Revolution | +63 917 308 9371
_____________________________
From: Raggatt, Timothy (London) <[hidden email]>
Sent: Tuesday, December 13, 2016 12:08 AM
Subject: [Quickfixj-users] Message-sending when session is logged out
To: <[hidden email]>


QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/


Apologies if this question has been asked before. This page (http://www.quickfixj.org/quickfixj/usermanual/1.6.1/usage/application.html) in the documentation makes the following claim:

"Sessions exist whether or not a counter party is connected to it. As soon as a session is created, you can begin sending messages to it. If no one is logged on, the messages will be sent at the time a connection is established with the counterparty."

I have been testing this behaviour via the following sequence of steps:

1. Initialize a new QuickFix session connecting as normal
2. Interrupt the connection to the remote server so a logout occurs for the session.
3. Send a message via Session.sendToTarget()
4. Allow QuickFix to restore the connection (so a login occurs for the session)

As far as I can see, the message is never sent.

Debugging through the code, I see we hit this line shortly after the toApp() callback is made:

https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/Session.java#L2494

As far as I can see, the message is only sent when isLoggedOn() is true. In the event of it not being true (as here), no alternative action is taken.

My expectation from the documentation quoted above is that QuickFix/J should somehow queue up the message internally so that, when the session is restored, it will be sent. Two questions:

1. Is this interpretation correct?
2. If so, where and how is this implemented?

Here are my connection parameters for reference:


[DEFAULT]
ConnectionType=initiator
LogonTimeout=60
ReconnectInterval=30
FileStorePath= ...
HeartBtInt=30
StartTime=22:15:00
EndTime=21:55:00
UseDataDictionary=Y


[SESSION]
BeginString=FIX.4.4
SenderCompID= ...
TargetCompID= ...
PersistMessages=Y
ResetOnLogon=Y
SessionQualifier= ...
SocketConnectHost= ...
SocketConnectPort= ...
Username= ...
Password= ...
DataDictionary=config/dict/fix44.xml


Many thanks in advance

This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan Lane, London, EC4R 3AD.
The contents of this email are for the named addressee(s) only. It contains information which may be confidential and privileged. If you are not the intended recipient, please notify the sender immediately, destroy this email and any attachments and do not otherwise disclose or use them. Email transmission is not a secure method of communication and Man cannot accept responsibility for the completeness or accuracy of this email or any attachments. Whilst Man makes every effort to keep its network free from viruses, it does not accept responsibility for any computer virus which might be transferred by way of this email or any attachments. This email does not constitute a request, offer, recommendation or solicitation of any kind to buy, subscribe, sell or redeem any investment instruments or to perform other such transactions of any kind. Man reserves the right to monitor, record and retain all electronic and telephone communications through its network in accordance with applicable laws and regulations. --UwQe9f5k7pI3vplngP


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Message-sending when session is logged out

Colin DuPlantis
In reply to this post by traggatt
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/



Have you tried without ResetOnLogon?

On Dec 12, 2016 8:08 AM, "Raggatt, Timothy (London)" <[hidden email]> wrote:
QuickFIX/J Documentation: <a href="http://www.quickfixj.org/documentation/ QuickFIX/J" rel="noreferrer" target="_blank">http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/


Apologies if this question has been asked before. This page (http://www.quickfixj.org/quickfixj/usermanual/1.6.1/usage/application.html) in the documentation makes the following claim:

"Sessions exist whether or not a counter party is connected to it. As soon as a session is created, you can begin sending messages to it. If no one is logged on, the messages will be sent at the time a connection is established with the counterparty."

I have been testing this behaviour via the following sequence of steps:

1. Initialize a new QuickFix session connecting as normal
2. Interrupt the connection to the remote server so a logout occurs for the session.
3. Send a message via Session.sendToTarget()
4. Allow QuickFix to restore the connection (so a login occurs for the session)

As far as I can see, the message is never sent.

Debugging through the code, I see we hit this line shortly after the toApp() callback is made:

https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/Session.java#L2494

As far as I can see, the message is only sent when isLoggedOn() is true. In the event of it not being true (as here), no alternative action is taken.

My expectation from the documentation quoted above is that QuickFix/J should somehow queue up the message internally so that, when the session is restored, it will be sent. Two questions:

1. Is this interpretation correct?
2. If so, where and how is this implemented?

Here are my connection parameters for reference:


[DEFAULT]
ConnectionType=initiator
LogonTimeout=60
ReconnectInterval=30
FileStorePath= ...
HeartBtInt=30
StartTime=22:15:00
EndTime=21:55:00
UseDataDictionary=Y


[SESSION]
BeginString=FIX.4.4
SenderCompID= ...
TargetCompID= ...
PersistMessages=Y
ResetOnLogon=Y
SessionQualifier= ...
SocketConnectHost= ...
SocketConnectPort= ...
Username= ...
Password= ...
DataDictionary=config/dict/fix44.xml


Many thanks in advance

This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan  Lane, London, EC4R 3AD.
The contents of this email are for the named addressee(s) only. It contains information which may be confidential and privileged. If you are not the intended recipient, please notify the sender immediately, destroy this email and any attachments and do not otherwise disclose or use them. Email transmission is not a secure method of communication and Man cannot accept responsibility for the completeness or accuracy of this email or any attachments. Whilst Man makes every effort to keep its network free from viruses, it does not accept responsibility for any computer virus which might be transferred by way of this email or any attachments. This email does not constitute a request, offer, recommendation or solicitation of any kind to buy, subscribe, sell or redeem any investment instruments or to perform other such transactions of any kind. Man reserves the right to monitor, record and retain all electronic and telephone communications through its network in accordance with applicable laws and regulations. --UwQe9f5k7pI3vplngP


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Message-sending when session is logged out

Christoph John
In reply to this post by traggatt
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/



Regarding your question where the message is stored: before sending the message it is put into the message store.
But as Colin already indicated: ResetOnLogon will effectively clear your message store on each Logon.

Chris.

Am 12. Dezember 2016 16:44:11 MEZ, schrieb "Raggatt, Timothy (London)" <[hidden email]>:
QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
QuickFIX/J Support: http://www.quickfixj.org/support/


Apologies if this question has been asked before. This page (http://www.quickfixj.org/quickfixj/usermanual/1.6.1/usage/application.html) in the documentation makes the following claim:

"Sessions exist whether or not a counter party is connected to it. As soon as a session is created, you can begin sending messages to it. If no one is logged on, the messages will be sent at the time a connection is established with the counterparty."

I have been testing this behaviour via the following sequence of steps:

1. Initialize a new QuickFix session connecting as normal
2. Interrupt the connection to the remote server so a logout occurs for the session.
3. Send a message via Session.sendToTarget()
4. Allow QuickFix to restore the connection (so a login occurs for the session)

As far as I can see, the message is never sent.

Debugging through the code, I see we hit this line shortly after the toApp() callback is made:

https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/Session.java#L2494

As far as I can see, the message is only sent when isLoggedOn() is true. In the event of it not being true (as here), no alternative action is taken.

My expectation from the documentation quoted above is that QuickFix/J should somehow queue up the message internally so that, when the session is restored, it will be sent. Two questions:

1. Is this interpretation correct?
2. If so, where and how is this implemented?

Here are my connection parameters for reference:


[DEFAULT]
ConnectionType=initiator
LogonTimeout=60
ReconnectInterval=30
FileStorePath= ...
HeartBtInt=30
StartTime=22:15:00
EndTime=21:55:00
UseDataDictionary=Y


[SESSION]
BeginString=FIX.4.4
SenderCompID= ...
TargetCompID= ...
PersistMessages=Y
ResetOnLogon=Y
SessionQualifier= ...
SocketConnectHost= ...
SocketConnectPort= ...
Username= ...
Password= ...
DataDictionary=config/dict/fix44.xml


Many thanks in advance

This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan Lane, London, EC4R 3AD.
The contents of this email are for the named addressee(s) only. It contains information which may be confidential and privileged. If you are not the intended recipient, please notify the sender immediately, destroy this email and any attachments and do not otherwise disclose or use them. Email transmission is not a secure method of communication and Man cannot accept responsibility for the completeness or accuracy of this email or any attachments. Whilst Man makes every effort to keep its network free from viruses, it does not accept responsibility for any computer virus which might be transferred by way of this email or any attachments. This email does not constitute a request, offer, recommendation or solicitation of any kind to buy, subscribe, sell or redeem any investment instruments or to perform other such transactions of any kind. Man reserves the right to monitor, record and retain all electronic and telephone communications through its network in accordance with applicable laws and regulations. --UwQe9f5k7pI3vplngP




Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Quickfixj-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfixj-users
Loading...