List:Internals« Previous MessageNext Message »
From:stefan Date:August 12 2005 4:51pm
Subject:bk commit - mysqldoc@docsrva tree (stefan:1.3247)
View as plain text  
Below is the list of changes that have just been committed into a local
mysqldoc repository of stefan. When stefan does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://www.mysql.com/doc/I/n/Installing_source_tree.html

ChangeSet
  1.3247 05/08/12 18:51:49 stefan@stripped +5 -0
  titles.ent, problems.xml:
    Sync with refman
  problems.xml:
    In Can't Connect Error section, add subsection that
    explains how that error can occur with too few ephemeral
    ports on Windows, and how to work around that issue
    (thanks, Lachlan, for a great explanation of things!)

  refman-common/titles.ent
    1.11 05/08/12 18:48:55 stefan@stripped +1 -0
    Sync with refman

  refman-5.1/problems.xml
    1.4 05/08/12 18:48:53 stefan@stripped +110 -0
    Sync with refman

  refman-5.0/problems.xml
    1.4 05/08/12 18:48:50 stefan@stripped +110 -0
    Sync with refman

  refman-4.1/problems.xml
    1.13 05/08/12 18:48:47 stefan@stripped +110 -0
    Sync with refman

  refman/problems.xml
    1.13 05/08/12 18:47:28 stefan@stripped +110 -0
    In Can't Connect Error section, add subsection that
    explains how that error can occur with too few ephemeral
    ports on Windows, and how to work around that issue
    (thanks, Lachlan, for a great explanation of things!)

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	stefan
# Host:	apollon.site
# Root:	/home/stefan/bk/mysqldoc

--- 1.3/refman-5.1/problems.xml	2005-08-09 04:53:06 +02:00
+++ 1.4/refman-5.1/problems.xml	2005-08-12 18:48:53 +02:00
@@ -352,6 +352,15 @@
 
         <listitem>
           <para>
+            You're running a MySQL server on Windows with many TCP/IP
+            connections to it. If you're experiencing that quite often
+            your clients get that error, you can find a workaround here:
+            <xref linkend="can-not-connect-to-server-on-windows"/>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
             You are running on a system that uses MIT-pthreads. If you
             are running on a system that doesn't have native threads,
             <command>mysqld</command> uses the MIT-pthreads package. See
@@ -486,6 +495,107 @@
         </listitem>
 
       </itemizedlist>
+
+      <section id="can-not-connect-to-server-on-windows">
+
+        <title id='title-can-not-connect-to-server-on-windows'>&title-can-not-connect-to-server-on-windows;</title>
+
+        <para>
+          When you're running a MySQL server on Windows with many TCP/IP
+          connections to it, and you're experiencing that quite often
+          your clients get a 
+          <literal>Can't connect to MySQL server</literal>
+          error, the reason might be that Windows doesn't allow for
+          enough ephemeral (short-lived) ports to serve those 
+          connections.
+        </para>
+
+        <para>
+          By default, Windows allows 5000 ephemeral (short-lived) TCP 
+          ports to the user. After any port is closed it will remain in 
+          a <literal>TIME_WAIT</literal> status for 120 seconds.
+          This status allows the connection to be reused at a much lower 
+          cost than re-initialising a brand new connection. However, the 
+          port will not be available again until this time expires.
+        </para>
+
+        <para>
+          With a small stack of available TCP ports (5000) and a high 
+          number of TCP ports being open and closed over a short period 
+          of time along with the <literal>TIME_WAIT</literal> status 
+          you have a good chance for running out of ports. There are
+          two ways to address this problem:
+          <itemizedlist>
+           <listitem><para>
+             Reduce the number of TCP ports consumed quickly by 
+             investigating connection pooling or persistent connections
+             where possible
+           </para></listitem>
+           <listitem><para>
+             Tune some settings in the Windows registry (see below)
+           </para></listitem>
+          </itemizedlist>
+        </para>
+
+        <para>
+         <emphasis role="bold">
+           IMPORTANT: The following procedure involves modifying the 
+           Windows registry. Before you modify the registry, make sure 
+           to back it up and make sure that you understand how to 
+           restore the registry if a problem occurs. For information 
+           about how to back up, restore, and edit the registry, 
+           view the following article in the Microsoft Knowledge Base:
+           <ulink url="http://support.microsoft.com/kb/256986/EN-US/"/>.
+         </emphasis>
+         <orderedlist>
+          <listitem><para>
+            Start Registry Editor (<filename>Regedt32.exe</filename>).
+          </para></listitem>
+          <listitem><para>
+            Locate the following key in the registry:
+<programlisting>
+HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
+</programlisting>
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: MaxUserPort
+Data Type: REG_DWORD
+Value: 65534
+</programlisting>
+            This sets the number of ephemeral ports available to any 
+            user. The valid range is between 5000 and 65534 (decimal).
+            The default value is 0x1388 (5000 decimal).
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: TcpTimedWaitDelay
+Data Type: REG_DWORD
+Value: 30
+</programlisting>
+            This sets the number of seconds to hold a TCP port 
+            connection in <literal>TIME_WAIT</literal> state before 
+            closing. The valid range is between 0 (zero) and 300 
+            (decimal). The default value is 0x78 (120 decimal).
+          </para></listitem>
+          <listitem><para>
+            Quit Registry Editor.
+          </para></listitem>
+          <listitem><para>
+            Reboot the machine.
+          </para></listitem>
+         </orderedlist>
+         Note: Undoing the above should be as simple as deleting the 
+         registry entries you've created.
+        </para>
+
+      </section>
 
     </section>
 

--- 1.12/refman-4.1/problems.xml	2005-08-09 04:52:57 +02:00
+++ 1.13/refman-4.1/problems.xml	2005-08-12 18:48:47 +02:00
@@ -352,6 +352,15 @@
 
         <listitem>
           <para>
+            You're running a MySQL server on Windows with many TCP/IP
+            connections to it. If you're experiencing that quite often
+            your clients get that error, you can find a workaround here:
+            <xref linkend="can-not-connect-to-server-on-windows"/>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
             You are running on a system that uses MIT-pthreads. If you
             are running on a system that doesn't have native threads,
             <command>mysqld</command> uses the MIT-pthreads package. See
@@ -486,6 +495,107 @@
         </listitem>
 
       </itemizedlist>
+
+      <section id="can-not-connect-to-server-on-windows">
+
+        <title id='title-can-not-connect-to-server-on-windows'>&title-can-not-connect-to-server-on-windows;</title>
+
+        <para>
+          When you're running a MySQL server on Windows with many TCP/IP
+          connections to it, and you're experiencing that quite often
+          your clients get a 
+          <literal>Can't connect to MySQL server</literal>
+          error, the reason might be that Windows doesn't allow for
+          enough ephemeral (short-lived) ports to serve those 
+          connections.
+        </para>
+
+        <para>
+          By default, Windows allows 5000 ephemeral (short-lived) TCP 
+          ports to the user. After any port is closed it will remain in 
+          a <literal>TIME_WAIT</literal> status for 120 seconds.
+          This status allows the connection to be reused at a much lower 
+          cost than re-initialising a brand new connection. However, the 
+          port will not be available again until this time expires.
+        </para>
+
+        <para>
+          With a small stack of available TCP ports (5000) and a high 
+          number of TCP ports being open and closed over a short period 
+          of time along with the <literal>TIME_WAIT</literal> status 
+          you have a good chance for running out of ports. There are
+          two ways to address this problem:
+          <itemizedlist>
+           <listitem><para>
+             Reduce the number of TCP ports consumed quickly by 
+             investigating connection pooling or persistent connections
+             where possible
+           </para></listitem>
+           <listitem><para>
+             Tune some settings in the Windows registry (see below)
+           </para></listitem>
+          </itemizedlist>
+        </para>
+
+        <para>
+         <emphasis role="bold">
+           IMPORTANT: The following procedure involves modifying the 
+           Windows registry. Before you modify the registry, make sure 
+           to back it up and make sure that you understand how to 
+           restore the registry if a problem occurs. For information 
+           about how to back up, restore, and edit the registry, 
+           view the following article in the Microsoft Knowledge Base:
+           <ulink url="http://support.microsoft.com/kb/256986/EN-US/"/>.
+         </emphasis>
+         <orderedlist>
+          <listitem><para>
+            Start Registry Editor (<filename>Regedt32.exe</filename>).
+          </para></listitem>
+          <listitem><para>
+            Locate the following key in the registry:
+<programlisting>
+HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
+</programlisting>
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: MaxUserPort
+Data Type: REG_DWORD
+Value: 65534
+</programlisting>
+            This sets the number of ephemeral ports available to any 
+            user. The valid range is between 5000 and 65534 (decimal).
+            The default value is 0x1388 (5000 decimal).
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: TcpTimedWaitDelay
+Data Type: REG_DWORD
+Value: 30
+</programlisting>
+            This sets the number of seconds to hold a TCP port 
+            connection in <literal>TIME_WAIT</literal> state before 
+            closing. The valid range is between 0 (zero) and 300 
+            (decimal). The default value is 0x78 (120 decimal).
+          </para></listitem>
+          <listitem><para>
+            Quit Registry Editor.
+          </para></listitem>
+          <listitem><para>
+            Reboot the machine.
+          </para></listitem>
+         </orderedlist>
+         Note: Undoing the above should be as simple as deleting the 
+         registry entries you've created.
+        </para>
+
+      </section>
 
     </section>
 

