Package com.xceptance.xlt.api.engine

# Class TransactionData

java.lang.Object
com.xceptance.xlt.api.engine.AbstractData
com.xceptance.xlt.api.engine.TimerData
com.xceptance.xlt.api.engine.TransactionData

All Implemented Interfaces:
  `Data`

public class TransactionData extends TimerData

The `TransactionData` class holds any data measured for a transaction. Typically, a transaction spans exactly one execution of a certain test case, which itself comprises one or more actions.

The values stored include not only the transaction's start and run time, but also an indicator whether or not the transaction was executed successfully and, if it has failed, what was the cause. Data gathered for the same type of transaction may be correlated via the name attribute.

Note that `TransactionData` objects have a "T" as their type code.

See Also:
  - `ActionData`
  - `RequestData`
  - `CustomData`
  - `EventData`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TransactionData()`
  Creates a new TransactionData object.
  `TransactionData(String name)`
  Creates a new TransactionData object and gives it the specified name.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDirectoryName()`
  Returns the name of the directory where the result browser for this transaction is stored.
  `String`
  `getDumpDirectoryPath()`
  Returns the path to the directory where dumped pages can be found if this transaction failed.
  `String`
  `getFailedActionName()`
  Returns the name of the action that caused the transaction to fail.
  `String`
  `getFailureMessage()`
  Returns the message of the throwable that caused this transaction to fail.
  `String`
  `getFailureStackTrace()`
  Returns the stack trace of the throwable that caused this transaction to fail.
  `String`
  `getTestUserNumber()`
  Returns the number (or index, [0..N]) of the test user that produced this transaction data.
  `void`
  `setDirectoryName(String directoryName)`
  Sets the name of the directory where the result browser for this transaction is stored.
  `void`
  `setFailedActionName(String actionName)`
  Sets the name of the action that caused the transaction to fail.
  `void`
  `setFailureStackTrace(String trace)`
  Sets the stack trace of the throwable that caused this transaction to fail.
  `void`
  `setFailureStackTrace(Throwable throwable)`
  Sets the stack trace attribute retrieved from the given throwable.
  `void`
  `setRemainingValues(List<XltCharBuffer> values)`
  Called by XLT during report creation to recreate the remaining object state from the passed string list.
  `void`
  `setTestUserNumber(String testUserNumber)`
  Sets the number (or index, [0..N]) of the test user that produced this transaction data.
  `List<String>`
  `toList()`
  Called by XLT during a load test to return the full state of the object as a list of strings.

  ### Methods inherited from class com.xceptance.xlt.api.engine.TimerData

  `getEndTime, getRunTime, hasFailed, setFailed, setRunTime, setRunTime`

  ### Methods inherited from class com.xceptance.xlt.api.engine.AbstractData

  `getAgentName, getName, getTime, getTransactionName, getTypeCode, setAgentName, setAllValues, setBaseValues, setName, setTime, setTransactionName`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TransactionData

    public TransactionData()
    Creates a new TransactionData object.

  - ### TransactionData

    public TransactionData(String name)
    Creates a new TransactionData object and gives it the specified name. Furthermore, the time attribute is set to the current time.
    Parameters:
      `name` - the transaction name

- ## Method Details

  - ### getDirectoryName

    public String getDirectoryName()
    Returns the name of the directory where the result browser for this transaction is stored.
    Returns:
      the directory name

  - ### setDirectoryName

    public void setDirectoryName(String directoryName)
    Sets the name of the directory where the result browser for this transaction is stored.
    Parameters:
      `directoryName` - the directory name

  - ### getTestUserNumber

    public String getTestUserNumber()
    Returns the number (or index, [0..N]) of the test user that produced this transaction data.
    Returns:
      the test user number as a string

  - ### setTestUserNumber

    public void setTestUserNumber(String testUserNumber)
    Sets the number (or index, [0..N]) of the test user that produced this transaction data.
    Parameters:
      `testUserNumber` - the test user number as a string

  - ### getFailedActionName

    public String getFailedActionName()
    Returns the name of the action that caused the transaction to fail. Will be empty if the transaction was successful or the transaction failed outside of an action.
    Returns:
      the action name

  - ### setFailedActionName

    public void setFailedActionName(String actionName)
    Sets the name of the action that caused the transaction to fail.
    Parameters:
      `actionName` - the action name

  - ### getDumpDirectoryPath

    public String getDumpDirectoryPath()
    Returns the path to the directory where dumped pages can be found if this transaction failed. The path is meant to be relative to the results directory of the respective load test. Typically, it looks like "ac1/TAuthor/1/output/1216803080255".
    Returns:
      the dump directory path, or `null` if this transaction did not fail or no directory information was available

  - ### getFailureMessage

    public String getFailureMessage()
    Returns the message of the throwable that caused this transaction to fail.
    Returns:
      the message (may be null)

  - ### getFailureStackTrace

    public String getFailureStackTrace()
    Returns the stack trace of the throwable that caused this transaction to fail.
    Returns:
      the trace (may be null)

  - ### setFailureStackTrace

    public void setFailureStackTrace(String trace)
    Sets the stack trace of the throwable that caused this transaction to fail.
    Parameters:
      `trace` - the trace

  - ### setFailureStackTrace

    public void setFailureStackTrace(Throwable throwable)
    Sets the stack trace attribute retrieved from the given throwable.
    Parameters:
      `throwable` - the throwable

  - ### toList

    public List<String> toList()
    Called by XLT during a load test to return the full state of the object as a list of strings. The first three entries have to be, in this order, the type code, the name, and the timestamp. All remaining entries and their order are specific to the concrete implementation class.

    Override this method in sub classes by calling the super method and adding custom values to the list it returns.

    Specified by:
      `toList` in interface `Data`
    Overrides:
      `toList` in class `TimerData`
    Returns:
      the list of values that form the state of this object
    See Also:
      - `Data.setBaseValues(List)`
      - `Data.setRemainingValues(List)`

  - ### setRemainingValues

    public void setRemainingValues(List<XltCharBuffer> values)
    Called by XLT during report creation to recreate the remaining object state from the passed string list. The base values have already been initialized by calling `Data.setBaseValues(List)` with the same list of values. Splitting the process of recreating the full object state into two methods is purely for performance reasons as the second step is not always needed.
    Specified by:
      `setRemainingValues` in interface `Data`
    Overrides:
      `setRemainingValues` in class `TimerData`
    Parameters:
      `values` - the string list to recreate the object state from
    See Also:
      - `Data.setBaseValues(List)`
      - `Data.toList()`