Меню

Dbnetlib общая ошибка сети

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

    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.

  • For more information, see section inside ‘Related Documents’
  • One of the best summaries on this topic can be found here: http://blogs.technet.com/b/pabenois/archive/2010/06/10/sharepoint-2007-and.aspx

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_MACHINESystemCurrentControlSetServicesTcpipParameters
  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

Related Information

[{«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

Иногда на ASP (классическом) сайте пользователи получают такую ​​ошибку:

[DBNETLIB][ConnectionRead (recv()).]General network error.

Кажется случайным и не связан с какой-либо конкретной страницей. Сервер SQL отделен от веб-сервера, и я предполагаю, что время от времени «связь» между ними разрывается. Проблема с маршрутизатором / коммутатором … или кто-то еще сталкивался с этой проблемой раньше?

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
6

Я видел эту ошибку много раз. Это могло быть вызвано многими причинами, в том числе ошибками сети :).

Но одной из причин может быть встроенная функция MS-SQL.

Функция обнаруживает DoS-атаки — в этом случае слишком много запросов от веб-сервера :).

Но я понятия не имею, как мы это исправили :(.

Используя ту же настройку, что и у вас (т.е. отдельный веб-сервер и сервер базы данных), я видел это время от времени, и это всегда была проблема соединения между серверами — обычно, когда сервер базы данных перезагружается, но иногда, когда есть связь проблема где-то в системе. Я не видел, чтобы это было вызвано какими-либо проблемами с самим кодом ASP, поэтому вы видите его, по-видимому, случайным образом и не связанным с определенной страницей.

Диспетчер конфигурации SQL-сервера

Отключить TCP / IP, включить общую память и именованные каналы

Удачи !

Не совсем решение и не в той же среде. Однако я получаю эту ошибку в программе VBA / Excel, и проблема в том, что у меня зависшая транзакция, которая не была отправлена ​​в SQL Server Management Studio (SSMS). После закрытия SSMS все работает. Итак, урок заключается в том, что зависшая транзакция может блокировать выполнение sprocs (очевидный факт, я знаю!). Надеюсь, это поможет кому-то здесь.

Откройте командную строку — запустите от имени администратора и введите следующую команду на стороне клиента

netsh advfirewall set allprofiles state off

FWIW, у меня была эта ошибка из Excel, которая зависала на EXEC, который нормально работал в SSMS. Раньше я видел запросы с проблемами, которые также были нормальными в SSMS из-за «сниффинга параметров» и неподходящих кэшированных планов запросов. Внесение незначительных изменений в SP решило проблему, и впоследствии он работал нормально в своей первоначальной форме. Мне было бы интересно услышать, сталкивался ли кто-нибудь с этим сценарием. Попробуйте старый добрый OPTION (OPTIMIZE FOR UNKNOWN) 🙂

Другие вопросы по теме

Общая сетевая ошибка после ночи бездействия

Вопрос:

В течение некоторого времени у нашего флагманского приложения были загадочные ошибки. Сообщение об ошибке является общим

[DBNETLIB] [ConnectionWrite (send()).] Общая сетевая ошибка. Проверьте свою сетевую документацию.

Это надежно воспроизводится, оставив приложение открытым на ночь и возобновив работу утром. Поскольку это серверное приложение для бэкэнд, это обычный сценарий.

Самое смешное – мы перенесли с SQL Server 7 на 2000 по 2008 год, и проблема присутствует на всех из них. Но то, что кажется важным, – это ОС, на которой мы запускаем приложение. На WinXP он отлично работает, на Vista/7 он терпит неудачу. Таким образом, проблема находится на стороне клиента.

Результаты Google в сообщении об ошибке охватывают очень широкий спектр различных причин (так как это очень общая ошибка), и ни один из найденных там сценариев не похож на наш.

Итак, может быть, кто-то здесь узнает, в чем проблема в нашем случае?

Ответ №1

Вы должны иметь возможность воспроизвести это условие ошибки по запросу:
1. Открытие соединения с базой данных (в вашем клиентском приложении)
2. Отсоединение сетевого кабеля
3. Повторное подключение сетевого кабеля (подождите, пока сетевое соединение будет восстановлено)
4. Используя ранее открытое соединение для запроса базы данных

Насколько я могу судить по опыту, код ADO на стороне клиента не может последовательно определить, действительно ли базовое сетевое соединение действительно или нет. Проверка открытия соединения с базой данных (в клиентском коде) возвращает значение true. Однако выполнение любых операций над этим соединением приводит к General network error.

Пул соединений, по-видимому, может определить, когда соединение “плохо”, поэтому оно никогда не возвращает плохое соединение с приложением. Вместо этого он просто открывает новое соединение.

Таким образом, если соединение с базой данных поддерживается в течение длительного времени (используется или не используется) приложением, базовая связь TCP/IP может быть нарушена.

Суть в том, что соединения с базой данных должны быть закрыты и возвращены обратно в пул соединений, когда они не используются.

Изменить

Кроме того, в зависимости от количества клиентов, подключающихся к db, использование пула соединений может вызвать другую проблему. Вы можете поразить максимальное количество сокетов, открытых на стороне сервера. Это из памяти. Когда соединение закрывается на стороне клиента, соединение на сервере переходит в состояние TIME_WAIT. По умолчанию серверный сокет занимает около 4 минут, поэтому он недоступен для других клиентов за это время. Суть в том, что на сервере имеется ограниченное количество доступных сокетов. Сохранение слишком большого количества подключений может создать проблему.

Один проект, над которым я работал, легко попал в этот сокет с примерно 120 пользователями. Добавлена ​​новая “функция”, которая абсолютно забила сервер, и через несколько часов после использования приложения внезапно замедлится сканирование для всех. SQL-сервер не закрывал достаточно сокетов вовремя для новых запросов на подключение. Несмотря на то что есть 65K сокетов, только первые 5000 доступны для ADO (это стандартная настройка реестра, поэтому ее можно изменить).

Количество сокетов в состоянии TIME_WAIT будет медленно наращиваться до тех пор, пока ОС не будет выделять больше. Таким образом, клиентам приходилось ждать, пока сокеты на стороне сервера не будут закрыты, и тогда может быть создано новое соединение.

Ответ №2

  • Remove From My Forums
  • Question

  • Hi,

    I have a classic ASP application that has been running on Win2003,IIS6 and SQL2000 for 3 years without a single error.

    We’ve just moved to SQL2005 enterprise and we’re getting the following intermittent error.

    Microsoft OLE DB Provider for SQL Server error ‘80004005’

    [DBNETLIB][ConnectionOpen (PreLoginHandshake()).]General network error. Check your network documentation.

    Any ideas where to start?

Answers

  • Hi,

    I’ve just struggled with this problem for a (now) virtualised database —
    Kadir Sümerkent’s solution at the top of the thread to allow remote access TCP/IP only fixed my problem.  Thanks.

    • Marked as answer by

      Friday, July 23, 2010 4:52 PM

   DarkAn

07.02.08 — 16:02

Вываливаеться окошко:

SQL State: 01000

Native: 64

Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionRead(WrapperRead)

SQL State: 08S01

Native: 11

Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]Общая ошибка сети. Обратитесь к документации по сети.

