For case 1, offhand I'd hypothesize that your counterparty's server
simply doesn't support messages of type 'h'.
FIX is just a transmission protocol; FIX compliance doesn't require
supporting all (or even more than a few) message types. You should
definitely check your counterparty's interface documentation to see if
'h' is a supported message type.
It actually works the same for you: If you crack a message type XXX
and you don't have a OnMessage(XXX) handler, QuickFIX interprets that
as an unsupported type and will send a similar 'h' message to the
For case 2, I could be mistaken, but I don't think admin messages
(types '0'-'5') are crackable. (Though now that I think about it, I
guess I've never explicitly tried it). The message you pasted, Reject
('3'), is an admin message, so if I'm correct, it won't crack. You
can put some handling code in your fromAdmin method though if you'd
like; putting a switch construct around field 35 is not an uncommon
thing to do there.
Other messages, such as ExecutionReport or BusinessMessageReject,
should be properly routed to the appropriate OnMessage(type) call. I
don't see anything wrong with your fromApp() method (though I might
recommend putting the cout _before_ the crack() call instead of
On Wed, May 25, 2011 at 9:27 PM, Sarkar, Arup <sarkar.arup@...> wrote:
> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
> QuickFIX Support: http://www.quickfixengine.org/services.html
> I am getting the following messages from my FIX server. My question is why I am getting this?
> Case 1:
> 13:00:28.679 : 8=FIX.4.4
> 13:00:28.693 : 8=FIX.4.4
> 58=Unsupported Message Type
> Both the above messages are generated from server. For MsgType=j, tag 45=2 which means that the previous trading session status message had a problem?
> Case 2:
> Please see the attached corresponding Application.h and Application.cpp, I have cracked message from fromAdmin, fromApp and have the corresponding methods.
> void Application::onMessage(const FIX44::Reject& message, const FIX::SessionID&)
> void Application::onMessage(const FIX44::BusinessMessageReject& message, const FIX::SessionID&)
> My understanding is that code will automatically invoke the corresponding method in Application.cpp since fromAdmin, fromApp is cracked. Do I have to call in my main program like application.onMessage(ExecutionReportMessage, session) ? I would like to store the messages from server in database, how can I achieve it?
> 20110525-19:17:33.273 :
> 58=Tag not defined for this message type
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> Quickfix-developers mailing list