שלח תשובה

זירת השאלות

757
צפיות
5
תשובות

Unspecified error בגישה לדאטהבייס

,‏ 14 ביולי, 2008

שלום יש לי אתר עם כמות גולשים שמגיע לעיתים ל 20 בו זמנית. קיוותי כל הזמן שלא יקרו בעיות עם הדאטהבייס בניתי אותו על אקסס של מיקרוסופט בASP ולאחרונה האתר נותן בערך פעם בחודש (כמה ששמתי לב) את השגיאה:

Microsoft JET Database Engine error '80004005'

Unspecified error
ומציין את שורת החיבור לדאטהבייס של האתר.

קובץ הדאטהבייס כבר הגיע ל15 מגה ושאלתי היא העם זה בגלל הכמות של הגולשים וכמות הנתונים או שעדיין לא הגעתי לגבול והבעייה היא בשרת?

תגיות:

5 תשובות

  1. עם הגודל אין בעיה
    אקסס תומך עד 2 גיגה באופן רשמי.

    לגבי העומס – וובמאסטר בתחילת דרכו רץ על access ורק כשתפוז קישרו לכאן והיו איזה 1000 גולשים יחד – נוצרו צווארי בקבוק, אבל מעבר לזה זה עבד אחלה.
    כמובן שאין פה חישובים או עיבודים מסובכים על הבסיס נתונים, אבל כבסיס לאתר קטן זה תיפקד יופי.

    לגבי השגיאה שלך – האם אתה מתחבר עם DSN או DSN-less ? האם הדיבי מוגן סיסמא? האם יש הרשאות קריאה/כתיבה תקינות לתיקייה בה יושב הבסיס נתונים?


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  2. samiprogram הגיב:

    הדיבי לא מוגן ויש הרשאות
    cn.Open "provider=microsoft.jet.OLEDB.4.0; data source=" & server.MapPath("db.mdb")

    זה השורת חיבור. אז אתה אומר שזה בסדר מבחינת הכמות? אולי סתם הקוד לא יעיל או לא תקין או שזה בעייה של החברת אחסון.
    חשוב להדגיש שיש בכל דף עשרות רקורדסטים (בממוצע איזה 30 עם שאילתות די מורכבות) וכל הרקורדסטים על אותו חיבור.

  3. אמממ…
    אתה צריך לוודא שאתה סוגר אובייקטים ולא פותח 30 ולא סוגר כי אז אתה חונק את השרת (או את ה-pool שלך).

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

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


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  4. אמאל'ה
    אתה בהחלט הורג את השרת.
    אין שום צורך בעשרות רקורדסטים. קרא על getstring ו-getrows, ובמקרה הכי גרוע, תשתמש באותו אחד, תפתח ותסגור אותו כל פעם.
    אין שום צורך בעשרות רקורדסטים בדף.


    צוות WebMaster  

  5. samiprogram הגיב:

    מה זאת אומרת להשתמש באותו רקורדסט?
    אני צריך לשנות את השאילתה לפי צרכי העיבוד של הדף. וחוץ מזה אני משתמש בפונקציות בסגנון:
    get_name_by_id
    שמקבל שם טבלה ו ID ןמחזיר את שדה השם בטבלה (לדוגמא לשם משתמש או לשם מאמר וכדומה) ויש בפונקציות כאלה בדף שימוש נרחב וכל הפעלה של הפונקציה יוצרת רקורדסט אבל אחרי זה מוחקת אותו.

שלח תשובה