{{Quickfixn}} Sending Email Message Problem

somnath pal palsomnath at hotmail.com
Tue Jul 15 10:52:17 PDT 2025


Hi Grant,

I can understand the volume of software and version management is not easy.

Finally we came to a conclusion and that is great.

I am also confused about your lates repo. Today morning, I downloaded from GitHub but that didn't help. Can you please point me to correct URL?

Thanks,
Somnath
________________________________
From: Quickfixn <quickfixn-bounces at lists.quickfixn.com> on behalf of Grant Birchmeier <gbirchmeier at connamara.com>
Sent: 15 July 2025 21:58
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com>
Subject: Re: {{Quickfixn}} Sending Email Message Problem

Somnath,

I apologize, I see now that the issue you are facing is very real.  It was documented in issue #196, and finally fixed with PR #959 earlier this year.  It will be in the next release (1.14), which I hope to have out by the end of August.

When I tried to reproduce your problem, I was using the latest repo source, so of course I didn't replicate the bug, because it was fixed!

To get going, you can clone or download the current github repo and build the dlls yourself.  If you have any questions about building, you can ask them here.

-Grant




On Mon, Jul 14, 2025 at 11:49 PM somnath pal <palsomnath at hotmail.com<mailto:palsomnath at hotmail.com>> wrote:
THIS IS HAPPENING IN YOUR CODE BASE, NOT WITH NUGET PACKAGE

                Console.WriteLine("View Executor status: "+HttpServerPrefix);
                Console.WriteLine("press <enter> to quit");
                Console.Read();

                srv.Stop();
                acceptor.Stop();

The above lines are from your executor sample.
After the stop, session count is not 0. But if I use nuget package, session count is 0. This is what I told you earlier, why the sessions are not cleared after stop.

To make sure, I downloaded the source code today again and found no difference.

Just add the following line after acceptor.Stop() and error should come.

                acceptor = new ThreadedSocketAcceptor(executorApp, storeFactory, settings, logFactory);

Thanks,
Somnath


________________________________
From: Quickfixn <quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>> on behalf of somnath pal <palsomnath at hotmail.com<mailto:palsomnath at hotmail.com>>
Sent: Tuesday, July 15, 2025 09:15
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: Re: {{Quickfixn}} Sending Email Message Problem

Actually, this acceptor is for relay messages. For few cases, we use 2 FIX Engine.
Remote Engine (with an Initiator)
Dual Engine (with an Initiator and Acceptor).
Dual Engine Receives the message in Acceptor session and send the same to broker via Initiator.

We use very few messages, and know which has repeating groups and code accordingly. So, we don't want to use Data Dictionary and that is how it is working for last 20 years without any issues.

It is good that you pointed out about CheckLatency. I could not find any information on this. Can you point me to any link or example where I could have details like the effect of CheckLatency=Y vs N.

In our case, the engine runs as windows service. I can create a small app to reproduce the problem. Is there any way I can send that for you to reproduce?

Thanks,
Somnath

Sent: Monday, July 14, 2025 22:06
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: Re: {{Quickfixn}} Sending Email Message Problem

Somnath,

Your report had me worried that we had a problem with Acceptor Stop/Start, but I'm just not able to reproduce your issue.

Methodology:  I've hacked the "Executor" example app to let me invoke Stop/Start on the acceptor, and changed it to use a FileLogFactory and FileStoreFactory.  I've changed its config to set every "ResetOn<X>" setting to =N.  For an initiator, I used the "TradeClient" example, also configured with every "ResetOn<X>=N".

I started up the Executor and called Start/Stop repeatedly with no problems.  Then I restarted it and connected the TradeClient to it, and again called Start/Stop repeatedly.  The TradeClient was able to reconnect after every time I called acceptor.Start().  I saw no exceptions on either side.  The logs and store files contained nothing that I didn't expect to see.

The Executor and TradeClient example sources are at: https://github.com/connamara/quickfixn/tree/master/Examples.  I've attached my modified Executor Program.cs so you can see how I called Stop/Start.

