Re: [Quickfix-developers] Expected BodyLength
Brought to you by:
orenmnero
From: Oren M. <or...@qu...> - 2005-01-12 00:15:34
|
Changed since when? Are you saying this code segment used to work? If =20= so what was the previous version you were using? --oren On Jan 11, 2005, at 4:35 PM, Patrick Flannery wrote: > Quick Fix Developers, > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 I am sending a MassQuote message = from an Initiator to an =20 > Acceptor using QuickFIX 1.9.4, the message is rejected by the acceptor = =20 > with error: > > "<20050111-22:27:14, FIX.4.4:TW->CLIENT1, event> > > =A0 (Invalid message: Expected BodyLength=3D128, Recieved = BodyLength=3D122)" > > =A0 > > I sent this message: > > "8=3DFIX.4.49=3D12235=3Di34=3D349=3DCLIENT152=3D20050111-22:27:=20 > 14.68756=3DTW117=3D0296=3D1302=3D0304=3D1295=3D155=3D0:0:0:=20 > call132=3D14133=3D0134=3D15135=3D010=3D010" > > =A0 > > Using C# code: > > =A0 int qID =3D 0; > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 QuickFix44.MassQuote mq =3D new = MassQuote(); > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 foreach(QuoteRequest q in = massQuote.QuotesRequests) > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 { > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = q.Parameters[CTCFields.ProductKey.ToString()] =3D =20 > q.ProductKey; > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 CTCDictionary param =3D = new CTCDictionary(q.Parameters); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = QuickFix44.MassQuote.NoQuoteSets grp =3D new =20 > QuickFix44.MassQuote.NoQuoteSets(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0QuickFix44.MassQuote.NoQu= oteSets.NoQuoteEntries =20 > fields =3D new QuickFix44.MassQuote.NoQuoteSets.NoQuoteEntries(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 QuoteSetID sID =3D new = QuoteSetID(qID.ToString()); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 grp.set(sID); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 double bidPX =3D = Convert.ToDouble(param.GetBidPrice()); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 double askPX =3D = Convert.ToDouble(param.GetAskPrice()); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 double bidSize =3D = param.GetBidSize(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 double askSize =3D = param.GetAskSize(); > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(new = BidPx(bidPX)); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(new = BidSize(askPX)); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(new = OfferPx(bidSize)); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(new = OfferSize(askSize)); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(new =20 > Symbol(param.GetProductKeyStruct().ToString())); > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0grp.addGroup(fields); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 TotNoQuoteEntries tot =3D = new TotNoQuoteEntries(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 tot.setValue(1);=A0=A0=A0 > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 grp.set(tot); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 NoQuoteEntries qu =3D = new NoQuoteEntries(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 QuoteEntryID id =3D new = QuoteEntryID(qID.ToString()); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fields.set(id); > > =A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 qu.setValue(1); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 grp.set(qu); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 qID++; > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 mq.addGroup(grp); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 } > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 mq.set(new QuoteID("0")); > > =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0NoQuoteSets no =3D new = NoQuoteSets(); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 no.setValue(massQuote.Count); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 mq.set(no); > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Send(mq); > > =A0 > > Does anyone know why this would happen?=A0 Has any of the code =20 > responsible for repeated groups changed? > > =A0 > > =A0 > > Thanks in advance > > =A0 > > Patrick Flannery |