none
msmdpump.dll Issue regarding multiple concurrent connections

    Question

  • Hi there,
      
    I am having issues establishing multiple connections to the Analysis Services datapump (msmdpump.dll). Everything works fine up until i try to establish multiple connections containing small queries. 
     
     
    In the event viewer i get the following errors:
     

    Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e03238, faulting module ntdll.dll, version 6.0.6002.18005, time stamp 0x49e0421d, exception code 0xc0000005, fault offset 0x000000000002592a, process id 0x2ce8, application start time 0x01cc413780256929.

     

    and

     

    The description for Event ID 0 from source msmdpump.dll cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

    If the event originated on another computer, the display information had to be saved with the event.

    The following information was included with the event:

    A critical error has occurred initializing the ISAPI extension: Thread pool initialization failed.

     

     

    The setting is as follows:

     

    I have set up a box for http access for Analysis Services with the msmdpump.dll

    see the configuration here:

    http://bloggingabout.net/blogs/mglaser/archive/2008/08/15/configuring-http-access-to-sql-server-2008-analysis-services-on-microsoft-windows-server-2008.aspx

     

    The only difference is that i am using Windows Authentication.

    The datapump is pointing to the local Analysis Services Instance.

     

    I have written a powerscript which is establishing a adomd connection and executing a query after getting the schema of the cube. I call this powerscript 20 times with a batch file i created for simulating  concurrent access on the datapump.

    - When i execute a single script on the datapump, everything works.

    - When I execute the 20 scripts directly on the Analysis Services (circumventing the datapump) everything still works fine. 

    - When i execute the 20 scripts on the pump, I'm getting the errors as described aboe and some of the connections are lost:

      "Exception calling "Open" with "0" argument(s): The connection either timed out or was lost."

      Unfortunately the number of connections that happen to work varies, and because of this it is not giving me informations about what might be the factor.

      The queries seem to have to do something with the behaviour in a sense that the running time of the script lasts longer. That's because the query would work if it only requested the cube schema.

     

     

    I already tried:

    - editing the application pool for more working processes

    - editing the aspnet.config for more working processes per cpu

    - editing the machine.config (64 bit) for assigning more worker threads and free threads  

    - editing the configuration settings of the datapump (msmdpump.ini) for more threads

     

    I am very thankful for any hints what to do now!

     

    Best Regards,

     

    Matthias

    Wednesday, July 13, 2011 11:14 AM

Answers

  • Hallo zusammen,

     

    ich habe die Lösung gefunden:

    nicht nur die maxthreadsperclient, auch die maxthreadpoolsize muss in der  msmdpump.ini erhöht werden. wobei die maxthreadpoolsize drastisch im vergleich zur maxthreadsperclient erhöht werden muss, warum auch immer. Es könnte mit möglichen subthreads zu tun haben... 

    Und noch ein tipp: danach sollte ein iisreset gemacht werden. Ini files sollten eigentlich auch ohne iisreset neu geladen werden, hier ist das aber scheinbar nicht der fall...

    Viele Grüße

    Matthias

    Thursday, July 14, 2011 1:23 PM

All replies

  • Hallo Matthias,

    zum einen bist Du in einem deutschsprachigen Forum, daher bitte in Deutsch posten. Zum anderen ist das eigentlich eher eine SQL Server Frage und hat nur bedingt mit dem IIS zu tun.

    Die Fehlermeldung findet sich u.a. hier:

      http://msdn.microsoft.com/en-us/library/cc917670.aspx

    Dort findet man (ganz unten) auch den Hinweis, dass ggfs. eine falsche .NET Framework Version zugewiesen ist. Wie man das ermittelt, steht auch im MSDN Beitrag.

    "Webgärten" (mehrere Prozesse ... über die IIS Einstellungen) solltest Du gänzlich vermeiden, ich kenne keinen einzigen sinnvollen Anwendungszweck für sowas, dafür umso mehr Probleme, wenn man sie einsetzt.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Wednesday, July 13, 2011 11:46 AM
  • Hallo Stefan,

    danke für die Antwort. Leider liegt es nicht an der .net Variante. Da ich die machine.config editiert habe weiß ich dass die 64 bit Variante von .net 2.0 läuft (die config liegt ja im framework64 directory). ;-)   Die SQL Installation ist auch auf 64 bit.

    Ein Update noch: das Verhalten scheint doch nicht an den Queries zu liegen. der fehler passiert bereits bei der codezeile $con.open(), und das, wie gesagt, nur gelegentlich. Wenn ich eine einzelne connection feuere, funktioniert alles problemlos. Erst beim feuern von mehreren gleichzeitig tritt das Problem auf, und auch ausschließlich über die datapump.

    Ich vermute, dass die Einstellungen was das angeht mit dem IIS zu tun haben und nicht mit der datapump, da ich diesbezüglich die Möglichkeiten (editieren der msmdpump.ini) schon ausgereizt habe...

    Weiß jemand weiter?

    Viele Grüße

    Matthias

     

    Wednesday, July 13, 2011 12:38 PM
  • Hallo zusammen,

     

    ich habe die Lösung gefunden:

    nicht nur die maxthreadsperclient, auch die maxthreadpoolsize muss in der  msmdpump.ini erhöht werden. wobei die maxthreadpoolsize drastisch im vergleich zur maxthreadsperclient erhöht werden muss, warum auch immer. Es könnte mit möglichen subthreads zu tun haben... 

    Und noch ein tipp: danach sollte ein iisreset gemacht werden. Ini files sollten eigentlich auch ohne iisreset neu geladen werden, hier ist das aber scheinbar nicht der fall...

    Viele Grüße

    Matthias

    Thursday, July 14, 2011 1:23 PM