Сведения о Microsoft Transaction Server

Данный документ содержит последние сведения о Microsoft® Transaction Server (MTS). Дополнительные сведения содержатся в разделах:

Установка Microsoft Transaction Server
Новые возможности MTS 2.0?
Документация по MTS


Последние сведения и известные ограничения

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

Задание удостоверения системного пакета

При установке MTS задайте удостоверение пакета System перед созданием какого-либо нового пакета следующим способом:

  1. Создайте новую локальную группу Windows NTÒ с именем «MTS Administrators» и нового локального пользователя с именем «MTS Administrator».

  2. Добавьте пользователя «MTS Administrator» в группы «MTS Administrators» и «Administrators».

  3. Задайте удостоверение пакета System для MTS «Administrator».

  4. Завершите работу пакета System, чтобы он был перезапущен с новым удостоверением.

Права пользователя для пакетов MTS

Убедитесь, что учетная запись пользователя для удостоверений пакета System и других пакетов MTS имеет права пользователя Windows NT «Log on as a service» (Вход в качестве службы). Это можно проверить с помощью диспетчера пользователей Windows NT (User Manager):

  1. Выполните команду User Rights (Права пользователя) из меню Policies (Политика).

  2. Установите флажок Show Advanced User Rights (Показать дополнительные права).

Настройка MTS для доступа к базам данных Oracle

Эти сведения полностью заменяют ранее приведенные в документации сведения, которые описывают использование Oracle с Microsoft Transaction Server, включая электронную справку Microsoft Transaction Server 2.0.

Имеется возможность разрешить доступ компонентов транзакций MTS к базе данных Oracle 7.3.3 через интерфейс ODBC. MTS работает с Oracle 7 Workgroup Server для Windows NT, Oracle 7 Enterprise Server для Windows NT, серверами Oracle 7 Enterprise Server под UNIX и Oracle Parallel Server под UNIX.

Компонент MTS может получить доступ к базе данных Oracle 8 в системе Windows NT или в системе Unix, если он использует программное обеспечение клиента Oracle 7.3.3. MTS не поддерживает программное обеспечение клиента Oracle 8.

В данном разделе описываются следующие вопросы:

Необходимое программное обеспечение

Для доступа к базе данных Oracle из компонентов MTS необходимо следующее программное обеспечение.

Компонент Версия
База данных Oracle под Windows NT 7.3.3 (с пакетом обновления 4 или более поздним)
База данных Oracle под UNIX 7.3.3 (с пакетами обновлений)
Oracle SQL*Net 2.3.3 (с пакетом обновления 2.3.3.0.3 или более поздним)
Oracle OCIW32.DLL 1.0.0.5 или более поздняя
Oracle SQLLIB18.DLL 1.8.3.0.1 или более поздняя
Oracle XA73.LIB 7.3.3.2.0 или более поздняя
Microsoft Transaction Server 2.0 2.0
Драйвер Microsoft ODBC для Oracle (MSORCL32.DLL) 02.73.7283.1 или более поздняя
ActiveX Data Objects (ADO) 1.5

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

База данных Oracle под Windows NT

Если база данных Oracle используется в системе Windows NT, имеется возможность установить выпуск Oracle 7.3.3 Workgroup Server для Windows NT или выпуск Oracle 7.3.3 Enterprise Server для Windows NT. Oracle 7.3.2 и более ранние выпуски Oracle для Windows NT не поддерживаются и не будут работать с транзакциями MTS.

Необходимо установить версию пакета обновления Oracle 7.3.3, указанную в приведенной таблице. Выпуск Oracle 7.3.3 не будет работать с MTS, пока не будет установлена данная версия пакета обновления.

Для получения этого пакета обновления Oracle отправьте отчет о неполадках в службу поддержки клиентов Oracle. Этот пакет обновления отсутствовал на общем Web-узле Oracle во время создания данного документа.

Имеется возможность установить Oracle 8 под Windows NT, при условии, что компоненты Microsoft Transaction Server используют программное обеспечение клиента Oracle 7.3.3. MTS не поддерживает программное обеспечение клиента Oracle 8.

База данных Oracle под UNIX

Чтобы компоненты транзакций MTS получили доступ к базе данных Oracle под UNIX, необходимо установить выпуск Oracle 7.3.3 (или более поздний) для данной системы UNIX. В большинстве случаев необходимо также установить пакет обновления Oracle 7.3.3 для Oracle под UNIX.

Обратитесь в службу поддержки Oracle, чтобы определить, что пакет обновления Oracle 7.3.3 необходим для данной системы UNIX. Объясните, что собираетесь установить доступ к базе данных Oracle под UNIX с использованием поддержки новых XA-транзакций, которая не входит в выпуск Oracle 7.3.3 под Windows NT.

Следующие пакеты обновления работают:

Система Пакет обновления Oracle
HP 9000 7.3.3.3
IBM AIX 7.3.3.2
Sun Solaris 7.3.3.2