At this point I can only conclude that you are doing something unexpected in your code.  I think you should have a look at the Executor, and then compare that to the functions you are calling when you setup your own acceptor.  Anything you're doing that doesn't parallel a call in my example should be suspect.

-Grant


On Sat, Jul 12, 2025 at 12:20 AM somnath pal <palsomnath at hotmail.com<mailto:palsomnath at hotmail.com>> wrote:
One more point I should mention. I am developing this software for a firm. Due to whatever reasons they might have, I don't know why, they told me not to use NeGet package, but use the source code of the package. So I am using the QuickFixn source code in a class library and not using NeGet package.

Thanks,
Somnath
________________________________
From: somnath pal <palsomnath at hotmail.com<mailto:palsomnath at hotmail.com>>
Sent: 12 July 2025 10:30
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: Re: {{Quickfixn}} Sending Email Message Problem

I was not sure, why the email problem was happening. After investigation I am getting more and more information and sharing with you as I found. Answer of your questions:

1. ‎Yes 1.13.1 (.Net 8) is used. I am migrating to .Net Core

2. Start button click:
    Creates the acceptor socket and starts
    DualEngineAcceptor = new ThreadedSocketAcceptor(application, storeFactory, settings, logFactory, messageFactory);
    DualEngineAcceptor.Start();

     *


    Stop button click: DualEngineAcceptor.Stop();

3.  ConnectionType=acceptor, so it's acceptor. No need for counter party. Error happanes with or without connection to counter party initiator. So, counter party is not important here.

To reproduce the problem, with or without connection to counter party initiator,

A) Start button 1st click - all good
B) Stop button 1st click - all good
C) Start button 2nd click - error
D) Start button 3rd click - all good

So looks like, when the error happened at step C, all are reset and Step D worked. Probably, that reset hapenning at Step C, should have been also at Step B when Stopped.

Thanks,
Somnath


________________________________
From: Quickfixn <quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>> on behalf of Grant Birchmeier <gbirchmeier at connamara.com<mailto:gbirchmeier at connamara.com>>
Sent: Saturday, July 12, 2025 04:59
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: Re: {{Quickfixn}} Sending Email Message Problem

Ok, now you're telling me new things that would have been useful to know earlier.  You never said anyting about that File Store exception-- that's important!  Your questions and answers are kind of disorganized, it's a little hard to follow.

1. Are you sure you're using the latest release v1.13.1?  (".net8" is not a QF/n version.)

2. I don't need to know what your UI looks like.  Are your buttons calling acceptor.Start and acceptor.Stop?

3. Is that config for your Initiator or for your Acceptor?  What is the config on the other side?

4. The store error on stop/restart should not be happening.  I will try and find time to spin up a sample app and see if I can replicate it.

By the way, if you want to stick with your old C#-over-C++ wrapper until we figure this out, you could use Stunnel to wrap SSL around that connection.

-Grant

This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC.
_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com


--
[https://lh4.googleusercontent.com/1ZKItKWIoLUepUXvEXgEeZWBlntjas7UxLPLuLLnsApbxAcRepKELA_SwZBe1BWEZ3huC6sJdz2ZzvUYLNgu56Zcm8bo2R_iLzXZVjDmMo67675iop6mEMOg_Y6q8Mtz7ylOW9t8RazXt-tyJtEyhE0]<https://www.connamara.com>


Grant Birchmeier

Director of Engineering, Connamara

gbirchmeier at connamara.com<mailto:gbirchmeier at connamara.com>

This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC.
_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com


--
[https://lh4.googleusercontent.com/1ZKItKWIoLUepUXvEXgEeZWBlntjas7UxLPLuLLnsApbxAcRepKELA_SwZBe1BWEZ3huC6sJdz2ZzvUYLNgu56Zcm8bo2R_iLzXZVjDmMo67675iop6mEMOg_Y6q8Mtz7ylOW9t8RazXt-tyJtEyhE0]<https://www.connamara.com>

Grant Birchmeier

Director of Engineering, Connamara

gbirchmeier at connamara.com<mailto:gbirchmeier at connamara.com>

This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20250715/43c65c2b/attachment-0001.htm>


More information about the Quickfixn mailing list