none
evet בעת סגירת console application RRS feed

  • שאלה

  • שלום לכולם!

    יש לי console application שרץ בserver בכמה מופעים וכל מופע לוקח שורה מהDB ומבצע פעולות על אותה שורה.

    כאשר יש לי כמה EXE שרצים אני לא יכולה להבדיל בינהם (מה עושה מה).

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

    השאלה שלי, היא:

    האם יש צורה להפעיל את אותו EXE ולקרוא לו בשמות אחרים כדי להבדיל?

    או לחילופין, האם אני יכולה לשלוט על סגירה של EXE במקרה לא צפוי כמו end task דרך הtask manager או כל מקרה מוות בלתי צפוי אחר?

    אשמח אפילו לרעיון.

    תודה!

    שרה.

    יום חמישי 07 אוגוסט 2014 06:41

תשובות

  • >> האם יש צורה להפעיל את אותו EXE ולקרוא לו בשמות אחרים כדי להבדיל?

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

    >> האם אני יכולה לשלוט על סגירה של EXE במקרה לא צפוי כמו end task דרך הtask manager או כל מקרה מוות בלתי צפוי אחר?

    * כמובן

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

    >> בנוסף אם כל מה שחשוב זה רק לבדוק Xשנים פתוחים בשרת ה SQL אז אפשר לעבוד עם הפרמטר @@SPID (סדר האותיות הפוך השטרודלים משמאל). פרמטר זה הוא מספר הסשן שלנו וכל יישום נפרד שניגש לשרת יש לו מספר ייחודי שונה (אבל אלו מספרים שחוזרים על עצמם. ז"א אם סשן 90 נסגר והיישום ניגש שוב אחר כך אז יכול להתקבל סשן 90 שוב). נתון זה נגיש דרך כל שאילתה שעובדת מול מסד הנתונים בזמן שהיישום מחובר אליו. באותו אופן אפשר להגדיר במסד הנתוים COUNTER למשל תוך שימוש ב sequence  (מתאים רק לגרסאות 2012 ויותר מאוחר) או identity בגרסאות המוקדמות יותר. כך שבכל גישה לשרת יוצרים ערך חדש ומחזירים אותו לאפליקציה אם צריך

    בקיצור אפשר לחשוב על מאות צורות לנהל COUNTER ברמת האפליקציה או ברמת השרת SQL...


    [Personal Site] [Blog] [Facebook]signature

    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 10 אוגוסט 2014 08:34
    • נערך על-ידי pituachMVP, Moderator יום ראשון 10 אוגוסט 2014 08:49 תיקון שגיאת הקלדה
    יום חמישי 07 אוגוסט 2014 11:45
    מנחה דיון