Имеется возможность установить Oracle 8 под Unix, при условии, что компоненты Microsoft Transaction Server используют программное обеспечение клиента Oracle 7.3.3. MTS не поддерживает программное обеспечение клиента Oracle 8.

Клиенты Oracle под Windows NT или Windows 98

Если компоненты Microsoft Transaction Server обращаются к базе данных Oracle на удаленной системе Windows NT или Unix, убедитесь, что следующее программное обеспечение клиента Oracle имеется в системе Microsoft Transaction Server. Убедитесь, что программное обеспечение клиента имеет версию нужного уровня. Таблица в начале раздела «Необходимое программное обеспечение» указывает нужные версии.

Компонент
Oracle SQL*Net
Oracle OCIW32.DLL
Oracle SQLLIB18.DLL
Oracle XA73.LIB

Oracle SQL*Net

Необходимо установить указанную версию Oracle SQL*Net в системе Microsoft Transaction Server.

Oracle OCIW32.DLL

Необходимо установить указанную версию Oracle OCIW32.DLL в системе Microsoft Transaction Server.

Известно, что работает следующая версия Oracle OCIW32.DLL:

Version 1, 0, 0, 5
Tuesday, March 18, 1997 2:47:52 PM
Size 18KB. 

Известно, что не работает следующая версия Oracle OCIW32.DLL:

Version 7.x
Thursday, February 01, 1996 12:50:06 AM
Size 36 KB

Правильную версию можно получить с установочного компакт-диска Oracle 7.3.3 из каталога \WIN32\V7\RSF73.

Oracle SQLLIB18.DLL

Необходимо установить указанную версию Oracle SQLLIB18.DLL в системе Microsoft Transaction Server.

Oracle XA73.LIB

Необходимо установить указанную версию Oracle XA73.LIB в системе Microsoft Transaction Server.

Microsoft Transaction Server 2.0

Если нужно получить доступ к базе данных Oracle с помощью MTS с поддержкой транзакций, необходимо установить Microsoft Transaction Server 2.0.

Драйвер Microsoft ODBC для Oracle

Требуется драйвер Microsoft ODBC 2.0 для Oracle (MSORCL32.DLL) версии 02.73.7283.1 или более поздней. Эта библиотека автоматически устанавливается программой установки Windows NT 4.0 Option Pack.

Если необходимо получить доступ к базе данных Oracle, предлагается использовать только новый драйвер Oracle 2.0, даже в том случае, если не требуется поддержка транзакций. Этот новый драйвер обладает более высоким быстродействием, чем заменяемый им драйвер Oracle 1.0. Драйвер Oracle 1.0 сериализовал все активности на уровне драйвера; запросы проходили через него одним потоком. Драйвер ODBC 2.0 сериализует все активности на уровне подключения. Это позволяет различным подключениям к базам данных использоваться параллельно.

ActiveX Data Objects (ADO)

Если ваши приложения используют ADO, необходимо установить ADO версии 1.5. Предыдущие выпуски ADO не будут работать с новым диспетчером драйверов ODBC 3.5. ADO 1.5 устанавливается программой установки Windows NT 4.0 Option Pack.

Установка поддержки Oracle

Чтобы установить поддержку Oracle для компонентов транзакций MTS:

  1. Установите выпуск Oracle 7.3.3 на систему сервера базы данных Oracle.

    Если база данных Oracle находится в системе Windows NT, установите под этой системой выпуск Oracle 7.3.3 для Windows NT.

    Если база данных Oracle находится в системе UNIX, установите выпуск Oracle 7.3.3 для этой системы.

    Убедитесь, что установлена правильная версия библиотеки OCIW32.DLL, как описано в разделе «Необходимое программное обеспечение».

  2. Установите необходимый выпуск пакета обновления для Oracle 7.3.3 на систему сервера базы данных Oracle.

    Если база данных Oracle находится в системе Windows NT, установите выпуск пакет обновления Oracle 7.3.3, указанный в таблице из раздела «Необходимое программное обеспечение».

    Если база данных Oracle находится в системе UNIX, установите выпуск пакет обновления Oracle 7.3.3, необходимый для этой версии UNIX.

  3. Установите программное обеспечение клиента Oracle 7.3.3.

Если компоненты Microsoft Transaction Server обращаются к базе данных Oracle на удаленной системе Windows NT или Unix, убедитесь, что правильное программное обеспечение клиента Oracle имеется в системе Microsoft Transaction Server.

Установите указанную версию пакета обновления Oracle в систему Microsoft Transaction Server и убедитесь, что версия программного обеспечения клиента соответствует версиям, перечисленным в таблице из раздела «Необходимое программное обеспечение».

  1. Установите Microsoft Transaction Server 2.0.

    После установки Microsoft Transaction Server 2.0 будет установлено следующее программное обеспечение.

    • Microsoft Transaction Server 2.0, включая интерфейс Microsoft OCI

    • Диспетчер драйверов Microsoft ODBC 3.5

    • Драйвер Microsoft ODBC для Oracle

    • ADO 1.5
  2. Удалите DTCXATM.LOG.

    Если бета-версия Microsoft Transaction Server 2.0 никогда не устанавливалась, пропустите данный пункт.

    Если ранее была установлена бета-версия Microsoft Transaction Server 2.0, воспользуйтесь проводником Windows для обнаружения файла DTCXATM.LOG в своей системе. После этого остановите службу Microsoft DTC и удалите файл DTCXATM.LOG.

    Следует удалить файл DTCXATM.LOG только один раз при первом обновлении бета-версии Microsoft Transaction Server 2.0. После этого никогда больше не удаляйте файл DTCXATM.LOG, поскольку он может содержать важные сведения для восстановления.

  3. Включите поддержку Oracle XA

    Выполните следующие шаги по включению поддержки XA-транзакций Oracle:

    1. Системный администратор Oracle должен создать представления, известные как V$XATRANS$. Для этого администратор должен запустить предоставляемый Oracle сценарий с именем "xaview.sql". Этот файл обычно находится в каталоге C:\ORANT\RDBMS73\ADMIN.

    2. Системный администратор Oracle должен предоставить общий доступ для операции SELECT в этих представлениях.
      Grant Select on V$XATRANS$ to public.
    3. В «Oracle Instance Manager» выполните команду Advanced Mode из меню View и выберите Initialization Parameters в области слева. В области справа выберите Advanced Tuning и увеличьте параметр "distributed_transactions", чтобы позволить большему числу транзакций MTS одновременно обновлять базу данных.

    Дополнительные сведения о настройке поддержки XA-транзакций в Oracle см. в документации по серверу Oracle.

  4. Настройте интегрированную безопасность

    Базы данных Oracle имеют интегрированную безопасность, которая использует проверку аутентичности Windows NT для проверки пользователей базы данных. Это позволяет пользователю входить в Oracle без предоставления отдельной учетной записи и пароля пользователя. Пользователи могут иметь одну учетную запись и пароль для Windows NT и Oracle.

    Если компоненты MTS всегда отправляют учетные сведения и пароль при подключении к базам данных Oracle, то не следует использовать интегрированную безопасность. Это справедливо, если приложения прямо или косвенно указывают учетную запись и пароль пользователя через ODBC DSN. В любом случае, если интегрированная безопасность не используется, можно пропустить данный шаг.

    При использовании интегрированной безопасности необходимо настроить MS DTC для запуска с именем и паролем пользователя, который имеет право подключаться к базе данных Oracle. Это необходимо, поскольку во время восстановления базы данных MS DTC открывает эту базу данных Oracle для сообщения об исходе транзакций, находящихся в неопределенном состоянии. См далее раздел «Изменение учетной записи пользователя, под которой запускается Microsoft Distributed Transaction Coordinator». Воспользуйтесь средствами администрирования безопасности Oracle, чтобы для гарантировать, что указанный пользователь имеет право открывать базу данных Oracle.

    Дополнительные сведения по интегрированной безопасности Oracle и Windows NT содержатся в документации Oracle.

  5. Настройте Oracle на поддержку дополнительных подключений

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

Проверка установки и настройки поддержки Oracle в MTS

После установки и настройки поддержки Oracle необходимо проверить установку Oracle с помощью тестовой программы, установленной вместе с MTS. Тестовая программа Oracle использует интерфейсы Oracle OCI XA во многом таким же образом, как и MTS.

Эта программа определяет, имеется ли возможность подключиться в базе данных Oracle с помощью средств Oracle XA. Тестовая программа Oracle использует стандартные интерфейсы и средства транзакций Oracle. Она не использует Microsoft Transaction Server или Microsoft Distributed Transaction Coordinator. Поэтому сбой тестовой программы указывает на то, что система Oracle неправильно установлена или настроена. При сбое тестовой программы Oracle переустановите и перенастройте Oracle, либо обратитесь за помощью в службу поддержки клиентов Oracle

