Příznaky

Při použití transakce XA, Microsoft SQL Server rozhraní JDBC ovladače a Microsoft SQL Server jako back-end databáze, osamocené je může správce transakce dojde k selhání nebo problém s připojením-li čekající transakce na serveru SQL Server.

Dále může vyskytnout některý z následujících běžných příznaků:

  • Jsou transakce čekající na instanci serveru SQL Server po dlouhou dobu. Mohou mít buď hodnotu null , nebo -2 ID relace v databázi.

  • Transakce jsou blokovány dlouho transakce, který obsahuje identifikátor relace s -2 . To způsobí, že časový limit uzamčení nebo k zablokování podprocesů.

Příčina

Pokud dojde ke ztrátě neupravený transakce připojení mezi správce transakcí a SQL Server, potom JDBC ovladače SQL Server neprovádí vyčištění tyto transakce a může nadále používat prostředky a blokovat ostatní transakce. Z důvodu provádění XA JDBC ovladače SQL Server SQL Server nemůže rozpoznat abnormální odpojení správci transakcí. Proto pro SQL Server, tyto transakce zůstat v systému až do vypršení časového limitu transakce XA nebo restartování databáze. Časový limit na instanci serveru SQL Server používá nekonečna a nenastavuje v databázi.

Jak potíže obejít

Chcete-li tento problém vyřešit, použijte jednu z následujících metod:

  • Restartujte server databáze při dochází k zhroucení všech Java Virtual Machine (JVM) nebo připojení k síti problémy, jejichž výsledkem jsou tyto osamocené transakce.

  • Jednotlivě ukončete osamocené transakce databáze za účelem vyčištění jejich prostředků. Chcete-li ověřit, že je osamocené transakce, ujistěte se, že není v pochybnost (připraven) transakce nebo takový, který právě dokončuje. Všechny transakce, které bude trvat do restartování související JVM a úspěšné obnovení cyklu by osamocené.

  • Nastavte hodnotu časového limitu transakcí protokolu XA, která je delší než nejdelší přinutit, aby zastavit, jakmile je překročena hodnota časového limitu transakce. To lze provést voláním metody XAResource.setTransactionTimeout() .

  • Objekt XAResource není volající kód přístup přímo mnoho správců transakcí jiných výrobců, a správce transakcí není nastavení časového limitu transakce. V tomto případě externí aplikace lze nastavit novou výchozí hodnotu časového limitu transakce. Toto nové výchozí nastavení bude použit jinými transakcemi, které nemají zadán časový limit transakce.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti

Projít školení >

Získejte nové funkce jako první

Připojit se k programu Microsoft Insider >

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×