broker in sql server 2008

yokd052

New member
broker in sql server 2008

האם ניתן לקבוע שהשירות יהיה תמיד פתוח
נתקלתי בבעיה כאשר עשיתי restore
 

גרי רשף

New member
מה בדיוק הבעייה?

כדי להשתמש ב-Service Broker יש להגדיר את הדטבייס כ-Broker Enabled.
האם הוא הופך ל-Not Enabled לאחר ה-Restore?
 

pitoach

New member
זה ברירת המחדל למעשה

אולי תתאר מה הבעיה שאתה נתקל בה
אם תוכל גם לצרף את השאילתה של יצירת ה SERVICE BROKER ופרטים טכניים נוכל אולי לעזור יותר

* תראה מה בדיוק כתבתי לפני כמה זמן בהודעה אחרת כאן:
Service Broker הוא קודם כל שירות (שרץ ברקע כמו שירות במערכת ההפעלה רק שזה יכול להיות מנוהל על ידי השרת SQL) שהמטרה שלו זה להאזין ולנהל הודעות (בין השאר ניהול תורות, ניהול עבודה א-סינכרונית ועוד).
ומה שזה אומר לנו שכמו כל שירות המטרה של השירות להיות מופעל בצורה אוטומטית ובילתי תלויה במשתמש שמבצע LOGIN למשל. אבל כדי לעמוד בתנאי זה יש לוודא שהשירות מופעל תחת משתמש עם הרשאות מתאימות. במקרה של שירות ב SQL נחסכים מאיתנו כמה הגדרות כאלה כי הכל מנוהל על ידי השרת SQL

* ניתן לבדוק אם שירות הברוקר פועל במסד נתונים מסויים על ידי בדיקת העמודה של is_broker_enabled בטבלת ה sys.databases
 

pitoach

New member
2 נקודות שחשבתי כרגע שיכולות לגרור את זה

1. אם אתה מנסה לבצע RESTORE למסד נתונים שכבר קיים במערכת אז אתה מקבל למעשה שימוש באותו שם של SERVICE BROKER ואז הוא לא יופעל במסד הנתונים השני מפני שלא יכולים להיות 2 service_broker_quid זהים. במקרה זה אתה חייב ליצור שירות חדש:
ALTER DATABASE [<database that has to change>] SET NEW_BROKER;


2. יכול להיות שאתה משחזר מסד נתונים למצב לפני שהפעלת בו את ה SERVICE BROKER ולכן הוא לא מופעל
 
למעלה