--- 1.12/refman/problems.xml	2005-08-09 04:53:15 +02:00
+++ 1.13/refman/problems.xml	2005-08-12 18:47:28 +02:00
@@ -352,6 +352,15 @@
 
         <listitem>
           <para>
+            You're running a MySQL server on Windows with many TCP/IP
+            connections to it. If you're experiencing that quite often
+            your clients get that error, you can find a workaround here:
+            <xref linkend="can-not-connect-to-server-on-windows"/>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
             You are running on a system that uses MIT-pthreads. If you
             are running on a system that doesn't have native threads,
             <command>mysqld</command> uses the MIT-pthreads package. See
@@ -486,6 +495,107 @@
         </listitem>
 
       </itemizedlist>
+
+      <section id="can-not-connect-to-server-on-windows">
+
+        <title id='title-can-not-connect-to-server-on-windows'>&title-can-not-connect-to-server-on-windows;</title>
+
+        <para>
+          When you're running a MySQL server on Windows with many TCP/IP
+          connections to it, and you're experiencing that quite often
+          your clients get a 
+          <literal>Can't connect to MySQL server</literal>
+          error, the reason might be that Windows doesn't allow for
+          enough ephemeral (short-lived) ports to serve those 
+          connections.
+        </para>
+
+        <para>
+          By default, Windows allows 5000 ephemeral (short-lived) TCP 
+          ports to the user. After any port is closed it will remain in 
+          a <literal>TIME_WAIT</literal> status for 120 seconds.
+          This status allows the connection to be reused at a much lower 
+          cost than re-initialising a brand new connection. However, the 
+          port will not be available again until this time expires.
+        </para>
+
+        <para>
+          With a small stack of available TCP ports (5000) and a high 
+          number of TCP ports being open and closed over a short period 
+          of time along with the <literal>TIME_WAIT</literal> status 
+          you have a good chance for running out of ports. There are
+          two ways to address this problem:
+          <itemizedlist>
+           <listitem><para>
+             Reduce the number of TCP ports consumed quickly by 
+             investigating connection pooling or persistent connections
+             where possible
+           </para></listitem>
+           <listitem><para>
+             Tune some settings in the Windows registry (see below)
+           </para></listitem>
+          </itemizedlist>
+        </para>
+
+        <para>
+         <emphasis role="bold">
+           IMPORTANT: The following procedure involves modifying the 
+           Windows registry. Before you modify the registry, make sure 
+           to back it up and make sure that you understand how to 
+           restore the registry if a problem occurs. For information 
+           about how to back up, restore, and edit the registry, 
+           view the following article in the Microsoft Knowledge Base:
+           <ulink url="http://support.microsoft.com/kb/256986/EN-US/"/>.
+         </emphasis>
+         <orderedlist>
+          <listitem><para>
+            Start Registry Editor (<filename>Regedt32.exe</filename>).
+          </para></listitem>
+          <listitem><para>
+            Locate the following key in the registry:
+<programlisting>
+HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
+</programlisting>
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: MaxUserPort
+Data Type: REG_DWORD
+Value: 65534
+</programlisting>
+            This sets the number of ephemeral ports available to any 
+            user. The valid range is between 5000 and 65534 (decimal).
+            The default value is 0x1388 (5000 decimal).
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: TcpTimedWaitDelay
+Data Type: REG_DWORD
+Value: 30
+</programlisting>
+            This sets the number of seconds to hold a TCP port 
+            connection in <literal>TIME_WAIT</literal> state before 
+            closing. The valid range is between 0 (zero) and 300 
+            (decimal). The default value is 0x78 (120 decimal).
+          </para></listitem>
+          <listitem><para>
+            Quit Registry Editor.
+          </para></listitem>
+          <listitem><para>
+            Reboot the machine.
+          </para></listitem>
+         </orderedlist>
+         Note: Undoing the above should be as simple as deleting the 
+         registry entries you've created.
+        </para>
+
+      </section>
 
     </section>
 

--- 1.3/refman-5.0/problems.xml	2005-08-09 04:53:02 +02:00
+++ 1.4/refman-5.0/problems.xml	2005-08-12 18:48:50 +02:00
@@ -352,6 +352,15 @@
 
         <listitem>
           <para>
+            You're running a MySQL server on Windows with many TCP/IP
+            connections to it. If you're experiencing that quite often
+            your clients get that error, you can find a workaround here:
+            <xref linkend="can-not-connect-to-server-on-windows"/>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
             You are running on a system that uses MIT-pthreads. If you
             are running on a system that doesn't have native threads,
             <command>mysqld</command> uses the MIT-pthreads package. See
