とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

~接続記述子と接続識別子~

みなさん、こんにちは。

どうも、さいばーきゃっとです。

以前、「tnsnames.oraの構文」を紹介した記事を覚えているでしょうか。

itsoldier0901.hatenablog.com

 

今回は補足ではないですが、私が「tnsnames.oraの構文」を学んだ時に、間違いやすい用語があったので、それを説明しようと思います。

~接続記述子と接続識別子~

まずは、Oracle社が定めているそれぞれの意味について紹介します。

  • 接続記述子

特別にフォーマットされた、ネットワーク接続の接続先の説明。接続記述子には、宛先サービスおよびネットワーク・ルート情報が含まれます。
宛先サービスはそのサービス名で表現されます。ネットワーク・ルートは、少なくとも、ネットワーク・アドレスによってリスナーの位置を提供します。

  •  接続識別子

接続記述子を解決する名前、ネット・サービス名またはサービス名。ユーザーは、接続するサービスに対する接続文字列内に、接続識別子とともにユーザー名およびパスワードを渡すことで接続リクエストを開始します。

 うーん。活字だと分かりにくいかもしれません。しかし、この両者をtnsnames.oraの構文」で説明すると、わかりやすくなります。

f:id:cloudy0901:20161213011714p:plain

上記の図のように、接続記述子には、接続先のサーバ情報が特別なフォーマットで記述されています。そして、この接続記述子を名前解決してくるのが接続識別子ということになります。

この両者の違いを知っていると意外に役立ちます。以前私は、オラクルエラーである「ORA-12154: TNS: 指定された接続識別子を解決できませんでした (TNS-12154)」が発生した時に、この両者の違いを知っていたので、接続識別子(ネットサービス)に問題があると分かり、すぐに解決できたことがあります。