gpt4 book ai didi

java - 在 fromApp 方法和 filStorePath 中的消息文件中收到不同的修复消息

转载 作者:行者123 更新时间:2023-12-01 19:44:02 25 4
gpt4 key购买 nike

我正在 try catch MarketDataIncrementalRefresh 消息。它有一个组 noMDEntries,我正在尝试解析它。

我有两个问题:

第一 - 我已经打印了 fromApp 方法中传入的消息,该消息与我在通过 FileStorePath 创建的文件中获得的消息不同。这怎么可能?然后我通过 message hacker 进行破解,但即使破解后,它也是与 fromApp

中收到的消息相同

来自fromApp的消息:

8=FIX.4.29=7535=X34=3649=XXXXXXXX52=2019011605:09:51.00056=XXXXXXXX262=1268=110=223

文件中收到的消息:

8=FIX.4.29=0019435=X49=XXXXXXXX56=XXXXXXXX34=3652=20190116-05:09:51.000262=1268=1279=1269=055=ES167=FUT200=201903541=20190315205=1518211=M207=CME100=XCME461=F15=USD270=249375271=20290=110=123

第二 - 在迭代组时我收到错误:

quickfix.FieldNotFound: 268, index=1
at quickfix.FieldMap.getGroup(FieldMap.java:633)

但是正如您所看到的,字段 268 已设置,我还通过 message.isSetField(268) 再次检查了它,结果是 true,就在尝试之后:

MarketDataIncrementalRefresh.NoMDEntries mdEntriesGroup = new MarketDataIncrementalRefresh.NoMDEntries();
message.getGroup(1, mdEntriesGroup);

它给出了上述错误。

FIX42.xml 看起来与我收到的消息中的字段顺序相同。:

 <message name='MarketDataIncrementalRefresh' msgtype='X' msgcat='app'>
<field name='MDReqID' required='Y' />
<field name='PriceFeedStatus' required='N' />
<group name='NoMDEntries' required='Y'>
<field name='MDUpdateAction' required='Y' />
<field name='MDEntryType' required='Y' />
<field name='Symbol' required='N' />
<field name='SecurityType' required='N' />
<field name='SecuritySubType' required='N' />
<field name='MaturityMonthYear' required='N' />
<field name='MaturityDate' required='N' />
<field name='MaturityDay' required='N' />
<field name='PutOrCall' required='N' />
<field name='StrikePrice' required='N' />
<field name='OptAttribute' required='N' />
<field name='DeliveryTerm' required='N' />
<field name='DeliveryDate' required='N' />
<field name='SecurityID' required='N' />
<field name='SecurityExchange' required='N' />
<field name='ExDestination' required='N' />
<field name='CFICode' required='N' />
<field name='Currency' required='N' />
<field name='MDEntryPx' required='N' />
<field name='MDEntrySize' required='N' />
<field name='MDEntryDate' required='N' />
<field name='MDEntryTime' required='N' />
<field name='MDEntryPositionNo' required='N' />
<field name='SecondaryOrderID' required='N' />
<field name='NumberOfOrders' required='N' />
</group>
<field name='ExchangeSendingTime' required='N' />
<field name='ExchangeTransactTime' required='N' />
<field name='ExchangeSeqNum' required='N' />
</message>

最佳答案

始终信任 FromApp()FromAdmin() 上的消息日志。日志是在引擎尝试解析消息之前记录的;回调发生在之后。如果解析时发生错误(就像您的情况一样),您在回调中看到的内容将是错误的(您所看到的)。

我以前见过你的问题。可能发生的情况是您的配置有错误,或者您配置的 DD xml 文件与对方的规范不准确匹配。

首先,您的配置文件应包含以下几行:

UseDataDictionary=Y

# for FIX4
DataDictionary=path/to/your/dd.xml

# for FIX5+
AppDataDictionary=path/to/your/FIX5whatever.xml
TransportDataDictionary=path/to/your/FIXT1.1.xml

第二,根据配置中的 DD 文件检查您的消息。重复组定义中的某些内容可能不正确。例如,组定义中可能缺少某个字段,并且解析器在遇到该字段时会提前退出该组。确保您的配置指向正确的 xml 文件。

(如果您修复上面的消息粘贴以包含可见的字段分隔符,我会回来帮助查看。)

关于java - 在 fromApp 方法和 filStorePath 中的消息文件中收到不同的修复消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54217056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com