Собственно проблема такая в определенное время всегда одно и тоже вываливается база с такой ошибкой(в одной канторе), а в другой какие то пользователи работают нормальноЮ а каких то просто выбрасывает при попытке создать новый объект(только справочник материалы), при этом долго думает и вываливает из 1С. Достало уже всех!!!

На вирусы проверял — 0;

Протестить базу пока не удалось, т.к. не дают остальные бухи.

1С 7.7 (7.70.025)

SQL 2000

Что за фигня кто то справился с ней? Я уже много от кого о ней слышу

   ТелепатБот

1 — 07.02.08 — 16:02

   lea_220400

2 — 07.02.08 — 16:03

ТИИ

   DarkAn

3 — 07.02.08 — 16:04

(2)?

   mikecool

4 — 07.02.08 — 16:03

надо проверить сеть, оборудование, диски на сервере

   lea_220400

5 — 07.02.08 — 16:04

ААА, плин, это и сеть могет быть, ведь на нее ругается.

   lea_220400

6 — 07.02.08 — 16:04

(3) тестирование и исправление

   Berck

7 — 07.02.08 — 16:05

Смотри что делается на сервере в это время?

Может архивирование какое? Проверяй сеть…

   lea_220400

8 — 07.02.08 — 16:05

попробуй ping большими покетами погоняй

   DarkAn

