How to suppress 35=X messages in log file

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

How to suppress 35=X messages in log file

Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Mike Gatny
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


Thanks Mike!

I create an acceptor with a FIX::FileLogFactory because I do want the logging to file of all messages except the 35=X. I have stream and trade sessions. For the trade session i want all logging and for stream session all but the 35=X. So I think I use the appropriate constructor of the acceptor.

Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available, only the message string and I don't want to search in the message string for 35=X because that is a waste of time and totally not nice.

Regards,
Gunnar




Gunnar Harms

On May 29, 2013, at 2:15 PM, Mike Gatny wrote:

It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


Are you sure it's a waste of time?  Sounds like a premature-optimization mindset.

Attempting it and profiling its performance sounds like an easier option than hacking the engine, and I don't think it would take that many man-hours.


On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:

Thanks Mike!

I create an acceptor with a FIX::FileLogFactory because I do want the logging to file of all messages except the 35=X. I have stream and trade sessions. For the trade session i want all logging and for stream session all but the 35=X. So I think I use the appropriate constructor of the acceptor.

Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available, only the message string and I don't want to search in the message string for 35=X because that is a waste of time and totally not nice.

Regards,
Gunnar




Gunnar Harms

On May 29, 2013, at 2:15 PM, Mike Gatny wrote:

It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


Thanks Grant!

Actually the application is finished so it is probably not a premature-mindset.

The thing is that when in Sesison m_sttate->onOutgoing is called the MsgType is already in a variable. but in the flow that follows the MsgType is lost and only message string reaches the Log object's onOutgoing() method.

It is just weird to look in message string with std::string compare method for the MsgType when it was known a couple steps before.
it would be better if MsgType is an actual argument of Log object's onOutgoing(); then i would not hesitate to derive from FileLogFactory and FileLog.
But still it would be better to already in session send methods determine not to put the message to the logger when 35=X


Regards,
Gunnar



On May 30, 2013, at 2:39 PM, Grant Birchmeier wrote:

Are you sure it's a waste of time?  Sounds like a premature-optimization mindset.

Attempting it and profiling its performance sounds like an easier option than hacking the engine, and I don't think it would take that many man-hours.


On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:

Thanks Mike!

I create an acceptor with a FIX::FileLogFactory because I do want the logging to file of all messages except the 35=X. I have stream and trade sessions. For the trade session i want all logging and for stream session all but the 35=X. So I think I use the appropriate constructor of the acceptor.

Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available, only the message string and I don't want to search in the message string for 35=X because that is a waste of time and totally not nice.

Regards,
Gunnar




Gunnar Harms

On May 29, 2013, at 2:15 PM, Mike Gatny wrote:

It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


I do agree: in retrospect, it would be nice if the engine would pass Message objects to the logger instead of strings.  If you felt like hacking the engine, that change probably wouldn't be very hard.


On Thu, May 30, 2013 at 8:17 AM, Gunnar Harms <[hidden email]> wrote:
Thanks Grant!

Actually the application is finished so it is probably not a premature-mindset.

The thing is that when in Sesison m_sttate->onOutgoing is called the MsgType is already in a variable. but in the flow that follows the MsgType is lost and only message string reaches the Log object's onOutgoing() method.

It is just weird to look in message string with std::string compare method for the MsgType when it was known a couple steps before.
it would be better if MsgType is an actual argument of Log object's onOutgoing(); then i would not hesitate to derive from FileLogFactory and FileLog.
But still it would be better to already in session send methods determine not to put the message to the logger when 35=X


Regards,
Gunnar



On May 30, 2013, at 2:39 PM, Grant Birchmeier wrote:

Are you sure it's a waste of time?  Sounds like a premature-optimization mindset.

Attempting it and profiling its performance sounds like an easier option than hacking the engine, and I don't think it would take that many man-hours.


On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:

Thanks Mike!

