Microsoft Transaction Server Readme
Soubor Readme pro server Microsoft Transaction Server

Vítá vás Microsoft Transaction Server (MTS) - výkonné prostředí usnadňující vývoj a zavádění vysoce výkonných aplikací pro rozlehlé sítě, síť Internet a sítě intranet. Server MTS obsahuje model pro programování aplikací a infrastrukturu prostředí run-time pro vývoj a zavádění distribuovaných aplikací založených na komponentách.

Tento soubor Readme obsahuje informace o nejnovějších funkcích, které nenaleznete v běžné dokumentaci, známá omezení této verze serveru MTS a informace o hlášení chyb nebo potíží s tímto produktem.

Poznámka: Dokumentace, která je součástí nápovědy serveru Microsoft Transaction Server 2.0 SP1, nahrazuje dokumentaci k serveru MTS v sadě Windows NT Option Pack.

Nejnovější informace a zjištěná omezení

Hlášení potíží a chyb


Late-Breaking Information and Known Limitations (Readme)
Nejnovější informace a zjištěná omezení

Následující části obsahují nejnovější informace, které ještě nejsou obsaženy v běžné dokumentaci, a také zjištěné nedostatky a omezení této verze.

Přístup ke skupinám vlastností v režimu LockMethod

Volání jedné metody nemůže současně přistupovat k více skupinám vlastností v režimu LockMethod. Pokus o získání přístupu k více skupinám vlastností má za následek selhání procesu aplikace (failfast) a zobrazení následující zprávy:

An attempt was made to open an SPM Property Group in LockMethod mode, by an object without context, or by an object that has already opened another Property Group in LockMethod mode (Objekt bez kontextu nebo objekt, který již otevřel jinou skupinu vlastností v režimu LockMethod, se pokusil otevřít skupinu vlastností správce SPM v režimu LockMethod).

Chcete-li aplikaci povolit uzamčení více skupin vlastností, vyberte jednu skupinu vlastností jako hlavní skupinu vlastností skupiny sady skupin vlastností. Hlavní skupina vlastností používá režim LockMethod a další skupiny vlastností používají režim LockSetGet. Jestliže aplikace zamkne nejprve hlavní skupinu vlastností, dojde k uzamčení celé sady skupin vlastností.

Pro vývojáře v jazyce Visual C+++ jsou k dispozici rozhraní SecurityProperty a ObjectContext

Vývojáři v jazyce Visual C+++ nyní mohou volat rozhraní SecurityProperty a ObjectContext. Rozhraní SecurityProperty slouží k určení volajícího nebo autora aktuálního objektu. Rozhraní ObjectContext umožňuje provádět následující činnosti:

•	deklarovat dokončení práce objektu,

•	dočasně nebo trvale zakázat potvrzení transakce,

•	vytvořit instance dalších objektů serveru MTS a zahrnout jejich činnost do transakce aktuálního objektu,

•	zjistit, zda je volající v určité roli,

•	zjistit, zda je povoleno zabezpečení,

•	zjistit, zda je v rámci transakce prováděna činnost objektu,

•	načíst předefinované objekty serveru Microsoft Internet Information Server (IIS).

Ačkoli nejsou tato rozhraní popsána v dokumentaci Reference pro server MTS (MTS Reference), poskytují objekty a metody jazyka Visual Basic stejné funkce. Popis objektů a metod rozhraní SecurityProperty a ObjectContext naleznete v části Visual Basic v dokumentaci Reference pro server MTS (MTS Reference), která je součástí příručky pro programátory serveru MTS (MTS Programmer’s Guide). K metodám SecurityProperty mají nyní přístup (pomocí nové třídy Context pro jazyk Java) také komponenty v jazyce Java. Úplnou dokumentaci třídy Context naleznete v části Visual J+++ v dokumentaci Reference pro programátory serveru MTS (MTS Programmer's Reference).

U platforem Alpha není k dispozici podpora systému Oracle

Komponenty serveru MTS nelze používat v rámci transakcí s databázemi Oracle na platformách Alpha.

Nová třída Context pro jazyk Java

Jestliže sestavujete aplikace pomocí jazyka Visual J++, můžete místo třídy IContextObject používat novou třídu Context. Třída Context umožňuje pomocí jazyka Visual J++ provádět následující činnosti:

•	deklarovat dokončení práce objektu,

•	dočasně nebo trvale zakázat potvrzení transakce,

•	vytvořit instance dalších objektů serveru MTS a zahrnout jejich činnost do transakce aktuálního objektu,

•	zjistit, zda je volající v určité roli,

•	zjistit, zda je povoleno zabezpečení,

•	zjistit, zda je v rámci transakce prováděna činnost objektu,

•	přistupovat k metodám rozhraní SecurityProperty.

Úplnou dokumentaci této nové třídy naleznete v části Visual J++ v dokumentaci Reference pro programátory (Programmer's Reference).

Použití objektu ErrorInfo s objekty ADO

Objekty ADO smažou veškeré informace uložené v objektu ErrorInfo. Uvedený problém můžete odstranit, pokud do popisovače chyb implementujete následující kód.

V jazyce Visual Basic je to následující (nebo podobný) kód:

ErrorHandler:

     cleanup

    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

V jazyce Visual C++ je to následující (nebo podobný) kód:

//

// Objekt ErrorInfo je zde uložen, protože následující

// kód pro správu objektů ADO by jej mohl smazat.

//

IErrorInfo * pErrorInfo = NULL;

GetErrorInfo(NULL, &pErrorInfo);

if (adoRsBalance) adoRsBalance->Release();

if (adoCoConnection) adoCoConnection->Release();

AtlReportError( CLSID_CAccount, pErrMsg, IID_IAccount, hr);

//

// vrácení chyby do TLS

//

SetErrorInfo(NULL, pErrorInfo);

V jazyce Visual J++ je to následující (nebo podobný) kód:

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);

}

