Business objects in events

Service components under certain circumstances process business objects, and monitoring can be configured to capture the business object data in service component events. The business object data is encoded in XML elements, but these are converted to binary format before it is passed to the event. The data is encapsulated in the event in an extended data element, and stored in hexadecimal format.

You specify the level of business object detail that will be captured in service component events. This level of detail affects only the amount of business object code that will be passed to the event; all of the other Common Base Event elements (both standard and event-specific) will be published to the event. The names of the detail levels applicable to service component events differ depending on whether you created a static monitor using WebSphere® Integration Developer, or a dynamic monitor on the administrative console, but they correspond as shown in the table below:

Administrative console detail level Common Base Event/WebSphere Integration Developer detail level Payload information published
FINE EMPTY None.
FINER DIGEST Payload description only.
FINEST FULL All of the payload.

The detail level is included in the event in an extended data element named PayloadType, and uses the Common Base Event names detailed above. The business object data itself is also included in the Common Base Event under an extended data element group with the name of the event extended data element appended by "_BO." For example, if the business rule component fires an event with a nature of EXIT (WBI.BR.EXIT), the business object code is passed to an extended data element named result. Consequently, an extended data element named result_BO will be created in the event, which will then spawn child elements that will contain the actual business object data. The extended data element tree that is created for the business object code depends on the level of payload detail you specified for the monitor, as shown in this table:

Extended data element name Type
FULL/FINEST
<element_name>_BO N/A
<element_name>_BO/TNS String
<element_name>_BO/TYPE String
<element_name>_BO/Raw Data HexBinary
DIGEST/FINER
<element_name>_BO N/A
<element_name>_BO/TNS String
<element_name>_BO/TYPE String
<element_name>_BO/Verb (business object wrapped by a business graph only) String
<element_name>_BO/Properties (business object wrapped by a business graph only) HexBinary
EMPTY/FINE
<element_name>_BO N/A
<element_name>_BO/TNS String
<element_name>_BO/TYPE String
<element_name>_BO/Verb (business object wrapped by a business graph only) String

The actual business object data is included in the event only if the monitor is set to record FULL/FINEST detail. The data is first serialized to XML format, but is then passed to the event named Raw Data in hexBinary format. An encoder/decoder is included with the process server to convert the serialized XML business object data to hexBinary, and back to XML, but the hexBinary format is what is actually stored in the event. If you are publishing the event output to the logger, then you will see the hexBinary output when you view the log files. If the event is published to the CEI server, then you can see the original XML format by using the Common Base Event browser to view the event.

This is a business object captured from a service component monitor, after the data was serialized to XML format by WebSphere Process Server:
<?xml version="1.0" encoding="UTF-8"?>
<mon:MonitorWrapper xsi:type="claim:Claim1BG" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:claim="http://Claim_Module" 
  xmlns:mon="http://www.ibm.com/xmlns/prod/websphere/monitoring/6.0.0/mon">
  <Claim1>
    <employeeCode>ibm</employeeCode>
    <policyNumber>123</policyNumber>
    <situation>1</situation>
  </Claim1>
</mon:MonitorWrapper>

The data is first converted to hexBinary, and then passed to the event in an extended data element named Raw Data. The entire extended data element tree containing the encapsulated business object, including the TNS and TYPE elements, will be passed to the event as follows:

<extendedDataElements name="Claim1BG_BO" type="no value">
     <children name="TNS" type="string">
       <values>http://Claim_Module</values>
     </children>
     <children name="TYPE" type="string">
       <values>Claim1BG</values>
     </children>
     <children name="Raw Data" type="hexBinary">
       <hexValue>3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E6
       73D225554462D38223F3E0D0A3C6D6F6E3A4D6F6E69746F725772617070657220
       7873693A747970653D22636C61696D3A436C61696D3142472220786D6C6E733A7
       873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C5363
       68656D612D696E7374616E63652220786D6C6E733A636C61696D3D22687474703
       A2F2F436C61696D5F4D6F64756C652220786D6C6E733A6D6F6E3D22687474703A
       2F2F7777772E69626D2E636F6D2F786D6C6E732F70726F642F776562737068657
       2652F6D6F6E69746F72696E672F362E302E302F6D6F6E223E0D0A20203C436C61
       696D313E0D0A202020203C656D706C6F796565436F64653EE0B982E0B89BE0B8A
       3E0B981E0B881E0B8A3E0B8A1E0B897E0B8B5E0B988E0B88AE0B988E0B8A7E0B8
       A23C2F656D706C6F796565436F64653E0D0A202020203C706F6C6963794E756D6
       265723E3132333C2F706F6C6963794E756D6265723E0D0A202020203C73697475
       6174696F6E3E313C2F736974756174696F6E3E0D0A20203C2F436C61696D313E0
       D0A3C2F6D6F6E3A4D6F6E69746F72577261707065723E0D0A
       </hexValue>
     </children>
</extendedDataElements>

(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)