בפוסט הקודם התמקדנו בהתרחשויות השונות אשר מובילות לחיבור מנקודת מבטו של ה Client, בפוסט זה נראה כיצד דברים נראים מצד השרת ונתמקד ברכיב אשר נקרא ה Listener.
Oracle Listener הוא רכיב תקשורת צד שרת אשר אחראי לקבל בקשות התחברות מה User Processes ולייצר עבורם Server Processאשר יפעל בשמם מול ה Database. (הדבר נכון ל ,Dedicated Connection ב Shared Connection דברים נראים מעט שונה)
כמו מרכזנית המקשרת בין שני אנשים, החל מהרגע בו הקשר בין ה User Process ל Server Process נוצר – ה Listener אינו נחוץ יותר עבור התקשורת בין שני רכיבים אלו.
Listener אחד יכול לשרת Instance אחד או יותר, ללא ה Listener חיבורים מרוחקים לא יאופשרו.
Basic Listener Configuration
על מנת לתפעל את ה Listener נוכל להקליד את הפקודות הבאות מתוך ה SQL*PLUS :
Stop
על מנת לעצור את ה Listener
> HOST LSNRCTL STOP
אם כעת ננסה להתחבר –
>CONN hr/hr@orcl ERROR: ORA-12541: TNS:no listener
שימו לב כי חיבורים קיימים לא יושפעו מכך שה Listener נעצר.
Start
על מנת להפעיל את ה Listener
> HOST LSNRCTL START
ננסה שוב להתחבר
>CONN hr/hr@orcl Connected. HR >
Status
על מנת לראות את הסטטוס העכשווי של ה Listener
> HOST LSNRCTL STATUS
Instance Registration – Dynamic & Static
כשאנו מתקשרים למלון ומבקשים מפקיד הקבלה לקשר אותנו לחדר של אדם מסויים, פקיד הקבלה צריך להחזיק אצלו רישומים כלשהם אשר יפרטו את האורחים במלון ובאיזה חדר נמצא כל אחד מהם. באמצעותם אותם פרטים הקישור מתבצע.
כמו אותו פקיד קבלה – כך ה Listener חייב להחזיק רישומים המפרטים אילו Databases הוא משרת על מנת שפעולת החיבור תבוצע בהצלחה.
Static Registration
בצורת רישום זו, קיים קובץ קובץ הנקרא Listener.ora ובו מופיעים כל ה Services אשר ה Listener משרת. כאשר אנו נקליד את פקודת ההתחברות
CONN hr/hr@orcl
קובץ ה tnsnames.ora (לדוגמא) בצד Client יבצע את התרגום ויאפשר ל User Process לגשת לכתובת של ה Listener ולבקש ממנו להתחבר, ה Listener בתורו יבדוק כי אכן ה Database אליו ה User Process מנסה להתחבר קיים. ומשם ימשיך את תהליך ההתחברות.
וכאמור כאשר צורת הרישום סטטית, הבדיקה של ה Listener נעשית מול אותו קובץ.
ניתן לדמות זאת לפקיד המלון אשר משתמש בפנקס בו מפורטים שמות הלקוחות במלון
Dynamic Registration
החל מגרסה 8i קיימת צורת רישום נוספת – רישום דינמי. באמצעות טכניקה זו כאשר ה Database עולה, הוא (PMON) רושם את עצמו לבד בזכרון של ה Listener.
באמצעות טכניקה זו אין צורך ב Listener.ora על מנת לבצע את הרישום. אך אין זה אומר שהרישום הסטטי פסק מלהיות רלוונטי.
נכתב ע"י רם קדם