Warm tip: This article is reproduced from serverfault.com, please click

java-比较 QuickFIXJ 中的两个 FixMessage

(java - Compare two FixMessages in QuickFIXJ)

发布于 2011-03-22 10:39:58

我需要在 QuickFIXJ 中比较两个修复消息(比如两个 ExecutionReports)。

让我们称他们er1er2

现在,我比较它们的意思是一堆字段必须相同。例如我关心标签 55、标签 207、标签 1 是相同的。但不是其他人。

在我看来,这样做的唯一方法是编写像这样昂贵(性能方面)的东西:

public static boolean compare(ExecutionReport er1,ExecutionReport er2) 
{
   StringField sf1 = new StringField(55);
   StringField sf2 = new StringField(55);

   er.getField(sf1);
   er.getField(sf2);

   if (sf1.getValue().equals(sf2.getValue())==false) return false;

   ... // continue with all of the other fields
   ... // in the same way

}

我错过了什么吗?有人可以建议更好/更快的方法吗?

Questioner
chacko
Viewed
0
35k 2017-11-27 20:49:58

似乎没有在API 中比较两个修复消息的功能但最好不要比较整个消息字段,最好只比较那些必填字段。如果你确定这些字段将出现在 FIX 消息中,则扩展将是。

另一种选择是在与你发送和接收消息的会话不同的线程中进行比较。如果不知道执行报告下游会发生什么,或者如果执行报告匹配,你将采取什么行动,就很难决定是否需要在同一线程中比较消息。