הגבלת זמן ריצה

s h i m s h o n

New member
הגבלת זמן ריצה

לפני שאני ממציא את הגלגל... ישנם מסכים ודוחות רבים במערכת - חלקם "בעייתיים" פחות וחלקם יותר. כלומר, ישנם דוחות שאין חשש להריץ אותם בכל חתך שלא יהיה, אבל ישנם כאלה, שבחתך ה"לא נכון" (טווח תאריכים גדול, למשל), ירוצו זמן רב - 5, 10 או 40 דקות. הסיבה לריצה הארוכה יכולה להיות שאילתא מורכבת, כמות רשומות גדולה, תעבורת רשת כבדה או שילוב של כולם. בכל מקרה, הרצת דוח שכזה גורמת לעומס במערכת ולהמתנה ארוכה של המשתמש. הייתי רוצה לתפוס מראש מצב מסוכן שכזה ולמנוע אותו, או להגביל את מספר הרשומות למשל. שאלתי היא: האם התנסיתם בבעיות כאלה ומהם הפתרונות שמצאתם. האם חייבים להנדס פתרון לכל דוח, או שניתן ליישם משהו גנרי יותר. כל עצה תבורך, ש.
 

s h i m s h o n

New member
השאלה היא עקרונית

מדובר באורקל, הגישה יכולה להיות מ-JAVA, .NET או דרך SP. אבל מה שאני מחפש זה רעיונות. כלומר - מבלי לתפור פתרון ספציפי לכל מסך, אני מעוניין (אם אפשר) לא להכביד על המערכת נקודה. אכן, יכול להיות שלכל DB ולכל כלי יש פתרונות משלו. לכן אשמח לשמוע על כל מכניזם או פטנט שמישהו יישם אצלו כפתרון. במיוחד אם הפתרון הוא אפליקטיבי, אבל גם אם הפתרון הוא ספציפי לכלי כזה או אחר. תודה, ש.
 

24sharon

New member
סתם נקודה

אפשר ברמת התכנות (בNET) לתת זמן של TIMEOUT מוגבל, וכך ההגבל הוא ברמת האפליקציה עצמה.
<httpRuntime maxRequestLength="1048576" executionTimeout="1200"/>​
זו דוגמא לפקודה. אבל בטוח יש גם פתרונות ברמת המסד, אלא שהם לא ידועים לי
 

s h i m s h o n

New member
איך זה עובד?

איפה שמים את השורה הזאת? ברמת אובייקט ספציפי? או שזה יהיה נכון לכל פקודה שתרוץ? ומנסיונך, אם באמת תהיה שאילתא שרצה זמן רב, האם רק תתקבל שגיאה אצל מסך המשתמש, או שה- .NET מבצע נסיון גם לעצור את השאילתא ב-DB ? וחוץ מזה, אני לא חייב דווקא פתרון שהוא Built-in בתוך הכלי או בתוך ה-DB - כל שיטה מקובלת. תודה, ש.
 

24sharon

New member
אפשר ברמת אובייקט ספציפי

אבל אפשר בקובץ הWEBCONFIG שזה לכל האפליקציה. אפשר לתת שגיאה למשתמש ואפשר לכתוב לו, זמן טעינה ארוך מהרגיל נסה לשנות פרמטרים
. אבל, אני לא יודעת אם זה עוצר בפועל את הפעולה מהDB, אם כי ההגיון שלי אומר שכן, אבל צריך לבדוק את זה.
 

גרי רשף

New member
בדרך כלל ל-Connection יש הגדרה מתאימה

כלומר- ברמת ה-Connection ניתן להגדיר את ה-TimeOut, כאשר לרוב יש ברירת מחדל של 30 שניות.
 
למעלה