{{Quickfixn}} Exception while processing the FIX messages

Grant Birchmeier gbirchmeier at connamara.com
Mon Jul 13 10:17:59 PDT 2020


The fix is in, see https://github.com/connamara/quickfixn/pull/632

Raju, please give it a shot.  I think if you download and build the latest
source, your problem will go away.  (The version-specific dlls are in
Messages/FIX*).

Campbell, thanks for catching my diagnosis mistake.  I would have been mad
at myself later!

On Mon, Jul 13, 2020 at 10:22 AM Grant Birchmeier <gbirchmeier at connamara.com>
wrote:

> It's built as 64.
>
> I'm putting in a fix.  When it's done, you can build the latest source.
> (Don't need to generate code or anything, just download a build.)
>
> I should merge the fix within the hour unless I run into trouble.
>
> On Mon, Jul 13, 2020 at 10:15 AM Veduruparthi Raju <
> rveduruparthi at gmail.com> wrote:
>
>> Thanks Campbell and Grant for your inputs.
>> Just to add that. It was intermittent issue in the beginning but now the
>> issue is serious as we were not able to process the trades at one go.
>>
>> Our product is a 64 bit application.
>> Is QuickFix.dll a 64 bit or a 32 bit ?
>>
>> Will there be any fix for this ? so i can download the updated dll ?
>>
>> Thanks,
>> --Raju.v
>>
>> On Mon, Jul 13, 2020 at 9:38 AM Grant Birchmeier <
>> gbirchmeier at connamara.com> wrote:
>>
>>> Ohhhhhh..... my god.
>>>
>>> Campbell, I think you are right.  Looking again at Raju's stacktrace,
>>> and it does originate in QF/n.  I was hasty.
>>>
>>> Here's the code in question:
>>>             var factoryTypes = assemblies
>>>                 .SelectMany(assembly => assembly.GetExportedTypes())
>>>                 .Where(IsMessageFactory)
>>>                 .ToList();
>>>
>>> Where assemblies is defined (and where I've added a potential fix):
>>>             var assemblies = AppDomain
>>>                 .CurrentDomain
>>>                 .GetAssemblies()
>>>                 .Where(assembly => !assembly.IsDynamic)
>>>                 *.Where(assembly =>
>>> assembly.GetName().Name.StartsWith("QuickFIXn"))  // FIX?*
>>>                 .ToList()
>>>
>>> I think that bold part might fix the issue.  What do you think, Campbell?
>>>
>>>
>>>
>>> On Mon, Jul 13, 2020 at 9:04 AM Campbell Wild <
>>> Campbell.Wild at ihsmarkit.com> wrote:
>>>
>>>> We had a very similar issue to this.
>>>>
>>>> The problem is that the QuickFIX/n library now dynamically scans all
>>>> the static DLLs in the product to see which ones expose a return type
>>>> of DefaultMessageFactory.  This seems pretty bad form to me, as it causes
>>>> all libraries to load, and throws errors at the point where QuickFIX/n
>>>> loads the default message factory instead of where that library is actually
>>>> required.
>>>>
>>>> In our case, we were developing in 32-bit, and we had a DLL that
>>>> accessed a third-party 64 bit DLL, and so I couldn't start up QuickFIX
>>>> until I developed in 64 bit mode.
>>>>
>>>> My view is that GetMessageFactories should only be scanning the
>>>> QuickFIX DLLs, and *NOT* all DLLs in the product, to see which ones return
>>>> the DefaultMessageFactory type.
>>>>
>>>> Campbell
>>>> ------------------------------
>>>> *From:* Quickfixn <quickfixn-bounces at lists.quickfixn.com> on behalf of
>>>> Grant Birchmeier <gbirchmeier at connamara.com>
>>>> *Sent:* 13 July 2020 14:25
>>>> *To:* Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com>
>>>> *Subject:* Re: {{Quickfixn}} Exception while processing the FIX
>>>> messages
>>>>
>>>>
>>>>
>>>> *[CAUTION] EXTERNAL EMAIL .. *
>>>> This has nothing to do with QF/n.  Your app can't find the
>>>> "WeifenLuo.WinFormsUI.Docking" library.
>>>>
>>>> On Thu, Jul 9, 2020 at 1:35 PM Veduruparthi Raju <
>>>> rveduruparthi at gmail.com> wrote:
>>>>
>>>> Hello,
>>>>
>>>> I am using the QuickFix version 1.9 and using the below dll's in my
>>>> project connecting to different exchanges one supporting the FIX44 and the
>>>> other FIX50SP2.
>>>> I am seeing the following exception while processing the messages.
>>>> Does that assembly have anything to do with the quickfix engine I am
>>>> using ?
>>>> BTW i am using the .NET Framework 4.7.
>>>> Appreciate any insight into this.
>>>>
>>>> QuickFix.dll
>>>> QuickFix.FIX50SP2.dll
>>>> QuickFix.FIX44.dll
>>>>
>>>> *Exception:*
>>>>
>>>> System.IO.FileNotFoundException: Could not load file or assembly
>>>> 'WeifenLuo.WinFormsUI.Docking, Version=3.0.4.0, Culture=neutral,
>>>> PublicKeyToken=5cded1a1a0a7b481' or one of its dependencies. The system
>>>> cannot find the file specified.
>>>>
>>>> File name: 'WeifenLuo.WinFormsUI.Docking, Version=3.0.4.0,
>>>> Culture=neutral, PublicKeyToken=5cded1a1a0a7b481'
>>>>
>>>>    at
>>>> System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly
>>>> assembly, ObjectHandleOnStack retTypes)
>>>>
>>>>    at System.Reflection.RuntimeAssembly.GetExportedTypes()
>>>>
>>>>    at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
>>>>
>>>>    at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
>>>>
>>>>    at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
>>>>
>>>>    at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
>>>>
>>>>    at QuickFix.DefaultMessageFactory.GetMessageFactories(IEnumerable`1
>>>> assemblies)
>>>>
>>>>    at QuickFix.DefaultMessageFactory..ctor(String defaultApplVerId)
>>>>
>>>> Thanks,
>>>> --Raju.v
>>>> _______________________________________________
>>>> Quickfixn mailing list
>>>> Quickfixn at lists.quickfixn.com
>>>> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>>>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.quickfixn.com%2Flistinfo.cgi%2Fquickfixn-quickfixn.com&data=02%7C01%7CCampbell.Wild%40ihsmarkit.com%7Cfdf77e34ecb14fcaf28508d82730331c%7Cc1156c2fa3bb4fc4ac073eab96da8d10%7C0%7C0%7C637302435254977115&sdata=mBvhlBIgbuKa4TPa%2FrjD9Mu9d%2Fx4CgoH3y8OfczCjEQ%3D&reserved=0>
>>>>
>>>>
>>>>
>>>> --
>>>> Grant Birchmeier
>>>> *Connamara Systems, LLC*
>>>> *Made-To-Measure Trading Solutions.*
>>>> Exactly what you need. No more. No less.
>>>> http://connamara.com
>>>> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fconnamara.com%2F&data=02%7C01%7CCampbell.Wild%40ihsmarkit.com%7Cfdf77e34ecb14fcaf28508d82730331c%7Cc1156c2fa3bb4fc4ac073eab96da8d10%7C0%7C0%7C637302435254987114&sdata=FGgGbhmLHHk0BbxgXkB8XqWZYTOAADgFjP4flJFyPr0%3D&reserved=0>
>>>>
>>>> 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.
>>>>
>>>> ------------------------------
>>>>
>>>> This e-mail, including accompanying communications and attachments, is
>>>> strictly confidential and only for the intended recipient. Any retention,
>>>> use or disclosure not expressly authorised by IHSMarkit is prohibited. This
>>>> email is subject to all waivers and other terms at the following link:
>>>> https://ihsmarkit.com/Legal/EmailDisclaimer.html
>>>>
>>>> Please visit www.ihsmarkit.com/about/contact-us.html for contact
>>>> information on our offices worldwide.
>>>> _______________________________________________
>>>> 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
>>>
>>> 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
>>> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>>>
>>
>>
>> --
>> Thanks,
>> --Raju.v
>> _______________________________________________
>> 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
>


-- 
Grant Birchmeier
*Connamara Systems, LLC*
*Made-To-Measure Trading Solutions.*
Exactly what you need. No more. No less.
http://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/20200713/e0ef2645/attachment.htm>


More information about the Quickfixn mailing list