フォールトインジェクション

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

フォールト挿入は、複雑な分散ソリューションで障害をテストするために、サービスを意図的に失敗させる機能を提供します。Sitecore XCには1つのフォールト挿入パターンがあり、Commerceエンティティの永続性における同時実行エラーをカバーします。

Sitecore.Commerce.Plugin.FaultInjectionプラグインは、Sitecore.Commerce.Engine.SDKパッケージで提供されるサンプルのCommerce Engineプロジェクトに含まれています。

大事な

サンプルのCommerce Engineプロジェクトに含まれているSitecore.Commerce.Plugin.FaultInjectionプラグインは、開発環境またはテスト環境でのみ使用することを目的としています。 Sitecore.Commerce.Engine.SDKでは、Commerce Engineプロジェクトへのパスは次のとおりです。 Sitecore.Commerce.Engine.SDK.*.*.**\src\Sitecore.Commerce.Engine\Sitecore.Commerce.Engine.csproj.

サンプルSitecore.Commerce.Plugin.FaultInjectionプラグインをカスタムソリューションから削除してから、本番環境にデプロイする必要があります。

定義された同時実行エラーを挿入するには:

  1. Sitecore.Commerce.EngineプロジェクトにSitecore.Commerce.Plugin.FaultInjectionへの参照が含まれていることを確認します。

  2. APIリクエストに、FaultInjectionという名前のヘッダーを追加します。

  3. 前の手順で追加したヘッダーに値ConcurrencyFaultを割り当てます。

  4. Commerceエンティティを保持する任意のAPIメソッドを呼び出します。

この時点で、コンカレンシー フォールトが発生します。

次に、フォールト挿入ヘッダーを挿入したPostmanを使用してAddCartLineを呼び出した場合のサンプル結果を示します。

ヘッダーの未加工ビュー:

Content-Type:application/json

ShopName:{{ShopName}}

ShopperId:{{ShopperId}}

Language:{{Language}}

Currency:{{Currency}}

Environment:{{Environment}}

IpAddress:{{IpAddress}}

CustomerId:{{CustomerId}}

Roles:{{Roles}}

FaultInjection:ConcurencyFault

Postmanでは、応答本文には次のように表示されます。

"ResponseCode": "Error",
 "Messages": [
 { 
  "MessageDate": "2016-09-01T12:12:45.0287079-05:00",
  "Code": "Error" 
  "Text": "SQL.UpdateEntity.Fail:Id=Cart01|Try=1|Environment=Entity-CommerceEnvironment-
   AdventureWorks|Message='Concurrency error: The Entity version supplied (1) is lower or equal to the current version
  (1).'|Number=50000|Procedure='sp_CommerceEntitiesUpdate'|Line=22", 
"CommerceTermKey": "EntityPersistException"
 }
この記事を改善するための提案がある場合は、 お知らせください!