نمایش نتایج 1 تا 6 از 6

نام تاپیک: try/cacth در هنگام اتصال به دیتابیس

  1. #1

    try/cacth در هنگام اتصال به دیتابیس

    سلام دوستان
    من در هنگام اتصال به دیتابیس گاهی دچار مشکل میشم که سرور پیام خطا میده البته فقط گاهی مثلا میگه که DLL مربوط به SQLSRV رو نمیتونه لود کنه که بعد دوباره که رفرش میکنم مشکل حل میشه
    من خیلی جستجو کردم اما به نتیجه نرسیدم و فکر کنم باید در سرور تغییراتی انجام بشه که امکانش نیست
    در حال حاضر به این نتیجه رسیدم که یک Try/catch بذارم برای اتصال به دیتابیس که اگر مشکلی پیش اومد یک پیام بده و خودش مجدد صفحه رو بعد از مثلا 15 ثانیه رفرش کنه
    من از موارد زیر استفاده می کنم
    Windows Server 2012 R2
    IIS 8.5
    codeigniter 3.1
    SQL Server 2014

  2. #2
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: try/cacth در هنگام اتصال به دیتابیس

    دوست من اولا که ویندوز کلا برای کاربر های عادی نوشته شده و ورژن سرورش هم فقط برای کار های کوچیک هست

    بکار بردن php روی سیستم عامل ویندوز و اونم کنار IIS فقط واسه کارای تحقیقاتی هست و این جور مساعل طبیعی هست

    یکی از مشکلات php اینه که کانکشن دیتا بیس رو باز نگه نمیداره و میزنه و قطع میکنه ! و حالا تمام دیتابیس های SQL Base هم توی maximum connection per seccond ضعف دارن

    شما زمانی که تعداد کانکشن های همزمانت از حدمجاز بیشتر بشه یا SQL میپکه و یا درایورت که اینجا همون DLL هست می پکه و نمیتونه این حجم رو هندل کنه

    بهترین راه همون try catch هست

    ولی من شدیداً توصیه میکنم از لحاظ مساعل امنیتی به هیچ وجه از ویندوز برای پروژه های تجاری استفاده نکنید و همچنین از لینوکس ها با کرنل debian
    برای کار تجاری امن ترین و استیبل ترین OS سیستم عامل های مبتنی بر کرنل redhat هست نظیر centos

  3. #3

    نقل قول: try/cacth در هنگام اتصال به دیتابیس

    نقل قول نوشته شده توسط ermya_ مشاهده تاپیک
    دوست من اولا که ویندوز کلا برای کاربر های عادی نوشته شده و ورژن سرورش هم فقط برای کار های کوچیک هست

    بکار بردن php روی سیستم عامل ویندوز و اونم کنار IIS فقط واسه کارای تحقیقاتی هست و این جور مساعل طبیعی هست

    یکی از مشکلات php اینه که کانکشن دیتا بیس رو باز نگه نمیداره و میزنه و قطع میکنه ! و حالا تمام دیتابیس های SQL Base هم توی maximum connection per seccond ضعف دارن

    شما زمانی که تعداد کانکشن های همزمانت از حدمجاز بیشتر بشه یا SQL میپکه و یا درایورت که اینجا همون DLL هست می پکه و نمیتونه این حجم رو هندل کنه

    بهترین راه همون try catch هست

    ولی من شدیداً توصیه میکنم از لحاظ مساعل امنیتی به هیچ وجه از ویندوز برای پروژه های تجاری استفاده نکنید و همچنین از لینوکس ها با کرنل debian
    برای کار تجاری امن ترین و استیبل ترین OS سیستم عامل های مبتنی بر کرنل redhat هست نظیر centos
    سلام دوست گلم/ ممنون که پاسخ دادی
    اینکه میفرمایید ویندوز سرور برای کارهای عادی و کوچیک هست رو من متوجه نمیشم
    و اینکه میگید PHP روی ویندوز خوب کار نمیکنه میدونم، اما شرایط جوری هست که دست من نیست و باید از این سرور و با ید از SQL Server استفاده کنم، این یک وب سایت داخلی هستش که نهایتا 10 نفر باهاش کار میکنند/ پس قضیه لینوکس و mysql و ... به کلی منتفی میشه

    و اینکه فرمودید بهترین راه Try catch هست خب درسته اما چطوری توی codeigniter اجراش کنم چون که من به صورت auto load به دیتابیس وصل میشم

  4. #4
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: try/cacth در هنگام اتصال به دیتابیس

    > اینکه میفرمایید ویندوز سرور برای کارهای عادی و کوچیک هست رو من متوجه نمیشم
    دلایل زیادی وجود داره برای این موضوع دلایل فنی دلایل امنیتی دلایل stability and reactivity در هر حال گفتگو راجع به این مسعله از حوصله ی این تاپیک خارج هست
    اگه شما دوست دارید از تجربیات دیگران استفاده کنید راجع به صحت این موضوع تحقیق کنید و اگر هم فکر میکنید که به اندازه کافی راجع به این مسعله تجربه دارید خوب این عرض بنده رو نادیده بگیرید

    3 راه برای اینکار وجود داره
    از اونجا که codeigniter سخت گیر نیست میتونید به صورت دستی در model به دیتا بیس وصل بشید

    راه حل بعدی اینه که به این صورت داخل model ار try catch استفاده کنید و exeption رو بریزید دور

    try {
    $query_str = "SELECT * FROM tbl_user WHERE username = '".$username."'";
    $result = $this->db->query($query_str);

    if (!$result)
    {
    throw new Exception('error in query');
    return false;
    }

    return $result;

    } catch (Exception $e) {
    return;
    }

    و راه حل آخر اینکه کلاس databse اصلی codeigniter رو متناسب با نیاز edit کنید که توصیه نمیشه

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

  5. #5

    نقل قول: try/cacth در هنگام اتصال به دیتابیس

    تشکر دوست عزیزم

    یک سوال دیگه هم داشتم اینکه
    اگر من بخوام که اگر مثلا یک خطا رخ داد یک دستوری اجرا بشه یا مثلا وقتی که خطای دیتابیس رخ داد مثلا بعد از چند ثانیه صفحه دوباره رفرش بشه این دستورات رو تو بخش catch باید بنویسم؟ یا؟؟؟؟؟

  6. #6
    کاربر جدید
    تاریخ عضویت
    بهمن 1395
    محل زندگی
    خارج از ایران
    پست
    17

    نقل قول: try/cacth در هنگام اتصال به دیتابیس

    سلام

    زمانی که exception رخ میده برنامه میپره به قسمت catch
    و اون متغیر $e حاوی پیغام خطای رخ داده هست شما میتونین با var_dump در حالت های مختلف بررسیش کنید و در زمان مناسب کار مورد نظر رو انجام بدید

تاپیک های مشابه

  1. مشكل در تبديل int به big int در هنگام اتصال به ديتابيس
    نوشته شده توسط نیما اکبری در بخش T-SQL
    پاسخ: 1
    آخرین پست: دوشنبه 23 بهمن 1391, 17:53 عصر
  2. سوال: خطا در هنگام اتصال به دیتابیس sql !
    نوشته شده توسط Samsam2010 در بخش VB.NET
    پاسخ: 10
    آخرین پست: سه شنبه 17 آبان 1390, 23:11 عصر
  3. پیغام خطا در هنگام اتصال به دیتابیس روی سرور
    نوشته شده توسط mahyar-m در بخش SQL Server
    پاسخ: 1
    آخرین پست: شنبه 01 اسفند 1388, 09:43 صبح
  4. سوال: خطايي در هنگام اتصال به ديتابيس به اسم data uniqe
    نوشته شده توسط navid1n2000 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 08 آذر 1388, 08:26 صبح
  5. سوال: یک خطا در هنگام اتصال به دیتابیس
    نوشته شده توسط behrooz66 در بخش MySQL
    پاسخ: 3
    آخرین پست: یک شنبه 06 مرداد 1387, 05:49 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •