FIX: COM Servers May Stop Responding Under Heavy Load in MTS and Windows 2000

Article translations Article translations
Article ID: 279139 - View products that this article applies to.
This article was previously published under Q279139
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page

SYMPTOMS

A Visual FoxPro Component Object Model (COM) server may stop responding under a heavy load when it is run using Microsoft Transaction Server (MTS) under Windows 2000.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This bug was corrected in the latest service pack for Visual Studio 6.0.

For additional information about Visual Studio service packs, click the following article numbers to view the articles in the Microsoft Knowledge Base:
194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why

194295 HOWTO: Tell That a Visual Studio Service Pack Is Installed
To download the latest Visual Studio service pack, visit the following Microsoft Web site:
http://msdn2.microsoft.com/en-us/vstudio/Aa718353.aspx

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create an Active Server Pages (.asp) page named Mtstest.asp that contains the following code:
    <HTML>
    <BODY>
    <%
       lnsecs = Request.QueryString("delay")
       set ox = Server.CreateObject("myserver.myclass")
       response.write ox.cnt()
    %>
    </BODY>
    </HTML>
    					
  2. Place the .asp page in the Wwwroot folder on a Windows 2000 Web server.
  3. On drive C, create a folder called MTSTest.
  4. Start Visual FoxPro.
  5. To create a table to use, run the following code:
       CREATE TABLE C:\MTSTest\Counter FREE (count i)
       INSERT INTO counter VALUES (0)
       USE
     
    					
  6. Create a project called MyServer, and add the following code to the main program:
    DEFINE CLASS myclass AS form OLEPUBLIC
       Datasession=2	&& private datasession
       oScriptingContext=0
    
       PROCEDURE Init
          SET EXCLUSIVE OFF
          USE C:\MTSTest\Counter shared
       ENDPROC
    	
       PROCEDURE xOnStartPage(p1)
       ENDPROC
    
       PROCEDURE MyDoCmd(cCmd)
          &cCmd	&& Just execute parameter as if it were a Fox command.
       ENDPROC
    
       FUNCTION MyEval(cExpr)
          RETURN &cExpr	&& Evaluate parameter as if it were a Fox expression.
       ENDFUNC
    
       PROCEDURE cnt(p1)
          LOCAL cStr
          REPLACE Counter.count WITH Counter.count+1
          cStr = _VFP.fullname+"<br>"
          cStr = cStr + 'thread id = '+TRANS(_VFP.threadid) + "<br>"
          cStr = cStr + 'Proc id = '+TRANS(_VFP.processid)+ "<br>"
          cStr = cStr + '<font size=5 color = red>Count = TRANS(Counter.count)+'</font><br>'
          RETURN  cStr
       ENDPROC
    
    ENDDEFINE
    					
  7. Build the COM server.
  8. Create a package for the COM server in MTS on the Web server. (For more information, see the "References" section.)
  9. Hit Mtstest.asp with multiple threads using the Microsoft Web Application Stress Tool. (For more information, see the "References" section.)
  10. Look at the Web Application Stress Tool report. Failures may be listed in the report as well as in the Windows Event Log.

REFERENCES

For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:
231282 INFO: Stress Tools to Test Your Web Server
223406 HOWTO: Create an Empty MTS Package to Add Components for ASP
(c) Microsoft Corporation 2000, All Rights Reserved. Contributions by Mark Barnard, Microsoft Corporation.

Properties

Article ID: 279139 - Last Review: February 28, 2014 - Revision: 3.3
APPLIES TO
  • Microsoft Visual FoxPro 6.0 Professional Edition, when used with:
    • the operating system: Microsoft Windows 2000
Keywords: 
kbnosurvey kbarchive kbbug kbcodesnippet kbfix kbvs600sp5fix KB279139

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com