I create an acceptor with a FIX::FileLogFactory because I do want the logging to file of all messages except the 35=X. I have stream and trade sessions. For the trade session i want all logging and for stream session all but the 35=X. So I think I use the appropriate constructor of the acceptor.

Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available, only the message string and I don't want to search in the message string for 35=X because that is a waste of time and totally not nice.

Regards,
Gunnar




Gunnar Harms

On May 29, 2013, at 2:15 PM, Mike Gatny wrote:

It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.




--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


When deriving from FIX::FileLog and searching the message string for 35=X is the only way to supress these messages from getting logged w/o changing QF source then I will do that.
I was just thinking that I was overlooking something simple because it seems logical to disable logging of 35=X messages when using FIX::FileLog.
BTW. I like the QF library a lot!

Thank you for your help!

Gunnar

On May 30, 2013, at 3:57 PM, Grant Birchmeier wrote:

I do agree: in retrospect, it would be nice if the engine would pass Message objects to the logger instead of strings.  If you felt like hacking the engine, that change probably wouldn't be very hard.


On Thu, May 30, 2013 at 8:17 AM, Gunnar Harms <[hidden email]> wrote:
Thanks Grant!

Actually the application is finished so it is probably not a premature-mindset.

The thing is that when in Sesison m_sttate->onOutgoing is called the MsgType is already in a variable. but in the flow that follows the MsgType is lost and only message string reaches the Log object's onOutgoing() method.

It is just weird to look in message string with std::string compare method for the MsgType when it was known a couple steps before.
it would be better if MsgType is an actual argument of Log object's onOutgoing(); then i would not hesitate to derive from FileLogFactory and FileLog.
But still it would be better to already in session send methods determine not to put the message to the logger when 35=X


Regards,
Gunnar



On May 30, 2013, at 2:39 PM, Grant Birchmeier wrote:

Are you sure it's a waste of time?  Sounds like a premature-optimization mindset.

Attempting it and profiling its performance sounds like an easier option than hacking the engine, and I don't think it would take that many man-hours.


On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:

Thanks Mike!

I create an acceptor with a FIX::FileLogFactory because I do want the logging to file of all messages except the 35=X. I have stream and trade sessions. For the trade session i want all logging and for stream session all but the 35=X. So I think I use the appropriate constructor of the acceptor.

Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available, only the message string and I don't want to search in the message string for 35=X because that is a waste of time and totally not nice.

Regards,
Gunnar




Gunnar Harms

On May 29, 2013, at 2:15 PM, Mike Gatny wrote:

It is typical to set PersistMessages=Y, ResetOnLogon=Y, and use the initator/acceptor constructor that takes no LogFactory argument.  If you want to do more specific filtering, the LogFactory and Log interfaces exist for this reason and are simple to derive from.

On May 29, 2013 6:41 AM, "Gunnar Harms" <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi All,

I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).

It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).


What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.

Also some periodically running script to truncate the log files is far from optimal for obvious reasons.


I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).


Thanks for reading and for any help,
Gunnar





------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.




--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.


------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Mike Gatny
In reply to this post by Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:
Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available

I've run into this before myself and I agree that it might be nice to have access to something other than the raw string in the Log interface.  However, it is also desirable to log the message immediately (and therefore raw) so that we have a record of it in case an error occurs when we try to process it.  Maybe the answer is to augment the Log interface to have onIncoming/onOutgoing and additionally onIncomingRaw/onOutgoingRaw callbacks.  Then you could implement whatever makes sense for your app.

In the meantime, however: see Message::identifyType() in Message.h, which takes a raw string and returns the MsgType.

--
Mike Gatny
Connamara Systems, LLC

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: How to suppress 35=X messages in log file

Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


Hi Mike,

I agree. And thanks for the Message::identifyType() hint. 

Regards,
Gunnar

Gunnar Harms

HiQ Invest
Herengracht 442 
1017 BZ Amsterdam

On May 30, 2013, at 7:27 PM, Mike Gatny wrote:

