- - PR -
ORACLEでのTNS接続エラー
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-02-03 13:42
長文ですいません。
Oracleのエラー解決方法について、お聞きしたいことがあります。 [前提] ・社内全PC/サーバーは、"domainA.local"に属する ・サーバーAに、Oracle8iがインストール済み ・サーバーA:Windows2000/クライアント:WindowsXPPro [これまで] "domainA.local"上のサーバーAに、複数台のクライアントから"Net8 Assistant"で接続 →成功 sql*plus/他業務アプリ(NEC製など)での接続 →成功 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− しかし、ネットワーク統合の必要が出てきており、別ドメイン(domainB.local)のクライアントから(domainA.local)のサーバーを参照する必要が出てきました。 [両ネットワークの詳細] ・両ネットワークは、ドメイン名とIP体系が異なるが、IPアドレスのみルーターでNAT変換を行っている ・domainB.localからdomainA.localにあるサーバーAには、ping/フォルダ参照(ドメインユーザーを手動で入力)/そのリソースを使ってのソフトインストールは成功する ・hostsにIPアドレス ホスト名変換を記載済み [現在] "domainA.local"に属するサーバーAに、"domainB.local"に属するクライアントから"Net8 Assistant"で接続 →失敗 sql*plus/他業務アプリ(NEC製など)での接続 →失敗 "domainA.local"に属するサーバーAに、"domainA.local"に属するクライアントから"Net8 Assistant"で接続 →成功 以下は、接続テストで失敗した際に出力されたsqlnet.logです。 *********************************************************************** Fatal NI connect error 12560, connecting to: (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=C:\\Program Files\\Oracle\\jre\\1.1.7\\bin\\jrew.exe)(HOST=clienta)(USER=user)))) VERSION INFORMATION: TNS for 32-bit Windows: Version 8.1.6.0.0 - Production Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 8.1.6.0.0 - Production Time: 03-FEB-2009 13:31:18 Tracing not turned on. Tns error struct: nr err code: 0 ns main err code: 12560 TNS-12560: TNS: プロトコル・アダプタ・エラー ns secondary err code: 0 nt main err code: 530 TNS-00530: プロトコル・アダプタ・エラーです。 nt secondary err code: 126 nt OS err code: 0 なかなか大きなトラブルであり、ぜひ解決方法を教えてください。 よろしくお願いします。 | ||||||||
|
投稿日時: 2009-02-03 14:23
OTNの掲示板に
に似たような症例の報告が上がっており ほぼ解決しております。 そちらはご覧になっているでしょうか。 | ||||||||
|
投稿日時: 2009-02-03 15:09
あすか様
早々のご返答ありがとうございます。 OTNやネットを再度探して、以下のことを試しましたが失敗でした。 (1) [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0] USE_SHARED_SOCKET(文字列値) = TRUE (2) OracleHome\NETWORK\Admin\tnsnames.oraに以下を追加 serverA.domainA.local = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = serverA)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) <-この行を追加 (SERVICE_NAME = serverA) ) ) OTNにも投稿をと思ったのですが、ダブルポストになるのはよくないと。 こちらを削除するかもしれないです。 [ メッセージ編集済み 編集者: fuji 編集日時 2009-02-03 15:10 ] | ||||||||
|
投稿日時: 2009-02-03 15:29
SERVICE_NAMEをドメインから指定してみてください
| ||||||||
|
投稿日時: 2009-02-03 16:00
あすか様
たびたびすいません。 domainB.localでOracleクライアントをインストールした後に生成された、両ファイルです。 [sqlnet.ora] # SQLNET.ORA Network Configuration File: D:\Oracle\Ora81\network\admin\sqlnet.ora # Generated by Oracle configuration tools. NAMES.DEFAULT_DOMAIN = domainB.local SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES) [tnsnames.ora] # TNSNAMES.ORA Network Configuration File: D:\Oracle\Ora81\network\admin\tnsnames.ora # Generated by Oracle configuration tools. folder.domainB.local = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = severA)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) folder.domainB.local = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = serverA)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) 上記状態ですが、domainA.localもdomainB.localもだめでした。。。 あえて、domainB.localに変更してみて試したほうがよいのでしょうか? | ||||||||
|
投稿日時: 2009-02-03 16:23
まず環境ですが...
クライアントの OS って XP ですよね? "Oracle Bequeath NT Protocol Adapter" のバージョン(つまり クライアント製品のバージョン)が 8.1.6.0.0 ってそもそも サポートされてない構成です(XP なら 8.1.7 + XP 用パッチ)。 あと接続先に指定された設定が
クライアントのローカルにあるデータベースに接続しようとしてますが そんなものあるんですか? ちゃんと接続文字列を指定してないだけのように見えるんですけど...。 tnsping でもエラーになりますかね? [ メッセージ編集済み 編集者: ほったて 編集日時 2009-02-03 23:49 ] | ||||||||
|
投稿日時: 2009-02-04 01:53
同じ名前のエントリが二つあるのもどうかと思いますが、とりあえずその接続しようとしているクライアントからそのサーバへ、逆にそのサーバからクライアントへ、正しくホスト名で双方向に ping が飛んでますか? あと、お互いに IP アドレス直指定で ping が飛ぶのであれば、いっそ HOST=... のところに IP アドレスを指定して接続を試してはいかがでしょうかね。 ※まずは tnsping でエラーにならないことが前提ですが。 | ||||||||
|
投稿日時: 2009-02-04 22:40
ほったてさん、ご返答ありがとうございます。
実際は同じ名前のエントリは、両方とも異なっています。(記述ミスです) バージョンですが、同一セグメント環境ではお互いに接続できていますので、問題ないかと思ってました。 クライアントからサーバーへはNATで通過させています。しかし、サーバーからクライアントへは飛ばないように制御しているのでこれが原因かもしれません。 サーバーをクライアントと同一セグメントにもって行くか、双方向通信を可能にしてみます。tnspingをテストして結果をアップさせてもらいます。 |
1