Announcement

Collapse
No announcement yet.

Desktop API crashes

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Desktop API crashes

    Hi,

    I experienced crashes of my C# .NET app on heavy load conditions. After reseraching the issue, I found that the ActiveX API causes the problem:

    It crashes on heavy load.

    Here is how to reproduce:
    - download attached sample project (=modified multiply history sample)
    - start the sample
    - enter your app id / user id
    - press "Start"

    The sample requests streaming quotes on ~ 100 NASDAQ stocks and some futures and runs a seperate thread which simply puts heavy load onto the processor.

    After a while the call ESignal.GetBasicQuote fails throwing an exception saying "QueryInterface for interface IESignal.IHooks failed".

    I was able to reproduce this problem as markets opened today several times in a row.

    What's going wrong ?
    Attached Files
    Dierk Droth
    www.trademagic.net
    TradeMagic - Trading at its best

  • #2
    If you research this forum, you will see posts that clearly state that the API does not run well under heavy load. There are out-of-process calls that are made between your application and eSignal, which causes the overhead and CPU to get hit.

    The Desktop API works best for applications that only request a few real-time quotes, or as for non real-time data.

    Comment


    • #3
      Robi,

      I see. Well, the ActiveX was strongly recommended to me.

      What do you suggest to get around this problem? What API should I use?

      BTW: You can reproduce the problem also on just requesting realtime quotes on a few symbols, but putting load on the processor by a different app.
      -> This issue is not a heavy load "on eSignal" problem (= too many quotes), but a general ActiveX Desktop API problem.

      Regards
      Dierk Droth
      www.trademagic.net
      TradeMagic - Trading at its best

      Comment


      • #4
        Robi,

        What solution do you suggest? Which API should I use, if not the ActiveX Desktop API?

        Regards
        Dierk Droth
        www.trademagic.net
        TradeMagic - Trading at its best

        Comment


        • #5
          Robi,

          I just got the same problem as below ("QueryInterface for interface IESignal.IHooks failed") on a test suite, where I placed subsequent requests for historical data. I got this exception in the "OnBarsReceived" method:
          - no realtime, market datainvolved
          - no additional load on the processor
          - no parallel requests

          -> there for sure is an instability in the ActiveX API.

          I strongly urge you to research this issue. There is a problem:
          - not related to only a single scenario
          - which I can't work around

          Regards
          Dierk Droth
          www.trademagic.net
          TradeMagic - Trading at its best

          Comment


          • #6
            During heavy load conditions it is understandable that the API crashes. I have mentioned in numerous posts that the out-of-process calls are inefficient and cannot really be improved upon. Why would you create a separate thread that puts heavy load on the processor?

            We will evaluate your code, but I cannot promise any improvements until next year, as my resources are limited. My suggestion is to upgrade to another API (I know Darell has been in contact with you regarding this), upgrade your workstation or modify your application so it runs more efficiently.

            I know for a fact that an application can run with absolutely no problems tracking 100 NASDAQ quotes and a few futures.

            Comment


            • #7
              Robi,
              I am considering subscribing to eSignal but this thread worries me. I already have a streaming quote feed from another provider (1000+ NASDAQ symbols) and require a second feed for redundancy. I was hoping to use eSignal as you support 1000 symbols concurrently as well as direct trading.
              I have a very powerful workstation (dual Xeon 3.2) which is dedicated to trading but currently runs at 50% cpu made up of 20% existing feed and 30% analysis software.
              From what I've read, the Desktop API has no chance of allowing me to stream 1000 NASDAQ symbols. What are the alternatives? Alternative APIs have been mentioned but I can't find any information on these.

              Dennis

              Comment


              • #8
                First I think eSignal should be given credit for being upfront about the limitations in the Desktop API. This part gives me some confidence with the company.

                Our cross-platform C++ tool-chain has no COM/IDispatch-support. We accept that the eSignal service itself is locked-in on the Microsoft-platform only but there will be a *lot* of hard work for us to build COM/IDispatch-support (incl. VB-type event callbacks) from the ground up before we can even start looking at the eSignal Desktop API.

                There is in fact some vague talk of a "standard-api" on the site. If this is a more generic DLL-type interface it would probably be very quick to include support for but no prices are given which tells us it is very expensive, an impression that is confirmed by the text that goes on to say "reserved for corporate developers". That doesnt sound like anything a post-bubble startup can afford.

                It seems to me eSignal got it all wrong here - corporate developers are the ones that often, but not always, build on the large Java-platforms or sits on top of all the Microsoft development platforms - the Desktop API is the one that should cost a lot and be labelled "for corporates only", The "low-level" DLL interface should be low-cost and easily available.

                Compare this to Realtick. We faxed them a bunch of agreements and at least got the SDK free (they do charge for support if you need it) and we had a feed to our prototype tick-store up and running within a day. Just using their low-level DLL:s. While with eSignal we are still struggling to figure out if there even is a book out there that describe COM/ActiveX without dragging MFC, ATL and .Net along ...

                Comment


                • #9
                  Robi, guys,

                  >> Robi: During heavy load conditions it is understandable that the API crashes
                  As I demostrated by my last post the problem does not only exist in a heavy load condition - where it is 100% reproducable - but also in regular, non-stressfull situation.

                  >> Robi: Why would you create a separate thread that puts heavy load on the processor
                  Is it really that hard to understand? To provide you a minmal scenario where you can 100% reproduce the problem and hopefully fix it !

                  >> Robi: I know for a fact that an application can run with absolutely no problems tracking 100 NASDAQ quotes and a few futures.
                  Sorry, but this proves nothing. Below you find an (extreme, test-) scenario, where the API crashes 100% of the time. I reported an additional, standard situation showing the same problem.

                  >> Robi: My suggestion is to upgrade to another API.
                  Following the link below, I get the impression that the DDE interface migth be a valuable alternative. Where can I get information on that interface?

                  >> dhakme: What are the alternatives? Alternative APIs have been mentioned but I can't find any information on these.
                  I found this link: http://www.esignal.com/hubs/matrix.asp

                  Regards
                  Dierk Droth
                  www.trademagic.net
                  TradeMagic - Trading at its best

                  Comment


                  • #10
                    Thanks Dierk!!

                    That was some hardcore guidance at last ;=) Why dont eSignal just provide those answers when asked ... sigh!

                    Since the XML-feed seems limited to only quotes (no backfill?) we're talking the standard API at USD2500 which, unless there is some hidden ugly monthly cost, is acceeptable. Hopefully that is the simple DLL-interface rumoured to exist somewhere.

                    Now I just wonder how a small, and perhaps not corporate enough, european developer can get access to that. I probably have to fill in that webform a fourth time right ;=))

                    /Jan L.

                    Comment


                    • #11
                      Jan,

                      Are you sure there is no monthly fee ? What is "and TBD / month" ?

                      Robi, could you please shed some light on that?

                      Regards
                      Dierk Droth
                      www.trademagic.net
                      TradeMagic - Trading at its best

                      Comment


                      • #12
                        I decode TBD as 'To Be Decided'.

                        They probably try to charge you anything they think they can get away with. I'd guess depending on how much time you need from eSignal dev-support. At least thats how most other developer programs I've seen are setup - if you dont need any help you dont have to pay any monthly up to paying a lot of money.

                        But I really dont know, eSignal seem to have a mind of their own. I'm not even sure if they welcome 3rd party developers or not. Neither your product or ours (still a work in progress) compete with anything they already offer as far as I can see.

                        Best,
                        Jan L.

                        Comment


                        • #13
                          Robi,

                          Where can find information on the DDE interface? Please advise.

                          Regards
                          Dierk Droth
                          www.trademagic.net
                          TradeMagic - Trading at its best

                          Comment


                          • #14
                            Hello Dierk,

                            We have several articles in our eSignal KnowledgeBase regarding DDE. Have you been to the KB already? If not, visit the link below and do a search on DDE.

                            eSignal KnowledgeBase
                            Jason K.
                            Project Manager
                            eSignal - an Interactive Data company

                            EFS KnowledgeBase
                            JavaScript for EFS Video Series
                            EFS Beginner Tutorial Series
                            EFS Glossary
                            Custom EFS Development Policy

                            New User Orientation

                            Comment


                            • #15
                              Jason,

                              Thanks for the hint. I'll check it out.

                              Regards
                              Dierk Droth
                              www.trademagic.net
                              TradeMagic - Trading at its best

                              Comment

                              Working...
                              X