2 Replies Latest reply: Sep 6, 2012 9:17 PM by 959720 RSS

    Oracle Change Notification による変更通知がされない

    959720
      以下のサイトを参考にOCNの機能を試していたのですが、特定の環境下では変更通知がされません。
      http://docs.oracle.com/cd/E16635_01/win.111/e06104/featChange.htm
      http://www.atmarkit.co.jp/fdb/rensai/odp10g05/odp10g05_03.html

      <クライアント>
      OS:Windows XP Professional(x86)
      ODP.NET:2.112.1.0
      開発ツール:VS2005
      言語:VB

      このPCから以下の3つのDBそれぞれに対してOCNの機能を試しました。

      <DB1>
      OS:Windows Server 2008 R2 Standard
      DB:Oracle 11g R2(x64)
      変更通知されない。

      <DB2>
      OS:Windows 7 Professional(x86)
      DB:Oracle 11g Express
      変更通知される。

      <DB3>
      OS:Windows Server 2003(x86)
      DB:Oracle 11g(x86)
      変更通知される。

      <DB1>では変更通知されませんでした。例外はスローされません。
      すぐ目につく違いは、OS・DBともに64bitであることです。
      x64でビルドしたプログラムを<DB1>内で実行した場合、変更通知されました。
      x64のDBとx86でビルドした.NETプログラム間では、OCNを使用することはできないのでしょうか?
      それとも何か設定などがあるのでしょうか?

      よろしくお願いいたします。
        • 1. Re: Oracle Change Notification による変更通知がされない
          nashiOracle
          http://www.oracle.com/webfolder/technetwork/jp/obe/net11gobe/changenotification/odpnetchg.htm
          を参考に、試してみました。

          <サーバ環境>
          OS:Windows Server 2008 (64bit)
          Oracle: 11.1.0.7.0 (64bit)

          <クライアント環境>
          開発ツール VisualStadio 2008 (VB.Net)
          OS:Windows 7
          Oracle Instant Client 11.1.0.6.0 (ODP.NETアセンブリバージョン:2.111.6.20)
          ビルドオプション: x86

          この組み合わせで、正常に変更通知を受け取ることができました。

          #OSとOracleが32bitの環境もあるのですが、どちらも同じプログラムで動作しました。
          32bit/64bitの違いというよりも、
          ・接続ユーザーに Change Notification権限があるか?
          ・通知ポートがファイアウォールで塞がれてないか?
          あたりが原因ではないでしょうか。

          参考になれば幸いです。
          • 2. Re: Oracle Change Notification による変更通知がされない
            959720
            回答ありがとうございます。

            Change Notification 権限付与およびポートの開放は確認済みです。

            x86ビルドのプログラムで、64bitのOracleから変更通知が受け取れたということなので、
            OracleもしくはOSの設定に問題がありそうですね。

            もう少し調べてみます。