Nerede bir işlem taahhüt etmelidir -

3 Cevap php

PHP + Oracle kullanıyorum ve benim işlemleri işlemek için üzerinde herhangi bir önerileri olup olmadığını merak edildi. Ben bütün ekler / güncellemeler / siler yapmak için saklı yordamları çağırmak, ve şu anda benim saklı prosedürleri sonunda işlemekle duyuyorum.

Ben merak ediyorum:

  1. Is there any difference between calling commit/rollback in my stored procedure vs calling oci_commit / oci_rollback in my PHP code based on the success of the stored procedure call.

  2. Which is preferable? Originally I was thinking in the stored procedures themselves, but now I'm wondering, if there's no difference, perhaps it would give me more flexibility to commit in the calling application code since I could call several stored procedures in a single transaction rather than having to write new stored procedures every time I want to mix/match a variety of SQL statements in a single transaction.

Düşünceler?

3 Cevap

Ben kesinlikle vermek nedenlerle, 2 seçeneği ile katılıyorum. Ayrı bir işlem olarak her saklı yordam hareket olması çok bazen sınırlayıcı olabilir. Tom Kyte yanı sıra seçenek 2 destekleyeceğini örneğin: this AskTom thread bkz.

Seçenek 2 genel bir kural olarak gitmek için yoludur. Eğer saklanan prosedürleri içinde senin kaydedilmesini varsa, ne olursa olsun beni çağırır kim, ben daha iyi biliyorum ve ben işimi bitirince açık hareketleri işlemek gereken bir karar vardır.

Eğer birden çok adım vardır ve hepsini işlemeye veya geri hepsini rulo ya gereken bazı süreç var söylüyorlar. Bu süreç daha sonra, işini yapmanın bir parçası olarak bunu bir taahhüt var, saklı yordamlar birini aramak olursa o noktaya kadar her şey bu saklı yordam tarafından işlenen olabilir.

Bu arayan işlem ile ne yapılması gerektiği hakkında karar vermek hemen hemen her zaman tercih edilir. Bir normal durum özellikle gereksinimi durumlar için bir prosedür içinde özerk bir işlemdir.

PHP / Oracle ama bizim SQL procs konusunda emin değil bir işlem zaten eğer görmek için kontrol edin. Onlar ise sadece onlar ne yapmak. Onlar bir hareket oluşturmak ve taahhüt değilse / kendilerini geri alma. Bu, özellikle birden fazla farklı süreçler denir yordamlara için, bize esneklik verir.