On Thu, May 30, 2013 at 2:52 AM, Gunnar Harms <[hidden email]> wrote:
Deriving from the FileLogFactory and from FileLog to create my own derived FileLog is probably easy but in the onOutgoing method of the Log object the message type is not available

I've run into this before myself and I agree that it might be nice to have access to something other than the raw string in the Log interface.  However, it is also desirable to log the message immediately (and therefore raw) so that we have a record of it in case an error occurs when we try to process it.  Maybe the answer is to augment the Log interface to have onIncoming/onOutgoing and additionally onIncomingRaw/onOutgoingRaw callbacks.  Then you could implement whatever makes sense for your app.

In the meantime, however: see Message::identifyType() in Message.h, which takes a raw string and returns the MsgType.

--
Mike Gatny
Connamara Systems, LLC


------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Bug in processing resend requests?

Gunnar Harms
In reply to this post by Gunnar Harms
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hello all,

We wrote an acceptor type application with QF. Sometimes it accepts a resend request but many times it rejects them, saying that the message is invalid. All are received from the same client and the rejected resend requests are constructed exactly the same way as are the accepted ones. Below are some examples. It looks QF is wrong to reject the first one?

Invalid ResendRequest (according to QuickFIX) examples:

20140121-06:33:31.239 : 8=FIX.4.2^A9=64^A35=2^A49=HIQ4^A56=HIQFIX^A52=20140121-06:33:31^A34=1209^A7=1^A16=2915^A10=153^A
20140121-06:33:31.239 : Received ResendRequest FROM: 1 TO: 2915
20140121-06:33:31.244 : Invalid message: SOH not found at end of field


Accepted ResendRequest example:

20140121-07:07:09.617 : 8=FIX.4.2^A9=64^A35=2^A49=HIQ4^A56=HIQFIX^A52=20140121-07:07:09^A34=1357^A7=1^A16=4143^A10=159^A
20140121-07:07:09.617 : Received ResendRequest FROM: 1 TO: 4143
20140121-07:07:09.624 : Sent SequenceReset TO: 13
20140121-07:07:09.624 : Resending Message: 13
20140121-07:07:09.625 : Resending Message: 14
etc.          


Thank you for your time,

Gunnar


On May 29, 2013, at 12:30 PM, Gunnar Harms wrote:

> Hi All,
>
> I want to suppress the 35=X messages in the FIX.4.2-<X>-<Y>.messages.current.log files and log all other messages (administrative, marketdatarequestrejects, etc.).
>
> It would be easy if i could derive my own Session class from FIX::Session and override the sendRaw/send methods to not make the m_state.onOutgoing( string ) call for these message types but this ssems not possible (because in acceptor class the sessions are created from calls to a locally defined SessionFactory variable).
>
>
> What i could try is  deriving from ScreenLogFactory (say MyScreenLogFactory), override in that class some create() method(s) to create not a ScreenLog but a derivation (say MyScreenLog) of it and in that derived class override onOutgoing(). But then I must search in the message string for subsstrings like 35=X which is a waste of time since in FIX::Session send methods is available the MsgType.
>
> Also some periodically running script to truncate the log files is far from optimal for obvious reasons.
>
>
> I am perhaps missing something simple because I cannot imagine that writing each 35=X to log file is acceptable for other users of QF (for us it is really a show stopper, log files get toooo big).
>
>
> Thanks for reading and for any help,
> Gunnar
>
>
>
>


------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Bug in processing resend requests?

BRIDGETT JOHNSON
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi all,


I getting the following error when building quickfix;


[oran@localhost quickfix]$ ./bootstrap
[oran@localhost quickfix]$ ./configure --with-allocator=pool
.
.
.
checking for __gnu_cxx::__pool_alloc... configure: error: no


My development environment is as follows;


[oran@localhost quickfix]$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto
--enable-plugin --enable-initfini-array --enable-java-awt=gtk
--disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib
--with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install
--with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install
--with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) 



Any ideas as to the cause?


Thanks,
Oran

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers