IBM Support

'(0x80004005): [DBNETLIB][ConnectionRead(recv .. General Network Error' when running intensive database tasks, for example a database optimisation

Troubleshooting


Problem

User runs an intensive task, and receives an error message. Scenario #1 - User running a database optimisation. Scenario #2 - User running a 'reports conversion' process, as part of a migration from Controller 2.x to 8.x. Scenario #3 - User is trying to import data into Controller, via a CSV file.

Symptom

Scenario #1:

Example #1:

    Information
    Standard Error
    Number: 5
    Source: FrangoDirect.GenCompStrucD.GenKStruc#ControllerProxyClient
    Description: System.Web.Services.Protocols.SoapException: Servier was unable to process request. --->
    System.Runtime.InteropServices.COMException (0x80004005): [DBNETLIB][ConnectionRead(recv()).]General
    network error. Check your network documentation.
    at FrCompanyBT.GenCompStrucTClass.GenKStruc(String sGuid, String sUser, String sConsType, String sFirstPer,
    Boolean bOnlyManual, ....

Example #2:
    Information
    Standard Error
    Number: 5
    Source: FrangoDirect.Optimize.RecreateIndex#ControllerProxyClient
    Description: The underlying connection was closed: An unexpected error occurred on a receive.
    OK

Scenario #2:
    Information
    Standard Error
    Number: 5
    Source: FrangoDirect.ExcelLinkD.SaveLayoutFile#ControllerProxyClient
    Description: System.Web.Services.Protocols.SoapException: Server was unable to process request. --->
    System.Runtime.InteropServices.COMException (0x80004005): [DBNETLIB][ConnectionOpen
    (PreLoginHandshake()).]General network error. Check your network documentation.
    at FrExcelLinkB.ExcelLinkBClass.GetLayout(String sGuid, String sUser, String sRapp)
    at Cognos.controller.Proxy.CCRWS.ExcelLinkB_GetLayout(String sGuid, String sUser, String sRapp)
    --- End of inner exception stack trace ---

Scenario #3
    Information
    Standard Error
    Number: -2147467259
    Source: FrServerB.ServerInfo.GetServerInfo
    Description: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
    [OK]

Cause

There are several potential causes for errors similar to those shown above.

  • For another example, see separate IBM Technote #1587557 & 1674415.

This Technote shall concentrate on the scenario where the cause is a TCP/IP network failure, causing a "General network error", which has been triggered by one of the following Microsoft Windows TCP/IP mechanisms:
  • Scenario #1 - Microsoft TCP Chimney Offload feature is enabled on the server
    • For more details, see separate IBM Technote #1445735.
  • Scenario #2 - Microsoft SynAttackProtect feature is enabled on the server
    • This IBM Technote shall concentrate on this scenario.

The user's task triggers a high level of network activity to/from the Microsoft SQL database server. In our scenario, this triggers Microsoft 'SynAttackProtect' feature on the SQL server:
  • 'SynAttackProtect' causes Windows to drop connections if the requests arrive faster than SQL Server can service them.
    • This is a security feature of Windows Server 2003 Service Pack 1, which implements a finite queue for incoming TCP connection requests.
  • SynAttackProtect is enabled (by default) on a server with Windows 2003 SP1 or later. This shuts down the network connection to the Controller application server, which therefore gives an error.
    • TIP: For TCP/IP in Windows XP (all versions) and Windows Server 2003 with no service packs installed, SynAttackProtect is set to 0 by default.

More information about 'SynAttackProtect':
To mitigate the impact on a host experiencing a SYN attack, TCP/IP minimizes the amount of resources devoted to incomplete TCP connections and reduces the amount of time before abandoning half-open connections. When a SYN attack is detected, when SynAttackProtect is enabled, TCP/IP in Windows Server 2003 and Windows XP lowers the number of retransmissions of the SYN-ACK segment and does not allocate memory or table entry resources for the connection until the TCP three-way handshake has been completed.

Environment

Microsoft Windows 2003 servers, with Service Pack 1 or later.

NOTE: SynAttack protection is enabled by default and cannot be disabled for all modern Windows versions, for example: Vista, Windows 2008, Windows 7 and Windows 2008 R2.

  • See third-party (non-IBM) link below for more details.

Diagnosing The Problem

One method to investigate is to check the current number of TCP network connections that the server currently has. One easy method is to 'pipe' the results of netstat to a text file, and then open that in a spreadsheet (e.g. Excel) to analyst. In other words, run the following command (inside a command prompt) and then open the resultant file "connections.txt" inside EXCEL:


    netstat -o >connections.txt

Resolving The Problem

Fix:

Improve:

  • the quality/speed of the network connection between the Controller application server and the SQL server
  • the server hardware (CPU speed, number of CPU cores etc.) of the SQL server.

Workaround

Disable Microsoft SYN attack protection on the Windows 2003 Microsoft SQL server.

Steps to disable 'SynAttackProtect':

  1. Obtain some downtine to the system, to ensure no end-users are using any database on the relevant SQL server
  2. Logon to the SQL server as an administrator
  3. START - RUN - REGEDIT
  4. Navigate to the location: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
  5. Double-click on the entry SynAttackProtect (or create it if it does not exist!)
  6. Change its value from 1 to 0
  7. Reboot the SQL server

[{"Product":{"code":"SS9S6B","label":"IBM Cognos Controller"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Controller","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.4;8.3","Edition":"Not Applicable","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Historical Number

1035583

Document Information

Modified date:
15 June 2018

UID

swg21364594