none
שגיאה בחיבור ל SQL 2008 RRS feed

  • שאלה

  • שלום רב,

    יש לי 2 שרתים.
    הראשון windows server 2003 עם iis6 שמריץ אתר asp
    השני שרת windows server 2008 64 bit שמותקן עליו sql server 2008
    האתר מתחבר עם connection string ל sql וזה עובד מצויין.
    הבעיה היא שאחת לכמה שעות אני מקבל את השגיאה הבאה בשורה של ה conn.open
    Named Pipes Provider: Could not open a connection to SQL Server [1326].


    השגיאה מופיעה לפעמים בבוקר, לפעמים בצהריים או בערב, או גם וגם, אין כל כך חוקיות ואינני מבין איך ב 98% אחוז מהזמן החיבור עובד ופתאום לא.
    להלן ה connection string:


    SQLconnectionString = "Provider=SQLNCLI10;Server=MyServerIpAddress;Database=MyDbName;Uid=MyUser; Pwd=MyPassword;"


    השגיאה מופיע בשורה הבאה:
    conn.open SQLconnectionString

    תודה,
    אריאל

    אשמח לעזרה.
    יום ראשון 28 נובמבר 2010 11:34

תשובות

כל התגובות

  • אריאל שלום,

    הייתי מנסה ככה:

    1) לשים ב connection string  כתובת ip.

    2) אם יש לך אפשרות לבדוק לנטר  עם  SERVICE   SQL BROWSER   למעלה כל הזמן ולא נופל.

    3)  תבדוק כמה connection מחוברים בו זמנית אולי אתה מגיע למקסימום של  connection פתוחים ( זה ניתן להגדרה)

    4) בדוק הגדרות ip  ב configuration manger של SQL. ( אין לי משהו לתת לך ספציפית אבל תעבור  על ההגדרות בהנחה שאתה מכיר אותם :))

    תתחיל  בזה ותראה איך אתה מתקדם.

    שרון

     

     

    יום ראשון 28 נובמבר 2010 11:52
  • האם אתה יכול לבדוק אם הנפילות קורות לאחר שלא פנו לשרת הSQL במשך זמן מה ???
    rez@sysdarts.com
    יום ראשון 28 נובמבר 2010 12:27
  • הי

    1. תבדוק עם הפרוטוקל Enabled ע"י ה- Configuration manager.

    2. תבדוק ב- surface arae configuration שעבור local and remote connection מאופשר גם TCP\IP וגם- named pipes 


    אסף שלם
    יום ראשון 28 נובמבר 2010 12:35
  • יום ראשון 28 נובמבר 2010 13:46
  • היי שרון,

    תודה רבה על התשובה.

    1. מוגדרת כתובת IP

    2. כל הזמן למעלה

    3. בהגדרות ה SQL מצויין 0 שאומר ללא הגבלה.

    4. יכול להיות שפה מקור הבעיה, היה מוגדר: listen all: yes וגם תחת ip addresses היתה מוגדרת כתובת לא נכונה תחת ip4

    השינויים שביצעתי:

    listen all: no

     תחת ip4 שיניתי לכתובת הנכונה של השרת, ריסטרתי את ה SQL מחדש, כעת נמתין ונראה אם הבעיה נפתרה, במידה וכן אעדכן

    תודה בינתיים.

    יום ראשון 28 נובמבר 2010 14:12
  • תודה על התשובה

    כל הזמן יש פניות ך SQL, האתר פעיל מאוד עם מאות גולשים בו זמנית.

    אריאל

    יום ראשון 28 נובמבר 2010 14:14
  • תודה רבה על התשובה,

    1. הוא מוגדר Enabled

    2. שניהם מאופשרים, כפי שציינתי התקלה קוראת אחת לכמה שעות ובכל שאר הזמן האתר עובד, גם אם יש את השגיאה לאחר 30 שניות ועושים ריפרש לעמוד זה מסתדר.

    תודה,

    אריאל

    יום ראשון 28 נובמבר 2010 14:25
  • היי אסף,

    תודה על התשובה.

    ראיתי את זה כבר וההגדרות שהוא מציין אצלי תקינות, הוא מדבר על חיבור שלא מצליח בכלל, אצלי האתר מתחבר ל SQL מצויין ב 98% אחוז מהזמן ופעם בכנה שעות הוא מציג את השגיאה שלא מצליח להתחבר ל SQL לאחר 30 שניות.

    לאחר מכן מרפרשים את העמוד וזה מסתדר...

    אריאל

    יום ראשון 28 נובמבר 2010 14:32
  • הי,

    מה מוגדר במאפייני ה- DB עבור הפרמטר Auto close?

    עם חוזר 1 מהתוצאה של שאילתה למטה אזי בסיס הנתונים "נכבה" אחרי שהמשתשמש האחרון יוצא.

    זו אופציה אפשרית מכוון שאתה מציין שאחרי ריענון הכל מסתדר.

    שווה בדיקה.

    Select

    is_auto_close_on from sys.databases where database_id = db_id(database_name)


    אסף שלם
    יום ראשון 28 נובמבר 2010 15:15
  • היי אסף,

    הפעלתי את השאילתא שציינת והיא מחזירה 0

    תודה,

    אריאל

    יום ראשון 28 נובמבר 2010 16:03
  • היי אריאל,

    נראה כמו בעיית תקשורת בין שני השרתים... יש לך אפשרות לנתר את את התקשורת בין שני השרתים?

    למכונות אחרות יש בעייה לגשת לשרת?'

    מציע לך לבנות מוניטורינג ע"ג ה II, אני מצרף דוגמה לקוד הבדיקה:

            private bool IsSQLOpen(int TimesToTry, string CONNSTRING)

            {

                int i = 0;

                while (true)

                {

                    try

                    {

                    conn.open();

                    }

                    catch (Exception x) {}

                    if (conn.State == ConnectionState.Close) i++;

                    else return true;

                    if (i == 10) return false;

                }

     

    דניאל

     

    • הוצע כתשובה על-ידי DanMaxic יום ראשון 10 אפריל 2011 21:00
    יום חמישי 07 אפריל 2011 22:07