SQL Server JDBC sürücüsü kullanarak SQL Server'a bağlandığınızda artık XA hareketleri

Belirtiler

XA hareketleri, Microsoft SQL Server JDBC sürücüsü ve Microsoft SQL Server arka uç veritabanı olarak kullandığınızda, hareket yöneticisi bir kilitlenme veya bağlantı sorunu oluşursa SQL Server'da bekleyen işlem artık.

Ayrıca, aşağıdaki ortak belirtilerden biriyle karşılaşabilirsiniz:

  • Bekleyen işlemler SQL Server örneği üzerinde uzun süre. Bunlar veritabanında oturum kimliği null ya da -2 olabilir.

  • Uzun bir süredir hareketler -2 oturum kimliği olan bir işlem tarafından engellendi Kilit zaman aşımı veya dondurmak için iş parçacığı neden olur.

Neden

Hazırlıksız bir hareket için hareket yöneticisi ve SQL Server arasında bağlantı kaybolursa, sonra SQL Server JDBC sürücüsü temiz bu hareketleri yukarı değil ve kaynaklarını kullanmak ve diğer hareketleri engellemek devam edebilirsiniz. XA uygulama nedeniyle JDBC sürücüsü için SQL Server, SQL Server işlem yöneticileri, olağan dışı bağlantı kesilmeleri algılayamaz. Bu nedenle, için SQL Server, bu hareketler sistemde XA İşlem zaman aşımına uğrar veya veritabanını yeniden başlatılana kadar kalır. Zaman aşımı süresini sonsuz SQL Server örneği üzerinde kullanır ve veritabanı üzerinde yapılandırılamaz.

Geçici çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın:

  • Veritabanı sunucusunun tüm Java sanal makinesi (JVM) çöküyor deneyimi veya ağ bağlantısı artık bu işlemlerde sonucunda ortaya çıkan sorunları yeniden başlatın.

  • Tek tek kendi kaynakları temizlemek için veritabanı üzerinde artık hareketlerini durdurun. Bir işlem artık olduğunu doğrulamak için onu bir şüpheli olmadığından emin olun (veya şu anda Tamamlanıyor bir hareket hazır). Son JVM ve kurtarmaya döngüsü başlatma ile ilgili tüm işlemler artık.

  • XA hareketleri için zaman aşımı değeri aşıldığında hemen durdurmak için onları zorlamak için uzun işlem uzun bir zaman aşımı değeri ayarlayın. XAResource.setTransactionTimeout() yöntemini çağırarak bunu yapabilirsiniz.

  • XAResource nesnesi doğrudan çağırma kodu tarafından erişilmez ve birçok üçüncü taraf hareket yöneticileri için hareket yöneticisi hareket zaman aşımı değerini ayarlamıyor. Bu durumda, bir dış uygulama hareket zaman aşımı için yeni bir varsayılan değer ayarlamak için kullanılabilir. Bu yeni varsayılan hareket zaman aşımı belirtmeyen tüm diğer işlemler tarafından kullanılır.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×