Poznámka: V jazyce Java je třeba výslovně zavřít sady záznamů a připojení a také výslovně uvolnit objekty ADO.

U komponent používajících verzi RDO 2.0 může dojít v počítačích s více procesory k porušení přístupu

U komponent, které používají verzi RDO 2.0 a ke kterým současně přistupuje více klientů, může dojít k porušení přístupu. Uvedený problém byl sledován na serverech s více procesory. U komponent používajících objekty ADO nebyl tento problém zjištěn.

Aplikaci Sample Bank v jazyce Java nelze kompilovat v systému Windows 95

Chcete-li v systému Windows 95 kompilovat komponenty aplikace Java Sample Bank pomocí kompilátoru Visual J++ 1.1 nebo staršího, spusťte pro soubor Account.idl soubor midl.exe a potom spusťte dávkový soubor SetJavaDev.bat. Pokud používáte kompilátor Visual J++ 6.0, přečtěte si následující téma.

Sestavení ukázkové knihovny Account.VJ v kompilátoru Visual J++ 6.0

Dávkový soubor SetJavaDev.bat slouží k vytvoření odpovídající knihovny typů a tříd obálek, pomocí kterých je možné sestavit ukázkovou knihovnu Account.VJ. Tento soubor je možné používat v kompilátorech Visual J++ 1.1 a starších. Pokud knihovnu Account.VJ sestavujete pomocí kompilátoru Visual J++ 6.0, musíte místo předchozího postupu spustit následující příkazy:

midl AccountLib.idl

jactivex /javatlb /d . AccountLib.tlb

jactivex /javatlb /d . "%SystemDrive%\Program Files\Common Files\System\ADO\msado15.dll"

Aplikace jactivex je umístěna v adresáři VJ98 a nemusí se na dané cestě nacházet.

Známý problém při ukončení programu Mtx.exe při použití komponent v jazyce Visual Basic 4.0

Je-li ukončen (zprávou “Ukončen z důvodu nečinnosti po x minut.“) proces programu Mtx.exe, v rámci kterého jsou spuštěny komponenty v jazyce Visual Basic 4.0, jedná se o známou chybu, která má za následek porušení přístupu pro čtení. V současné době není tento problém vyřešen. K uvedené chybě dojde s vyšší pravděpodobností v případě, že jsou použity více než dvě komponenty v jazyce Visual Basic 4.0Tento nedostatek lze obejít klepnutím na přepínač Při nečinnosti ponechat proces spuštěný. Uvedený problém se týká pouze komponent vytvořených v jazyce Visual Basic 4.0, v jazyce Visual Basic 5.0 k této chybě nedochází.

Zabránění zablokování Visual Basic 4.0/RDO

Používá-li serverová komponenta objekty RDO, nikdy nepřipusťte, aby se hodnota komponenty rdoConnection s aktivní komponentou rdoResultset dostala mimo rozsah; jinak může dojít k zablokování. Aby nedošlo k zablokování, musíte komponenty rdoResultset a rdoConnection zavřít ručně. Následující postup bude mít za následek zablokování:

1	Vytvořte instanci serverové komponenty. Zavolejte metodu, která vytvoří komponentu rdoConnection a potom komponentu rdoResultset. Z komponenty rdoResultset můžete načítat, nesmíte ji však vyčerpat nebo zavřít.

2	Uvolněte tuto instanci. (Uvedené připojení a komponenta resultset se dostanou mimo rozsah, nejsou však ihned uskutečněna požadovaná volání rozhraní ODBC. Namísto toho je odeslána zpráva do skrytého okna a jsou provedeny příkazy SQLFreeStmt+SQLDisconnect+SQLFreeConnect).

3	Vytvořte druhou instanci serverové komponenty. Vytvořte komponentu rdoConnection a pokuste se aktualizovat řádek, který byl součástí komponenty resultset z výše uvedeného kroku 1. Dochází k zablokování, protože uzamčení komponenty resultset vytvořené v kroku 1 nebyla uvolněna. Čerpadlo zpráv, které zpracovává zprávu odeslanou v kroku 2, nebude možné spustit.

Zablokování lze zabránit ručním zavřením komponenty resultset (nebo připojení) na konci kroku 1, které bude mít za následek okamžité volání rozhraní ODBC a tím zavření příkazu (a připojení). Podstatou problému je zpoždění, které vzniká při odesílání zprávy do skrytého okna a následném zavírání rozhraní ODBC.

