Моніторинг транзакцій, my little success story

    У даній статті хочу поділитися прикладом реалізації моніторингу бізнес транзакцій. Міркування поведу на прикладі стенду з банківським додатком, для моніторингу транзакцій буду використовувати продукт компанії Hewlett-Packard — HP Transaction Vision.
 
 

Відразу до справи!

Є банківський додаток, розроблене на платформі j2ee, яке крутиться на сервері додатків IBM WebSphere Application Server версії 8.5, використовує IBM WebSphere MQ і Oracle database.
 
Банківський додаток через веб інтерфейс дозволяє управляти рахунками клієнтів. Ми розглянемо операцію переказу грошей з одного рахунку на інший, далі будемо цю операцію називати транзакція.
 
Транзакція — атомарна послідовність дій, тобто така послідовність, яка виконується цілком або нічого не виконується.
 
Тепер демонструю інтерфейс свого банківського додатки, показую, що відбувається в рамках нашої транзакції з боку користувача:
 
     
  1. авторізуемся;
  2.  
  3. Переходимо в інтерфейс переказу грошових коштів;
  4.  
  5. Вибираємо рахунок списання, рахунок одержувача, вказує суму;
  6.  
  7. Підтверджуємо операцію;
  8.  
  9. Бачимо зміни стану рахунку або повідомлення про помилку операції.
  10.  
Нижче, що бачить користувач:
 
 
 
 
 
 
 

Що відбувається з боку системи:

 
     
  1. Банківська додаток отримує HTTP запит про переведення зазначеної суми з рахунку 1 на рахунок 2;
  2.  
  3. Банківський додаток перенаправляє запит на сервер IBM WebSphere MQ в чергу Q1;
  4.  
  5. Message Driven Bean (MDB) забирає запит з черги Q1;
  6.  
  7. MDB виконує необхідні дії з переведення грошових коштів, в моєму випадку це набір SQL запитів до бази даних Oracle;
  8.  
  9. Про результат переказу грошових коштів MDB повідомляє банківського додатком через чергу Q2, тобто про результати транзакції повідомляється саме в неї;
  10.  
  11. Почитавши повідомлення в черзі Q2, банківський додаток повертає результат транзакції.
  12.  
Нижче ілюстрація описаних подій в прив'язці до інфраструктури:
 
 
Ті ж події, але на діаграмі послідовності:
 
 
 

HP Transaction Vision

Як я і казав, у мене розгорнуть продукт компанії Hewlett Packard — HP Transaction Vision. Опишу тепер те, що виконує HP Transaction Vision:
 
     
  1. Перехоплює HTTP виклики банківського додатка;
  2.  
  3. Перехоплює JMS виклики банківського додатки і MDB;
  4.  
  5. Перехоплює API виклику менеджера черг — IBM WebSphere MQ;
  6.  
  7. Перехоплює JDBC виклики;
  8.  
  9. Перехоплені повідомлення відправляються в єдине місце обробки;
  10.  
  11. Використовуючи правила обробки подій, збирається інформація про виконані транзакції: час, результат, сума і т.д.
  12.  
 
Технічні можливості, способи конфігурування не є предметом обговорення даної статті, якщо і виникають питання по цій темі готовий відповідати.
 
Для наочної демонстрації результатів я проводив три види тестування.
 
     
  1. Всі дані вводяться коректно. В кінці операції банківський додаток повідомляє про успішне виконання транзакції;
  2.  
  3. Навмисне допускаю помилку, вказую суму переказу більше, ніж є на рахунку списання. В кінці операції банківський додаток повідомляє про помилковий виконанні транзакції;
  4.  
  5. Зупиняю додаток MDB, тобто створюю ситуацію, коли запити на виконання транзакції «зависають» у черзі IBM WebSphere MQ — Q1. Потім назад включаю додаток MDB, тим самим збільшую час виконання транзакції.
  6.  
Пропоную запам'ятати всі три види тестування, тому що я буду посилатися на них, при подальшій демонстрації різних варіантів представлення інформації про транзакції. Уточнюю, показую тільки картинки, які нам демонструє продукт HP Transaction Vision.
 
Приклади подій надходять в єдину точку обробки:
 
 
Список виявлених транзакцій:
 
 
Сумарний звіт про виявлені транзакціях:
 
 
Загальна архітектура мого програми, взаємодія між компонентами (HP Transaction Vision і це може):
 
 
До теми HP Transaction Vision додам, що він в змозі повідомити при настанні певних умов виконання транзакції: надто довго, помилковий результат і т.д.
 
 

HP Business Process Insight

Для повноти всієї картини я розгорнув HP Business Process Insight (BPI), якої отримує події про протікання транзакції з HP Transaction Vision. Саме HP BPI дозволяє дізнатися на якій стадії і скільки транзакцій в поточний момент знаходиться + час обробки транзакції на кожному етапі.
 
Ось яку картинку від HP BPI можу показати:
 
 
Всіх кому було цікаво і у кого виникли питання, із задоволенням запрошую до діалогу.
 Реф до попередньої теми
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.