Warning: include(/var/chroot/home/content/n/e/t/netanelbs/html/wp-includes/Text/Diff/config.php) [function.include]: failed to open stream: No such file or directory in /home/content/89/4610189/html/wp-config.php on line 49

Warning: include() [function.include]: Failed opening '/var/chroot/home/content/n/e/t/netanelbs/html/wp-includes/Text/Diff/config.php' for inclusion (include_path='.:/usr/local/php5/lib/php') in /home/content/89/4610189/html/wp-config.php on line 49

Notice: Undefined index: active_plugins in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/functions.php on line 6

Notice: Undefined variable: file in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/functions.php on line 15

Notice: get_bloginfo נקרא באמצעות ארגומנט שכבר לא קיים מגרסה 2.2.0! הפרמטר home לא קיים יותר בפונקציה bloginfo(). השתמשו בפרמטר url במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3936

Notice: get_bloginfo נקרא באמצעות ארגומנט שכבר לא קיים מגרסה 2.2.0! הפרמטר home לא קיים יותר בפונקציה bloginfo(). השתמשו בפרמטר url במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3936

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_widget_control לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_widget_control() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: register_sidebar_widget לא קיים מאז גרסה 2.8.0! השתמשו ב wp_register_sidebar_widget() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Warning: Cannot modify header information - headers already sent by (output started at /home/content/89/4610189/html/wp-config.php:49) in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/functions.php on line 47

Notice: Undefined index: css in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 12

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58

Notice: Undefined index: PrefScheme111 in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/style-switcher.php on line 58
האתר של נתנאל בן-שושן
Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

טיפים לעבודה עם MSMQ


Notice: Use of undefined constant template_directory - assumed 'template_directory' in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/theloop.php on line 100

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

עורך: יובל סיני

רקע

רכיב MSMQ (Microsoft Message Queuing) הינו כלי רב תכליתי, המשמש לשינוע מסרים באירגון.

רכיב ה- MSMQ (Microsoft Message Queuing) מאפשר שינוע מסרים באופן סינכרוני ואף באופן לא סינכרוני ע"י שימוש במערכת לניהול תורים.

גירסאות עדכניות של כלי זה מספקים שירותי אימות מתקדמים, הצפנת תווך ע"י SSL ועוד.

כלי בדיקה ללא תשלום

חברת Cogin פיתחה מספר כלי עזר המאפשרים לבצע בדיקות וסימולציה של תקשורת מבוססת MSMQ:

  • MQDelete – מאפשר מחיקת מסר ראשון מה Queue.

    דוגמא לשימוש: MQDelete .\private$\test

  • MQCopy – מאפשר העתקת מסר ראשון מ Queue אחד ל Queue אחר.

    דוגמא לשימוש: MQCopy .\private$\test1 .\private$\test2

  • MQSave – מאפשר העתקת מסר ראשון ב Queue לקובץ.

    דוגמא לשימוש: MQSave .\private$\test body.txt

  • MQSend – מאפשר שליחת מסר עם כותרת ותוכן ל Queue.

    דוגמא לשימוש: MQSend .\private$\test "Test message" body.txt

  • ראוי לציין כי לחברת Cogin ישנם כלים מתקדמים הניתנים לרכישה, אך חשוב לזכור כי הכלים השונים המוצגים במאמר זה ניתנים להורדה בחינם מהלינק הזה.

סוגיות נפוצות בעת עבודה עם MSMQ (Microsoft Message Queuing)

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

הסוגיה הראשונה הינה שיטת הגישה ל- Queue ע"י כלי חיצוני ו\או קוד תוכנה. ראוי לציין כי שיטת הגישה תלויה במספר פרמטרים, וביניהם: סוג ה- Queue, הפרוטוקול בו נעשה הליך השליחה ו\או הקבלה של המסר):

  • בעת עבודה עם Public Queue (Queue שמשתמש ב- Active Directory לצורכי אימות, רישום הגדרות וכולי):

    גישה ל Queue עם כתובת IP של שרת, נעשה באופן הבא:

    DIRECT=TCP:192.168.0.1\Queuename

    גישה ל- Queue עם Hose Name של שרת, נעשה באופן הבא:

    DIRECT=OS:ServerName\Queuename

    גישה ל- Queue ע"י HTTP/HTTPS, נעשה באופן הבא:

    DIRECT=HTTP://ServerName:PortName/MSMQ/Queuename

    או

    DIRECT=HTTS://ServerName:PortName/MSMQ/Queuename

  • בעת עבודה עם Private Queue (בעת עבודה ב- Workgroup ו\או Active Directory):

    גישה ל- Queue עם כתובת IP של שרת, נעשה באופן הבא:

    DIRECT=TCP:192.168.0.1\private$\PrivateQueueName

    גישה ל- Queue עם Hose Name של שרת, נעשה באופן הבא:

    DIRECT=OS:ServerName\private$\PrivateQueueName

  • ראוי לזכור כי בעת שימוש במתודה מסוג net.msmq, חל איסור להשתמש בתו "$", ולפיכך הגישה תתבצע ללא שימוש בתו זה.

הסוגייה השנייה בה נעסוק, הינה שם המחשב המשמש לשליחה\קבלה של מסרים. על מנת לאפשר עבודה תקינה, על שם מחשב להיות בעל 15 תוויים ומטה. במידה ששם המחשב אינו ארוך מ- 15 תווים, מערכת הניהול של ה MSMQ תשתמש ב- 15 התווים הראשונים של שם המחשב.

הסוגיה הבאה בה נעסוק, הינה שימוש בסכמת net.msmq בעת עבודה עם WCF. העבודה עם WCF מאפשרת שליחה\קבלה של מסרים ע"י שימוש בקוד תוכנה, המכיל את אחד (או יותר) הפרוטוקול העברת המסרים:

  • Native – מאפשר שימוש בקישור ע"י DIRECT (בדומה לדוגמאות המצוינות לעיל ו\או שימוש ב- GUID של ה- Queue (דבר האפשרי בעת עבודה עם Public Queue).

    ראוי לציין כי בעת עבודה Native אין אפשרות לציין פורט תקשורת חלופי.

  • SRMP (SOAP Reliable Messaging Protocol) – מאפשר שימוש בסכמת HTTP.
  • SRMPS (SOAP Reliable Messaging Protocol Secure) – מאפשר שימוש בסכמת HTTPS (קישור מאובטח).

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

הסוגיה האחרונה בה נעסוק הינה הקשר בין MSMQ מבית Microsoft ל- MQ מבית IBM.

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

סיכום

מאמר זה סקר מספר טיפים בנושא עבודה עם MSMQ.


Notice: link_pages לא קיים מאז גרסה 2.1.0! השתמשו ב wp_link_pages() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752
מאת נתנאל בן-שושן, 12 בפברואר 2010, 12:25 ‏

Notice: Undefined index: cp in /home/content/89/4610189/html/wp-content/themes/WP-Binary-Blue-v142/plugins/pagedcomments.php on line 44

Notice: get_settings לא קיים מאז גרסה 2.1.0! השתמשו ב get_option() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

Notice: get_currentuserinfo לא קיים מאז גרסה 4.5.0! השתמשו ב wp_get_current_user() במקום. in /home/content/89/4610189/html/wp-includes/functions.php on line 3752

קביעת טראקבק

  1. לא ניתן להשאיר תגובות