اوراکل اپکس-Session Active در دیتابیس اوراکل

Session Active در دیتابیس اوراکل

 

سوال هایی که در خصوص فعال بودن Session در اوراکل مطرح می شود:
‏بعد از برقراری کانکشن سرویس Listener به هردلیلی Down بشود آن کانکشن باقی می ماند. پس چرا در اپلیکیشن Time out میگیرد ولی آن Session در دیتابیس اوراکل هنوز بصورت Active باقی می ماند؟
اکتیو ماندن آن Session به معنی استفاده از Resource نمی باشد؟
به چه طریقی می توان فهمید که آن Session Active دیگر سرویس نمی گیرد؟
مگر اینطوری نیست که خود اوراکل به اتمام تراکنش ها اهمیت میدهد؟
وقتی برای Request ما هیچ Response نباشد چرا خودش Rollback نمی کند؟
پاسخ ها:
به هر دلیلی که Listener Down شود بدین معنی نمی باشد که دیتابیس Down شده است یعنی Session ها هنوز در آن Instance پایدار هستند و session جدیدی ایجاد نمی گردد.
یوزرهایی که هستند به کار خودشان ادامه میدهند اگر هنوز session فعال باشد. حال می توان زمان چک کردن فعال بودن session توسط اوراکل را در فایل sqlnet.ora- SQLNET.EXPIRE_TIME تنظیم کرد.
همچنین از طریق ‘IDLE_TIME’ and ‘CONNECT_TIME’ در Profile می توانید متوجه شوید که rollback می شود.(به شرطی که Unlimited نباشد)
همچنین از پکیج dbms_session.is_session_alive در اوراکل می توانید استفاده کنید که متوجه شوید که کدام session فعال است.
هر چیزی که فعال باشد یعنی دارد از Resource اوراکل استفاده می کند.
کانکشن به دو صورت است بصورت مستقیم یعنی یک به یک با بصورت connection pool. در حالت اول که معمولا بعد از یک زمان مشخصی باید expire شود. از روش دوم معمولا به خاطر اینکه بارزیادی روی لاگ ها نگذارد سریعا disconnect می شود.
پیشنهاد می شود که بعد از بررسی. بصورت دستی در اوراکل Kill شود.(اگر بصورت اتوماتیک disconnect نشد)
نکته: ابزارهایی مانند Toad  و SQL DEVELOPER در خصوص کنترل Session در اوراکل می تواند به ما کمک شایانی کند.
Rate this post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)