Чтобы запустить тестовую программу Oracle:

  1. Убедитесь, что установлены все правильные версии программного обеспечения, описанного в разделе «Необходимое программное обеспечение».

  2. Создайте файл источника данных ODBC (DSN), который ссылается на эту базу данных Oracle. Убедитесь, что DSN использует новый драйвер Microsoft Oracle ODBC 2.0.

  3. Убедитесь, что включена поддержка Oracle XA.

    Удалите все имеющиеся файлы трассировки Oracle с компьютера, содержащего компоненты MTS, которые обращаются к базе данных Oracle. Проще всего с помощью проводника Windows найти и удалить все файлы *.TRC.

    При сбое тестовой программы Oracle можно попробовать определить источник неполадки с помощью файлов трассировки. Удаление всех старых файлов трассировки упрощает обнаружение созданных заново файлов.

  4. Если ранее была установлена бета-версия Microsoft Transaction Server 2.0, воспользуйтесь проводником Windows для обнаружения файла DTCXATM.LOG в своей системе. После этого остановите службу Microsoft DTC и удалите файл DTCXATM.LOG.

    Если бета-версия Microsoft Transaction Server 2.0 никогда не устанавливалась, пропустите данный пункт.

    Следует удалить файл DTCXATM.LOG только один раз при первом обновлении бета-версии Microsoft Transaction Server 2.0. После этого никогда больше не удаляйте файл DTCXATM.LOG, поскольку он может содержать важные сведения для восстановления.

  5. С командной строки MS-DOS запустите тестовую программу Oracle (TestOracleXaConfig.exe) и задайте код и пароль пользователя сервера Oracle, а также имя службы. Например,
    c:>TestOracleXaConfig.exe  -U<код> -P<пароль>
    -S<имя сервера, как в файле TNS>.

    При запуске тестовой программы без параметров отображается справка с их описанием.

    Тестовая программа отобразит сведения о каждой выполненной операции Oracle и укажет, успешно ли она выполнена.

  6. Если тестовой программе Oracle удается подключится в серверу базы данных Oracle без ошибок, то очень вероятно, что MTS также будет работать с Oracle. Если тестовая программа Oracle выдает сообщения об ошибках, выполните приведенные ниже действия.
    • Точное запишите сообщение об ошибке, отображаемое тестовой программой Oracle.

    • Просмотрите файл трассировки Oracle, созданный при запуске проверочной программы Oracle. Сведения о трассировке Oracle содержатся в файле *.TRC. Файл трассировки Oracle содержит расширенные сведения об ошибках, чрезвычайно полезные при анализе неполадок.

    • Обратитесь за помощью к местному представителю Oracle.

Проверка установки и настройки поддержки Oracle с помощью приложения «Sample Bank»

После проверки установки и настройки Oracle с помощью тестовой программы Oracle имеется возможность использовать приложение «Sample Bank», поставляемое с Microsoft Transaction Server, чтобы убедиться, что Microsoft Transaction Server имеет доступ к базе данных Oracle.

Чтобы проверить поддержку Oracle, с помощью приложения «Sample Bank»:

  1. Убедитесь, что закончена проверка правильной установки и настройки поддержки Oracle с помощью тестовой программы Oracle, поставляемой с MTS. Если тестовая программа Oracle сообщает об ошибках, необходимо устранить неполадки перед продолжением операции.

  2. Создайте на сервере базы данных Oracle таблицу с именем «Account». В следующем примере показано, как настроить таблицу Account.

    Владелец scott

    Имя таблицы Account

    Имя столбца 1 AccountNo тип NUMBER

    Имя столбца 2 Balance тип NUMBER

  3. Занесите в таблицу не менее двух строк. В следующей таблице показано, как заполнять таблицу.

    AccountNo Balance

    1 1000

    2 1000

  4. Создайте файл DSN с помощью программы настройки ODBC. Имя файла DSN "MTSSamples". Затем вручную обновите файл DSN, чтобы добавить пароль пользователя. В следующем примере показано, как добавлять пароль в файл DSN.

    [ODBC]

    DRIVER=Microsoft ODBC for Oracle

    UID=scott

    PWD=мой_пароль

    ConnectString=мой_сервер

    SERVER=мой_сервер

  5. Сохраните файл DSN и запустите клиент «Sample Bank».

Администрирование Oracle и Microsoft Distributed Transaction Coordinator

Изменение имен библиотек в будущих выпусках Oracle

Oracle иногда изменяет имена библиотек (DLL), когда выпускает новые версии своего продукта. Microsoft Transaction Server основывается на известных именах некоторых библиотек Oracle. MTS в данное время ищет имена DLL, поставляемых с выпуском Oracle 7.3.3. Если Oracle переименует эти библиотеки, необходимо изменить значения следующих записей реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Transaction Server\Local Computer\My Computer

В это разделе имеется два строковых значения.

Изменение учетной записи пользователя, под которой запускается Microsoft Distributed Transaction Coordinator

Если MicrosoftÒ Distributed Transaction Coordinator (DTC) настроен на запуск под учетной записью, отличной от System, необходимо указать учетную запись, которая является участником группы администраторов. В противном случае служба MS DTC запущена не будет, и следующее сообщение будет записано в журнал событий Windows NT.

XATM log object failed to set log encryption key

Имеется возможность настроить код пользователя для службы MS DTC следующим образом:

  1. Остановите службу MS DTC.

  2. Нажмите кнопку Пуск, выберите пункт Настройка, а затем —Панель управления.

  3. Дважды щелкните на панели управления значок Службы.

  4. Дважды щелкните MS DTC в списке «Службы».

  5. В группе Вход укажите имя и пароль пользователя.

  6. Вновь запустите службу MS DTC.

Настройка Oracle для поддержки большого числа подключений

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

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

При обнаружении одной из указанных неполадок, увеличьте следующие параметры настройки сервера Oracle:

Sessions

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

Queuesize

Если значение параметра queue size не подходит для процесса Oracle Listener, иногда возникает сбой этого процесса, и остаются открытые запросы к базам данных. Это происходит, если процесс Oracle Listener получает слишком большое число запросов подключений и его очередь переполняется. Клиент, который встречает данную ошибку, сообщает об ошибке ‘ORA-12541: No Listener’ and the client log or trace fileswill show the ECONREFUSED message.

