*messages.log ファイルで quickFIX/J からのメッセージを再生する方法はありますか?
この質問はしばらく前に尋ねられたようですが、私は新しい開発について悩んでいます: Store And Replay WCF Messages
その目的は、FIX 接続の反対側が使用できない場合でもメッセージを再実行できるようにすることです。
*messages.log ファイルで quickFIX/J からのメッセージを再生する方法はありますか?
この質問はしばらく前に尋ねられたようですが、私は新しい開発について悩んでいます: Store And Replay WCF Messages
その目的は、FIX 接続の反対側が使用できない場合でもメッセージを再実行できるようにすることです。
セットアップで FIX メッセージを繰り返すことはできませんでしたが、単体テストを使用し、QuickFIX/J マニュアルの例を使用して独自の単純なアクセプターを使用して、メッセージを「繰り返す」ことができました。
「FooApplication」を使用してメッセージを受信し、いくつかの QuoteRequests に応答/モックする単純なアクセプターを作成しました。
public static void main(String[] args) throws Exception {
// FooApplication is your class that implements the Application interface
FooApplication application = new FooApplication();
SessionSettings settings = new SessionSettings(new FileInputStream(fileName));
MessageStoreFactory storeFactory = new FileStoreFactory(settings);
LogFactory[] logFactories = new LogFactory[] {new FileLogFactory(settings)};
LogFactory logFactory = new CompositeLogFactory(logFactories);
MessageFactory messageFactory = new DefaultMessageFactory();
Acceptor acceptor = new SocketAcceptor(application, storeFactory, settings, logFactory, messageFactory);
acceptor.start();
}
次に、単体テストを使用して FooInitiator を開始し、たとえば FooClient から sendLogout() を呼び出します
public class FooClient extends quickfix.fix42.MessageCracker implements quickfix.Application {
// sendQuoteRequest
// sendNewOrderSingle
private boolean sendMessage(Message message) {
boolean result = false;
try {
result = Session.sendToTarget(message, session);
} catch (SessionNotFound e) {
logger.error("FooApplication SessionNotFound", e);
result = false;
}
return result;
}
public boolean sendLogout() {
return sendMessage(new Logout());
}
}
FIX メッセージのログを見ている場合は、HermesJMSが無料でオープン ソースであることを知らない場合に備えて、確認することをお勧めします。