JTA ile yerel bir işlem arasındaki fark nedir?


85

JTA ile yerel bir işlem arasındaki fark nedir?

JTA'nın ne zaman kullanılacağını ve yerel bir işlemin ne zaman kullanılacağını gösteren bir örnek harika olurdu.

Yanıtlar:


137

JTAJava'daki işlemleri yönetmek için genel bir API'dir. İşlemleri kaynak nötr bir şekilde başlatmanıza, tamamlamanıza ve geri almanıza olanak tanır. İşlem durumu tipik olarak TLS'de (İş Parçacığı Yerel Depolama) depolanır ve bazı açık bağlam nesnelerinin iletilmesine gerek kalmadan bir çağrı yığınındaki diğer yöntemlere yayılabilir. İşlem kaynakları, devam eden işleme katılabilir. Böyle bir işleme katılan birden fazla kaynak varsa, bunlardan en az birinin sözde XA kaynağı olması gerekir.

A resource local transaction, kendi özel API'sini kullanan belirli bir tek kaynakla sahip olduğunuz bir işlemdir. Böyle bir işlem tipik olarak bir çağrı yığınındaki diğer yöntemlere yayılmaz ve etrafta açık bir bağlam nesnesi iletmeniz gerekir. Kaynak yerel işlemlerinin çoğunda, aynı işleme birden fazla kaynağın katılması mümkün değildir.

Örneğin Java SE'de düşük seviyeli JDBC kodunda bir kaynak yerel işlemi kullanırsınız. Burada bağlam nesnesi bir örneği ile ifade edilir java.sql.Connection. Kaynak yerel işlemlerinin diğer örnekleri, 2002 yılı civarında kurumsal uygulamalar oluşturan geliştiricilerdir. İşlem yöneticileri (JTA tarafından kullanılan) pahalı, kapalı kaynak ve o çağda kurulması gereken karmaşık şeyler olduğundan, insanlar daha ucuz ve daha kolay yerel kaynak çeşitlerini elde etmeye gitti.

Temelde diğer tüm senaryolarda bir JTA işlemi kullanırsınız. TomEE (25MB) veya GlassFish (35MB) gibi çok basit, küçük, ücretsiz ve açık kaynaklı sunucular, kutudan çıkar çıkmaz JTA desteğine sahiptir. Kuracak bir şey yok ve Sadece Çalışıyorlar.

Son olarak, EJB ve Spring gibi teknolojiler sunarak JTA'nın kullanımını daha da kolaylaştırıyor declarative transactions. Çoğu durumda, bunları daha kolay, daha temiz ve daha az hata yapmaya meyilli oldukları için kullanmanız önerilir. Hem EJB hem de Spring, kapakların altında JTA kullanabilir.


5
JTA kullanımlarının tarihini ve gelişimini açıklamak için +1 (EJB, Spring, vb ..).
Marco

4

İşlem türü, Java SE uygulaması için "RESOURCE_LOCAL" ve Java EE uygulaması için "JTA" olarak ayarlanmalıdır. "RESOURCE_LOCAL", Tomcat üzerinde konuşlandırılan bazı web uygulamalarında düzgün çalışabilir, ancak uygulamanızı cam balığı ortamında çalıştırdığınızda sorunlara neden olabilir.

Dağıtılmış işlemler üzerinde çalışıyorsanız, işlem yöneticiniz olarak "JTA" kullanmalısınız.


1

Java Transaction API (JTA), bir Java ortamında birden çok XA kaynağı arasında dağıtılmış işlemlerin yapılmasına izin veren Java Enterprise Edition (Java EE) API'lerinden biridir.


-1

J2EE uygulaması, 2 spesifikasyon
JTA ---> Java Transaction API. Yüksek düzeyde uygulama yoluyla DT desteği içerir ve
JTS ---> Java İşlem Hizmeti her zaman etkindir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.