{{Quickfixn}} FIX upgrade 1.8 logout event issue

Grant Birchmeier gbirchmeier at connamara.com
Mon Mar 4 07:53:37 PST 2019


Also, let me see your config file.  I have a hunch that something is wrong
in there.

On Mon, Mar 4, 2019 at 8:11 AM Mike Gatny <mgatny at connamara.com> wrote:

> Wow interesting.  Nice debugging there! Can you send us the offending
> message (sensitive fields sanitized as needed) that caused the exception?
> --
> Mike Gatny
> Connamara Systems
>
>
> On Mon, Mar 4, 2019 at 6:30 AM Abhay Vora <
> Abhay.Vora.Contractor at dodgeandcox.com> wrote:
>
>> Thanks Grant. I debugged the QuickFIX project and found that the
>> exception is being thrown in DefaultMessageFactoryClass for incoming
>>  messages that have group tags present.
>>
>>
>>
>> _factories variable below is null and constructor which populates this
>> variable is also not getting called which results in the error highlighted
>> in yellow below.
>>
>>
>>
>> Can you please suggest what might be causing this issue?
>>
>>
>>
>> public class DefaultMessageFactory : IMessageFactory
>>
>>     {
>>
>>         private static int _dllLoadFlag;
>>
>>         private readonly IReadOnlyDictionary<string, IMessageFactory>
>> _factories;
>>
>>
>>
>>         /// <summary>
>>
>>         /// This consctructor will
>>
>>         /// 1. Dynamically load all QuickFix.*.dll assemblies into the
>> current appdomain
>>
>>         /// 2. Find all IMessageFactory implementations in these
>> assemblies (must have parameterless constructor)
>>
>>         /// 3. Use them based on begin strings they support
>>
>>         /// </summary>
>>
>>         public DefaultMessageFactory()
>>
>>         {
>>
>>             var assemblies = GetAppDomainAssemblies();
>>
>>             var factories = GetMessageFactories(assemblies);
>>
>>             _factories = ConvertToDictionary(factories);
>>
>>         }
>>
>>
>>
>>         /// <summary>
>>
>>         /// This constructor will save the IMessageFactory instances
>> based on what they return from GetSupportedBeginStrings()
>>
>>         /// </summary>
>>
>>         /// <param name="factories">IMessageFactory instances</param>
>>
>>         public DefaultMessageFactory(IEnumerable<IMessageFactory>
>> factories)
>>
>>         {
>>
>>             _factories = ConvertToDictionary(factories);
>>
>>         }
>>
>>
>>
>>         /// <summary>
>>
>>         /// This constructor will
>>
>>         /// 1. Locate all IMessageFactory implementations from the
>> provided assemblies (must have parameterless constructor)
>>
>>         /// 2. Use them based on begin strings they support
>>
>>         /// </summary>
>>
>>         /// <param name="assemblies">Assemblies that may contain
>> IMessageFactory implementations</param>
>>
>>         public DefaultMessageFactory(IEnumerable<Assembly> assemblies)
>>
>>         {
>>
>>             var factories = GetMessageFactories(assemblies);
>>
>>             _factories = ConvertToDictionary(factories);
>>
>>         }
>>
>>
>>
>>         public Group Create(string beginString, string msgType, int
>> groupCounterTag)
>>
>>         {
>>
>>             // FIXME: This is a hack.  FIXT11 could mean 50 or 50sp1 or
>> 50sp2.
>>
>>             // We need some way to choose which 50 version it is.
>>
>>             // Choosing 50 here is not adequate.
>>
>>             var key = beginString.Equals(FixValues.BeginString.FIXT11)
>>
>>                 ? FixValues.BeginString.FIX50
>>
>>                 : beginString;
>>
>>
>>
>>             if (_factories.TryGetValue(key, out var factory))
>>
>>             {
>>
>>                 return factory.Create(beginString, msgType,
>> groupCounterTag);
>>
>>             }
>>
>>             else
>>
>>             {
>>
>>                 throw new UnsupportedVersion(beginString);
>>
>>             }
>>
>>         }
>>
>>
>>
>> Thanks
>>
>> *From:* Quickfixn [mailto:quickfixn-bounces at lists.quickfixn.com] *On
>> Behalf Of *Grant Birchmeier
>> *Sent:* Monday, February 25, 2019 8:31 AM
>> *To:* Mailing list for QuickFIX/n
>> *Subject:* Re: {{Quickfixn}} FIX upgrade 1.8 logout event issue
>>
>>
>>
>> *This is an EXTERNAL EMAIL. Stop and think before clicking a link or
>> opening attachments.*
>>
>> I added a small improvement sometime back that adds the found BeginString
>> into field 58, so you'll at least know what the engine thinks it's actually
>> seeing.  Can you make a build from latest and give it a try?
>>
>>
>>
>> NOTE: there was a change that split the QF/n binaries into message
>> specific DLLs, so you'll now need to include both QuickFix.dll and
>> QuickFix.FIX44.dll.  (You can find both in Messages\FIX44\bin\<x>\<x>\)
>>
>>
>>
>> When I saw this problem, it turned out that my QuickFix.dll was not
>> finding my QuickFix.FIX44.dll due to some wacky windows hijinks.  I don't
>> expect that to be the case for you (since 1.8 didn't split the dll yet),
>> but we can see if it goes away in the latest codebase.  And if it doesn't
>> go away, the updated error message might give us a clue.
>>
>>
>>
>> -Grant
>>
>>
>>
>> On Mon, Feb 25, 2019 at 4:44 AM Abhay Vora <
>> Abhay.Vora.Contractor at dodgeandcox.com> wrote:
>>
>> Hi,
>>
>>
>>
>> I am working on an application which sends and receives  FIX messages to
>> the BLP session. Our application is a WCF service hosted on Windows IIS.
>> This application has business logic to send and process the FIX messages
>> and it uses FIX version 1.8 dlls to establish connection with Bloomberg
>> session.
>>
>>
>>
>> We are able to send message type = D to Bloomberg(BLP) session. On
>> processing this message, BLP session is sending the  execution report
>> acknowledgement message (35=8, 150=0) successfully to us. While fix engine
>> receives and parses this message, it is throwing an error with message type
>> = 5(logout) to the BLP session. Below is the message logged in the fixstore
>> log file:  8=FIX.4.49=8535=549=IRS56=BLP34=352=20190225-08:44:16.48358=*Incorrect
>> BeginString*10=179.
>>
>>
>>
>> This issue started coming when we started to use 1.8 version client side
>> FIX dlls.  Please note, when we deploy this application(which contains our
>> business logic + FIX dlls ) and restart the WCF service, everything works
>> fine as expected. The issue starts on * subsequent restart* of this IIS
>> service. If we deploy the bits again on encountering the *Incorrect
>> BeginString* error, it starts to work again till the point we do not
>> restart the service. So, issue is that restarting the service is causing
>> trouble and starts sending logout messages to BLP session. Only way to
>> correct is to redeploy the bits again.
>>
>>
>>
>> Can you please suggest what might be causing this issue as everything is
>> working fine if we use our existing 1.1 version FIX dlls.
>>
>>
>>
>> Many Thanks
>> ------------------------------
>>
>> Please follow the hyperlink to important disclosures.
>> https://www.dodgeandcox.com/disclosures/email_disclosure_funds.html
>>
>> _______________________________________________
>> Quickfixn mailing list
>> Quickfixn at lists.quickfixn.com
>> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.quickfixn.com_listinfo.cgi_quickfixn-2Dquickfixn.com&d=DwMFaQ&c=AQ5yCnCZOLz3HYYKvbnj5ppyDxNZuxkzDrQyIFuxC1E&r=JPV8QVxFRDcfzBl0MFbNPfqe_45vCThWzqPhDx41k-3u7y246hC-MXudLMhBfk3D&m=kiFqqIJ6Tfru1jnz1CyLgJUB2wmIrT6pKQXY9kwjeNY&s=KTUWq13mMvn9P5ib4qmykpbxA_xiyPQaOTK_Ppz3xFM&e=>
>>
>>
>>
>>
>> --
>>
>> Grant Birchmeier
>>
>> *Connamara Systems, LLC*
>>
>> *Made-To-Measure Trading Solutions.*
>>
>> Exactly what you need. No more. No less.
>>
>> http://connamara.com
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__connamara.com&d=DwMFaQ&c=AQ5yCnCZOLz3HYYKvbnj5ppyDxNZuxkzDrQyIFuxC1E&r=JPV8QVxFRDcfzBl0MFbNPfqe_45vCThWzqPhDx41k-3u7y246hC-MXudLMhBfk3D&m=kiFqqIJ6Tfru1jnz1CyLgJUB2wmIrT6pKQXY9kwjeNY&s=O6qmzWqMMXHJoXHnN92vgGTrK3IlqMEzHYbKE-fQ_AM&e=>
>> _______________________________________________
>> Quickfixn mailing list
>> Quickfixn at lists.quickfixn.com
>> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>


-- 
Grant Birchmeier
*Connamara Systems, LLC*
*Made-To-Measure Trading Solutions.*
Exactly what you need. No more. No less.
http://connamara.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20190304/9a1198aa/attachment.htm>


More information about the Quickfixn mailing list