KR101828156B1 - 트랜잭션 모니터링 시스템 및 그 동작방법 - Google Patents

트랜잭션 모니터링 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR101828156B1
KR101828156B1 KR1020160078864A KR20160078864A KR101828156B1 KR 101828156 B1 KR101828156 B1 KR 101828156B1 KR 1020160078864 A KR1020160078864 A KR 1020160078864A KR 20160078864 A KR20160078864 A KR 20160078864A KR 101828156 B1 KR101828156 B1 KR 101828156B1
Authority
KR
South Korea
Prior art keywords
transaction
dump
stack
profile
stack dump
Prior art date
Application number
KR1020160078864A
Other languages
English (en)
Other versions
KR20180000614A (ko
Inventor
김성조
Original Assignee
주식회사 와탭랩스
김성조
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 와탭랩스, 김성조 filed Critical 주식회사 와탭랩스
Priority to KR1020160078864A priority Critical patent/KR101828156B1/ko
Publication of KR20180000614A publication Critical patent/KR20180000614A/ko
Application granted granted Critical
Publication of KR101828156B1 publication Critical patent/KR101828156B1/ko

Links

Images

Classifications

    • G06F17/30144
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • G06F17/30227

Abstract

본 발명은 트랜잭션 모니터링 시스템 및 그 동작방법에 관한 것으로, 트랜잭션 수행 중, 정기적으로 자바 스택을 덤프하여 생성되는 스택덤프를 누적하여 저장하고, 누적된 스택덤프를 이용하여 트랜잭션 프로파일을 생성함으로써, 스택덤프를 통해 트랜잭션 수행 중 수행되는 쓰레드를 분석할 수 있고, 그에 따라 트랜잭션 중의 동작을 확인하고, 동작 중 발생되는 지연 또는 에러의 원인을 용이하게 확인할 수 있으며, 트랜잭션 프로파일을 통해 그 원인을 분석함으로 웹 어플리케이션 서버의 트랜잭션 처리과정을 개선할 수 있는 효과가 있다.

Description

트랜잭션 모니터링 시스템 및 그 동작방법{Transaction Monitoring System and Operating method thereof}
본 발명은 트랜잭션 모니터링 시스템 및 그 동작방법에 관한 것으로, 사용자의 터리 요청에 의해 발생하는 트랜잭션에 대하여 트랜잭션을 추적하고 모니터링하는 시스템 및 그 동작방법에 관한 것이다.
클라이언트(또는 사용자)로부터 어떤 서비스를 처리해달라는 요청을 받아 서비스를 처리하는 서버인, WAS(Web Application Server)는 웹 어플리케이션을 수행할 수 있는 환경을 제공해주는 서버로서 대부분 자바(JAVA) 기반으로 구현된다. 웹 어플리케이션은 웹에서 어떤 목적을 처리하기 위해 만들어진 프로그램을 말한다.
예를 들어 사용자가 웹에 접속하여 웹페이지에 마우스를 클릭하는 등 요청을 명령하면, 그에 대한 응답으로 열람하던 웹페이지가 갱신되거나 다른 웹페이지로 이동하는 등의 작업이 처리되는 것이 하나의 트랜잭션이다.
이러한 웹 어플리케이션 서버(WAS)은 서버로서 다수의 클라이언트의 요청에 대하여 적절히 서비스가 되고 있는지 실시간으로 모니터링이 되고, 분석을 위해 모니터링 자료가 기록되고 축적된다.
WAS는 하나의 트랜잭션 단위로 서비스를 처리하기 때문에, 트랜잭션을 중심으로 모니터링이 되고 분석된다.
이때, WAS에 의해 처리되는 트랜잭션 중, 일정시간 이상 많은 시간이 소요되거나 에러가 발생하는 트랜잭션이 존재하는 경우, 트랜잭션을 분석하여 어플리케이션 서버의 문제점을 개선할 수 있다.
종래에는 트랜잭션을 분석하기 위해서는 트랜잭션에 대한 프로파일을 통해 각 동작을 추적하는 추적코드를 포함시키는 다이나믹 프로파일링(Dynamic Profiling) 등을 수행하였으나, 트랜잭션 내에서 어떠한 동작이 수행되는지 알아야 추적이 가능하다는 문제점이 있었다.
또한, 트랜잭션 내의 동작과 동작 사이에서 지연이나 에러가 발행하는 경우에는 그 원인을 쉽게 확인하기 어렵다는 문제점이 있다.
따라서 보다 용이하게 트랜잭션의 수행에 따른 동작을 분석하고 이상을 감지하는 방안이 모색되어야 한다.
대한민국 등록특허 제10-0920414호 (2009.09.29. 등록)
본 발명은 트랜잭션 모니터링 시스템 및 그 동작방법에 관한 것으로, 실행되는 트랜잭션에 대하여 정기적으로 스택을 덤프하고, 생성되는 스택덤프를 통해 트랜잭션을 모니터링하고 이상을 감지하는 트랜잭션 모니터링 시스템 및 그 동작방법을 제공하는데 그 목적이 있다.
본 발명에 따른 트랜잭션 모니터링 시스템은, 네트워크로 연결되는 단말로부터 입력되는 서비스요청에 대응하여, 트랜잭션을 처리하는 웹 어플리케이션 서버에 연결되는 트랜잭션 모니터링 서비스에 있어서, 상기 트랜잭션 처리 중, 상기 트랜잭션을 처리하는 쓰레드에 덤프명령을 전송하여 스택덤프를 생성하는 스택덤프실행부; 상기 트랜잭션의 기본정보에 상기 스택덤프의 정보를 추가하여 트랜잭션 프로파일을 생성하는 프로파일생성부; 및 상기 트랜잭션 분석을 위한 상기 트랜잭션 프로파일을 출력하는 출력부를 포함한다.
또한, 상기 스택덤프가 저장되는 스택덤프저장부; 및 상기 트랜잭션 프로파일이 저장되는 트랜잭션프로파일저장부로 구성되어 상기 트랜잭션에 대한 데이터를 저장하는 데이터베이스를 더 포함할 수 있다.
또한, 상기 스택덤프실행부는 상기 트랜잭션이 시작되면, 일정시간 간격으로 상기 덤프명령을 반복하여 전송하여 상기 스택덤프가 누적 저장되도록 할 수 있다.
또한, 상기 스택덤프실행부는, 상기 덤프명령을 전송하여 상기 쓰레드가 상기 트랜잭션을 처리하는 도중 생성되는 스택을 덤프할 수 있다.
또한, 상기 프로파일생성부는 상기 트랜잭션의 시작 및 종료, 그리고 서비스 처리를 위한 적어도 하나의 컴포넌트에 대한 기본정보에, 상기 트랜잭션의 동작 중간에 생성된 상기 스택덤프의 정보를 추가하여 상기 트랜잭션 프로파일을 생성할 수 있다.
또한, 상기 프로파일생성부는 시간순서에 따라, 상기 기본정보와 상기 트랜잭션의 동작 중간에 생성된 상기 스택덤프의 정보를 추가하여 상기 트랜잭션 프로파일을 생성할 수 있다.
또한, 상기 프로파일생성부는 상기 트랜잭션 프로파일에 추가되는 상기 스택덤프의 정보에 대하여, 상기 스택덤프저장부에 저장된 스택덤프데이터와 매칭되도록 일련번호를 설정할 수 있다.
또한, 상기 데이터베이스에 상기 트랜잭션에 대한 기본정보를 저장하고, 데이터 입출력을 제어하는 메인프로세서를 더 포함하고, 상기 트랜잭션 프로파일에 포함된 어느 하나의 스택덤프정보가 선택되면, 상기 스택덤프정보의 일련번호에 매칭되는 스택덤프데이터를 상기 스택덤프저장부로부터 호출하여 상기 출력부를 통해 출력할 수 있다.
한편, 본 발명에 따른 트랜잭션 모니터링 시스템의 동작방법은, 사용자의 서비스 요청에 따라 웹 어플리케이션 서버에서 트랜잭션이 처리되면, 상기 트랜잭션에 대한 정보를 수집하는 단계; 상기 트랜잭션 처리 중, 상기 트랜잭션을 처리하는 쓰레드로 덤프명령을 전송하여 스택덤프를 생성하는 단계; 상기 트랜잭션에 대한 정보에 상기 스택덤프를 추가하여 트랜잭션 프로파일을 생성하는 단계; 및 상기 트랜잭션 분석을 위해 상기 트랜잭션 프로파일을 출력하는 단계를 포함한다.
또한, 상기 트랜잭션이 시작되어 종료되기 까지, 일정시간 간격으로 상기 덤프명령을 반복하여 전송하는 단계; 및 상기 스택덤프를 누적 저장하는 단계를 더 포함할 수 있다.
또한, 상기 스택덤프는, 상기 쓰레드가 상기 트랜잭션을 처리하는 도중 생성되는 스택을 덤프하여 생성되고, 스택덤프저장부에 별도로 누적 저장될 수 있다.
또한, 상기 트랜잭션에 대한 정보를 수집하는 단계는, 상기 트랜잭션의 시작, 상기 서비스를 처리하기 위한 적어도 하나의 컴포넌트에 대한 정보 및 상기 트랜잭션의 종료에 대한 기본정보를 수집하여 저장할 수 있다.
또한, 상기 트랜잭션 프로파일 생성단계는; 스택덤프데이터에 매칭되는 일련번호를 상기 스택덤프의 정보에 설정하는 단계를 더 포함할 수 있다.
또한, 상기 트랜잭션 프로파일에 포함된 스택덤프 중 어느 하나가 선택되면, 상기 스택덤프의 일련번호에 매칭되는 상기 스택덤프데이터를 호출하는 단계; 및 상기 스택덤프데이터를 바탕으로 상기 스택덤프에 대한 상세데이터를 출력하는 단계를 더 포함할 수 있다.
상기와 같이 구성되는 본 발명에 따른 트랜잭션 모니터링 시스템의 및 그 동작방법에 따르면, 트랜잭션 수행 중, 정기적으로 자바 스택을 덤프하여 생성되는 스택덤프를 누적하여 저장하고, 누적된 스택덤프를 통해 트랜잭션 수행 중 수행되는 쓰레드를 분석함에 따라 트랜잭션 중의 동작을 확인하고, 동작 중 지연 또는 에러의 원인을 용이하게 확인할 수 있으며, 다이나믹 프로파일링을 수행하지 않고도 간편하게 트랜잭션을 분석할 수 있는 효과가 있다.
도 1 은 본 발명에 따른 트랜잭션 모니터링 시스템 및 트랜잭션 실행에 따른 시스템이 간략하게 도시된 구성도이다.
도 2 는 본 발명에 따른 트랜잭션 모니터링 시스템의 구성이 도시된 블록도이다.
도 3 은 본 발명의 트랜잭션의 처리 과정을 설명하는데 참조되는 도이다.
도 4 는 본 발명에 따른 트랜잭션 처리에 따른 트랜잭션 프로파일을 설명하는데 참조되는 도이다.
도 5 는 본 발명에 따른 스택 덤프를 포함하는 트랜잭션 프로파일을 설명하는데 참조되는 도이다.
도 6 은 본 발명에 따른 트랜잭션 모니터링 방법을 설명하는데 참조되는 도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하에서는 도면을 참조하여 본 발명의 실시 예에 대해서 구체적으로 설명하기로 한다.
도 1 은 본 발명에 따른 트랜잭션 모니터링 시스템 및 트랜잭션 실행에 따른 시스템이 간략하게 도시된 구성도이다.
도 1에 도시된 바와 같이, 네트워크(8)를 통해 연결되는 복수의 단말(2)(3)은, 사용자(1)의 서비스 요청(4)에 따라 네트워크(8)에 연결된 서버(5)에 접속하여 서비스 요청을 전달하고, 서버(5)로부터 그에 대한 응답을 수신하여 화면에 표시한다.
이때, 서버(5)는 사용자(1)의 서비스 요청(4)에 대응하여, 어플리케이션을 수행할 필요가 있을 경우, 웹 어플리케이션 서버(WAS)(6)에 요청된 서비스에 대한 트랜잭션 처리를 요청한다.
본 발명의 트랜잭션 모니터링 서버(7)는 웹 어플리케이션 서버(6)의 트랜잭션을 모니터링하여 분석한다. 트랜잭션 모니터링 서버(7)는 트랜잭션에 대한 데이터를 저장하는 데이터베이스(DB)를 포함한다.
서버(5)는 HTML 문서나 이미지 등 HTTL 프로토콜을 이용하여 콘텐츠를 사용자(1) 단말(2)(3)의 웹브라우저 또는 어플리케이션에 제공하고, 웹 어플리케이션 서버(WAS)(6)는 서버 단에서 어플리케이션을 동작할 수 있는 서버로서 기능을 한다.
서버(5)와 웹 어플리케이션 서버(WAS)(6)는 하나의 시스템으로 구현될 수도 있고, 별도의 서버로서 독립되어 구현될 수 있으며, 또한, 웹 어플리케이션 서버(6)는 서비스에 따라 세분화 되어 복수의 서버로 구현될 수 있다. 웹 어플리케이션 서버(WAS)(6)는 객체지향 프로그래밍을 기본 개념으로 하는 자바 프로그램으로 구축되며, 표준화된 규격에 의하여 JVM이 설치된 곳이면 어느 곳이나 실행될 수 있다.
웹 어플리케이션 서버(6)에서, 프로그램 단위모듈들은 하나의 메소드로 구현되고, 메소드들은 클래스로 모아져 개체(object)로서 다루어진다. 따라서 이하에서 프로그램 단위모듈은 하나의 클래스 또는 하나의 메소드를 의미하고, 반대로 하나의 클래스 또는 메소드는 프로그램 단위모듈을 지칭한다.
사용자(1)의 서비스 요청(4)에 따른 특정 서비스를 웹 상에서 처리하는 자바 어플리케이션은 통상 URL로 표기되며, URL 등으로 표기되는 자바 어플리케이션을 자바 서비스라고 부르기로 하고, 그 이름을 자바 서비스명이라고 하기로 한다. 자바 서비스는 상기와 같은 URL 이름을 가지는 자바 어플리케이션 외에도 이를 지원하기 위한 데몬 등의 어플리케이션들도 포함하는 포괄적인 의미로 사용될 수 있다. 즉, 자바 서비스는 특정한 목적을 수행하기 위하여 자바 클래스로 구성하여 만들어진 하나의 자바 프로그램으로 볼 수 있다.
트랜잭션은 하나의 사용자 요구사항을 처리하기 위한 전체 프로세스를 의미하는 것이므로, 하나의 트랜잭션은 하나 이상의 자바 서비스를 이용하여 처리될 수도 있다. 한편, 자바에서 연속되어 처리되는 하나의 프로세스 제어를 쓰레드(Thread)라 부르기도 한다.
웹 어플리케이션 서버(6)는 서비스 요청에 따라, 자바 서비스를 수행할 때, 다수의 쓰레드(Thread)를 생성시켜 동시에 여러 작업을 수행함으로써 목적하는 서비스를 처리한다.
트랜잭션 모니터링 서버(7)는 웹 어플리케이션 서버(6)에서 수행되는 트랜잭션에 대한 프로파일링 기록을 쓰레드(Tread) 단위로도 기록하여 트랜잭션에 대한 프로파일을 생성한다.
트랜잭션 모니터링 서버(7)는 트랜잭션 수행 중, 일정 시간 단위로, 주기적으로 트랜잭션에 대한 자바 스택을 덤프하여, 트랜잭션 수행 중 실행되는 쓰레드에 대한 스택덤프를 생성하고, 저장하여 트랜잭션에 대한 프로파일을 생성한다.
여기서, 덤프(dump)란, 저장장치의 내용을 파일 등으로 추출 또는 출력하는 것으로, 쓰레드에 의해 생성되는 트랜잭션에 대한 데이터가 스택에 저장되는데, 덤프명령을 통해 스택에 저장된 데이터를 덤프 함으로써 트랜잭션 모니터링 서버(7)에 일정시간 간격으로 저장됨에 따라, 트랜잭션을 처리하는 과정에서 생성되는 데이터를 일정시간 간격으로 확인하여 동작지연 등의 원인을 분석할 수 있다.
이때 트랜잭션 모니터링 서버(7)는 웹 어플리케이션 서버(6)와 별도로 구비되는 것으로 도시하였으나, 웹 어플리케이션 서버(6) 내에 구출될 수 있음을 명시한다.
또한, 트랜잭션 모니터링 서버(7)는 웹 어플리케이션 서버(6)를 모니터링하는 것을 예로 하여 설명하나, 웹 어플리케이션 서버 외에도, 별도의 독립적인 장치의 자바 어플리케이션 실행 또는 자바 프로세스를 모니터링할 수 있다.
도 2 는 본 발명에 따른 트랜잭션 모니터링 시스템의 구성이 도시된 블록도이다.
트랜잭션 모니터링 서버(7)는 메인프로세서(110), 스택덤프실행부(120), 프로파일생성부(130), 데이터베이스(140), 및 출력부(150)를 포함한다.
스택덤프실행부(120)는 웹 어플리케이션 서버(6)의 트랜잭션 실행 중, 동작되는 쓰레드에 대한 스택을 덤프한다. 스택덤프실행부(120)는 덤프된 스택을 데이터베이스(140)의 스택덤프저장부(141)에 별도 저장되도록 한다.
웹 어플리케이션 서버(6)에서는, 하나의 쓰레드에서 트랜잭션을 처리하는데, 쓰레드에 의해 트랜잭션이 처리되는 중에 일정시간 간격으로 스택이 생성된다.
이때, 스택덤프실행부(120)는 트랜잭션 수행 중, 쓰레드에 의해 생성되는 스택에 대하여 정기적으로 덤프를 수행하여 그에 대한 데이터를 저장한다.
스택덤프실행부(120)는 트랜잭션을 수행하는 쓰레드에 대하여, 트랜잭션을 수행하는 쓰레드와는 별도인 타임쓰레드에서 일정시간 간격으로, 덤프명령(메소드)를 호출함으로써 스택에 대한 덤프를 생성한다.
덤프된 스택은, 데이터베이스(140)의 스택덤프저장부(141)에 누적하여 저장된다.
프로파일생성부(130)는 트랜잭션에서 수행 중 실행되는 동작에 대한 흐름을 나타내는 프로파일을 생성한다.
프로파일생성부(130)는 트랜잭션 수행 중, 실행되는 컴포넌트에 대한 정보 및 실행시간에 대한 정보를 저장하고, 또한, 스택덤프실행부(120)에 의해 저장되는 스택덤프를 시간순서에 따라 컴포넌트정보와 함께 트랜잭션 프로파일을 생성한다. 생성된 트랜잭션 프로파일은 데이터베이스(140)의 트랜잭션프로파일저장부(142)에 저장된다.
프로파일생성부(130)는 트랜잭션에 따른 컴포넌트의 실행정보뿐 아니라, 시간에 따른 스택덤프를 추가하여 트랜잭션 프로파일을 생성함으로써, 컴포넌트와 컴포넌트가 실행되는 사이에 어떤 동작이 실행되는지 확인할 수 있도록 한다.
이때 프로파일생성부(130)는 트랜잭션 프로파일에 추가되는 스택덤프에 일련번호를 설정하여, 일련번호 선택 시, 데이터베이스(140)의 스택덤프저장부(141)에 저장된 데이터를 호출할 수 있도록 한다.
데이터베이스(140)에는 트랜잭션 수행 중, 실행되는 컴포넌트에 대한 데이터가 저장된다. 또한, 데이터베이스(140)에는 스택덤프실행부(120)에 의해 생성되는 스택덤프데이터가 저장되는 스택덤프저장부(141)와, 프로파일생성부(130)에 의해 생성되는 트랜잭션 프로파일이 트랜잭션프로파일저장부(142)에 저장된다.
스택덤프저장부(141)는 스택덤프실행부(120)에 의해 생성되는 스택덤프데이터가 저장되며, 스택덤프데이터는 프로파일생성부(130)에 의해 부여되는 스택덤프에 대한 일련번호와 매칭되어 저장된다.
메인프로세서(110)는 웹 어플리케이션 서버(6)와 연결되어 트랜잭션의 실행을 정기적으로 감시하고, 그에 대한 데이터의 입출력을 제어한다. 메인프로세서(100)는 스택덤프실행부(120) 및 프로파일생성부(130)로부터 생성되는 데이터를 데이터베이스(140)에 저장하고, 요청에 따라 출력부(150)를 통해 데이터가 출력되도록 제어한다.
메인프로세서(110)는 트랜잭션 프로파일 출력 시, 어느 하나의 스택덤프가 선택되면, 스택덤프의 일련번호를 바탕으로 데이터베이스(140)의 스택덤프저장부(141)에 저장된 스택덤프데이터를 호출하여 선택된 스택덤프의 상세데이터가 출력부를 통해 출력되도록 한다.
출력부(150)는 프로파일생성부(130)에 의해 생성된 트랜잭션 프로파일을 출력하고, 트랜잭션 프로파일 중 선택된 스택덤프에 대응하는 스택덤프 데이터를 출력한다.
도 3은 본 발명의 트랜잭션의 처리 과정을 설명하는데 참조되는 도이다.
도 3에 도시된 바와 같이, 사용자(1)의 서비스 요청(4)에 따라, 웹 어플리케이션 서버(6)는 트랜잭션을 수행한다.
이때 트랜잭션(11)는 앞서 설명한 바와 같이 요청된 서비스를 수행하는 전체 프로세스를 의미하는 것으로, 하나 이상의 자바 서비스를 실행하여 요청된 서비스를 수행한다.
트랜잭션(11)은 하나의 쓰레드에 의해 처리되고, 쓰레드는 요청된 서비스에 대응하는 복수의 컴포넌트(21 내지 26)를 호출하여 그에 대한 응답을 수신함으로써 요청된 서비스에 대한 응답을 생성한다.
이때 트랜잭션(11) 수행 중, 적어도 하나의 컴포넌트가 실행되며, 실행되는 컴포넌트는 다른 서버로의 Http요청(21), SQL요청(22 내지 24), 파일 액세스(25), 다른 기기로의 네트워크 연결 요청(26)을 포함할 수 있다. 요청된 서비스에 따라, 트랜잭션 처리 시 수행되는 컴포넌트의 구성은 상이하다.
도 4는 본 발명에 따른 트랜잭션 처리에 따른 트랜잭션 프로파일을 설명하는데 참조되는 도이다.
도 4에 도시된 바와 같이, 서비스 요청(31)에 대응하여, 서비스 실행을 위한 트랜잭션(11)은 하나의 쓰레드(32)에 의해 처리된다.
웹 어플리케이션 서버(6)는 쓰레드(32)에 의한 트랜잭션 수행 중, 서비스 처리를 위해 컴포넌트(33)(35)를 실행하고, 그에 따라 컴포넌트 처리를 위한 다른 서버(34)(36)가 각각 호출된다.
웹 어플리케이션 서버(6)는 호출된 컴포넌트의 응답을 수신함으로써, 사용자의 요청에 따른 응답(37)을 서버(5)로 전달하고, 서버(5)는 사용자의 단말(2)(3)로 응답(37)을 전달한다. 이때 응답은 HML페이지, 파일, XML페이지, JSON등으로 구현된다.
트랜잭션이 처리되는 중, 기본 트랜잭션 프로파일(40)이 생성된다. 트랜잭션 모니터링 서버(7)는 트랜잭션 처리 중의 동작에 대한 정보를 데이터로써 저장한다.
이때 기본 트랜잭션 프로파일(40)은 트랜잭션의 시작(41), 서비스 처리를 위한 컴포넌트의 실행(42)(43), 트랜잭션 종료(44)에 대한 정보를 포함한다.
기본 트랜잭션 프로파일에는 각 동작에 대한 시간정보가 포함되는데, 도시된 바와 같이 트랜잭션 시작(41) 후 제 1 컴포넌트의 실행(42)까지 20초, 제 1 컴포넌트의 실행(42)과 제 2 컴포넌트의 실행(43) 사이에는 40초, 그리고 제 2 컴포넌트 실행 후 트랜잭션이 종료하기 까지 약 38초의 공백이 발생한다.
기본 트랜잭션 프로파일로는, 위와 같이 동작 수행의 사이에 발생하는 시간 지연 및 해당 시간 동안의 동작에 대하여 추적할 수 없다.
그에 따라 트랜잭션 모니터링 서버(7)는 스택덤프실행부(120)를 통해, 트랜잭션을 처리하는 쓰레드에 대한 스택을 일정시간 간격으로 덤프하여 컴포넌트의 실행 전후에 실행되는 동작에 대한 정보를 추가하여 트랜잭션 프로파일을 생성한다.
도 5 는 본 발명에 따른 스택 덤프를 포함하는 트랜잭션 프로파일을 설명하는데 참조되는 도이다.
도 5에 도시된 바와 같이, 서비스 요청(51)에 따라, 쓰레드(52)가 트랜잭션을 처리하고, 트랜잭션 처리 중 서비스 처리를 위해 적어도 하나의 컴포넌트(53)(55)가 실행되어, 요청에 대한 응답(57)이 생성된다. 응답(57)은 앞서 설명한 바와 같이 서버(5)로 전달되고, 서버를 통해 사용자(1)의 단말(2)(3)로 전송되어 출력된다.
이때, 스택덤프실행부(120)는 트랜잭션이 처리되는 동안, 트랜잭션을 처리하는 쓰레드(52)에 대하여, 덤프명령(메소드)(60)를 일정시간 간격(도 5의 실시예에서는 10초 간격)으로 정기적으로 호출하여, 트랜잭션 처리 중 생성되는 스택에 대한 덤프를 생성한다. 예를 들어 덤프명령이 10초 간격으로 전송되면, 트랜잭션을 처리하는 쓰레드의 스택이 10초 단위로 덤프되어, 스택덤프저장부(171)에 데이터가 저장될 수 있다.
스택덤프실행부(120)는 트랜잭션을 처리하는 쓰레드(52)와 구분되는 별도의 타임쓰레드(60)에서, 트랜잭션을 처리하는 쓰레드(52)로 덤프명령(메소드)(60)를 호출함으로써 스택에 대한 덤프를 생성한다.
스택덤프실행부(120)는 덤프된 스택을 데이터베이스(140)의 스택덤프저장부(141)에 누적하여 저장한다.
프로파일생성부(130)는 스택덤프저장부(141)에 저장된 스택덤프 데이터를 바탕으로, 기본 트랜잭션 프로파일에 스택덤프 데이터를 추가하여 트랜잭션 프로파일(80)을 생성한다.
도시된 바와 같이, 트랜잭션 프로파일(80)에는 트랜잭션의 시작(81), 컴포넌트의 실행(83)(85), 트랜잭션의 종료(87)와, 각 동작이 실행되는 중간에 처리되는 쓰레드에 대한 스택덤프정보(82)(84)(86)가 포함된다.
예를 들어 트랜잭션 프로파일(80)은, 스택덤프정보(82)(84)(86)가 포함됨에 따라 제 1 컴포넌트의 실행(83)과 제 2 컴포넌트의 실행(85) 사이의 40초간의 시간 동안 어떤 동작이 실행되었는지 추적 가능해진다.
제 2 스택덤프정보가 선택되면, 12:01:30에 어떤 동작이 실행되었는지 스택덤프의 상세데이터를 통해 확인 가능하다.
스택덤프정보에는 각각 일련번호(89)가 부여되며, 어느 하나의 스택덤프정보가 선택되면, 일련번호를 바탕으로 스택덤프저장부(141)에 저장된 스택덤프에 대한 상세데이터가 호출된다.
도 6 은 본 발명에 따른 트랜잭션 모니터링 방법을 설명하는데 참조되는 도이다.
사용자(1)의 단말(2)(3)에서 데이터의 입력 또는 버튼의 클릭 등을 통해 서버(5)로 서비스 요청이 수신되면, 서버는 요청된 서비스에 대응하여 웹 어플리케이션 서버(WAS)(6)로 서비스 요청을 전송한다.
웹 어플리케이션 서버(6)는 서버(5)로부터의 서비스 요청(S310)이 수신되면 그에 대응하여, 트랜잭션을 처리한다. 하나의 쓰레드에 의해 트랜잭션을 시작하고(S320), 요구되는 서비스에 따라 컴포넌트를 호출하여 응답을 수신하는 것을 반복하여 수행한다(S330, S340).
이때, 트랜잭션 모니터링 서버(7)는 웹 어플리케이션 서버(6)의 트랜잭션이 시작되면, 트랜잭션에 대한 모니터링을 시작하고, 트랜잭션 처리에 따른 데이터를 수집하여 저장한다(S410).
트랜잭션 모니터링 서버(7)의 스택덤프실행부(120)는 트랜잭션이 시작되면, 트랜잭션을 처리하는 쓰레드로 스택에 대한 덤프명령을 전송하고, 메인프로세서(110)는 스택덤프실행부(120)에 의해 덤프된, 쓰레드의 스택이 데이터베이스(140)의 스택덤프저장부(141)에 저장되도록 한다(S420).
컴포넌트가 실행되는 중(S330, S340), 컴포넌트 실행에 따른 데이터를 수집하여 저장하고(S430)(S450), 또한 일정시간 간격으로 스택덤프실행부(120)는 덤프명령을 전송하여, 스택덤프데이터를 저장한다(S440)(S460).
스택덤프실행부(120)는 트랜잭션이 처리되는 동안, 일정시간 간격으로 쓰레드로 스택에 대한 덤프명령을 반복하여 전송하고, 그에 대한 스택덤프데이터가 누적하여 저장되도록 한다.
트랜잭션이 종료되면(S350), 웹 어플리케이션 서버(6)는 트랜잭션 처리 중 생성되는 데이터 및 컴포넌트 응답을 바탕으로 서비스 요청에 대한 응답데이터를 생성한다(S360).
응답데이터는 서버(5)로 전송되고, 서버(5)를 통해 사용자(1)의 단말(2)(3)로 전송되어, 단말에 웹페이지, 파일 등의 형태로 출력된다.
트랜잭션 모니터링 서버(7)는 트랜잭션 죵료에 따른 데이터를 수집을 하고(S470), 트랜잭션에 대한 모니터링을 종료한다.
프로파일생성부(130)는 트랜잭션의 기본데이터와, 스택덤프저장부에 저장된 스택덤프데이터를 바탕으로 트랜잭션 프로파일을 생성한다(S480).
프로파일생성부(130)는 트랜잭션의 기본정보에 스택덤프정보를 추가하여, 트랜잭션 프로파일을 생성하고, 추가된 스택덤프정보에 대하여, 스택덤프저장부(141)에 저장된 스택덤프데이터와 매칭되는 일련번호를 부가한다.
메인프로세서(110)는 트랜잭션 프로파일을 출력부(150)를 통해 출력한다(S490).
메인프로세서(110)는 트랜잭션 프로파일에 포함된 스택덤프정보 중 어느 하나가 선택되면, 해당 스택덤프정보의 일련번호에 매칭되는 스택덤프데이터를 스택덤프저장부(141)로부터 호출하여 출력부(150)를 통해 출력한다.
웹 어플리케이션 서버(6)에서 새로운 트랜잭션이 처리되면, 트랜잭션 모니터링 서버(7)는 트랜잭션에 대한 모니터링을 수행하여, 앞서 설명한 바와 같이 트랜잭션 프로파일을 생성한다.
따라서, 본 발명은 웹 어플리케이션 서버에서 트랜잭션이 처리되는 동안, 일정시간 간격으로 쓰레드의 스택에 대한 덤프명령을 전송하여, 스택덤프를 저장하고, 스택덤프를 트랜잭션의 기본데이터에 추가하여 트랜잭션 프로파일을 생성함으로써, 트랜잭션이 처리되는 동안 수행되는 동작에 대한 추적이 가능하고, 특히 컴포넌트의 동작 사이에 발생하는 동작 지연 및 발생되는 이상에 대하여 트랜잭션 프로파일을 통해 그 원인을 분석함으로 웹 어플리케이션 서버의 트랜잭션 처리과정을 개선할 수 있도록 한다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 본 발명의 목적 범위 안에서라면, 실시예에 따라서는 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
1: 사용자 2, 3: 단말
4: 서비스 요청 5: 서버
6: 웹 어플리케이션 서버(WAS) 7: 트랜잭션 모니터링 서버
8: 네트워크
110: 메인프로세서 120: 스택덤프실행부
130: 프로파일생성부 140: 데이터베이스
141: 스택덤프저장부 142: 트랜잭션프로파일저장부

Claims (14)

  1. 네트워크로 연결되는 단말로부터 입력되는 서비스요청에 대응하여, 트랜잭션을 처리하는 웹 어플리케이션 서버에 연결되는 트랜잭션 모니터링 서비스에 있어서,
    상기 트랜잭션 처리 중, 상기 트랜잭션을 처리하는 쓰레드에 덤프명령을 전송하여 스택덤프를 생성하는 스택덤프실행부;
    상기 트랜잭션의 기본정보에 상기 스택덤프의 정보를 추가하여 트랜잭션 프로파일을 생성하는 프로파일생성부;
    상기 스택덤프가 저장되는 스택덤프저장부;
    상기 트랜잭션 프로파일이 저장되는 트랜잭션프로파일저장부로 구성되어 상기 트랜잭션에 대한 데이터를 저장하는 데이터베이스;
    상기 데이터베이스에 상기 트랜잭션에 대한 기본정보를 저장하고, 데이터 입출력을 제어하는 메인프로세서; 및
    상기 트랜잭션 분석을 위한 상기 트랜잭션 프로파일을 출력하는 출력부를 포함하고,
    상기 스택덤프실행부는 상기 트랜잭션을 수행하는 쓰레드에 대하여, 상기 트랜잭션을 수행하는 쓰레드와는 별도인 타임쓰레드에서 일정시간 간격으로, 상기 덤프명령를 호출함으로써 상기 스택덤프를 생성하고,
    상기 프로파일생성부는 상기 트랜잭션 프로파일에 추가되는 상기 스택덤프의 정보에 대하여, 상기 스택덤프저장부에 저장된 스택덤프데이터와 매칭되도록 일련번호를 설정하고,
    상기 메인프로세서는, 상기 트랜잭션 프로파일에 포함된 어느 하나의 스택덤프정보가 선택되면, 상기 스택덤프정보의 일련번호에 매칭되는 스택덤프데이터를 상기 스택덤프저장부로부터 호출하여 상기 출력부를 통해 출력하는 것을 특징으로 하는 트랜잭션 모니터링 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 스택덤프실행부는, 상기 덤프명령을 전송하여 상기 쓰레드가 상기 트랜잭션을 처리하는 도중 생성되는 스택을 덤프하는 것을 특징으로 하는 트랜잭션 모니터링 시스템.
  5. 청구항 1에 있어서,
    상기 프로파일생성부는 상기 트랜잭션의 시작 및 종료, 그리고 서비스 처리를 위한 적어도 하나의 컴포넌트에 대한 기본정보에, 상기 트랜잭션의 동작 중간에 생성된 상기 스택덤프의 정보를 추가하여 상기 트랜잭션 프로파일을 생성하는 것을 특징으로 하는 트랜잭션 모니터링 시스템.
  6. 청구항 1에 있어서,
    상기 프로파일생성부는 시간순서에 따라, 상기 기본정보와 상기 트랜잭션의 동작 중간에 생성된 상기 스택덤프의 정보를 추가하여 상기 트랜잭션 프로파일을 생성하는 것을 특징으로 하는 트랜잭션 모니터링 시스템.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020160078864A 2016-06-23 2016-06-23 트랜잭션 모니터링 시스템 및 그 동작방법 KR101828156B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160078864A KR101828156B1 (ko) 2016-06-23 2016-06-23 트랜잭션 모니터링 시스템 및 그 동작방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160078864A KR101828156B1 (ko) 2016-06-23 2016-06-23 트랜잭션 모니터링 시스템 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20180000614A KR20180000614A (ko) 2018-01-03
KR101828156B1 true KR101828156B1 (ko) 2018-02-12

Family

ID=61002175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160078864A KR101828156B1 (ko) 2016-06-23 2016-06-23 트랜잭션 모니터링 시스템 및 그 동작방법

Country Status (1)

Country Link
KR (1) KR101828156B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065792A (ko) 2019-11-27 2021-06-04 주식회사 티맥스 소프트 대량 거래 상황을 효율적으로 엔드 투 엔드 모니터링 하기 위한 방법 및 이를 이용한 트레이스 정보 고속 입력 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102549981B1 (ko) 2022-12-27 2023-06-30 브레인즈컴퍼니 주식회사 원격 서비스 응답 블로킹 대기 상태의 트랜잭션 제어 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220513A1 (en) * 2006-03-15 2007-09-20 International Business Machines Corporation Automatic detection of hang, bottleneck and deadlock
JP2008186378A (ja) * 2007-01-31 2008-08-14 Ipride Co Ltd 例外に対処するためのプログラム
KR100920414B1 (ko) * 2008-05-30 2009-10-07 (주)제니퍼소프트 트랜잭션의 지정된 수행지점에서 자바 스택을 스냅샷하는자바 프로세스 모니터링 시스템 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220513A1 (en) * 2006-03-15 2007-09-20 International Business Machines Corporation Automatic detection of hang, bottleneck and deadlock
JP2008186378A (ja) * 2007-01-31 2008-08-14 Ipride Co Ltd 例外に対処するためのプログラム
KR100920414B1 (ko) * 2008-05-30 2009-10-07 (주)제니퍼소프트 트랜잭션의 지정된 수행지점에서 자바 스택을 스냅샷하는자바 프로세스 모니터링 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065792A (ko) 2019-11-27 2021-06-04 주식회사 티맥스 소프트 대량 거래 상황을 효율적으로 엔드 투 엔드 모니터링 하기 위한 방법 및 이를 이용한 트레이스 정보 고속 입력 장치

Also Published As

Publication number Publication date
KR20180000614A (ko) 2018-01-03

Similar Documents

Publication Publication Date Title
CN111083225B (zh) 在物联网平台中的数据处理方法、装置及物联网平台
US7689688B2 (en) Multiple-application transaction monitoring facility for debugging and performance tuning
US6651183B1 (en) Technique for referencing failure information representative of multiple related failures in a distributed computing environment
CN111061628B (zh) 数据分析方法、系统、装置、计算机设备和存储介质
CN106484611B (zh) 基于自动化协议适配的模糊测试方法和装置
US7913233B2 (en) Performance analyzer
CN110515808B (zh) 数据库监控方法、装置、计算机设备及存储介质
CN111176941B (zh) 一种数据处理的方法、装置和存储介质
CN112835792B (zh) 一种压力测试系统及方法
CN110737639A (zh) 审计日志方法、装置、计算机设备及存储介质
CN112350854A (zh) 一种流量故障定位方法、装置、设备及存储介质
KR101828156B1 (ko) 트랜잭션 모니터링 시스템 및 그 동작방법
US11349730B2 (en) Operation device and operation method
CN106126419A (zh) 一种应用程序的调试方法及装置
EP3151124A1 (en) On-board information system and information processing method therefor
JP2016146020A (ja) データ分析システム及び分析方法
GB2504728A (en) Second failure data capture in co-operating multi-image systems
CN112100035A (zh) 一种页面异常检测方法、系统及相关装置
CN113472881B (zh) 在线终端设备的统计方法和装置
CN114598622A (zh) 数据监控方法及装置、存储介质、计算机设备
KR20150136369A (ko) 로그 보안 및 빅 데이터를 이용한 통합 관리 시스템
CN113064875A (zh) 一种日志处理方法及装置
CN109684158B (zh) 分布式协调系统的状态监控方法、装置、设备及存储介质
CN112380105A (zh) 日志收集方法、装置、系统、设备、存储介质及插件
CN107577546B (zh) 一种信息处理方法、装置及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant