کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

درس 33 : آموزش مدیریت تراکنش ها Tranaction Managment در Hibernate

آموزش مدیریت تراکنش ها Tranaction Managment در Hibernate

یک تراکنش (transaction) به طور ساده عبارت است از یک واحد مستقل کار. در چنین موردی، وقتی یک مرحله از تراکنش ناموفق اجرا شود، بایستی کل تراکنش لغو گردد، وگرنه نتیجه ناقص در بر خواهد داشت (به این اصل در اصطلاح atomicity یا یکپارچگی می گویند).
یک تراکنش را می توان به وسیله چهار خاصیت یا Properties مهم که در اختصار به آن ها ACFO می گویند، توصیف کرد. این خواص عبارتند از :

  • Atomicity یا یکپارچگی.
  • Consistency یا ثبات.
  • Isolation یا ایزوله بودن
  • Durability یا استمرار.

شکل زیر، چارت عملکرد یک تراکنش را نشان می دهد :

 آموزش مدیریت تراکنش ها Tranaction Managment در Hibernate

 

رابط کاربری تراکنش یا Transaction Interface در Hibernate :

در چهارچوب کاری Hibernate، ما مفهومی داریم به نام رابط کاربری تراکنش یا Transaction Interface که یک واحد کاری مستقل را جهت تراکنش تعیین می کند. این رابط کاربری خود تراکنش را از پروسه اجرا و پیاده سازی آن جدا و مستقل می کند.
یک تراکنش رابطه مستقیمی با مفهوم Session در برنامه داشته و با فراخوانی متد Session.begin Transaction() شروع می شود. سایر متدهای مرتبط با تراکنش در Hibernate عبارتند از :

  • متد Void begin() که یک تراکنش جدید را شروع می کند.
  • متد Void Commit() یک واحد کاری تراکنش را به اتمام می رساند مگر این که در وضعیت FlashMode.NEVER باشیم.
  • متد Void rollback()، تراکنش را مجبور می کند تا لغو شده و اثر خود را کنسل کند (در اصطلاح rollback شود).
  • متد Void SetTimeout (int seconds) ، این متد یک محدوده زمانی اتمام یا Transaction Timeout را برای تراکنش تعیین می کند که بایستی تراکنش در محدوده ثانیه تعیین شده شروع شده و پایان یابد.
  • متد Boolean is Alive()، چک می کند که آیا تراکنش هنوز فعال است یا خیر.
  • ()، چک می کند آیا تراکنش به صورت درست اجرا شده است یا خیر.
  • متد Boolean was Rolled Back()، چک می کند آیا تراکنش به صورت صحیح لغو شده و اثر ناقص آن خنثی شده یا خیر.
  • متد Void +r، یک عملیات را جهت هماهنگ سازی rollback کاربر تعیین می کند.

مثال و کد عملی آموزش مدیریت تراکنش ها Tranaction Managment در Hibernate

در Hibernate زمانی که در یک تراکنش خطایی رخ داده و عملیات ناقص اجرا می شود ، بهتر است تا کل تراکنش و اثرات آن لغو گردند ، تا اولا در ثبت اطلاعات مشکلی به وجود نیامده و دوما منابع درگیر با تراکنش سیستم آزاد شوند . در کد مثال زیر ، نحوه مدیریت کامل یک تراکنش را در Hibernate آموزش داده ایم :

Session session = null;  
Transaction tx = null;  
  
try {  
session = sessionFactory.openSession();  
tx = session.beginTransaction();  
//some action  
  
tx.commit();  
  
}catch (Exception ex) {  
ex.printStackTrace();  
tx.rollback();  
}  
finally {session.close();}  
                 
1395/07/11 3391 872
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...