<div dir="ltr"><span style="font-size:12.8000001907349px">i'm building an adapter between a proprietary protocol and fix in .NET. I have multiple users connecting via proprietary protocol, whose orders/requests i will pass on via FIX to a remote server. I am mulling about between two different implementations:</span><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">1) one FIX connection to remote server and all my users send over that connection</div><div style="font-size:12.8000001907349px">2) a FIX connection per user</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">I have both implementations currently and i'm leaning towards the second. However, i am wondering if there is any problem instantiating multiple SocketInitiator in same process with same settings (only thing i am modifying is the sendercompid). Will there be problems with concurrent writing to the message store and log? Other concurrency issues?</div><div style="font-size:12.8000001907349px">More generally, what is the 'accepted' pattern for this use case?</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Below is the code that generates my socketinitiator for case #2:</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><div>public static QuickfixApplication CreateApplication(string compId)</div><div>        {</div><div>            //create custom settings for this session</div><div>            var settings = new SessionSettings(new StringReader(Properties.Resources.QuickfixSettings));</div><div>            var newSession = new SessionID(settings.Get().GetString(SessionSettings.BEGINSTRING),</div><div>                compId, settings.Get().GetString(SessionSettings.TARGETCOMPID));</div><div>            var customSession = new QuickFix.Dictionary();</div><div>            customSession.SetString(SessionSettings.BEGINSTRING, settings.Get().GetString(SessionSettings.BEGINSTRING));</div><div>            customSession.SetString(SessionSettings.SENDERCOMPID, compId);</div><div>            settings.Set(newSession, customSession);</div><div><br></div><div>            //create quickfix application</div><div>            var myApp = new QuickfixApplication();</div><div>            var storeFactory = new FileStoreFactory(settings);</div><div>            var logFactory = new FileLogFactory(settings);</div><div>            var socketInitiator = new SocketInitiator(myApp, storeFactory, settings, logFactory);</div><div>            myApp.SocketInitiator = socketInitiator;</div><div><br></div><div>            return myApp;</div><div>        }</div></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Thanks for any help!</div></div>