Commerce Data Exchange のトラブルシューティング

この記事は、Microsoft Dynamics 365 Commerce 環境にデータ同期 (Commerce Data Exchange [CDX]) に関連する機能の実装を行う IT 担当者を対象としています。 ここでは、実装における CDX のトラブルシューティングに役立つ情報を提供します。

データの構成と同期は、正しい実装を行うにあたって非常に重要となります。 業務上の要件、IT インフラストラクチャ、全体的な準備のいずれであっても、データが正しく同期されていない場合は、環境全体が事実上役に立たないことになります。 したがって、Commerce headquarters から Commerce Scale Unit を介して Store Commerce アプリ (オフライン データベースの有無にかかわらず) や、その他の店内コンポーネントを使用する、実店舗へのデータ同期に関連した問題の、トラブルシューティング手順を理解することが重要です。 この記事では、一部の問題を軽減または修正する方法についての一般的なガイダンスを提供します。 また、サポート依頼を作成するのに最適なタイミングや、サポート依頼を迅速に行う場合に最も重要となるデータなどの情報も提供しています。

この記事に進む前に、チャネル (店舗)、レジスターとデバイス、および Store Commerce アプリ オフライン データベースの概念を理解することが重要です。 したがって、この記事の後半にある 「CDX 実装ガイダンス」や「コマース アーキテクチャの概要」などのリソースをご確認いただくことを推奨します。

シナリオベースの使用法に関するトラブルシューティング

次の既知のシナリオでは、Commerce 本部の一部のコンフィギュレーションでは、CDX の機能が予期した正常な結果を達成できない場合があります。 このリストは、追加のシナリオが既知になると更新されます。

  • 拡張可能なデータ セキュリティ (XDS) ポリシー 機能が有効になっていると、CDX が正しく動作しない場合があります。 具体的には、Commerce 本部ではすべてのコマース チャネルを参照できない場合があります。 このシナリオでは、ユーザーが CDX ジョブを実行した場合、部分的なデータ (このユーザーが確認できるデータ) だけが生成されます。 そのため、チャネル データベースのデータが不完全で、エラーが発生する可能性が高いです。
  • RetailServiceAccount のユーザーが変更されるか、XDS ポリシーが割り当てられます。 RetailServiceAccount は、さまざまな理由と目的で使用される、事前生成された重要なアカウントです。 マイクロソフトでは、このアカウントを一切変更しないことを強く推奨しています。 XDS ポリシーを使用している場合、そのアカウントが参照またはアクセスできるデータを減らすようなポリシーをアカウントに割り当てないでください。
  • アップロード パッケージの生成時に、CDX ジョブはタイムアウト エラーで失敗します。 ほとんどの場合、これらの生成されたテーブルの ReplicationCounterFromOrigin 列でカスタム作成のトランザクション テーブルにインデックスが存在しない場合に発生します。

エラーベースのトラブルシューティング

次の表に含まれないエラーが発生した場合は、必要に応じて、Microsoft サポートが問題の解決を援助できるようにサポート依頼を作成してください。 この記事では、Microsoft サポートを使用せずに、直接修正可能な問題と、Microsoft サポートを使用せずに確認できるが、サポートなしでは修正できない問題について重点的に説明します。