Для устранения неполадки:

  1. Остановите процесс Oracle listener в системе, содержащей сервер базы данных Oracle.

  2. Увеличьте параметр QUEUESIZE в файлах LISTENER.ORA, TNSNET.ORA или NAMES.ORA в системе сервера базы данных Oracle. Выберите размер очереди основе предполагаемого числа одновременных или почти запросов подключения.

    Желательно выбрать для QUEUESIZE наиболее общее значение, поскольку система Oracle обычно открывает более одного подключения к базе данных для каждого подключения транзакции, которое открывает приложение. В результате процесс Oracle Listener может переполниться.

    Чтобы принять 100 запросов, измените файл LISTENER.ORA следующим образом:

    QUEUESIZE = 100
  3. Перезапустите процесс Oracle Listener

Известные ограничения поддержки Oracle в MTS

При использовании с ODBC 3.5 требуется ADO версии 1.5

Если приложения используют ADO, убедитесь, что установлена ADO версии 1.5. Дополнительные сведения содержатся в разделе «Необходимое программное обеспечение».

Отсутствует поддержка Oracle для систем Digital Alpha

Подключение к базам данных Oracle не поддерживается для компонентов Microsoft Transaction Server, работающих в системах с процессором Alpha фирмы Digital. Поддержка Oracle в системах Digital Alpha будет добавлена в будущих выпусках продукта.

Ошибка версии OCIW32.DLL

Важно, чтобы на компьютере была установлена правильная версия OCIW32.DLL. Версию этой библиотеки следует проверять при каждой переустановке Oracle или Microsoft Transaction Server.

Отсутствует доступ к Oracle из кластеров MSCS (Wolfpack)

Приложения Microsoft Transaction Server, находящиеся в кластерах MSCS (Wolfpack), не могут получить доступ к базам данных XA-типа, включая базы данных Oracle. Этот результат ограничения Microsoft Distributed Transaction Coordinator.

В данное время Microsoft Distributed Transaction Coordinator хранит сведения о шифровании, связанные с восстановлением XA, в реестре Windows NT. Эти сведения не могут в данное время реплицироваться между двумя узлами в кластере MSCS. В результате Microsoft DTC не может использоваться с любыми XA-совместимыми базами данных в кластеризованной среде. Это предполагается устранить это ограничение в следующем выпуске.

Безопасность и связь между удаленными компьютерами MS DTC

Если приложение выполняет транзакции, захватывающие два или более компьютера, необходимо убедиться, что службы MS DTC на этих компьютерах настроены на взаимодействие друг с другом. По умолчанию MS DTC выполняется с удостоверением учетной записи System. Служба MS DTC на одном компьютере имеет возможность взаимодействовать со службой MS DTC на другом компьютере, только если на обоих компьютерах доступны гостевые учетные записи (Guest). Если гостевые учетные записи отключены на каждом компьютере или в домене Windows NT, которому они принадлежат, необходимо настроить службу MS DTC на выполнение под каким-либо другим именем пользователя, который имеет возможность взаимодействовать с удаленным компьютером. См выше раздел «Изменение учетной записи пользователя, под которой запускается Microsoft Distributed Transaction Coordinator».

MS DTC с MSCS требуется QFE

Пользователи MS DTC в среде MSCS должны установить Windows NT QFE Q116844. QFE исправляет неполадки службы RPC (Remote Procedure Call), которые могут вызывать зависание клиента MS DTC при попытке подключиться к MS DTC на кластеризованном сервере. Это исправление является также частью поправки Windows NT QFE1, доступной на Web-узле Windows NT Option Pack.

Имя удаленного сервера должно указывать виртуальный сервер на серверах MSCS

Кластеризованные серверы должны задать с помощью MTS Explorer значение виртуального сервера для свойства Имя удаленного сервера. Это позволяет удаленным клиентам получать доступ к компонентам MTS внутри кластера, и, в случае сбоя, гарантировать, что клиенты ссылаются на кластер, а не на специфический узел внутри кластера.

Удостоверения пакета MTS должны быть в группе администраторов в кластерах MSCS

Для пакетов MTS в кластерах MSCS учетная запись пользователя, связанная с удостоверением пакета, должна соответствовать системному администратору или должна иметь разрешение на полный доступ к кластеру (как задается в cluadmin). Если пакет не запускается с удостоверением системного администратора, MTS не сможет подключиться к службе MS DTC.

MTS в кластерах MSCS требуется одинаковый путь к системе Windows NT на всех узлах

MTS требуется, чтобы ко всем каталогам Windows NT был одинаковый путь на всех узлах в кластере MSCS (например c:\winnt).

Завершите работу ресурсов кластера MSCS перед установкой MTS

Необходимо завершить работу всех ресурсов кластера MSCS (например сервера SQL Server), на которые влияет установка MTS, перед запуском программы установки MTS.

Установка SQL Server 6.5 после установки MTS

