Tuesday, March 13, 2012

Difference between Business Transaction Monitoring and Oracle Enterprise Manager

I was tasked to do a demo, based on Oracle Enterprise Manager Grid Control 11g and the SOA Management Pack EE.

The usual question everybody ask at first, is 'What is the difference between OEM GC and BTM ?'.

Firstly, OEM GC is the front-end for all the different components in the Oracle Technology stack, similar to the management consoles you get with the different products (FMW Enterprise Manager, DB Management Console etc), but centralised in one single front-end.

Secondly, the OEM framework is free to use, that is if you don't enable any management packs, which is controlled through configuration, thus enabling you to manage and interact with all your Oracle products through a single instance.

Business Transaction Management, on the other hand is part of the SOA Management Pack EE. At the moment it is a standalone product not integrated with OEM. The product itself was acquired from Amberpoint and as such duplicates some of the functionality of OEM.
BTM breaks down the components into monitored objects, which could be a Java method call, servlet (JSP,ADF etc), Service Bus Service (Proxy and Business), BPEL Process, Web Services, JMS, EJB and others. BTM tries to correlate these objects into a transactional flow where possible and the result is a transactional flow across the components.

A user has the capability to define the relationships, if not already automatically discovered, based on contents of the actual transaction, for example order id in an XML payload of a webservice call, with a BPEL process who interact on the same order id. Another option to correlate different objects is to use the 'fingerprint' option, where a fingerprint is injected into the called object during runtime. This definition is exposed as a transaction.

An example of a transaction might be a user loggin into a customer facing application updating his personal information. A database adapter picks up the change and fires a BPEL process to propogate the change to other systems. In normal circumstances, to track this type of transaction would require a lot of custom logging and correlation of the log entries into a transaction.

BTM captures the information flowing through the different configured objects, and correlate the transactional information into the defined transactions. These transactions can then be investigated/reacted on, on an instance level, either through the front-end, or by implementing policies.

These policies on the objects can define security, service level agreements, logging mechanisms and also alerts or typical fix-it jobs.

So in summary, OEM gives you the overview of the different components and the capability to manage the components, where BTM gives you the capability to follow a transaction (or process) through the technology stack with a breakdown  of each step, across multiple technologies.

UPDATE: In Cloud Control 12c R2, it is now possible to monitor BTM created transactions as part of a Business System. From within Cloud Control it is also possible to drill through to BTM.

No comments: