3 Replies Latest reply: Jan 26, 2011 11:52 PM by okie1jp RSS

    OLEオートメーション・エラー

    okie1jp
       こっちでははじめての書き込みになりますが、宜しくお願いします(Oralce側のエラーがOracle Net管理だったので、ここにPostしましたが、いいのかな?)。

      環境:
      DB 10gR2(10.2.0.4 Patch42) WinXP SP3
      Client 10gR2(10.2.0.4 Patch15) WinXP SP3
      Excel 2003

       上記環境のVBAマクロで、ORACLE DBからデータを抽出してグラフ表示を行うシートがあります。
       類似環境の他のPCでは問題は起こっていないのですが、1台だけデータを抽出しようとすると2回目からVBEの実行時エラー'440'(OLEオートメーションエラー)、
      ORACLE側は「ORA-28547:サーバへの接続が失敗しました。Oracle Net管理エラーの可能性があります」で接続できない状態になります。当該PCは以前は問題なく使えていた
      のですが、最近おかしくなってしまいました。
       
       Excelからのリクエストはシートを開いたときに、VBAでDBの最新データの日付(基準日として設定)を取得し、一端セッションをクローズして、検索キーを設定して再度ログオンし、
      所望のデータを検索する、という順番なのですが、日付を取得してセッションをクローズするとExcelを閉じるまでそのExcel内では2度と繋がらない、という状態になります。
       
       ORACLEのクライアントは一端アンインストールして再度インストールしなおしたのですが、状況は改善しません。
       MS-Officeの再インストールも考えていますが、それで解決しなければお手上げな状態です(ORACLEクライアントの再インストールと比べるとOfficeの再インストールは遙かに
      時間がかかりますので、やってダメだったら精神的ダメージ大きいですし)。
       何か他に確認すべき場所(レジストリ等)のヒントがありましたら。
       
       一端繋がるのに、切ると二度と繋がらないというのが。多分、セッションをちゃんと開放していないので、再ログオン時に初期化が失敗しているのでは、という気はするのですが、
      どこを調べたらよい物なのか。
       
       クライアントは別の専用クライアントの環境依存でPatch15以外は使えないため固定です。関係無いとは思いますが、念のために記載しました。
       
       宜しくお願いいたします。
        • 1. Re: OLEオートメーション・エラー
          Takeyoshi Sasaki-Oracle
          共有サーバー接続でしょうか。専用サーバー接続でしょうか。
          どちらかは v$session の SERVER 列で確認できます。
          また、クライアントの tnsnames.ora に SERVER=DEDICATED をつけると専用サー
          バー接続で接続できるようになります。もし、共有サーバー接続でエラーが出て
          いるようならディスアパッチャのトレースに何かエラーは出ていませんか?
          そして、専用サーバー接続でも同様のエラーがでるか確認してみましょう。

          Windows の累積パッチを適用しているのであれば、サポート契約はお持ちだと思
          います。上記点を確認して、解決しないようであれば、サポートに問い合わせた
          ほうがいい気がします。
          • 2. Re: OLEオートメーション・エラー
            okie1jp
             tnsnames.oraのCONNECT_DATAでSEVER=SHARED/DEDICATEDの設定はしていませんでしたので、専用接続です
            (念のためV$SESSIONで確認しましたがDEDICATEDでした)。
             不可解なことに、同じPCから別のXEで動いているDBには問題なく繋がるんですよ(マクロは違いますが、接続の仕方は同じで、
            データ取得ごとに一端セッションをクローズして再検索時は再接続しています)。
             最初に書いているように同じOracle Net環境の別のPCでは問題なく動きますし....。

             となると、Windowsのどこかが壊れていると考えた方が良いかな? と思い始めています。大昔にDBサーバーをインストールし
            た時に動かなくて往生した再も、Windows XP自体が普通に使う分には問題ない範囲で壊れていたのが原因でしたので。

             とりあえず、ありがとうございました。
            • 3. Re: OLEオートメーション・エラー
              okie1jp
               その後、色々やってみたのですが、動く端末と動かなくなった端末でクライアントの構成が違っていることに今頃気づきました。

               動かなくなった方は管理者環境で(元々そうだったので、先日再インストールした際も同じ構成)、動く方は最小限の構成でした(SQL*Plusと
              ORACLE Windows Interfacesのデフォルト)。全然別のPCに管理者環境をインストールして試したところ、やはり動かなかったので、間違い
              無さそうです。

               動く環境の構成に合わせたところ、動くようになったので(管理者環境をインストールして動かなかった別のPCのクライアントを上記の最小構
              成にしたところ、やっぱり動きました)、今回はこれで良し、としますが、サーバ側の累積パッチと、Patch15レベルの管理者環境では互換性が
              失われている部分があるようですね。どの機能かはわかりませんが。

               動かなくなった環境で、問題のExcelシートのマクロを書いていたのもかなり前の話なので、どのパッチセットで互換性が失われたのかもわか
              ら無い状態です。

               とりあえず、作業は継続できるようになりましたので、これでクローズにしたいと思います。

               お騒がせしました。