Данный документ содержит последние сведения о Microsoft® Transaction Server (MTS).
Дополнительные сведения содержатся в разделах:
Установка Microsoft Transaction Server
Новые возможности MTS 2.0?
Документация по MTS
В следующих разделах содержатся сведения, не вошедшие в документацию, а также известные ошибки и ограничения продукта.
При установке MTS задайте удостоверение пакета System перед созданием какого-либо нового пакета следующим способом:
Убедитесь, что учетная запись пользователя для удостоверений пакета System и других пакетов MTS имеет права пользователя Windows NT «Log on as a service» (Вход в качестве службы). Это можно проверить с помощью диспетчера пользователей Windows NT (User Manager):
Эти сведения полностью заменяют ранее приведенные в документации сведения, которые описывают использование 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 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.
Чтобы компоненты транзакций 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.
Если компоненты 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 в системе Microsoft Transaction Server.
Необходимо установить указанную версию 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 в системе Microsoft Transaction Server.
Необходимо установить указанную версию Oracle XA73.LIB в системе Microsoft Transaction Server.
Если нужно получить доступ к базе данных Oracle с помощью MTS с поддержкой транзакций, необходимо установить Microsoft Transaction Server 2.0.
Требуется драйвер 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 сериализует все активности на уровне подключения. Это позволяет различным подключениям к базам данных использоваться параллельно.
Если ваши приложения используют ADO, необходимо установить ADO версии 1.5. Предыдущие выпуски ADO не будут работать с новым диспетчером драйверов ODBC 3.5. ADO 1.5 устанавливается программой установки Windows NT 4.0 Option Pack.
Чтобы установить поддержку Oracle для компонентов транзакций MTS:
Если база данных Oracle находится в системе Windows NT, установите под этой системой выпуск Oracle 7.3.3 для Windows NT.
Если база данных Oracle находится в системе UNIX, установите выпуск Oracle 7.3.3 для этой системы.
Убедитесь, что установлена правильная версия библиотеки OCIW32.DLL, как описано в разделе «Необходимое программное обеспечение».
Если база данных Oracle находится в системе Windows NT, установите выпуск пакет обновления Oracle 7.3.3, указанный в таблице из раздела «Необходимое программное обеспечение».
Если база данных Oracle находится в системе UNIX, установите выпуск пакет обновления Oracle 7.3.3, необходимый для этой версии UNIX.
Если компоненты Microsoft Transaction Server обращаются к базе данных Oracle на удаленной системе Windows NT или Unix, убедитесь, что правильное программное обеспечение клиента Oracle имеется в системе Microsoft Transaction Server.
Установите указанную версию пакета обновления Oracle в систему Microsoft Transaction Server и убедитесь, что версия программного обеспечения клиента соответствует версиям, перечисленным в таблице из раздела «Необходимое программное обеспечение».
После установки Microsoft Transaction Server 2.0 будет установлено следующее программное обеспечение.
Если бета-версия 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, поскольку он может содержать важные сведения для восстановления.
Выполните следующие шаги по включению поддержки XA-транзакций Oracle:
Grant Select on V$XATRANS$ to public.
Дополнительные сведения о настройке поддержки XA-транзакций в Oracle см. в документации по серверу Oracle.
Базы данных 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.
Если нужно создать более нескольких дюжин подключений к базе данных Oracle, необходимо настроить сервер Oracle для поддержки дополнительных подключений к базе данных. См. далее раздел «Настройка Oracle для поддержки большего числа подключений ».
После установки и настройки поддержки 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:
Удалите все имеющиеся файлы трассировки Oracle с компьютера, содержащего компоненты MTS, которые обращаются к базе данных Oracle. Проще всего с помощью проводника Windows найти и удалить все файлы *.TRC.
При сбое тестовой программы Oracle можно попробовать определить источник неполадки с помощью файлов трассировки. Удаление всех старых файлов трассировки упрощает обнаружение созданных заново файлов.
Если бета-версия Microsoft Transaction Server 2.0 никогда не устанавливалась, пропустите данный пункт.
Следует удалить файл DTCXATM.LOG только один раз при первом обновлении бета-версии Microsoft Transaction Server 2.0. После этого никогда больше не удаляйте файл DTCXATM.LOG, поскольку он может содержать важные сведения для восстановления.
c:>TestOracleXaConfig.exe -U<код> -P<пароль> -S<имя сервера, как в файле TNS>.
При запуске тестовой программы без параметров отображается справка с их описанием.
Тестовая программа отобразит сведения о каждой выполненной операции Oracle и укажет, успешно ли она выполнена.
После проверки установки и настройки Oracle с помощью тестовой программы Oracle имеется возможность использовать приложение «Sample Bank», поставляемое с Microsoft Transaction Server, чтобы убедиться, что Microsoft Transaction Server имеет доступ к базе данных Oracle.
Чтобы проверить поддержку Oracle, с помощью приложения «Sample Bank»:
Владелец scott
Имя таблицы Account
Имя столбца 1 AccountNo тип NUMBER
Имя столбца 2 Balance тип NUMBER
AccountNo Balance
1 1000
2 1000
[ODBC]
DRIVER=Microsoft ODBC for Oracle
UID=scott
PWD=мой_пароль
ConnectString=мой_сервер
SERVER=мой_сервер
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 (DTC) настроен на запуск под учетной записью, отличной от System, необходимо указать учетную запись, которая является участником группы администраторов. В противном случае служба MS DTC запущена не будет, и следующее сообщение будет записано в журнал событий Windows NT.
XATM log object failed to set log encryption key
Имеется возможность настроить код пользователя для службы MS DTC следующим образом:
Если нужно создать более нескольких дюжин подключений к базе данных 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.
Для устранения неполадки:
Желательно выбрать для QUEUESIZE наиболее общее значение, поскольку система Oracle обычно открывает более одного подключения к базе данных для каждого подключения транзакции, которое открывает приложение. В результате процесс Oracle Listener может переполниться.
Чтобы принять 100 запросов, измените файл LISTENER.ORA следующим образом:
QUEUESIZE = 100
Если приложения используют ADO, убедитесь, что установлена ADO версии 1.5. Дополнительные сведения содержатся в разделе «Необходимое программное обеспечение».
Подключение к базам данных Oracle не поддерживается для компонентов Microsoft Transaction Server, работающих в системах с процессором Alpha фирмы Digital. Поддержка Oracle в системах Digital Alpha будет добавлена в будущих выпусках продукта.
Важно, чтобы на компьютере была установлена правильная версия OCIW32.DLL. Версию этой библиотеки следует проверять при каждой переустановке Oracle или Microsoft Transaction Server.
Приложения 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 выполняется с удостоверением учетной записи System. Служба MS DTC на одном компьютере имеет возможность взаимодействовать со службой MS DTC на другом компьютере, только если на обоих компьютерах доступны гостевые учетные записи (Guest). Если гостевые учетные записи отключены на каждом компьютере или в домене Windows NT, которому они принадлежат, необходимо настроить службу MS DTC на выполнение под каким-либо другим именем пользователя, который имеет возможность взаимодействовать с удаленным компьютером. См выше раздел «Изменение учетной записи пользователя, под которой запускается Microsoft Distributed Transaction Coordinator».
Пользователи MS DTC в среде MSCS должны установить Windows NT QFE Q116844. QFE исправляет неполадки службы RPC (Remote Procedure Call), которые могут вызывать зависание клиента MS DTC при попытке подключиться к MS DTC на кластеризованном сервере. Это исправление является также частью поправки Windows NT QFE1, доступной на Web-узле Windows NT Option Pack.
Кластеризованные серверы должны задать с помощью MTS Explorer значение виртуального сервера для свойства Имя удаленного сервера. Это позволяет удаленным клиентам получать доступ к компонентам MTS внутри кластера, и, в случае сбоя, гарантировать, что клиенты ссылаются на кластер, а не на специфический узел внутри кластера.
Для пакетов MTS в кластерах MSCS учетная запись пользователя, связанная с удостоверением пакета, должна соответствовать системному администратору или должна иметь разрешение на полный доступ к кластеру (как задается в cluadmin). Если пакет не запускается с удостоверением системного администратора, MTS не сможет подключиться к службе MS DTC.
MTS требуется, чтобы ко всем каталогам Windows NT был одинаковый путь на всех узлах в кластере MSCS (например c:\winnt).
Необходимо завершить работу всех ресурсов кластера MSCS (например сервера SQL Server), на которые влияет установка MTS, перед запуском программы установки MTS.
Имеется возможность установить SQL Server 6.5 после установки MTS. Рекомендуется установить SQL Server 6.5 перед установкой MTS. Если установить SQL Server 6.5 после установки MTS, программа установки MTS будет пытаться убедиться, что служба MS DTC работает правильно.
Для удобства MTS включает сценарий INSTCAT.SQL. Этот сценарий обновляет сохраненные процедуры каталога для драйвера SQL Server ODBC. Если это еще не было выполнено, запустите этот сценарий с помощью служебной программы SQL Server isql.
Проверка безопасности по умолчанию не включается.
Невозможно задать удостоверение пакета для группы.
При задании удостоверения пакета MTS проверяет введенный пароль. Однако если для этой учетной записи пароль меняется без обновления пароля в MTS Explorer, пакет выполняться не будет.
Файл журнала MS DTC может теперь размещаться в сжатом каталоге. Однако для оптимального быстродействия не сжимайте файл журнала Microsoft DTC и не храните его в сжатом каталоге. MS DTC должен распаковывать файл журнала перед использованием.
При сбросе файла журнала MS DTC в системе Windows 98 может появиться диалоговое окно "MTxOCI", за которым последует сообщение об ошибке «Сбой создания файла журнала MS DTC». В этом случае необходимо отключить автоматический запуск MS DTC, как описано в разделе «Наблюдение транзакций MTS в системе Windows 98». Перезапустите компьютер и выполните сброс файла журнала. Затем можете вновь включить автоматический запуск службы MS DTC.
Для устранения других неполадок, связанных со сбросом файла журнала службы MS DTC, закройте и перезапустите MTS Explorer, а затем попытайтесь вновь выполнить сброс журнала. В некоторых случаях для этого может потребоваться несколько попыток.
Документация по запуску и остановке службы 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. При попытке выполнить такое администрирование приведет к возврату ошибочного кода или к непредвиденной остановке MTS Explorer.
Завершение работы отдельных пакетов не поддерживается при удаленном администрировании компьютера MTS 1.x.
После установки 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.
Известно, что если серверный процесс MTS останавливается непредвиденно (из-за нарушения политики обхода сбоев (failfast), защиты или прав доступа), при последующих попытках перезапуска приложения создаются несколько процессов MTS. (При правильном поведении должно быть по одному процессу MTS на пакет.) В случает непредвиденной остановки серверного процесса необходимо перезагрузить компьютер с системой Windows 98.
Известно, что возможна возникновение взаимоблокировки при использовании примерно более 40 подключений именованных каналов от клиента Windows 98 к службе MS Distributed Transaction Coordinator (DTC). Чтобы устранить неполадку, замените протокол между драйвером ODBC и сервером SQL Server на протокол TCP/IP.
Модель 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. Если требуется создать локальный сервер не-MTS, воспользуйтесь методом CoCreateInstance.
Не используйте заменители модели COM внутри MTS. Вместо этого, загружайте внутренние серверы в серверные процессы MTS.
Управление доступом к пакету на основе ролей в 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.
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.
В документации неправильно указывается, что имеется версия клиента приложения «Sample Bank» для Active Server Page (ASP).
MTS 1.0 имеет предел в 100 методов на компонент. В MTS 2.0 этот предел составляет сейчас 1024 метода.
Для компонентов, использующих RDO 2.0, к которым выполняется одновременный доступ с нескольких клиентов, возможно возникновение ошибки нарушения прав доступа. Это обнаруживается на серверах, имеющих несколько процессоров. Эта неполадка отсутствуют для компонентов, использующих ADO.
Примеры сценарии Visual Basic (VBScript) для автоматизации администрирования MTS находятся в папке \Program Files\Mts\Samples, а не в папке \Program Files\Mtx\Samples\WSH, как указано в документации.
Чтобы откомпилировать компоненты Java-приложения «Sample Bank» под Windows 98, запустите midl.exe для файла Account.idl, а затем выполните пакетный файл SetJavaDev.bat.
Компоненты MTS не должны собираться как библиотеки расширений MFC, поскольку такие библиотеки могут загружаться только приложениями MFC. Компонент COM и, следовательно, компонент MTS должен собираться так, чтобы загружаться в любой процесс, независимо от типа приложения, которое его запускает.
Дополнительные сведения по библиотекам расширений MFC содержатся в руководстве администратора Microsoft Visual C++.
Когда процесс Mtx.exe, выполняющий компоненты Visual Basic 4.0, «завершается при отсутствии активности через x минут», это связано с известной неполадкой, приводящей к нарушению прав доступа на чтение. В данное время не существует решения для этого вопроса. Предполагается, что, если в процессе используется более двух компонентов Visual Basic 4.0, это происходит с большей вероятностью. Один из способов устранения неполадки заключается в задании для пакета параметра «Оставить процесс в состоянии ожидания». Эта неполадка возникает только при использовании компонентов, построенных с помощью Visual Basic 4.0; при применении Visual Basic 5.0 такие неполадки не возникают.
Если серверный компонент использует RDO, не позволяйте rdoConnection с активным rdoResultset выходить за пределы области определения, в противном случае возможно возникновение взаимоблокировки. Чтобы избежать взаимоблокировки, необходимо вручную закрыть rdoResultset или rdoConnection. Следующая последовательность приводит к возникновению взаимоблокировки:
Взаимоблокировка устраняется с помощью закрытия вручную конечного набора (или подключения) в конце шага 1, что сразу позволяет выполнить вызовы ODBC для закрытия этой инструкции (и подключения). Корневой причиной неполадки является задержка, вызываемая сообщением, отправленным в скрытое окно для закрытия ODBC.
При перекомпиляции проекта библиотек 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 или ее поставщиков перед пользователем по контракту или иску при возмещении какого-либо ущерба, связанного с использованием данных материалов, не может превысить суммы, равной рекомендуемой розничной цене продажи последних.