Имеется возможность установить SQL Server 6.5 после установки MTS. Рекомендуется установить SQL Server 6.5 перед установкой MTS. Если установить SQL Server 6.5 после установки MTS, программа установки MTS будет пытаться убедиться, что служба MS DTC работает правильно.

Запуск сценария INSTCAT.SQL

Для удобства MTS включает сценарий INSTCAT.SQL. Этот сценарий обновляет сохраненные процедуры каталога для драйвера SQL Server ODBC. Если это еще не было выполнено, запустите этот сценарий с помощью служебной программы SQL Server isql.

Опечатка в документации о безопасности

Проверка безопасности по умолчанию не включается.

Невозможно задать удостоверение пакета для группы.

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

Файл журнала MS DTC может быть сжат

Файл журнала MS DTC может теперь размещаться в сжатом каталоге. Однако для оптимального быстродействия не сжимайте файл журнала Microsoft DTC и не храните его в сжатом каталоге. MS DTC должен распаковывать файл журнала перед использованием.

Неполадки при сбросе файла журнала MS DTC в Windows 98

При сбросе файла журнала MS DTC в системе Windows 98 может появиться диалоговое окно "MTxOCI", за которым последует сообщение об ошибке «Сбой создания файла журнала MS DTC». В этом случае необходимо отключить автоматический запуск MS DTC, как описано в разделе «Наблюдение транзакций MTS в системе Windows 98». Перезапустите компьютер и выполните сброс файла журнала. Затем можете вновь включить автоматический запуск службы MS DTC.

Для устранения других неполадок, связанных со сбросом файла журнала службы MS DTC, закройте и перезапустите MTS Explorer, а затем попытайтесь вновь выполнить сброс журнала. В некоторых случаях для этого может потребоваться несколько попыток.

Наблюдение транзакций MTS под Windows 98

Документация по запуску и остановке службы MS DTC для MicrosoftÒ WindowsÒ 95 должна быть изменена следующим образом:

По умолчанию служба Microsoft Distributed Transaction Coordinator (MS DTC) настроена на автоматический запуск при запуске системы Windows NT или Windows 98. Чтобы предотвратить автоматический запуск службы MS DTC после перезагрузки компьютера с системой Windows 98, воспользуйтесь редактором реестра, чтобы найти раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices, а затем удалить запись с именем MSDTC. Если нужно вновь включить автоматический запуск службы MS DTC, воспользуйтесь редактором реестра для создания записи MSDTC со строковым значением "msdtcw -start" в разделе HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices.

Следует отметить, что службы имеет имя "msdtcw", а не "msdtc", и необходим пробел перед дефисом.

Невозможно удаленное администрирование компьютеров MTS 2.0 с компьютеров MTS 1.x

Невозможно удаленное администрирование установки MTS 2.0 с компьютера, на котором выполняется предыдущая версия MTS. При попытке выполнить такое администрирование приведет к возврату ошибочного кода или к непредвиденной остановке MTS Explorer.

Невозможно завершение работы отдельных пакетов при удаленном администрировании компьютера MTS 1.x

Завершение работы отдельных пакетов не поддерживается при удаленном администрировании компьютера MTS 1.x.

Завершение работы Visual Basic 5.0 с MTS 2.0

После установки MTS 2.0 возможен вывод сообщения о нарушении прав доступа при завершении работы MicrosoftÒ Visual BasicÒ 5.0. Это известная ошибка Visual Basic 5.0, которую можно исправить с помощью установки пакета Visual StudioÔ Service Pack 2 с узла http://www.microsoft.com/vstudio. Дополнительные сведения по этому вопросу содержатся в статье Q167213 базы данных Knowledge Base.

Несколько серверных процессов под Windows 98

Известно, что если серверный процесс MTS останавливается непредвиденно (из-за нарушения политики обхода сбоев (failfast), защиты или прав доступа), при последующих попытках перезапуска приложения создаются несколько процессов MTS. (При правильном поведении должно быть по одному процессу MTS на пакет.) В случает непредвиденной остановки серверного процесса необходимо перезагрузить компьютер с системой Windows 98.

Взаимоблокировка в Windows 98 при использовании именованных каналов

Известно, что возможна возникновение взаимоблокировки при использовании примерно более 40 подключений именованных каналов от клиента Windows 98 к службе MS Distributed Transaction Coordinator (DTC). Чтобы устранить неполадку, замените протокол между драйвером ODBC и сервером SQL Server на протокол TCP/IP.

Компоненты и записи реестра TreatAs и AutoTreatAs

Модель COM позволяет одному серверу эмулировать другой сервер с помощью записи реестра TreatAs или AutoTreatAs. Предположим клиент создает компонент с кодом CLSID с помощью CoCreateInstance. Если для этого кода CLSID в реестре имеется запись TreatAs или AutoTreatAs, модель COM вместо этого создает компонент, указанный в этой записи. При этом клиентские запросы эффективно направляются эмулируемому серверу. (Подобное перенаправление возможно с помощью кода ProgID, если клиент обращается к своим серверам через код ProgID вместо кода CLSID.)

