Applies ToSQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Express

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?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.