データ・ストリームのトラブルシューティング
| 現象 | 可能性の高い原因 | アクション |
|---|---|---|
| RESTは401を返します | 資格証明がないか無効です。プロキシ認証が一致しません。 | 認証モード、シークレット、関連するクロックおよびプロキシ・ルートを確認します。URLに資格証明を埋め込まないでください。 |
| RESTは403を返します | アカウントに必要なユーザー、オペレータ、または管理者の役割がありません。 | 「データ・ストリーム構成の前提条件」のロール表を使用し、必要な権限のみを付与します。 |
| WebSocketは、404またはハンドシェイク障害を返します | ハードコードされたチャネル・パス。プロキシはルーティングまたはアップグレードを行いません。ストリーム名が間違っています。 | 生成されたYAMLを取得し、そのホストおよびチャネル・アドレスを使用します。WebSocketアップグレード・ヘッダーを検証します。 |
| TLS検証失敗 | 不明なCA、期限切れの証明書、ホストの不一致、またはクライアント証明書がありません。 | 正しいCAチェーンをインストールし、DNSおよび証明書SANを確認し、必要に応じて相互TLSを構成します。 |
| 接続は成功しましたが、レコードがありません | 新しいコミットがないbegin=now。フィルタはデータを除外し、証跡/パスが正しくありません。Extractは書込みを行いません。 |
既知のトランザクションを生成し、ソース証跡を検査し、フィルタを一時的に簡素化し、ストリーム・ソースを検証します。 |
| 最初のオブジェクトはDMLではありません | スキーマ・レコードおよびメタデータ・レコードはデータの前に必要です。 | すべてのオブジェクトを分類します。エラーとして処理するのではなく、キャッシュ・スキーマおよびメタデータです。 |
| JSONパーサーはオブジェクトが必要ですが、配列を受信します | WebSocketメッセージはバッチです。 | 最上位の配列を解析し、そのレコードを反復します。 |
クライアントはposに再接続できません |
トークンがパーセントエンコードされていないか、変更されていないか、別のストリームに属しているか、証跡履歴がパージされました。 | 正確に保存されたトークンを使用し、そのトークンをパーセントエンコードし、スコープを検証し、使用できない位置の回復手順に従います。 |
| 重複が表示されます | atLeastOnce、シンク書込みとチェックポイントの間のクラッシュ、2つのコンシューマがチェックポイントを共有、非冪等再試行。 |
アトミック・チェックポイントまたは冪等性を使用し、サービスの品質とコンシューマ所有権を確認します。 |
| リカバリ後にレコードがありません | atMostOnceは、使用できない位置をスキップしました。ビジネス・コミット前にチェックポイントが保存されました。フィルタが変更されました。 |
リカバリ・イベントを監査し、データ・ギャップをリコンサイルして、exactlyOnceと正しいチェックポイント・トランザクションを使用して永続ワークロードを処理します。 |
| 前後のイメージに列がありません | ソース・ロギングまたはExtractが部分イメージを取得しました。nullは省略され、行モデルが選択されています。 | 証跡の取得、omitNullColumnValues、モデルおよびランタイム・スキーマを調べます。休暇欠勤フィールドをnullとして推測しないでください。 |
| DDLがありません | DDLが取得されないか、フィルタでDDLを除外するか、またはソース構成で予期されるイベントがサポートされていません。 | ソースDDLの取得を検証し、操作フィルタにDDLを含めます。 |
| DDL後にコンシューマが失敗する | キャッシュされたスキーマが失効しているか、ダウンストリームが変更を受け入れられません。 | 新しいレコードが到着したときにキャッシュされたスキーマ/メタデータを置換し、管理されたスキーマ移行ポリシーを実行します。 |
| 大きいレコードは切り捨てられるか、分割されます | maxLobSize、maxDDLTextSize、maxRecordSize、プロキシ制限またはクライアント制限。 |
検証された制限を増やし、サポートされている場合はチャンク処理を選択し、プロキシ/クライアントのメッセージ制限を引き上げます。 |
| 数値精度の変更 | バイナリ浮動小数点として解析されたJSON番号。 | 10進認識解析またはtreatAllColumnsAsStringsを使用します。 |
| コンシューマ・メモリーの増加 | 低速ダウンストリーム処理、無制限キュー、オーバーサイズ・バッチまたは再接続ループ。 | バインドされたキュー、処理からの分離の受信、バッチ・サイズのチューニング、下流作業のスケールまたはスロットルを行います。 |
| CloudEventsコンシューマでフィールドが見つかりません | GoldenGateレコードがdataの下にあるか、ランタイム・エンベロープ値がコピーされた例と異なります。 |
dataをアンラップし、ランタイムYAMLおよび実際のイベント属性を使用します。 |
サポートのために収集する情報
-
Oracle GoldenGateのリリースおよびデプロイメント・タイプ。
-
サニタイズされたデータ・ストリーム構成および生成されたAsyncAPI YAML。
-
ストリーム名、ソース証跡とパス、サービス品質、フィルタおよびJSON設定。
-
正確なUTCタイムスタンプ、HTTPステータスまたはWebSocketクローズ・コードおよびGoldenGateメッセージ・コード。
-
最新の正常なチェックポイントと、パーセントエンコードされたかどうか。必要に応じて保護またはハッシュします。
-
関連ディストリビューション・サービス、Extract、プロキシおよびコンシューマ・ログ。
-
サニタイズされたスキーマ/メタデータ・レコードと失敗するペイロード。
-
証跡保持状態および要求されたポジションが引き続き使用可能であることを示す証拠。