1) Quickfix uses 1 thread per session. An engine that you can read is the whole process.
ThreadedSocketInitiator is used when you want to use the engine as a client. You connect to another server and send messages. You initiate connections, hence the name initiator. You create a new thread for each session configured by the server.
ThreadedSocketAcceptor is used when you want to use the engine as a server. You accept the compounds, therefore, the acceptor. When you set up a new session with a client, a new thread is generated only for that particular session.
Remember that all sessions have a unique identifier to distinguish between multiple sessions. A server can have multiple sessions with the same client and vice versa.
2) Yes. But the receiver must initiate a ResendRequest message for the sender to send it again. It will do this automatically by checking the delay flag in the configuration file if it does not receive a response to an already sent message.
Dumbcoder
source share