Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC sürücüsünü indirin
İşlemler, mantıksal iş birimlerinde birleştirilen işlem gruplarıdır. Sistemde oluşabilecek hatalara rağmen işlemdeki her eylemin tutarlılığını ve bütünlüğünü denetlemek ve korumak için kullanılır.
SQL Server için Microsoft JDBC Sürücüsü ile işlemler yerel veya dağıtılmış olabilir. İşlemler yalıtım düzeylerini de kullanabilir. JDBC sürücüsü tarafından desteklenen yalıtım düzeyleri hakkında daha fazla bilgi için bkz. Yalıtım Düzeylerini Anlama.
Uygulamalar, Transact-SQL deyimlerini veya JDBC sürücüsü tarafından sağlanan yöntemleri kullanarak işlemleri denetlemelidir, ancak ikisini birden denetlememelidir. Aynı işlemde hem Transact-SQL deyimlerinin hem de JDBC API yöntemlerinin kullanılması, bir işlemin beklendiği zaman işlenememesi, bir işlemin işlenmesi veya geri alınması ve yenisinin beklenmedik bir şekilde başlatılması veya "İşlemin sürdürülememesi" özel durumları gibi sorunlara yol açabilir.
Yerel işlemleri kullanma
Bir işlem tek aşamalı bir işlem olduğunda yerel olarak kabul edilir ve doğrudan veritabanı tarafından işlenir. JDBC sürücüsü setAutoCommit, commit ve rollback gibi SQLServerConnection sınıfının çeşitli yöntemlerini kullanarak yerel işlemleri destekler. Yerel işlemler genellikle uygulama tarafından açıkça veya Java Platform, Enterprise Edition (Java EE) uygulama sunucusu tarafından otomatik olarak yönetilir.
Aşağıdaki örnek, bloktaki try iki ayrı deyimden oluşan yerel bir işlem gerçekleştirir. AdventureWorks2025 örnek veritabanındaki Production.ScrapReason tablosuna karşı sorgular çalıştırılır ve herhangi bir istisna oluşturulmadığı takdirde onaylanır. Bir istisna fırlatılırsa, catch bloğundaki kod işlemi geri alır.
public static void executeTransaction(Connection con) {
try {
//Switch to manual transaction mode by setting
//autocommit to false. Note that this starts the first
//manual transaction.
con.setAutoCommit(false);
Statement stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO Production.ScrapReason(Name) VALUES('Wrong size')");
stmt.executeUpdate("INSERT INTO Production.ScrapReason(Name) VALUES('Wrong color')");
con.commit(); //This commits the transaction and starts a new one.
stmt.close(); //This turns off the transaction.
System.out.println("Transaction succeeded. Both records were written to the database.");
}
catch (SQLException ex) {
ex.printStackTrace();
try {
System.out.println("Transaction failed.");
con.rollback();
}
catch (SQLException se) {
se.printStackTrace();
}
}
}
Dağıtılmış işlemleri kullanma
Dağıtılmış bir işlem, işlem işleminin önemli atomik, tutarlı, yalıtılmış ve dayanıklı (ACID) özelliklerini korurken iki veya daha fazla ağa bağlı veritabanındaki verileri güncelleştirir. JDBC 2.0 İsteğe bağlı API belirtiminde JDBC API'sine dağıtılmış işlem desteği eklendi. Dağıtılmış işlemlerin yönetimi genellikle Java EE uygulama sunucusu ortamında Java İşlem Hizmeti (JTS) işlem yöneticisi tarafından otomatik olarak gerçekleştirilir. Ancak, SQL Server için Microsoft JDBC Sürücüsü herhangi bir Java İşlem API'si (JTA) uyumlu işlem yöneticisi altında dağıtılmış işlemleri destekler.
JDBC sürücüsü, SQL Server ile gerçek dağıtılmış işlem desteği sağlamak için Microsoft Dağıtılmış İşlem Düzenleyicisi (MS DTC) ile sorunsuz bir şekilde tümleşir. MS DTC, Microsoft Tarafından Microsoft Windows sistemleri için sağlanan bir dağıtılmış işlem tesisidir. MS DTC, iki aşamalı dağıtılmış işleme protokolünün tamamlanması ve dağıtılmış işlemlerin kurtarılması gibi XA özelliklerini desteklemek için Microsoft'un kanıtlanmış işlem işleme teknolojisini kullanır.
Dağıtılmış işlemleri kullanma hakkında daha fazla bilgi için bkz. XA işlemlerini anlama.