エラー Description
次のエラー メッセージが表示されます: System.ArgumentNullException: Value cannot be null. Parameter name: connectionString at Microsoft.Dynamics.Retail.CommerceDataExchange.SqlTargetRequestHandler.. バッチジョブの状態に起因するエラーが発生しました。 (ダウンロード セッションのページでは、失敗したダウンロード ジョブのエラーを確認することができます。) システム管理 > 照会 > バッチジョブ に移動し、ダウンロード ジョブが適用されるはずである Commerce Scale Unit に関連付けられているデータ書き込みバッチを探し、バッチジョブの状態を保留に変更します。 バージョン 10.0.12 よりも前の環境では、レガシーという名前のチャンネル データベース グループを作成し、既定のチャンネルデータベースをこの新しいグループに関連付け、続いてすべての配分スケジュールから新しいデータベース グループを除外することをお勧めします。 CDX ジョブが、レガシーグループの既定のチャンネル データベースに対して生成されないようにする必要があります。
バッチ処理を使用しない限りは、配分スケジュール ページから 今すぐ実行コマンドを実行できません。 この変更は、環境が最も頻繁に使用されている時間帯にジョブが実行された場合に発生するパフォーマンス上の問題に対処する目的で、バージョン10.0.11 で意図的に実装されています。 この機能拡張の一環として行われた別の変更では、コマース本部の チャネル データベース ページから完全データ同期コマンド (フル ジョブ同期) が実行されると、繰り返し使用ができなくなっています。 実行できるのは 1 回のみです。 この動作は変更しないことをお勧めします。 ただし、開発環境を使用している場合は、Commerce 共有パラメーター > 構成パラメーター へ移動し、1 の値を持つ CDX_DISABLE_FORCESCHEDULEINBATCH に新しい名前を設定します。
次のエラー メッセージが表示されます: Microsoft.Dynamics.Retail.CommerceDataExchange.SqlWriteRequestRunException: Failed to run SqlWriteRequestRunner for table AX.\<TABLE NAME\>.. 1つ以上の DBO テーブルの長さが拡張されたため、データの切り捨てが必要となり、エラーが発生しました。 そのため、切り捨てエラーが発生しました。 サポート要求を生成します。 ベスト プラクティスについては、拡張を介してカスタム Commerce Data Exchange 同期を有効するを参照してください 。 これらのベストプラクティスには、編集中のテーブル フィールド上の拡張データ型 (EDT) の拡張機能を削除し、CDX 拡張テーブルを使用して必要な long (完全) 値を格納することが含まれます。
ダウンロード セッションが失敗しています。 エラーメッセージ : 「... 試行回数が多すぎます」 小売とコマース > バックオフィスの設定 > パラメーター > コマース スケジューラー パラメーターに移動し、試行回数 フィールドを 3 に設定します。 このフィールドの値が大きすぎる場合は、利用率の高い時間帯にダウンロード セッションが失敗する可能性があります。 この手順を完了すると、ジョブのステータスが キャンセル済 に設定され、再試行を停止します。 Commerce Data Exchange のベストプラクティス を参照してください。
実行中の CDX ジョブはキャンセルできません。 この問題が運用環境で発生した場合は、Microsoft Dynamics Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。
複数の POS ターミナルを追加すると、ダウンロード セッションに長い時間がかかるか、または Commerce headquarters 全体で大きな処理遅延が発生します。 Store Commerce アプリのオフライン データベースを作成し、関連するチャネル データベース グループに追加すると、データベースの完全な同期が行われた後の既存のダウンロード セッションをすべて継承します。 可用性が高いタイミングであっても、発生する恐れある例外的なデータ生成が大きすぎる場合は、パフォーマンスに影響を与えることがあります。 稼働率の高い (最も忙しい時間) 時間帯の場合、環境のパフォーマンスが著しく損なわれる恐れがあります。 新たに生成された端末に割り当てる "ダミー" のデータベース グループ (どの配分スケジュール ジョブにも関連付けられていないグループ)、またはオフライン同期の一時停止 オプションが はい に設定されている特別なオフライン プロファイルのいずれかを持つことを強くお勧めします。 このようにして、データ生成は、必要なときにシステムが最も可用性が高い時に行うことができます。 (ただし、システムによっては、必要に応じて何度か一時停止する場合があります。)この方法では遅すぎる場合は、サポート要求を作成してください。
影響を受ける行数が少ない場合であっても、一般的に増分 (デルタ) 同期には非常に長い時間がかかります。 新しいチャネル (店舗) が作成された際には、すべてのデータを新しい店舗用に再作成する必要があるため、この問題が発生する可能性があります。 "ダミー" チャネルデータベース グループに関連付けられている "ダミー" チャンネルデータベースを用意し、新たに生成されたチャンネル (店舗) に割り当てることを強くお勧めします。 このようにして、データ生成は、必要なときにシステムが最も可用性が高い時に行うことができます。 この方法では遅すぎる場合は、サポート要求を作成してください。
P ジョブでアップロード セッションが作成されないと、次のエラー メッセージが表示されます: System.Data.SqlClient.SqlException (0x80131904): Violation of PRIMARY KEY constraint 'PK\_UPLOADSESSION'. 重複するキーをオブジェクト 'crt.UPLOADSESSION' に挿入することはできません。" この問題が運用環境で発生した場合は、 Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。
Commerce headquarters のアップロード セッション ページからアップロード セッションパッケージをダウンロードしようとすると、以下のエラーメッセージが表示されます: Record for Id - \<Number\> not found.. サポート要求を作成する。
CDX ダウンロード セッションが適用されない場合、次のエラー メッセージが表示されます: Failed to get download session package URI. この問題が運用環境で発生した場合は、 Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。
ダウンロード セッションは適用されず、アップロード セッションは作成されません。 この問題が運用環境で発生した場合は、 Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。
アップロード セッションが失敗し、次のエラーメッセージが表示されます: Infolog for task Default:P-0001 (...) Error when bulk inserting data. Target table: RetailListingStatusLog.. アップロード セッション パッケージが RetailListingStatusLog テーブル内に複数のレコードが存在するため、エラーが発生しました。 これらのレコードには、2つ以上の同じ StatusDateTime 値が設定されています。 この問題が運用環境で発生した場合は、 Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。
レジ担当者がオフラインモードに切り替えようとした場合、または強制的にオフラインになった場合は、切り替えに失敗します。 多くの原因が考えられます。 まず、基本情報を確認してくだい : コンピュータのハードディスクの空き容量はありますか? SQL Server Express を使用している場合、オフライン データベースのサイズは10 GB に制限されていますか? レジスターのダウンロード セッションが保留されていませんか? (保留中のダウンロード セッションは、レジスターが最新の状態ではなくなった場合に表示されます。そのため、オフラインでの切り替えが一時的に防止される可能性があります。) また、マイクロソフト サポートに連絡することをお勧めします。 この問題が運用環境で発生した場合は、 Lifecycle Services (LCS) にログインし、即時サポートの要求を作成してください。 運用環境以外の環境で問題が発生した場合は、サポート要求を作成します。

リソース