|
From: Grant B. <gbi...@co...> - 2020-04-01 13:37:50
|
None of these configs will solve your problem. They might even make your problem harder to find and fix. Delete them. ValidateUserDefinedFields=N ValidateIncomingMessage=N ValidateUnorderedGroupFields=N Your FieldNotFound error has nothing to do with how you are constructing messages. This is an error that occurs when you are *receiving* messages that were sent by your counterparty. FieldNotFound means you are trying to read a field that isn't there (or maybe it's in a group but you are attempting to read it from the top-level body). Did you look at TestMarketdataRequest.java line 38? On Wed, Apr 1, 2020 at 5:47 AM Fuadazhar73 <fua...@gm...> wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J <http://www.quickfixj.org/documentation/QuickFIX/J> Support: > http://www.quickfixj.org/support/ > > > First i have problem with my fix about > > Out of order repeating group members > and for the solution i want to try add in my initiator config > ValidateUserDefinedFields=N > ValidateIncomingMessage=N > ValidateUnorderedGroupFields=N > > but when i want to hit my broker for market data request i got this error > > quickfix.FieldNotFound: Field was not found in message, field=55 > at quickfix.FieldMap.getField(FieldMap.java:223) > at quickfix.FieldMap.getString(FieldMap.java:237) > at > > com.dxtr.fastmatch.marketdatarequestapps.TestMarketdataRequest.fromApp(TestMarketdataRequest.java:38) > at quickfix.Session.fromCallback(Session.java:1847) > at quickfix.Session.verify(Session.java:1791) > at quickfix.Session.verify(Session.java:1862) > at quickfix.Session.next(Session.java:1047) > at quickfix.Session.next(Session.java:1204) > at > > quickfix.mina.SingleThreadedEventHandlingStrategy$SessionMessageEvent.processMessage(SingleThreadedEventHandlingStrategy.java:163) > at > > quickfix.mina.SingleThreadedEventHandlingStrategy.block(SingleThreadedEventHandlingStrategy.java:113) > at > > quickfix.mina.SingleThreadedEventHandlingStrategy.lambda$blockInThread$1(SingleThreadedEventHandlingStrategy.java:145) > at > > quickfix.mina.SingleThreadedEventHandlingStrategy$ThreadAdapter$RunnableWrapper.run(SingleThreadedEventHandlingStrategy.java:267) > at java.lang.Thread.run(Thread.java:748) > > i use this code for make marketdatarequest > quickfix.fix42.MarketDataRequest.NoRelatedSym group1 = new > quickfix.fix42.MarketDataRequest.NoRelatedSym(); > group1.set(new Symbol("ALL")); > marketDataRequest.addGroup(group1); > Session.sendToTarget(marketDataRequest, sessionID); > > so how to fix my problem ? and the next question is how to get value from > field like symbol, avgprice,etc > i have code like this > > MDReqID mdreqid = new MDReqID(); > SendingTime sendingtime = new SendingTime(); > NoMDEntries nomdentries = new NoMDEntries(); > quickfix.fix42.MarketDataIncrementalRefresh.NoMDEntries > group > = new > quickfix.fix42.MarketDataIncrementalRefresh.NoMDEntries(); > MDUpdateAction mdupdateaction = new MDUpdateAction(); > DeleteReason deletereason = new DeleteReason(); > MDEntryType mdentrytype = new MDEntryType(); > MDEntryID mdentryid = new MDEntryID(); > Symbol symbol = new Symbol(); > MDEntryOriginator mdentryoriginator = new > MDEntryOriginator(); > MDEntryPx mdentrypx = new MDEntryPx(); > Currency currency = new Currency(); > MDEntrySize mdentrysize = new MDEntrySize(); > ExpireDate expiredate = new ExpireDate(); > ExpireTime expiretime = new ExpireTime(); > NumberOfOrders numberoforders = new NumberOfOrders(); > MDEntryPositionNo mdentrypositionno = new > MDEntryPositionNo(); > > message.getField(nomdentries); > message.getField(sendingtime); > > message.getGroup(1, group); > > int list = nomdentries.getValue(); > for (int i = 0; i < list; i++) > { > message.getGroup(i + 1, group); > group.get(mdupdateaction); > if (mdupdateaction.getValue() == '2') > System.out.println("Enter"); > group.get(deletereason); > group.get(mdentrytype); > group.get(mdentryid); > group.get(symbol); > group.get(mdentryoriginator); > if (mdupdateaction.getValue() == '0') > group.get(mdentrypx); > group.get(currency); > if (mdupdateaction.getValue() == '0') > group.get(mdentrysize); > } > > System.out.printf("Got Symbol {0} Price {1}", > symbol.getValue(), mdentrypx.getValue()); > > > best regards, > > Fuad > > > > > -- > Sent from: http://quickfix-j.364392.n2.nabble.com/ > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com -- This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC. |