I am seeing the following issue with the camel-quickfix component. I am
sending a response FIX message back to a session defined in my quickfix.ini
file. The session is defined as follows(some details ommitted for security
All other connection parameters are default.
The return message is like so:
OPTION (LN) J15 4.75 EURO OPTION (LN) V15 5
In the message, I have 49(SenderCompID)=EXCHANGE, 56(TargetCompID)=CLIENT,
So I would expect the message to be sent to the above session. However I get
2015-01-28 13:26:12.537 DEBUG [Camel (fixgateway) thread #1 -
(org.apache.camel.processor.Pipeline:76) Message exchange has failed: so
breaking out of pipeline for exchange: Exchange[JmsMessage[JmsMessageID:
ID:25822_f_1422473172571_f_37]] Exception: java.lang.IllegalStateException:
Unknown session: FIX.4.4:EXCHANGE->CLIENT/trader
In the code, I see under QuickfixjProducer.java, that the SessionID is taken
and if not found there, then it is obtained by looking up
The problem occurs in my situation above, where I have defined the session
just at the CompID level. I actually have several session defined in my
So the first method of getting the SessionID will not work, since the
endpoint has multiple sessions. Then when the code uses MessageUtils, it
creates a SessionID from the message, which it will interpret as a specific
session to 57=trader.
Instead of looking up session FIX.4.4:EXCHANGE->CLIENT, it will attempt to
lookup FIX.4.4:EXCHANGE->CLIENT/trader, which does not exist!
I propose making a code change to lookup the session based on the SessionID
header value (SessionID=FIX.4.4:EXCHANGE->CLIENT). This would allow the end
user to specify which session to send the message to, without relying on the
config file or the message itself.
If it is OK, I would like to open a JIRA and submit a pull request in
Jose E. Chavez
View this message in context: http://camel.465427.n5.nabble.com/Unable-to-send-message-in-camel-quickfix-component-cannot-find-session-tp5762367.html
Sent from the Camel - Users mailing list archive at Nabble.com.