در هایبرنت برای ارتباط با دیتابیس باید session وtransaction باز شود تفاوت coection با session چیست ؟ چون session در هایبرنت thread-safe نیست یعنی به ازای هر thread یک session داریم؟؟ و قاعدتا یک session برای ارتباط با دیتابیس یک coection احتیاج دارد در برنامه های تحت وب که هزاران درخواست به یک وب سرور فرستاده می شود و به ازای هر در خواست یک thread تخصیص داده میشود و اگر هر thread بخواهد با دیتابیس ارتباط برقرار کند هزاران session باز میشود یعنی هزاران coection ؟؟؟!!!! در صورتی که میدانیم ساخت coection هزینه بر است و معمولا از coection polling استفاده میکنیم ولی تا جایی که میدونم coection polling هم محدودیت هایی دارد مثلا 200 تا .و آیا در هایبرنت برای یک select معمولی لازم است transaction باز شود ؟به طور مثال در فریم ورک هایی مانند spring که transaction را مدیریت می کنند ، اگر متدی داشته باشیم که لیست یک entity را از دیتایس واکشی کند باید بالای سر متد از aotation به نام Transactional استفاده کنیم این واکشی که یک select معمولی است آیا احتیاج به باز کردن transaction دارد؟؟اگر احتیاج هست پس کاربرد session چیست ؟؟و این طور که من متوجه شدم در صورتی یک transaction باز می کنیم که بخواهیم چندین عملیات دیتابیسی از قبیل اپدیت ،حذف و... در یک واحد کاری انجام شود
- - , .
.
برچسب:
نویسنده: محمد رضا جوادیان
تاريخ: جمعه
25 تير
1395 ساعت: 0:10