3

*messages.log ファイルで quickFIX/J からのメッセージを再生する方法はありますか?

この質問はしばらく前に尋ねられたようですが、私は新しい開発について悩んでいます: Store And Replay WCF Messages

その目的は、FIX 接続の反対側が使用できない場合でもメッセージを再実行できるようにすることです。

4

1 に答える 1

0

セットアップで 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が無料でオープン ソースであることを知らない場合に備えて、確認することをお勧めします。

于 2012-11-07T22:59:51.820 に答える