Oracleへの接続方法

10 件の投稿を閲覧中 - 1 ~ 10 件(全 17 件)
  • 著者
    投稿
  • #4716
    YN
    一般参加者

    お世話になります。
    データベースアクセスチュートリアルに従ってOracleDBへの接続を試みているのですが、
    エラーが出てしまいます。(Exception:IOエラー)
    FAQのQ90に添付されているOracle用データベースアクセスアプリを使用しても同様のエラーになりますので、入力しているパラメータに問題があるのだろう(おそらくサーバ部分)と認識しているのですが、どのように直せばよいのかがいまひとつ分かりません。
    Microsoft ODBCデータソースアドミニストレータのOracle ODBCドライバ構成からですと正常に接続できています。
    Oracle ODBCドライバ構成の各パラメータを、どのようにMZアプリ用に書き換えればよいかをご教示いただくことは可能でしょうか。

    お手数をお掛けしますが、宜しくお願い致します。

    #4717
    MZPlatformユーザー会
    サイト管理者

    まずはエラーの詳細についてお知らせいただけますでしょうか。
    「IOエラー」以外に表示されている文字列をお書きいただくか、画像を添付していただけると助かります。

    画面上でそれ以上の表示がなければ、ログファイルをご確認ください。
    ログファイルはMZインストール先(例えばC:\MZPlatform\3.5)のlogフォルダに、Platform***.logという名前で、曜日ごとのテキストファイルが作成されています。
    atの行をすべて書くと多いので、該当する箇所で例えば接続に失敗している理由等が書かれている部分を抜き出してください。

    また、お手数ですが使用環境について可能な範囲でお知らせいただけますでしょうか。
    Oracle DBのバージョンと、使用したJDBCドライバの名前、JDBCドライバの配置先のパス、MZ側で接続先サーバの情報として記入したパラメータ、ODBC側で記入したパラメータ、これらを見れば何かわかるかもしれません。

    #4719
    YN
    一般参加者

    お世話になります。お返事ありがとうございます。

    Oracle用データベースアクセスアプリでの実行結果画像とログを添付いたします。
    (アプリはパラメータが全て見えるようテキストボックスのサイズだけ変更しました)

    OracleはOraClient11g_home1 がインストールされていて、JDBCドライバは
    C:\MZPlatform\Java\jre8_mz3.5\lib\ext にojdbc6.jarをコピーしています。
    MZおよびODBCでの各パラメータは添付画像の通りです。
    (ODBCはこの後パスワードを入力すると接続完了となります。)

    情報が不足しているようでしたらお申し付けください。
    お手数をお掛けしますが宜しくお願いします。

    #4722
    MZPlatformユーザー会
    サイト管理者

    情報ありがとうございます。
    確かに、サーバ名かポート番号などの書き方に問題がありそうです。

    接続を試すMZアプリですが、MZ本体と一緒にインストールされている「データベースアクセス_4(DB切替版).mzax」をお使いいただけますでしょうか。場所はインストールフォルダの下の「AP_DATA/Sample」にあります。

    こちらを起動していただくと、データベース接続設定のフレームに「登録名」のコンボボックスがありまして、こちらを「Oracle」にしてください。

    あとは、「サーバ」のフィールドの中で「localhost」のところにサーバ名(ここでは//FT8000SVR?)、「orcl」のところにサービス名(ここではKAIHATU)を入れます。ポート番号は「1521」ではないでしょうか?独自の環境で指定されているならそれを書いていただきます。いただいた画像を拝見すると少なくとも「/em」は余計な感じがしますが、サーバ名がこの書き方で通るかどうかはよくわかりません。WindowsのPC名であれば、「\\」もお試しいただき、それでもだめならIPアドレスも試していただけるとうまくいくかもしれません。

    最後に「ユーザ名」と「パスワード」を適切に入力していただき、「スキーマ名」も「ユーザ名」と同じものを入力してください。

    これで接続できると良いのですが。
    以上、お試しいただけますでしょうか。

    #4723
    YN
    一般参加者

    お世話になります。お返事ありがとうございます。

    ご教示頂いたことは全て試しましたがダメでした。。

    サーバのパラメータが引っかかっていると推測しておりますので、サーバ情報に間違いがないかをメインに情報の洗い出しから進めてみたいと思います。
    また進展がありましたらご連絡差し上げます。

    ご迷惑をおかけしました。

    #4724
    MZPlatformユーザー会
    サイト管理者

    それは残念です。
    こちらで試す環境がないので推測ですが、ODBCデータソースの登録では、ローカルのOracleクライアントと接続されている感じがしますが、JDBCドライバの場合はOracleサーバと直接通信しますので、Oracleクライアントの接続設定をご確認いただく必要があるかもしれません。

    #4725
    YN
    一般参加者

    ありがとうございます。

    いろいろ試してみて、TNS-12505というエラー表記になり、(やっと)入口まではたどり着いたという状況です。
    SIDが一致していない場合などにこのエラーになるようですが、ご指摘頂きましたクライアント経由か直接アクセスかの違いも解決のヒントになりそうです。現在はクライアントの設定ファイルから拾ってきておりますので。
    また、SIDとSERVICE_NAMEの違いがよく分からないのですが、基本的には同じという認識でよいのでしょうか?現在はSERVICE_NAMEを入れています。(SID設定が見つからず)

    来週からはサーバ側のSERVICE_NAMEの確認から進めてみます。
    色々とありがとうございます。

    #4726
    MZPlatformユーザー会
    サイト管理者

    tnsnames.oraというファイルにSERVICE_NAMEとSIDの指定が書いてあるらしいですが、もしその中にSIDが書いていないか指定してもうまくいかない場合は、サンプルのMZアプリにあるままの「orcl」で試してみていただけますでしょうか。

    #4727
    YN
    一般参加者

    こんにちは。今週もお世話になります。。
    tnsnames.oraに記載されているSERVICE_NAME(SIDはなし)を指定してもエラーになります。「orcl」でもダメでした。
    試しにSQL開発環境ソフト(黒猫を使っています)から接続すると正常に接続できます。MZだけ上手いきません。。
    ちなみにデータベースアクセスコンポーネントのソースファイルを公開していただくことは可能でしょうか。コンポーネントがブラックボックスの状態ですので何がダメなのかが全くわかりません。ソースレベルでデバッグできると良いのですが。

    #4728
    MZPlatformユーザー会
    サイト管理者

    データベースアクセスコンポーネントのソースは公開しても良いですが、それは本質的な問題ではないと思います。

    確認ですが、JDBCで接続に成功している組み合わせはあるのでしょうか。
    もしあれば、その設定をお知らせください。
    MZだけ失敗という表現が気になるのですが、黒猫というのはODBCを利用しているのではないでしょうか。それならODBCで接続できているだけだと思います。

    こちらとしては、JDBCからODBCに接続するものと誤解があるのではないかという点が不安です。JDBC経由では、Oracleのサーバに直接接続しますので、サーバ側の設定が必要です。そのようにお試しいただいていると信じていますが、そうであれば、今はSIDがわからないことが問題ではないでしょうか。

    サーバ側にログインできれば、環境変数でORACLE_SIDが確認できるそうですし、対象とするサーバにSQL文を送れるのであれば、select instance_name from v$instance;で取得できるという情報があるようです。

10 件の投稿を閲覧中 - 1 ~ 10 件(全 17 件)
  • このトピックに返信するには、ログインしてください。