[Quickfix-developers] Resending Messages
Brought to you by:
orenmnero
|
From: Belinda I. <Bel...@gb...> - 2006-03-22 01:22:50
|
Hi Everyone,
We are having some problems resending messages when a resend request is
received. The error we are getting back is as follows -
58=3DREJECT Missing or invalid value for conditionally required fields =
in
PartyID repeating group.
I think the problem may be related to groups not getting copied in the
correct order when the message to be resent is created.
In Session#nextResendRequest the message is created via 'fromString' -
Message msg =3D new Message((String) messages.get(i), dataDictionary);
We have done some unit tests to confirm that the order is different when
a message is created via 'fromString'. =20
Here is our validate method, -
private void validate(Message message) throws InvalidMessage {
MessageFactory messageFactory =3D new
DefaultMessageFactory();=09
String msgType =3D
MessageUtils.getMessageType(message.toString());
Message message2;
message2 =3D
messageFactory.create(dataDictionary.getVersion(), msgType);
message2.fromString(message.toString(), dataDictionary,
false);
System.out.println("Input Message - " +
message.toXML());
System.out.println("Message 2 - " + message2.toXML());
}
And here is the output. The group fields are in different order -
Input Message - <?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
<message>
<header>
<field number=3D"8"><![CDATA[FIX.4.4]]></field>
<field number=3D"9"><![CDATA[171]]></field>
<field number=3D"35"><![CDATA[D]]></field>
<field number=3D"49"><![CDATA[SenderCompId]]></field>
<field number=3D"56"><![CDATA[TargetCompId]]></field>
</header>
<body>
<field number=3D"11"><![CDATA[183339]]></field>
<field number=3D"22"><![CDATA[8]]></field>
<field number=3D"38"><![CDATA[1]]></field>
<field number=3D"40"><![CDATA[2]]></field>
<field number=3D"44"><![CDATA[12]]></field>
<field number=3D"48"><![CDATA[BHP]]></field>
<field number=3D"54"><![CDATA[2]]></field>
<field number=3D"55"><![CDATA[BHP]]></field>
<field number=3D"59"><![CDATA[1]]></field>
<field number=3D"60"><![CDATA[20060223-22:38:33]]></field>
<field number=3D"526"><![CDATA[3620]]></field>
<group>
<field number=3D"448"><![CDATA[8]]></field>
<field number=3D"447"><![CDATA[D]]></field>
<field number=3D"452"><![CDATA[4]]></field>
</group>
<group>
<field number=3D"448"><![CDATA[AAA35354]]></field>
<field number=3D"447"><![CDATA[D]]></field>
<field number=3D"452"><![CDATA[3]]></field>
</group>
</body>
<trailer>
<field number=3D"10"><![CDATA[168]]></field>
</trailer>
</message>
Message 2 - <?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
<message>
<header>
<field number=3D"8"><![CDATA[FIX.4.4]]></field>
<field number=3D"9"><![CDATA[171]]></field>
<field number=3D"35"><![CDATA[D]]></field>
<field number=3D"49"><![CDATA[SenderCompId]]></field>
<field number=3D"56"><![CDATA[TargetCompId]]></field>
</header>
<body>
<field number=3D"11"><![CDATA[183339]]></field>
<field number=3D"22"><![CDATA[8]]></field>
<field number=3D"38"><![CDATA[1]]></field>
<field number=3D"40"><![CDATA[2]]></field>
<field number=3D"44"><![CDATA[12]]></field>
<field number=3D"48"><![CDATA[BHP]]></field>
<field number=3D"54"><![CDATA[2]]></field>
<field number=3D"55"><![CDATA[BHP]]></field>
<field number=3D"59"><![CDATA[1]]></field>
<field number=3D"60"><![CDATA[20060223-22:38:33]]></field>
<field number=3D"453"><![CDATA[2]]></field>
<field number=3D"526"><![CDATA[3620]]></field>
<group>
<field number=3D"447"><![CDATA[D]]></field>
<field number=3D"448"><![CDATA[8]]></field>
<field number=3D"452"><![CDATA[4]]></field>
</group>
<group>
<field number=3D"447"><![CDATA[D]]></field>
<field number=3D"448"><![CDATA[AAA35354]]></field>
<field number=3D"452"><![CDATA[3]]></field>
</group>
</body>
<trailer>
<field number=3D"10"><![CDATA[168]]></field>
</trailer>
</message>
Has anyone else had any issue with this?
Any help is appreciated.
Regards,
Belinda
|