עבור לתוכן
Magic DevHub
ilantep

שאלה לגבי טרנזקציות

Recommended Posts

תוכנית קוראת למספר משימות שמבצעות שינויים במספר קבצים. כל משימה בקובץ אחר. כל השינויים חייבים להתבצע ביחד או שלא להתבצע בכלל.
 
במשימה הראשית יש Handler לארוע שגיאה. הוא מוגדר עם אסטרטגיה של 'בטל משימה'
שלפי ההגדרה:
Abort Task aborts the task where the transaction began, rolls back the data, and removes the data view.
 
ובכן, יצרתי מצב אמיתי של ארוע שגיאה כזה כלהלן: הרצתי מנוע אחד שבו הפעלתי תוכנית שפותחת את קובץ X2 במצב כתיבה כאשר במנוע אחר אני מריץ את התוכנית שבמשימה הראשונה היא מעדכנת את קובץ X1 ובשניה את X2. בשתי המשימות השיתוף=אין.
כשהתוכנית מגיעה למשימה השניה היא יוצרת ארוע שגיאה של נעילה ומפעילה את ההנדלר ואמורה לעשות rollback לנתונים שעודכנו גם במשימה הראשונה.
וזה לא קורה ...... 
 
בדקתי את הבאג גם ב-Pervasive וגם ב-Ms SQL וההתנהגות (הלקויה) זהה.

 

לסיכום. פניתי לתמיכה ועד כה לא קיבלתי הסבר מניח את הדעת.

נראה לי מוזר שפעולה כ"כ טריויאלית לא ניתנת ליישום באופן פשוט.

נא עזרכתם !!!!


שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

האם ניסיתה לפתוח טרנזקציה מסוג "מושהה" ?

במשימה עליונה פתח אותה בלפני משימה ובשאר התוכניות/משימות הנקראות תפתח אותה :

כטרנזקציה פעילה גם בלפני משימה .

זה אמור לעשות רולבאק תקין .

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

אתה צודק. במושהה זה אכן עובד. אך אני מעדיף לעבוד , אם אפשר, אם טרנזקציה פיזית. בהנחה

שהיא יותר אמינה (כיוון שהיא מיושמת ע"י ה-DB) ממנגנון שפותח במג'יק. (בלי להעליב).

חוץ מזה לא נראה לי הגיוני שמנגנון כ"כ בסיסי לא יעבוד.

 

האם אתה משתמש בטרנזקציות מושהות הרבה ? ובעיבודי אצווה ?

האם זה אמין ?

 

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

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

זה עובד מצויין .

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

עוד שאלה קטנה בנושא טרנזקציות מושהות (אני אדם חשדן - בעיקר כלפי מג'יק).

1. מה קורה אם יש טרנזקציה של כמות מאד גדולה של  רשומות . נניח עשרות אלפים.

האם זה לא גורם לבזבוז עצום של זכרון (לפחות בזמן הביצוע) ולתקיעת המחשב ?

2. מה קורה בפרק הזמן שבין סיום העיבוד לבין יישום העיבוד ב-DB. נניח כמו במקרה הקודם, כשיש

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

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות.

רישום חשבון חדש

התחבר

משתמש קיים? התחבר.

התחבר עכשיו

×