Подтвердить что ты не робот

Как определить основную причину сбоя связи. TCP-провайдер: указанное сетевое имя больше не доступно?

Вот мои последние усилия по пересмотру этого вопроса. Но на этот раз я стараюсь следовать советам, данным Одедом в его статье " Получение хороших ответов о StackOverflow".

Мне нужно выяснить, как я могу определить причину следующей ошибки:

Ошибка связи

Поставщик TCP: указанное сетевое имя больше не доступно

Время от времени я вижу эту ошибку при запуске набора пакетов служб SSIS. Эта ошибка может возникать при запуске одного-многих пакетов из:

  1. Задание агента SQL Server
  2. Пакетный файл
  3. В режиме отладки от BIDS

Полное сообщение об ошибке, которое я вижу, выглядит следующим образом:

Код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80004005. Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 10.0". Результат: 0x80004005 Описание: "Ошибка канала связи". Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 10.0". Hresult: 0x80004005 Описание: "Поставщик TCP: указанное сетевое имя больше не доступно".

Код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80004005. Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 10.0". Результат: 0x80004005 Описание: "Ошибка протокола в потоке TDS". Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 10.0". Результат: 0x80004005 Описание: "Ошибка канала связи". Доступна запись OLE DB. Источник: "Собственный клиент Microsoft SQL Server 10.0". Результат: 0x80004005 Описание: "Поставщик TCP: существующее соединение было принудительно закрыто удаленным хостом".

Это обзор того, как я разработал процесс ETL:

  • Два сервера
  • Обе виртуальные машины
  • Пакеты служб SSIS запускаются на сервере приложений
  • База данных SQL Server живет на сервере базы данных

Я использую диспетчер соединений OLE DB для подключения из пакета служб SSIS на сервере приложений к базе данных SQL Server на сервере базы данных.

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

Основная причина этого заключается в том, что ETL интегрирован с набором инструментов, которые не найдены, а диски не доступны для сервера базы данных. Эти инструменты включают Apex Data Loader для Salesforce и pgAdmin III.

Пока я не могу последовательно воспроизвести эту ошибку. Однако вот что я заметил:

  • Отказ происходит чаще в обычные рабочие часы
  • Отказ происходит реже в нерабочее время

Около двух часов в пятницу утром я смог успешно воспроизвести ошибку на конкретном пакете.

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

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

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

Такое ощущение, что может быть превышен лимит ресурсов?

Может быть лимит подключения?

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

Технические подробности о двух задействованных серверах перечислены ниже:

Информация о SQL Server и сервере баз данных:
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 июня 2011 г. 00:54:03 Авторское право (c) Microsoft Corporation Enterprise Edition (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1) (гипервизор) )

Информация SSIS:
Microsoft Visual Studio 2008 Версия 9.0.30729.1 SP Microsoft.NET Framework Версия 3.5 SP1

Информация о сервере приложений:
Имя ОС: Microsoft Windows Server 2008 R2, стандартная версия: 6.1.7601, пакет обновления 1, сборка 7601

Я изучил сообщение об ошибке в Интернете и нашел его, но очень хотел бы получить экспертную оценку, прежде чем продолжить:

Любая помощь приветствуется.

Спасибо

ОБНОВИТЬ:

Дальнейшее тестирование показывает, что это не "вещь служб SSIS", поскольку при использовании SQL Server Management Studio такая же ошибка наблюдается с той же скоростью. Сложность запроса не делает ошибку более или менее вероятной. В попытке решить эту проблему мы попытались исправить одно (ниже):

Это была наша первая попытка. TCP Chimney теперь отключен на сервере приложений и сервере базы данных. Тестирование показывает, что та же ошибка происходит с той же скоростью.

Так куда же идти? Честно говоря, я не уверен. Остается один, казалось бы, хороший вариант:

  • Установки сервера приложений и сервера базы данных SQL Server точно не совпадают
  • Сервер приложений = SQL Server 2008 (SP1) - 10.0.2531.0 (X64)
  • Сервер базы данных = SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)

Планируется обновить установку SQL Server на сервере приложений. Это своего рода хит и надежда, но на данный момент это кажется лучшим вариантом. Что-то в моем мозгу говорит мне, что это может быть решено путем исправления проблемы с оборудованием (под этим я подразумеваю ремонт или замену), и что конфигурация аппаратного и программного обеспечения может с этим ничего не поделать.

Тем не менее, я все еще не уверен, как определить первопричину. Мне все еще интересно, какие инструменты мне следует использовать для диагностики первопричины.

4b9b3361

Ответ 1

Есть ли у вас программное обеспечение AV на стороне сервера приложений? Если да, попробуйте отключить AV - иногда AV блокирует трафик TCP/IP. Проблема с "Указанное имя сети больше не доступно" была решена путем отключения AV здесь: https://community.spiceworks.com/topic/239423-the-specified-network-name-is-no-longer-available- while лоточного типа к разделяемой реж

Ответ 2

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

  1. Добавьте исключение к любому правилу брандмауэра, которое запускается и вызывает закрытие соединения.
  2. Прекратите запускать столько рабочих мест одновременно. Вы должны рассмотреть запуск их в последовательности. Это также придерживается идеи быть хорошим гражданином сети.

Ответ 3

  • Во-первых, вы пытались удалить большую настройку отправки отправки на nic?
  • Во-вторых, можете ли вы запустить wirehark для захвата пакетов, если вы можете воспроизвести ошибку?
  • В-третьих, вы пытались изменить vnic с VM? некоторые модели могут вызвать проблемы. (Если вы используете vmxnet3, попробуйте e1000 и т.д.)
  • В последнем случае у вас есть vswitch между ними, они находятся на одном хосте, физический коммутатор между ними и т.д. Плохо сконфигурированный коммутатор может отбросить трафик, если внутри хоста тот же хост и тот же самый vswitch он лучший тест, так как трафик никогда не покидает сервер.

Ответ 4

Попробуйте использовать ODBC вместо OLE DB для подключения к базе данных.