User exception trace output

Use a Trace node to produce details of exceptions that occur when user exceptions are generated.

The following example is an extract of the output that might be generated by a Trace node that has the Pattern property set to a value that represents a structure that includes the exception list tree.

The exception shown occurred when a user exception was generated (with the ESQL THROW statement).

ExceptionList = (
  (0x1000000)RecoverableException = (
    (0x3000000)File          = 'F:\build\S000_D\src\DataFlowEngine\ImbComputeNode.cpp'
    (0x3000000)Line          = 402
    (0x3000000)Function      = 'ImbComputeNode::evaluate'
    (0x3000000)Type          = 'ComIbmComputeNode'
    (0x3000000)Name          = 'acd8f35d-e700-0000-0080-b78796c5e70d'
    (0x3000000)Label         = 'esql_13485_check_defect.Compute1'
    (0x3000000)Text          = 'Caught exception and rethrowing'
    (0x3000000)Catalog       = 'WMQIv210'
    (0x3000000)Severity      = 3
    (0x3000000)Number        = 2230
    (0x1000000)UserException = (
      (0x3000000)File     = 'F:\build\S000_D\src\DataFlowEngine\ImbRdl\ImbRdlThrowExceptionStatements.cpp'
      (0x3000000)Line     = 148
      (0x3000000)Function = 'SqlThrowExceptionStatement::execute'
      (0x3000000)Type     = 'ComIbmComputeNode'
      (0x3000000)Name     = 'acd8f35d-e700-0000-0080-b78796c5e70d'
      (0x3000000)Label    = 'esql_13485_check_defect.Compute1'
      (0x3000000)Text     = 'User Generated SQL 'USER' exception'
      (0x3000000)Catalog  = 'WMQIv210'
      (0x3000000)Severity = 1
      (0x3000000)Number   = 2949
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'USER'
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'Insert1'
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'Insert2'
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'etc'
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = ''
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = ''
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = ''
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = ''
      )
      (0x1000000)Insert   = (
        (0x3000000)Type = 5
        (0x3000000)Text = ''
      )
    )
  )
)