@@ -486,6 +495,107 @@
         </listitem>
 
       </itemizedlist>
+
+      <section id="can-not-connect-to-server-on-windows">
+
+        <title id='title-can-not-connect-to-server-on-windows'>&title-can-not-connect-to-server-on-windows;</title>
+
+        <para>
+          When you're running a MySQL server on Windows with many TCP/IP
+          connections to it, and you're experiencing that quite often
+          your clients get a 
+          <literal>Can't connect to MySQL server</literal>
+          error, the reason might be that Windows doesn't allow for
+          enough ephemeral (short-lived) ports to serve those 
+          connections.
+        </para>
+
+        <para>
+          By default, Windows allows 5000 ephemeral (short-lived) TCP 
+          ports to the user. After any port is closed it will remain in 
+          a <literal>TIME_WAIT</literal> status for 120 seconds.
+          This status allows the connection to be reused at a much lower 
+          cost than re-initialising a brand new connection. However, the 
+          port will not be available again until this time expires.
+        </para>
+
+        <para>
+          With a small stack of available TCP ports (5000) and a high 
+          number of TCP ports being open and closed over a short period 
+          of time along with the <literal>TIME_WAIT</literal> status 
+          you have a good chance for running out of ports. There are
+          two ways to address this problem:
+          <itemizedlist>
+           <listitem><para>
+             Reduce the number of TCP ports consumed quickly by 
+             investigating connection pooling or persistent connections
+             where possible
+           </para></listitem>
+           <listitem><para>
+             Tune some settings in the Windows registry (see below)
+           </para></listitem>
+          </itemizedlist>
+        </para>
+
+        <para>
+         <emphasis role="bold">
+           IMPORTANT: The following procedure involves modifying the 
+           Windows registry. Before you modify the registry, make sure 
+           to back it up and make sure that you understand how to 
+           restore the registry if a problem occurs. For information 
+           about how to back up, restore, and edit the registry, 
+           view the following article in the Microsoft Knowledge Base:
+           <ulink url="http://support.microsoft.com/kb/256986/EN-US/"/>.
+         </emphasis>
+         <orderedlist>
+          <listitem><para>
+            Start Registry Editor (<filename>Regedt32.exe</filename>).
+          </para></listitem>
+          <listitem><para>
+            Locate the following key in the registry:
+<programlisting>
+HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
+</programlisting>
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: MaxUserPort
+Data Type: REG_DWORD
+Value: 65534
+</programlisting>
+            This sets the number of ephemeral ports available to any 
+            user. The valid range is between 5000 and 65534 (decimal).
+            The default value is 0x1388 (5000 decimal).
+          </para></listitem>
+          <listitem><para>
+            On the <literal>Edit</literal> menu, click 
+            <literal>Add Value</literal>, and then add the following 
+            registry value:
+<programlisting>
+Value Name: TcpTimedWaitDelay
+Data Type: REG_DWORD
+Value: 30
+</programlisting>
+            This sets the number of seconds to hold a TCP port 
+            connection in <literal>TIME_WAIT</literal> state before 
+            closing. The valid range is between 0 (zero) and 300 
+            (decimal). The default value is 0x78 (120 decimal).
+          </para></listitem>
+          <listitem><para>
+            Quit Registry Editor.
+          </para></listitem>
+          <listitem><para>
+            Reboot the machine.
+          </para></listitem>
+         </orderedlist>
+         Note: Undoing the above should be as simple as deleting the 
+         registry entries you've created.
+        </para>
+
+      </section>
 
     </section>
 

--- 1.10/refman-common/titles.ent	2005-08-11 23:12:49 +02:00
+++ 1.11/refman-common/titles.ent	2005-08-12 18:48:55 +02:00
@@ -105,6 +105,7 @@
 <!ENTITY title-calculating-days "Calculating Visits Per Day">
 <!ENTITY title-call "<literal>CALL</literal> Statement">
 <!ENTITY title-can-not-connect-to-server "<literal>Can't connect to [local] MySQL server</literal>">
+<!ENTITY title-can-not-connect-to-server-on-windows "<literal>Connection to MySQL Server Failing on Windows</literal>">
 <!ENTITY title-cannot-create "<literal>Can't create/write to file</literal>">
 <!ENTITY title-cannot-find-table "<literal>Table '<replaceable>tbl_name</replaceable>' doesn't exist</literal>">
 <!ENTITY title-cannot-initialize-character-set "<literal>Can't initialize character set</literal>">
Thread
bk commit - mysqldoc@docsrva tree (stefan:1.3247)stefan12 Aug