フォールト注入
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
フォールトインジェクションは、複雑な分散ソリューションにおける失敗をテストするために、意図的にサービスの失敗を引き起こす機能を提供します。Sitecore XCは単一のフォールトインジェクションパターンを持ち、コマースエンティティの永続性における並行フォールトをカバーします。
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プラグインを削除する必要があります。
定義された並行フォールトを注入するために:
- Sitecore.Commerce.EngineプロジェクトにはSitecore.Commerce.Plugin.FaultInjectionへの言及が含まれていることを確認してください。
- APIリクエストで、 FaultInjectionという名前のヘッダーを追加します。
- 前のステップで追加したヘッダーに値 ConcurrencyFault を割り当てます。
- Commerce Entityに永続するAPIメソッドを呼び出します。
この時点で並行性の故障が指摘されているはずです。
以下は、Postmanを用いて故障注入ヘッダーを挿入したAddCartLine呼び出しのサンプル結果です。
ヘッダーの生表示:
Content-Type
/jsonShopName:{{ShopName}}
ShopperId:{{ShopperId}}
Language:{{Language}}
Currency:{{Currency}}
Environment:{{Environment}}
IpAddress:{{IpAddress}}
CustomerId:{{CustomerId}}
Roles:{{Roles}}
FaultInjection
Postmanの回答本文は以下の通りです:
"ResponseCode": "Error", "Messages": { "MessageDate": "2016-09-01T12:`12
`.0287079-`05`", "Code": "Error" "Text": "SQL.UpdateEntity.Fail=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" }