בפוסט הקודם התמקדנו בהתרחשויות השונות אשר מובילות לחיבור מנקודת מבטו של ה 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 על מנת לבצע את הרישום. אך אין זה אומר שהרישום הסטטי פסק מלהיות רלוונטי.

נכתב ע"י רם קדם