POJOメソッド呼び出しによる分割

以下の場合、トランザクションの名付けにJavaメソッドを使用すると便利です。

  • 明確なURIパターンがない場合
  • サポートされていないXML/JSONフレームワークを使用する場合

たとえば、processOrder() doPost() http://acmeonline.com/store について考えてみます。

public void doPost(HttpServletRequest req, HttpServletResponse resp) {
//process the data from the sevlet request and get the orderType and the items
processOrder(orderType,item)
...
}
public void processOrder(String orderType,String item) {
//process order
}

メソッドの最初のパラメータ を使用してトランザクションの名前を付けることにします。

  1. カスタムマッチルールの [Rule Configuration] タブで、[Split Transactions using the XML/JSON payload or Java method invocation] をオンにします。
  2. 分割メカニズムとして、[POJO Method Call] を選択します。
  3. メソッドに [processOrder] を選択し、パラメータの数値位置(0 インデックス)でパラメータを指定します。次のスクリーンショットは、すべての適格なリクエストに Store.order.creditcard トランザクションの名前を付けるカスタム一致ルールの設定を示しています。
このパラメータの他に、戻りタイプまたはオブジェクトの再帰的な getter チェーンのいずれかを指定してトランザクションに名前を付けることもできます。たとえば、メソッドパラメータがPurchaseOrderのような複雑なオブジェクトを指している場合、getOrderDetails().getType()などを使用してトランザクションを適切に名付けることができます。