FIX Trading Community

 

 Remember me

Register  |   Lost password?

FIX Technology

Discussions > FIX Technology > Class Cast Exceptions - FIXT.1.1 - ApplVerID=6

Class Cast Exceptions - FIXT.1.1 - ApplVerID=6

Complete message thread from old site

Philip Quinn
1007 days ago,(2011/07/22)

Hi,

I work for a trade routing system where our client feeds to two different systems. One of these systems is on FIX.5.0 and the other FIX.4.4. I was under the impression that both message types could be fed on the same session as follows:

TransportDataDictionary=FIXT11.xml
AppDataDictionary=FIX44.xml
AppDataDictionary.FIX.5.0=FIX50.xml
BeginString=FIXT.1.1
DefaultApplVerID=FIX.5.0

On messages going to system A(FIX5.0) we set ApplVerID=7.
On messages going to system B(FIX4.4) we set ApplVerID=6.

However, when we feed messages down to system B we get the followig:

java.lang.ClassCastException: quickfix.fix50.ExecutionReport cannot be cast to quickfix.fix44.Message

Does anyone know if there is a solution for this, perhaps I have missed some config?

Any advice would be greatly appreciated

Regrads Phil

Hanno Klein
1004 days ago,(2011/07/25)

Is the receiving FIX 4.4 system also using FIXT 1.1 as transport? Both sides need to use FIXT 1.1 and are then be able to exchange different message versions on the same session.

> Hi,
>
> I work for a trade routing system where our client feeds to two different systems. One of these systems is on FIX.5.0 and the other FIX.4.4. I was under the impression that both message types could be fed on the same session as follows:
>
> TransportDataDictionary=FIXT11.xml
> AppDataDictionary=FIX44.xml
> AppDataDictionary.FIX.5.0=FIX50.xml
> BeginString=FIXT.1.1
> DefaultApplVerID=FIX.5.0
>
> On messages going to system A(FIX5.0) we set ApplVerID=7.
> On messages going to system B(FIX4.4) we set ApplVerID=6.
>
> However, when we feed messages down to system B we get the followig:
>
> java.lang.ClassCastException: quickfix.fix50.ExecutionReport cannot be cast to quickfix.fix44.Message
>
> Does anyone know if there is a solution for this, perhaps I have missed some config?
>
> Any advice would be greatly appreciated
>
> Regrads Phil

John Cameron
1004 days ago,(2011/07/25)

The class cast that you refer to is a characteristic of the particular FIX implementation you are using - ie QuickFIX.

It does not reflect any limitation of the FIX protocol itself.

You would be best advised to post your question on the QuickFIX website.

> Hi,
>
> I work for a trade routing system where our client feeds to two different systems. One of these systems is on FIX.5.0 and the other FIX.4.4. I was under the impression that both message types could be fed on the same session as follows:
>
> TransportDataDictionary=FIXT11.xml
> AppDataDictionary=FIX44.xml
> AppDataDictionary.FIX.5.0=FIX50.xml
> BeginString=FIXT.1.1
> DefaultApplVerID=FIX.5.0
>
> On messages going to system A(FIX5.0) we set ApplVerID=7.
> On messages going to system B(FIX4.4) we set ApplVerID=6.
>
> However, when we feed messages down to system B we get the followig:
>
> java.lang.ClassCastException: quickfix.fix50.ExecutionReport cannot be cast to quickfix.fix44.Message
>
> Does anyone know if there is a solution for this, perhaps I have missed some config?
>
> Any advice would be greatly appreciated
>
> Regrads Phil

Philip Quinn
1004 days ago,(2011/07/25)

Hi,

Yeah, both sides are on FIXT1.1 and I am able to send messages down on the session on FIX.5.0. I have also found where the class is being incorrectly cast...

Anyway, as John hassaid - this isnt really a protocol issue, so i have posted on
http://www.quickfixengine.org/forum/comments.php?DiscussionID=321
If anyone has further commoents, please do post here.

Thank you for your comments! Will hopefully find a suitable solution in due course.

Regrads
Phil

> Is the receiving FIX 4.4 system also using FIXT 1.1 as transport? Both sides need to use FIXT 1.1 and are then be able to exchange different message versions on the same session.
>
> > Hi,
> >
> > I work for a trade routing system where our client feeds to two different systems. One of these systems is on FIX.5.0 and the other FIX.4.4. I was under the impression that both message types could be fed on the same session as follows:
> >
> > TransportDataDictionary=FIXT11.xml
> > AppDataDictionary=FIX44.xml
> > AppDataDictionary.FIX.5.0=FIX50.xml
> > BeginString=FIXT.1.1
> > DefaultApplVerID=FIX.5.0
> >
> > On messages going to system A(FIX5.0) we set ApplVerID=7.
> > On messages going to system B(FIX4.4) we set ApplVerID=6.
> >
> > However, when we feed messages down to system B we get the followig:
> >
> > java.lang.ClassCastException: quickfix.fix50.ExecutionReport cannot be cast to quickfix.fix44.Message
> >
> > Does anyone know if there is a solution for this, perhaps I have missed some config?
> >
> > Any advice would be greatly appreciated
> >
> > Regrads Phil