Transaction Monitoring, my little success story

    In this article I want to share an example of the implementation of monitoring business transactions. I’ll use the example of a stand with a banking application. I will use Hewlett-Packard's HP Transaction Vision product to monitor transactions.

    Go straight to the point!


    There is a banking application developed on the j2ee platform that runs on the IBM WebSphere Application Server version 8.5 application server, uses IBM WebSphere MQ and Oracle database.

    The banking application through the web interface allows you to manage customer accounts. We will consider the operation of transferring money from one account to another, hereinafter we will call this operation a transaction.

    A transaction is an atomic sequence of actions, i.e. a sequence that is executed in its entirety or nothing is executed.

    Now I’m demonstrating the interface of my banking application, showing what is happening as part of our transaction on the part of the user:
    1. Log in;
    2. Go to the money transfer interface;
    3. We select the debiting account, the beneficiary's account, indicates the amount;
    4. Confirm the operation;
    5. We see changes in the status of the account or an error message about the operation.

    Below what the user sees:






    What happens on the system side:


    1. The banking application receives an HTTP request to transfer the specified amount from account 1 to account 2;
    2. The banking application redirects the request to the IBM WebSphere MQ server to Q1;
    3. Message Driven Bean (MDB) picks up the request from Q1;
    4. MDB performs the necessary steps to transfer funds, in my case it is a set of SQL queries to the Oracle database;
    5. MDB informs the banking application about the result of the transfer of funds through the Q2 queue, i.e. the results of the transaction are reported in it;
    6. After reading the message in the Q2 queue, the banking application returns the result of the transaction.

    Below is an illustration of the described events in relation to the infrastructure:


    The same events, but in the sequence diagram:


    HP Transaction Vision


    As I said, I have deployed a HP Transaction Vision product from Hewlett Packard. I will now describe what HP Transaction Vision does:
    1. Intercepts HTTP calls of a banking application;
    2. Intercepts JMS banking application calls and MDB;
    3. Intercepts the queue manager call API - IBM WebSphere MQ;
    4. Intercepts JDBC calls;
    5. Intercepted messages are sent to a single processing location;
    6. Using the rules for processing events, information about completed transactions is collected: time, result, amount, etc.


    Technical capabilities, configuration methods are not the subject of discussion in this article, if you have questions about this topic, I am ready to answer.

    To demonstrate the results, I conducted three types of testing.
    1. All data is entered correctly. At the end of the transaction, the banking application reports the successful completion of the transaction;
    2. I deliberately make a mistake, I indicate the amount of the transfer more than there is on the write-off account. At the end of the transaction, the banking application reports an erroneous transaction;
    3. I stop the MDB application, i.e. I create a situation where requests for transaction execution “hang” in the IBM WebSphere MQ-Q1 queue. Then I turn on the MDB application back, thereby increasing the transaction time.

    I suggest remembering all three types of testing, as I will refer to them in a further demonstration of the various options for presenting transaction information. I clarify, show only the pictures that the HP Transaction Vision product demonstrates to us.

    Examples of events arriving at a single processing point:


    List of detected transactions:


    Summary report of detected transactions:


    General architecture of my application, interaction between components (HP Transaction Vision and this can): I


    ’ll add to the topic of HP Transaction Vision that it is able to notify when certain transaction conditions: too long, erroneous result, etc.

    HP Business Process Insight


    For completeness, I deployed HP Business Process Insight (BPI), which receives transactional events from HP Transaction Vision. It is HP BPI that allows you to find out at what stage and how many transactions are currently located + transaction processing time at each stage.

    Here is a picture from HP BPI I can show:


    Everyone who was interested and who had questions, I am pleased to invite you to a dialogue.
    Ref to the previous topic

    Also popular now: