QUESTION(SQ1007097)
Oracleと接続しているMobile Link同期サーバへEBFを適用後、同期サーバの起動時に「ORA-00942:
表またはビューが存在しません。」というエラーが発生するようになりました。 このとき、エラーとなっていたのは、「GV$TRANSACTION」への参照です。
ANSWER
-原因- 以前に発生したMobile Linkのダウンロード時の問題により、以下の修正が行われました。
統合データベースが Oracle RAC で実行されていると、Mobile Link
サーバは、タイムスタンプベースのダウンロードでリモート・データベースにローをダウンロードしないことがありました。 次の状況では、Oracle
データベースで変更されたローがダウンロード・ストリームに含まれないことがありました。
1) Mobile Link サーバが Oracle RAC
上の 1 つのノードに接続している。 2) 別のアプリケーション A が同じ Oracle RAC 上の別のノードに接続している。 3)
アプリケーション A が、コミットせずに同期テーブルのローを変更した。 4) Mobile Link クライアント R1
がこのテーブルからの時間ベースのダウンロードを含む同期要求を発行した。 5) Mobile Link サーバは同期要求を正常に完了した。 6)
アプリケーション A はトランザクションをコミットした。 上記の状況では、アプリケーション A によって変更されたローは、リモート R1
にダウンロードされません。
|
タイムスタンプベースのダウンロードについての詳細は以下をご参照下さい。
http://www.ianywhere.jp/tech/1034585.html
上記の問題を修正した結果、使用されるシステム・ビューが変更されたため、新たな問題(エラー ORA-00942)が発生するようになりました。
この問題は、次のバージョン以降のEBFを適用することにより発生致します。
Windows 9.0.2.3886 10.0.1.3931 11.0.1.2280
Linux 9.0.2.3900 10.0.1.3937 11.0.1.2279
-対応方法- Mobile Link サーバで使用されるOracle アカウントは「V_$TRANSACTION」の代わりにOracle
システム・ビュー「GV_$TRANSACTION」に対するSELECTパーミッションを所有している必要があります。
アクセス権を与えるために、以下のOracle構文を実行してください。(SYSユーザ
のみがこのアクセス権を与えることができます) grant select on SYS.GV_$TRANSACTION to
<user-name>
尚、「GV$TRANSACTION」は「GV_$TRANSACTION」ビュー
と同義語になります。 そして、この「GV$TRANSACTION」にはパーミッションを直接付与することはできません。
|