ユーザーガイド > プッシュベースのインクリメンタルキャッシング > メッセージングエラーからの回復
 
メッセージングエラーからの回復
変更管理サービスは、不適合メッセージを受信すると停止します。メッセージングエラーが原因でCMSが停止すると、インクリメンタルに保持されるキャッシュがすべて「無効」とマークされ、「<ops/>」のコンテンツを含む「サブスクリプション失敗メッセージ」がすべてのサブスクライブ済みクライアントに送信されます。
cs_server.logに次のような例外メッセージがないか確認する必要があります。
Exception: java.lang.Exception: Invalid message element: expecting 'before' element, got 'missing'...
 
無効なメッセージ要素は、メッセージング形式が壊れていて、スキーマ要件を満たしていないことを示しています。CMSは、サブスクライブしているクライアントに「<ops/>」メッセージを発行し、キャッシュを無効にして停止します。これにより、CMSとメッセージングを構成済みの状態から再開できます。
例外がデータ型の不一致である場合は、エラーの原因がOracle GoldenGateプロセスではない可能性が高いため、これらのプロセスを再作成する必要はありません。ただし、破損したデータのシステムを消去するには、引き続きキューとトピックの削除が必要になる場合があります。
メッセージングの問題を解決するには
1.Oracle GoldenGateがインストールされている/dirprmサブディレクトリーにあるOracle GoldenGateの構成パラメーターファイルを確認します。パラメーターGETUPDATEBEFORES、NOCOMPRESSUPDATES、NOCOMPRESSDELETES(およびその他の関連パラメーター)が、CMSと互換性があるメッセージを作成するように設定されていることを確認します。
2.「抽出」および「JMSポンプ」プロセスを停止します。
3.GoldenGateの抽出およびJMSポンププロセスを削除します。
4.関連する2つの*.prmファイルで定義されている証跡ファイルを削除します。証跡ファイルは通常、GoldenGateのホームディレクトリーdirdatフォルダー$GGHOME/dirdatにあり、ファイルはすべて、exttrailファイル名グループの名前に指定された2文字のプレフィックスで始まります(「Oracle GoldenGateのインストールと構成」を参照してください)。
5.構成パラメーターを修正します。
6..obeyファイルを使用して、GoldenGate抽出プロセスとJMSポンププロセスを再作成します。
7.[TDV-Managed Destinations(TDVによって管理される宛先)]構成パラメーターがfalseに設定されている場合は、次のように、TIBCO EMSユーティリティーを使用して、[Change Management Service(変更管理サービス)] > [Central Function(セントラル機能)] > [Messaging(メッセージング)] > [Internal EMS(内部EMS)]で指定されたキューとトピックを削除します。
purge queue <queue_name>を使用して、[In Transit Event Queue(転送中のイベントキュー)]で指定されたキューを削除します。
purge topic <topic_name>を使用して、[Transient Cache Buffering Topic(一時キャッシュバッファリングトピック)]で指定されたトピックを削除します。
8.TIBCO EMSユーティリティーpurge topic <topic_name>を使用して、インクリメンタルキャッシュ用に構成されたすべてのデータソースの[Change Notification(変更通知)]パネルで指定された入力EMSトピックを削除します。
9.セントラルイベントサーバーでTDV変更メッセージングサービスを再起動します。
10.インクリメンタルに保持されるキャッシュごとに、以下の手順に従って無効になっているキャッシュをすべて再起動します。
a. ビューの[Caching(キャッシュ作成)]タブで[Incrementally Maintained(インクリメンタルに保持)]チェックボックスをオフにします。
b. ビューを保存します。
c. [Incrementally Maintained(インクリメンタルに保持)]チェックボックスをオンにし、ビューを再度保存します。キャッシュは、GoldenGate監視ユーティリティによって報告されたSCNタイムスタンプに基づいて具体化されたビューを作成することで、それ自体を再初期化します。この処理が完了するまでしばらく待ちます。
その後、[Disabled(無効)]とマークされている、インクリメンタルに保持されるキャッシュのステータスが[Up(稼働中)]と表示されます。これらのキャッシュは同期が維持され、監視対象のデータソースに加えられたすべての変更をミラーリングします。
サブスクライバーがサブスクライブしているビューに関する変更通知をリッスンしているアウトバウンドEMSトピックは、監視対象のソースへの変更が報告されると自動的に変更通知メッセージの受信を開始します。