שלח תשובה

זירת השאלות

1 תשובות

  1. rmarko הגיב:

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

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

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

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

שלח תשובה