Клиент DB2 v9.5 на Win 2003 занимает много времени, чтобы установить соединение
У меня есть приложение ASP.NET, работающее в Windows 2003, которое должно взаимодействовать с базой данных DB2, которая находится на мэйнфрейме. Мы установили драйвер DB2 Client v9.5 на наш сервер, чтобы приложение могло выполнить соединение и работать с базой данных. Строка подключения для подключения к базе данных содержит имя пользователя и пароль, это не доверенное соединение.
Чтобы было ясно, мы используем поставщика DB2 .NET, а не OLE DB, ODBC и т. Д.
Мы замечаем, что когда приложение ASP.NET пытается установить это первое соединение с DB2, это занимает очень много времени, примерно 20 секунд. После разговора с одним из наших постоянных администраторов баз данных они сказали, что это может быть из-за того, что драйвер DB2 пытается аутентифицировать учетную запись пользователя, которая используется для подключения к базе данных, в Active Directory.
Их решение состояло в том, чтобы создать локальную учетную запись пользователя на сервере Win2003 с тем же именем, что и учетная запись пользователя, которая используется для подключения. Локальная учетная запись пользователя не обязательно должна быть членом какой-либо группы acl, и ее можно отключить.
Я попробовал это решение, и, к моему изумлению, оно действительно сработало. Соединение было установлено в течение миллисекунд. Что меня беспокоит, так это то, что эта "особенность" выглядит как недостаток в драйвере DB2, и любые новые версии этого драйвера могут фактически помешать этому снова работать.
Кто-нибудь знает, есть ли в драйвере DB2 фактическая настройка, которую мы могли бы установить, чтобы он не пытался аутентифицироваться в Active Directory? Мне было бы удобнее использовать эту настройку, чем полагаться на то, что мне кажется недостатком в их алгоритме аутентификации.
Спасибо
2 ответа
В настройках конфигурации клиента db2 есть несколько вариантов аутентификации. Описания опций сбивают с толку. По умолчанию используется "определить аутентификацию в серверах dbm config". На клиенте "серверы dbm config" действительно означает локальную машину. Если на вашем локальном компьютере установлена ОС Microsoft Windows, то соединение попытается аутентифицировать идентификатор, используя метод аутентификации по умолчанию. Если по умолчанию активная директория, то все может быть очень медленно. Как только он получит возврат из окон (хороший или плохой), он все равно попытается подключиться к db2, используя id/passwd. Вот почему ваш администратор базы данных сказал каталогизировать соединение с помощью "использовать проверку подлинности сервера". В миксе тоже есть ошибка. Если вы используете odbc, он все равно может попытаться перейти на контроллеры домена и исправить то, что потребуется локальный идентификатор.
Наш администратор баз данных только что нашел правильное решение и работает без добавления этого локального пользователя.
По сути, это связано с тем, что при каталогизации соединения на сервере прикладных программ DB2 вы должны указать что-то вроде 'Authentication Server'. Это предотвращает аутентификацию драйвера DB2 в Active Directory.
Я знаю, что ответ неопределенный, но это самое большее, что я мог получить от него.