プロが教えるわが家の防犯対策術!

WindowsServer2008R2(64bit)にOracle11g(64bit)のデータベースを構築し、
同機上のアプリケーションからアクセスしようとしています。
(具体的にはPro*C/C++を使ってプリコンパイルしているCで作成したDLLやEXEです。)
これらのアプリケーションは元々Oracle10gの機能を用いて作成してあった物を流用している為、
Oracle11g(32bit)のクライアントがないと動作しない様です。
従って、2008Serverには32bit版の11gクライアントもインストールしました。
(Oracle11g(64bit)のメディアパック内の32bitクライアントディスクからインストール)

(手順)
1:Oracle11g(64bit)ホストのインストール&データベースの構築
2:Oracle11g(32bit)クライアントのインストール
3:データベースに表領域とユーザを作成
4:クライアントでローカル・ネットサービス名の作成

で、ここまではできたのですが、
11g(32bit)クライアント側のSQL*Plusを起動して作成したユーザでログインしようとすると
ORA-12560:TNS:プロトコル・アダプタ・エラーが発生しましたとなってしまいます。
ただ、コマンドプロンプトから「ユーザ/パスワード@接続文字列」を直接指定して
SQL*Plusを起動するときちんと接続できます。

何か順番や方法を間違えているのでしょうか?

ちょっと急いでいてなるべく早く解決させたいので、
間違い・チェックすべき事の漏れなど
直接的な解決策でない事でもかまいませんのでご教授下さい。

A 回答 (3件)

システム環境変数のORACLE_HOMEはどのような指定になっているのでしょうか。


もし、dbhomeへのパスが設定されている場合、clientへのパスを設定してみてはいかがでしょうか。
    • good
    • 1

クライアントやサーバの環境変数間違えていてORACLE_SIDが違うから接続できないとか、


(他の環境変数でもおきるものはある。)
Oracle11g(32bit)クライアントと、Oracle11g(64bit)クライアントで環境設定ファイルなどが
格納されているフォルダは違うので環境変数間違えで別のフォルダを見ているかも。

4:クライアントでローカル・ネットサービス名の作成
がOracle11g(32bit)クライアントの環境にできていない。

実行時にOracle11g(32bit)クライアントの環境を参照していない
というところあたりがあやしいと思うけど。

この回答への補足

ご指摘ありがとうございます。

確認してみたところ、
dbhome(64bit)側のlestener.oraにリスナーの設定があり、
dbhome(64bit)側のtnsnames.oraには初期設定しかなく、
client(32bit)側のlestener.oraは存在しておらず、
client(32bit)側のtnsnames.oraに接続文字列の設定が入っていました。
またPCの環境設定でPATHはclient側のフォルダが前に記述されているので
client側が優先されているものと思われます。

この上で「スタートメニュー」-「すべてのプログラム」から
client側のSQL*Plusを立ち上げているのですが接続できません。
dbhome側のSQL*Plusでなら接続できるのですが・・・。

補足日時:2012/01/23 10:06
    • good
    • 1

WindowsServer2008R2でファイアウォールを起動させていると、ポート(1521)が閉まっている可能性があります。



何も変えずにoracleをインストールしたのであれば1521番が使用されますので
ファイアウォールの設定で1521を開けてみてはどうでしょうか?

この回答への補足

ご回答ありがとうございます。

Oracle11gのインストール時にインストーラーが親切にも
「ポートを開放する?」って聞いてくれましたので、
ファイアウォールのポート:1521は開放済みです。
他にも2030とか8080とか、可能性のありそうなところは開けました。

補足日時:2012/01/21 09:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す