Войти

ИСПРАВИТЬ: Повторяющиеся Загрузка и выгрузка 1 МБ виртуальной памяти Mtxdm.dll причины утечки

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

232351
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Проблема
При загрузке и выгрузке Mtxdm.dll в цикле for, утечка 1 МБ виртуальной памяти отображается с каждой итерации цикла.

Это наиболее вероятны в приложения, использующие группировки подключений ODBC и повторных подключений и отключений из серверной базы данных или приложений ODBC, которые делают много подключений и отключений на центральном Oracle.
Причина
Утечка памяти в виртуальной памяти, вызвана с помощью вызова TerminateThread() в Mtxdm.dll.

При использовании группировки подключений в приложении ODBC управление пул подключений, которое обрабатывается рабочим потоком, запущенной в Mtxdm.dll загружается диспетчер распределитель (Mtxdm.dll).

При завершении приложения рабочий поток отключен путем вызова TerminateThread(), которого не очистить и освободить 1 МБ память, выделенную для стека рабочего потока.

Таким же образом можно увидеть при выполнении повторных подключений и отключений к серверу базы данных Oracle, поскольку загрузки драйвера Microsoft Oracle ODBC Mtxdm.dll ли пул соединений, используется или нет.
Решение
Для решения этой проблемы, получите последний пакет обновления для Windows NT 4.0 или отдельного обновления. Сведения о получении последнего пакета обновления посетите:
Сведения о получении отдельные обновления обратитесь в службу технической поддержки Майкрософт. Полный список телефонов службы поддержки продуктов Майкрософт и информация по условиям обслуживания Пожалуйста, перейдите по следующему адресу в Интернете:

Windows NT Server или Workstation 4.0

Для решения этой проблемы, получите последний пакет обновления для Windows NT 4.0 или отдельного обновления. Сведения о получении последнего пакета обновления посетите:
Сведения о получении отдельные обновления обратитесь в службу технической поддержки Майкрософт. Полный список телефонов службы поддержки продуктов Майкрософт и информация по условиям обслуживания Пожалуйста, перейдите по следующему адресу в Интернете:

Система Windows NT Server 4.0, терминалов выпуск сервера

Чтобы устранить эту проблему, получите последний пакет обновления для Windows NT Server 4.0 Terminal Server Edition. Для получения дополнительных сведений щелкните следующий номер статьи вБаза знаний корпорации Майкрософт:
152734 Как получить последний пакет обновления для Windows NT 4.0

Статус
Корпорация Майкрософт подтверждает, что это проблема в продуктах Microsoft, перечисленных в начале данной статьи. Впервые эта ошибка была исправлена в Windows NT Server версии 4.0, терминалов Server Edition с пакетом обновления 6.

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ

Ручная установка исправления 051099a

Примечание: Для получения этого исправления необходимо службу технической поддержки корпорации Майкрософт. Можно найти в разделе «Решение» этой статьи для получения дополнительных сведений.
  1. Закрытие или прекращение всех приложений и служб, использующих Mtxdm.dll. Это может включать Internet Information Server (IIS), Microsoft Transaction Server (MTS), координатор распределенных транзакций (DTC) и любые приложения ADO или ODBC.
  2. Загрузите исправление (051099a.exe) во временную директорию и запустите его, чтобы извлечь следующие файлы:
    • Mmtxdm.dll
    • Файл readme.txt
  3. Найдите и переименуйте текущей версии Mtxdm.dll, который должен находится в папке \Winnt\System32 компьютеры под управлением Windows NT и в папке \Windows\System для компьютеров Windows 9 x.
  4. Копировать версию исправления Mtxdm.dll в том же месте и перезапуск служб и приложений.

Действия для воспроизведения поведения

Создание консольного приложения C/C++, с помощью следующего кода. Запустите это приложение при использовании системного монитора для просмотра байт виртуальной памяти для приложения.

ПРИМЕЧАНИЕ: Этот пример кода использует источник данных ODBC, который подключается к серверному Oracle, поскольку Mtxdm.dll загрузки драйвера Microsoft Oracle ODBC и более легко демонстрирует проблему.
   #include        <windows.h>   #include        <stdio.h>   #include        <sql.h>   #include        <sqlext.h>   #include        <assert.h>   #define CK_RT(x) if( x != SQL_SUCCESS && x != SQL_SUCCESS_WITH_INFO)    assert(0)   void main(){       HENV        henv;       HDBC        hdbc;       RETCODE     rc = SQL_SUCCESS;       char        *dsnStr="DSN=OracleServer;UID=scott;pwd=tiger;";       short       rtnLen = 0;       UCHAR       rtnDSN[999] = "";       int         i,x;       for (i=0; i < 100; i++)   	{               rc = SQLAllocEnv(&henv);               CK_RT(rc);               rc = SQLAllocConnect(henv, &hdbc);               CK_RT(rc);               rc = SQLDriverConnect(hdbc,                         NULL,                         (unsigned char *)dsnStr,                         strlen(dsnStr),                         rtnDSN,                         255,                         &rtnLen,                         SQL_DRIVER_NOPROMPT);               CK_RT(rc);               SQLDisconnect(hdbc);               SQLFreeConnect(hdbc);               SQLFreeEnv(henv);	   }   }				
Виртуальная память утечка oracle mtxdm.dll odbc соединение пула exitprocess отключение 2320 1 МБ

Предупреждение: эта статья переведена автоматически

Свойства

Номер статьи: 232351 — последний просмотр: 01/10/2015 11:59:52 — редакция: 5.0

  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtru
Отзывы и предложения