Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

PRB: Unable to Make More Than 256 Connections to Different Mailboxes Over a Short Period of Time


View products that this article applies to.

This article was previously published under Q305619

↑ Back to the top


Symptoms

Using Web Distributed Authoring and Versioning (WebDAV) to open or access a large number of mailboxes in rapid succession may cause HTTP 500 errors to be returned on all mailbox accesses over 256.

↑ Back to the top


Cause

All WebDAV requests to an Exchange server called under a single-user context are pooled under one session that is limited to 256 concurrent connections. This limit is due to the way that the session count is stored in memory. WebDAV exposes this limitation because it keeps connections open for 10 to 15 minutes.

↑ Back to the top


Resolution

To resolve this problem, obtain the September 2003 Exchange 2000 Server Post-Service Pack 3 (SP3) Rollup. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
824282� September 2003 Exchange 2000 Server Post-Service Pack 3 Rollup
Alternatively, you can work around this problem in the following ways:
  • Pause after each group of 256 connections, allowing the other sessions to timeout and new sessions to be created.
  • If the code is running in a COM+ component as a specific user, adding additional server packages running under different user contexts will allow an additional 256 connections per package.
  • Use another provider to access the Exchange mailboxes (for instance, ADO).

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section of this article.

↑ Back to the top


More information

Steps to Reproduce Behavior

  1. Create 300 mail-enabled users with the alias naming convention of user(x), where x is the number 1 to 300.
  2. Send an e-mail with the title "Test" to each of the 300 mailboxes.
  3. Run the following code in an Active Server Pages (ASP) page:
    <% Response.Buffer = TRUE
    server.ScriptTimeout = 5000
    Dim Rec 
    Dim conn 
    Dim strURL 
    
       For mailboxloop = 1 To 300
          strURL = "http://servername/exchange/user" & mailboxloop & "/inbox"
          Response.Write strURL & "<br>"
          Response.Flush
          strURL = strURL & "/Test.EML"
          response.write "Open: " & strURL & "<br>"
          Response.Flush
          patchmail()
       Next
    
    Sub patchmail
     
        Dim intStartPos 
        Dim oRequest 
        Dim strTemp 
        Dim strXML 
    
        strXML = "<?xml version=""1.0""?>"
        strXML = strXML & "<D:propertyupdate xmlns:D='DAV:' xmlns:m='urn:schemas:httpmail:'>"
        strXML = strXML & "<D:set>"
        strXML = strXML & "<D:prop>"
        strXML = strXML & "<m:read>1</m:read>"
        strXML = strXML & "</D:prop>"
        strXML = strXML & "</D:set>"
        strXML = strXML & "</D:propertyupdate>"
    
        Set oRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")
        With oRequest
            .Open "PROPPATCH", strURL, False
            .setRequestHeader "Content-type:", "text/xml"
            .Send (strXML)
        End With
        If (oRequest.Status <> 207) Then
            strTemp = "Error, status = " & oRequest.Status & " " & oRequest.statusText & "<BR>"
            Response.Write strTemp
    
        End If
        Set oRequest = Nothing
    Exit Sub
    End sub
    %>
    						
    The first 256 users open without problem, but from 257 on, you receive HTTP 500 errors.

↑ Back to the top


Keywords: KB305619, kbprb, kbmsg

↑ Back to the top

Article Info
Article ID : 305619
Revision : 8
Created on : 2/22/2007
Published on : 2/22/2007
Exists online : False
Views : 367