Компоненты, эмулируемые с помощью TreatAs или AutoTreatAs, не являются допустимыми компонентами MTS и не могут импортироваться. Если эмуляция должна быть добавлена после импорта компонента, компонент должен быть удален из каталога MTS, а затем заменен на эмулируемый компонент.

Смешанные модели потоков в серверном процессе

Внутри серверного процесса объекты в одной и той же активности должны быть зарегистрированы с совместимыми моделями потоков. Допускаются следующие комбинации:

Следует отметить, что это означает, что компоненты MTS с одиночными потоками не могут создаваться внутренними для активной серверной страницы (Active Server Page) IIS или для приложения IIS, использующих изолированность процессов.

Не создавайте локальные серверы не-MTS с помощью CreateInstance

Настоятельно не рекомендуется создавать локальные серверы не-MTS с помощью метода CreateInstance контекстного объекта. Такие серверы не будут хорошо масштабироваться и могут приводить к возникновению дополнительных экземпляров серверов, которые не завершают работу с помощью MTS. Если требуется создать локальный сервер не-MTS, воспользуйтесь методом CoCreateInstance.

Не используйте заменители модели COM внутри MTS. Вместо этого, загружайте внутренние серверы в серверные процессы MTS.

Безопасность MTS не работает с олицетворением IIS

Управление доступом к пакету на основе ролей в MTS не работает, если пакеты выносятся на передний край с помощью мультиплексоров, которые олицетворяют несколько клиентов (например, Internet Information Server). Используемые в этих средах пакеты MTS должны настраиваться при отключенной системе безопасности.

Это может быть исправлено с помощью установки Windows NT QFE1, доступной на Web-узле Windows NT Option Pack. После установки поправки QFE основанная на ролях безопасность будет работать с IIS.

При создании безопасных приложений IIS, использующих изолированность процессов, IIS создает пакет MTS, который предназначен для запуска с именем IWAM_<имя компьютера>. Если нужно изменить удостоверение таких пакетов, следует добавить новое удостоверение пакета в группу «MTS Trusted Impersonators», или система безопасности не будет работать в других внешних компонентах MTS, вызываемых пакетом. Если это не выполнено, вызывающим клиентом будет, по-видимому, являться IWAM_<имя компьютера>, а не действительный клиент IIS.

Использование ErrorInfo с ADO

ADO уничтожает все сведения, которые могли быть помещены в объект ErrorInfo. Имеется программное средство для выхода из этой ситуации, которое нужно применить в обработчике ошибок.

Для Visual Basic такая программа имеет следующий вид:

ErrorHandler:
    ' очистка
    If Not adoRS Is Nothing Then
        Set adoRS = Nothing
    End If
    If Not adoConn Is Nothing Then
        Set adoConn = Nothing
    End If
    
    Err.Raise Err.Number, "Bank.Accout.Post", Err.Description

Exit Function

Для Visual C++ программа может иметь следующий вид:

//
// Здесь сохраняется ErrorInfo, поскольку следующий
// код ADO может ее очистить.
//
IErrorInfo * pErrorInfo = NULL;
GetErrorInfo(NULL, &pErrorInfo);

if (adoRsBalance) adoRsBalance->Release();
if (adoCoConnection) adoCoConnection->Release();

AtlReportError( CLSID_CAccount, pErrMsg, IID_IAccount, hr);

//
// ошибка помещается обратно в TLS
//
SetErrorInfo(NULL, pErrorInfo);

Для Visual J++ такая программа имеет следующий вид:

if (adoRsBalance != null) {
	if (adoRsBalance.getState() == ObjectStateEnum.adStateOpen)
		adoRsBalance.Close();
	ComLib.release (adoRsBalance);
}

if (adoConn != null) {
	if (adoConn.getState() == ObjectStateEnum.adStateOpen)
		adoConn.Close();
	ComLib.release (adoConn);
}

Примечание. В Java необходимо явно закрывать наборы записей и/или подключения, а также явно освобождать объекты ADO.

Отсутствует ASP-клиент «Sample Bank»

В документации неправильно указывается, что имеется версия клиента приложения «Sample Bank» для Active Server Page (ASP).

Максимальное число методов для компонентов MTS 2.0 составляет 1024

MTS 1.0 имеет предел в 100 методов на компонент. В MTS 2.0 этот предел составляет сейчас 1024 метода.

Для компонентов, использующих RDO 2.0 на компьютерах с многими процессорами, возможно возникновение ошибки нарушения прав доступа

Для компонентов, использующих RDO 2.0, к которым выполняется одновременный доступ с нескольких клиентов, возможно возникновение ошибки нарушения прав доступа. Это обнаруживается на серверах, имеющих несколько процессоров. Эта неполадка отсутствуют для компонентов, использующих ADO.

Размещение примеров сценариев Visual Basic

Примеры сценарии Visual Basic (VBScript) для автоматизации администрирования MTS находятся в папке \Program Files\Mts\Samples, а не в папке \Program Files\Mtx\Samples\WSH, как указано в документации.

Java-приложение «Sample Bank» не компилируется под Windows 98

