フォールト注入

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

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

フォールトインジェクションは、複雑な分散ソリューションにおける失敗をテストするために、意図的にサービスの失敗を引き起こす機能を提供します。Sitecore XCは単一のフォールトインジェクションパターンを持ち、コマースエンティティの永続性における並行フォールトをカバーします。

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

定義された並行フォールトを注入するために:

  1. Sitecore.Commerce.EngineプロジェクトにはSitecore.Commerce.Plugin.FaultInjectionへの言及が含まれていることを確認してください。
  2. APIリクエストで、 FaultInjectionという名前のヘッダーを追加します。
  3. 前のステップで追加したヘッダーに値 ConcurrencyFault を割り当てます。
  4. Commerce Entityに永続するAPIメソッドを呼び出します。

この時点で並行性の故障が指摘されているはずです。

以下は、Postmanを用いて故障注入ヘッダーを挿入したAddCartLine呼び出しのサンプル結果です。

ヘッダーの生表示:

Content-Type

/json

ShopName:{{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"  }

この記事を改善するための提案がある場合は、 お知らせください!