Chyby definicí identifikátorů GUID serveru MTS

Jestliže se zobrazují chyby, které informují, že nebyl nalezen objekt IID_IGetContextProperties nebo jiné definice identifikátoru GUID, může být příčinou skutečnost, že kompilátor používá zastaralé verze souborů začlenění a knihoven serveru MTS, které tyto definice neobsahují.    Zkontrolujte, zda cesta kompilátoru obsahuje před adresáři začlenění a knihoven kompilátoru adresáře začlenění a knihoven serveru MTS.

Aktualizace serveru MTS 2.0 v počítačích, ve kterých je spuštěn Microsoft Cluster Server

Jestliže máte server MTS spuštěn v počítačích, ve kterých je spuštěn také Microsoft Cluster Server, je velmi důležité synchronizovat položky systémového registru serveru MTS na obou serverech clusteru. Pokud jsou tyto položky synchronizovány, mohou balíčky serveru MTS v tomto clusteru přistupovat do databází kompatibilních s protokolem XA, například do databází Oracle. Kromě toho bude koordinátor DTC (Distributed Transaction Coordinator) podporovat případy selhání (failover) i v případě, že systémové adresáře daných dvou počítačů nejsou shodné.

Chcete-li položky systémového registru serveru MTS synchronizovat při instalaci sady Service Pack, musí být spuštěny oba uzly clusteru a potom je třeba na obou serverech ručně spustit nástroj msdtc.exe. Nástroj msdtc.exe spustíte zadáním následujícího příkazu do okna příkazového řádku.

msdtc -mts2sp1fix systémovácesta

Systémovácesta je cesta k systémovým souborům prostředí Windows NT. Jestliže je cesta k systémovým souborům například c:\winnt\system32, bude mít příkaz následující podobu:

msdtc -mts2sp1fix c:\winnt\system32

Komponenty serveru MTS a ladicí nástroj jazyka Visual Basic 6.0

Visual Basic 6.0 podporuje ladění komponent serveru MTS, je však třeba věnovat pozornost několika problémům. Podrobnosti naleznete v souboru readme pro jazyk Visual Basic 6.0.

Komponenty serveru MTS a ladicí nástroj jazyka Visual J++

Visual J++ 6.0 plně podporuje ladění komponent serveru MTS v prostředí run-time serveru MTS. Podrobnosti naleznete v dokumentaci k jazyku Visual J++.

Pokud používáte verzi Visual J++ 1.0 nebo 1.1, nemůžete komponenty serveru MTS v prostředí run-time ladit. Můžete nastavit zarážky a ladit komponenty serveru MTS, které nebyly nainstalovány v balíčku, nebudete však mít k dispozici funkce poskytované prostředím run-time serveru MTS. Z tohoto důvodu můžete dané komponenty ladit jako třídu jazyka Java, nikoli jako komponenty serveru MTS. V ladicím nástroji nebude vytvořen kontext objektu, takže operace zahrnující kontext objektu se nezdaří.

Určení cesty komponenty serveru MTS pro nástroj exegen.exe v jazyce Visual J++ 1.0 nebo 1.1

Pokud ve verzi Visual J++ 1.0 nebo 1.1 vytváříte komponentu serveru MTS pomocí nástroje exegen.exe, neměli byste určovat cestu ke komponentě pomocí vícebajtové znakové sady MBCS. Z důvodu nedostatku nástroje exegen.exe se nemohou takto vytvořené komponenty zaregistrovat. Tento problém můžete obejít tak, že při vytváření komponenty určíte cestu pomocí jednobajtového znakového systému SBCS.

•	K této situaci nedochází v jazyce Visual J++ 6.0, protože ve vývojovém prostředí tohoto jazyka je již začleněna funkce nástroje exegen.exe.


Reporting Problems and Bugs (Readme)
Hlášení potíží a chyb

Při hlášení chyby je třeba poskytnout následující informace:

•	číslo chyby a její popis;

•	všechny zprávy protokolu událostí systému Windows NT, které s touto chybou souvisí (Microsoft Transaction Server zaznamenává zprávy o chybách do protokolu událostí systému Windows NT. Dojde-li k chybě, prohlédněte protokol událostí systému Windows NT.);

•	konfiguraci klientského počítače (v případě potřeby);

•	konfiguraci počítače se serverem;

•	komponenty, které jsou příčinou problému;

•	jazyk, který jste použili při vývoji dané komponenty (Microsoft Visual Basic, Microsoft Visual C++...);

•	typy rozhraní implementovaných danou komponentou nebo komponentami; například vlastní rozhraní, duální rozhraní nebo omezené rozhraní typu IDispatch;

•	verzi rozhraní ODBC (kde je to možné);

•	název a verzi správce prostředků;

•	všechny případné komponenty od jiných společností, řadiče prostředků nebo správce prostředků, které působí potíže;

•	je-li to možné, řádek nebo řádky kódu, u kterých dochází k problému.