Чтобы откомпилировать компоненты Java-приложения «Sample Bank» под Windows 98, запустите midl.exe для файла Account.idl, а затем выполните пакетный файл SetJavaDev.bat.

Использование Microsoft Transaction Server API для разработки приложений

Разработка компонентов с помощью Microsoft Visual C++

Библиотеки расширения MFC

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

Дополнительные сведения по библиотекам расширений MFC содержатся в руководстве администратора Microsoft Visual C++.

Разработка компонентов с помощью Microsoft Visual Basic

ObjectControl

Известные неполадки с завершением работы Mtx.exe при использовании компонентов Visual Basic 4.0

Когда процесс Mtx.exe, выполняющий компоненты Visual Basic 4.0, «завершается при отсутствии активности через x минут», это связано с известной неполадкой, приводящей к нарушению прав доступа на чтение. В данное время не существует решения для этого вопроса. Предполагается, что, если в процессе используется более двух компонентов Visual Basic 4.0, это происходит с большей вероятностью. Один из способов устранения неполадки заключается в задании для пакета параметра «Оставить процесс в состоянии ожидания». Эта неполадка возникает только при использовании компонентов, построенных с помощью Visual Basic 4.0; при применении Visual Basic 5.0 такие неполадки не возникают.

Устранение взаимоблокировок Visual Basic 4.0/RDO

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

  1. Создайте экземпляр серверного компонента. Вызовите метод, который создает rdoConnection, а затем rdoResultset. Имеется возможность использовать, но не отпускать и не закрывать rdoResultset.

  2. Освободите данный экземпляр. (Поскольку данное подключение и набор выходят за пределы определения, необходимые вызовы ODBC не выполняются сразу. Вместо этого, в скрытое окно отправляется сообщение на выполнение SQLFreeStmt+SQLDisconnect+SQLFreeConnect).

  3. Создайте второй экземпляр серверного компонента. Создайте rdoConnection и попытайтесь обновить строку, которая была включена в конечный набор на шаге 1. Теперь имеется взаимоблокировка, поскольку блокировки, наложенные на конечный набор на шаге 1, не были устранены. И новое сообщение, которое должно было обработать сообщение, отправленное на шаге 2, никогда не будет выполнено.

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

Обновление каталога MTS при разработке компонентов с помощью Visual Basic

При перекомпиляции проекта библиотек OLE в Visual Basic 4.0 Visual Basic перезаписывает все записи реестра для всех компонентов (классов Visual Basic), которые содержатся в этой библиотеке. Кроме того, Visual Basic может создавать новые коды GUID (в зависимости от настройки проекта) для идентификации компонентов в этой библиотеке. Это означает, что компоненты MTS больше не являются зарегистрированными в каталоге MTS.

Имеется два решения этого вопроса. Первое. В Transaction Server Explorer First имеется кнопка Обновление, а также команда Обновить все компоненты из меню Сервис. При использовании этой команды Microsoft Transaction Server устраняет все несоответствия в записях реестра для компонентов, в данное время содержащихся в правой области Explorer.

Чтобы включить возможность автоматического обновления компонентов после их перекомпиляции, при установке версии Microsoft Transaction Server для разработчика проверьте параметр VB Addin. При следующем запуске Visual Basic 4.0 эта надстройка будет автоматически установлена в среде разработки Visual Basic. Имеется возможность включать или отключать это средство для каждого конкретного проекта, устанавливая или снимая метку с команды MTxServer RegRefresh | AutoRefresh after compile в меню Visual Basic Add-Ins. Если нужно обновить все компоненты Microsoft Transaction Server в любое время, воспользуйтесь командой MTxServer RegRefresh | Refresh all components now из меню Add-Ins.

Важно. Надстройка Visual Basic была обновлена для работы с обеими версиями Visual Basic 4.0 и 5.0. После установки она автоматически обновляет каталог Transaction Server с изменениями, выполняемыми при каждой компиляции. Параметр меню для включения или отключения автоматического обновления больше не поддерживается.

Использование этой настройки правильно обновляет каталог MTS, даже после компиляций Visual Basic с созданием новыми кодов GUID компонентов. Следует отметить, что параметр Compatible OLE Server в диалоговом окне параметров проекта Visual Basic (Project Options) может быть использован для прекращения создания в Visual Basic новых кодов GUID компонентов.

Обновление каталога MTS зависит от того, были ли изменены коды ProgID компонентов. В Visual Basic 4.0 код ProgID компонента формируется следующим образом: имя проекта.имя класса. При изменении любого из этих элементов, необходимо переустановить компоненты в MTS Explorer.

Сборка компонента в Visual Basic 4.0 без выбора параметра Compatible OLE Server заменяет старые коды CLSID и IID при каждой компиляции. Это создает трудности при разработке компонента MTS, даже со включенной надстройкой Visual Basic.


Авторские права

© Корпорация Microsoft, 1998.

Данные материалы предоставляются «как есть» (только в целях информации).

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

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


© Корпорация Microsoft, 1998. Все права защищены.