9 — 07.02.08 — 16:05

А тестирование….

вот надесь сделать, как время появиться

   DarkAn

10 — 07.02.08 — 16:06

на серваке голяк, в логах 0, на SQL в профайлере ошибки тоже не ловяться

   lea_220400

11 — 07.02.08 — 16:06

ping <IP> -l 640000

   DarkAn

12 — 07.02.08 — 16:06

(8) как пингануть большим пакетом?

   DarkAn

13 — 07.02.08 — 16:07

опережаешь мысли))

   SnarkHunter

14 — 07.02.08 — 16:07

СервисПак СКЛ-сервера какой?

   lea_220400

15 — 07.02.08 — 16:09

и к пингу в конце добавь » -t100″:

ping IP -L 64000 -t100

-L — размер пакета.

   lea_220400

16 — 07.02.08 — 16:09

если провалы есть, значит что с сетевой или кабелем, как предположение и поэтому пакеты не все доходят.

   DarkAn

17 — 07.02.08 — 16:10

(15) по 11 мс все

   lea_220400

18 — 07.02.08 — 16:10

если на всех провалы, попробуй меньше пакеты поставить.

   lea_220400

19 — 07.02.08 — 16:10

тогда в сети нет проблем.

   DarkAn

20 — 07.02.08 — 16:11

(14) SP1

   sapphire

21 — 07.02.08 — 16:11

кабель проверь, порты сервера/маршрутизатора.

   SnarkHunter

22 — 07.02.08 — 16:11

(20)Ну а чего тогда удивляться… Ставь скорее SP4…

   DarkAn

23 — 07.02.08 — 16:14

(22) Ладно, попробую, осталось только его найти

   DarkAn

24 — 07.02.08 — 16:15

(22) не подскажешь где взять?

   DarkAn

25 — 07.02.08 — 16:15

(22) О, на серваке нашел!

   lea_220400

26 — 07.02.08 — 16:16

В Microsoft как вариант, либо ковыряй интернет, или www.nnm.ru фпоиск.

   lea_220400

27 — 07.02.08 — 16:16

Млин, торможу.

   DarkAn

28 — 07.02.08 — 16:18

Админ грит что ставил, а ентерпрайз пришет SP1.

Может я где не там посмотрел?

   SnarkHunter

29 — 07.02.08 — 16:19

(28)Значит не ставил, лично я доверял бы EM…

   DarkAn

30 — 07.02.08 — 16:21

Всем СПС!

Постараюсь поставить как можно раньше!

Если проблемма повториться ветку подниму

   DarkAn

31 — 11.02.08 — 23:00

Что за фигня?

Поставил SP4 и начались такие тормаза

В частности 1 пользователь работает нормально, но если к базе пытаеться подключиться еще кто-то то все ППЦ.

Первый как работал так и работает, а другие не могут сдвинуться со стартовой желтой картинки «Загрузка структуры данных программы» и все так минут на 5-10 потом прожовывается и загружаеться. Но это ведь не дело! Может еще какой то фигни не хватает?

   Креатив

32 — 11.02.08 — 23:04

(31) А память под скл выделена статично?

   igork1966

33 — 11.02.08 — 23:32

(31) больше похоже на совпадение. Скорее это

Похоже на антивирус

   DarkAn

34 — 12.02.08 — 14:45

(32) Памяти на Серваке 5 Гиг, по SQL выделяеться динамически в полном объеме. (не фиксировал)

(33) Антивир — NOD32

  

DarkAn

35 — 12.02.08 — 14:47

Притом тормаза только после установки SP4.

Пришлось вернуться снова к перваночальной установке SP1? там все работает как часы, но повторяеться то что описано в начале (((((

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Dbnetlib connectionopen seccreatecredentials ошибка безопасности ssl
  • Dbl ошибка счетная машинка