سرریز شدن Session های اوراکل و Down شدن سرور
سلام
نمیدونم جای این سوال اینجاست یا نه ولی فکر کردم شاید اینجا بشه جواب گرفت اگه جای اشتباهی اومدم منو راهنمایی کنید:اشتباه:
من یه وب سرویس {C#} دارم که وقتی داره به تعداد زیادی درخواست Real time پاسخ میده سمت بانک اطلاعاتی {اوراکل} در مواقع پیک ترافیک Session ها از یه حد مجاز بالاتر میره و پرفورمنس Cpu میره رو 90-100 درصد و هم کلاینتها میخوابن و هم خود اوراکل (وب سرورم هم که بماند :گریه:)...
جزئیات خیلی زیاده نمیدونم اینجا میشه ادامه داد یا نه؟ اگه تا همینجا منو راهنمایی کنید من ادامه میدم ...
ممنون از توجه اساتید
نقل قول: سرریز شدن Session های اوراکل و Down شدن سرور
سلام
مگه با سشن ها چی کار میکنی؟ چه مقداری داخلش هست؟
در ضمن سشن چه ربطی به بانک داره؟!
(برا اینکه جواب دقیقی بگیری پست دقیقی بده)
موفق باشید
خلاصه جزئیات پروژه و مشکل
سلام
قبل همه چی ممنون از توجهت : منظورم از سشن مال اوراکله نه مال وب سرویس ...
خلاصه جزئیات پروژه و مشکل:
وب سرویس : به تعداد زیادی درخواست Real-time داره پاسخ میده {حدودا 32 تا خط E1 که روزای پرترافیک تا 40-50 درصدشون پر میشه} گذشته از این ممکنه درخواستهای دیگه ای وجود هم داشته باشن که حدودا من پیک ترافیک رو 500 تا درخواست Real-time میذارم. برای اینکه برای هر درخواست session جدیدی باز نشود یک کد pool connection از Sun Java گرفته و اونو به C# تبدیل کرده و هر موقع نیاز به کانکشن جدید میشود از این آبجکت یک Instance میگیرم {در صورتی که مایل به دریافت این کد باشید میتونم اونو براتون بفرستم} دلیل اینکار هم اینه که اوراکل session های وب سرویس من رو از بین نمیبره و Inactive نگهشون میداره و به هیچ طریق من نمیتونم از وب سرویسم به اونا دسترسی داشته باشم و یه مدت بعد (که فقط خود اوراکل میدونه) اونا رو kill میکنه و این واسه من دردسر ساز میشه ضمنا استفاده از این آبجکت pool رو اختیاری کردم و میشه برش گردوند (با تغییر گزینه ای در web.config)
کلاینتها : هر کلاینت به 4 خط E1 داره سرویس میده و با یه واسط که با دلفی 2006 نوشته شده دارن از وب سرویسم ،سرویس میگیرن (به علت اینکه RIO تو BCB بیدلیل داخل Thread هام میترکید (حتی پوینترش هم از بین میرفت) و هر جور هم Trace کردم نتونستم دلیلشو بفهمم با خراب شدن RIO تمام استراکتها و متغیرها هم مقادیرشون از بین میرفت بعبارت بهتر برنامه به ... میرفت) یعنی همه رو یکسان کردم هرموقع نیاز به یک ترنزکشن با دیتابیس هست این واسط از BCB یا دلفی فراخوانی میشه و از طریق پایپینگ منتظر میشم تا جواب از وب سرویسم برسه ضمنا در همه فراخوانی های وب سرویس از سمافور استفاده کردم.
بانک اطلاعاتی : اوراکل 9iR2 هست که خدا تا جدول داره ولی من با 17-18 تا جدولی که 3-4 تاشون هم خیلی بزرگ {2-3 میلیون رکورد} هستن کار میکنم. روی این جدولها برای سریعتر شدن عملیاتت ایندکس بسته شده و ویندوز 2003 هم سیستم عاملشه و سعی کردیم تو تنظیمات حداکثر مقدار حافظه ای که میشه به اوراکل اختصاص بدیم .
------------------------------------------------------------------------
مشکل : در مواقعی (مثلا زمان پیک ترافیک یا وقتی که کلاینت جدیدی زیر بار میرود ) تعداد session های اوراکل از یه حد مجاز بالاتر میره و سیستم بهم میریزه و هیچ راهی بجز راه اندازی مجدد سیستم باقی نمیمونه که این کار هم خیلی واسه من گرون تموم میشه ...
واقعا ممنون میشم اگه راهنماییم کنید ...
نقل قول: سرریز شدن Session های اوراکل و Down شدن سرور
ببخشید ولی این مطلب شما یه جورایی به مبحث ویندوز مربوطه
دوستان چه نظری دارند؟
نقل قول: سرریز شدن Session های اوراکل و Down شدن سرور
من هنوز منتظرم از كسايي كه اينجا سابقه دارن ميشه يكي لطف كنه بگه معمولا 1 همچين سوالايي جواب ميگيرن يا نه؟
اگه نه من مرحله به مرحله مطرح كنم!
ممنون اگه جواب بدين ...
نقل قول: سرریز شدن Session های اوراکل و Down شدن سرور
سلام
به نظر من تنها راه حل شما استفاده از connection pool . این کار بار دیتابیس را خیلی کم می کنه. و برای سایتی که حداقل 2000 کاربر داره، اگر خوب تنظیماتش را انجام بدی، فقط 6 تا connection ایجاد می کنه.
نقل قول: سرریز شدن Session های اوراکل و Down شدن سرور
نقل قول:
نوشته شده توسط
mohammad_P
سلام
به نظر من تنها راه حل شما استفاده از connection pool . این کار بار دیتابیس را خیلی کم می کنه. و برای سایتی که حداقل 2000 کاربر داره، اگر خوب تنظیماتش را انجام بدی، فقط 6 تا connection ایجاد می کنه.
همونطوريكه عرض كردم من هم قبلا همين كار رو انجام دادم و از سايت Sun يه كلاس جاوا پيدا كردم كه پياده سازي Pool Connection رو گذاشته بود (اينكار واسه جاواكارها نياز نيست چون built-in دارنش) و با هزارتا آمن بالله و thread و poolSize و... از جاوا به #C تبديلش كردم و تو شرايط مختلف تستش كردم و تعداد كانكشنها خيلي پايين اومد ولي دوباره موقع شلوغ شدن به مشكل ذكر شده برميخورم!