Skip to content

ASH Viewer provides a graphical view of active session history data within the Oracle and PostgreSQL DB

License

Notifications You must be signed in to change notification settings

akardapolov/ASH-Viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASH Viewer

ASH Viewer provides graphical view of active session history data within the database.

Supported databases: Oracle, PostgreSQL

Table of contents

ASH-Viewer

Quick start

  • Download the latest binary file.
  • Download JDBC driver for your database (Oracle, PostgreSQL)
  • Unpack the binary archive and run ASH-Viewer.jar
  • Open connection dialog and populate them with data (URL for Oracle database: jdbc:oracle:thin:@host:port:SID)

ASH-Viewer connection dialog

  • Press Connect button and start to monitor your system and highlight a range to show details.

ASH-Viewer Top activity

  • Review Raw data interface to gain a deep insight into active session history

ASH-Viewer raw data

  • Double-click on Top sql & sessions interface to get window with ASH details by sql or session ID

ASH-Viewer sql details

ASH-Viewer session details

Return to Table of Contents

How it works

Active Session History (ASH) is a view in Oracle database that maps a circular buffer in the SGA. The name of the view is V$ACTIVE_SESSION_HISTORY. This view is populated every second and will only contain data for 'active' sessions, which are defined as sessions waiting on a non-idle event or on a CPU.

ASH Viewer provides graphical Top Activity, similar Top Activity analysis and Drilldown of Oracle Enterprise Manager performance page. ASH Viewer store ASH data locally using embedded database Oracle Berkeley DB Java Edition.

For Oracle standard edition and PostgreSQL, ASH Viewer emulate ASH, storing active session data on local storage.

Please note that v$active_session_history is a part of the Oracle Diagnostic Pack and requires a purchase of the ODP license.

Return to Table of Contents

Build

To compile the application into an executable jar file, do the following:

  1. Install JDK version 11 or higher, Maven and Git on your local computer.

    java -version  
    mvn -version
    git --version 
  2. Download the source codes of the application to your local computer using Git

    git clone <url source code storage system>
    cd ASH-Viewer
  3. Compile the project using Maven

    mvn clean compile
  4. Execute the Maven command to build an executable jar file with tests running

     mvn clean package -DskipTests=true 

An executable jar file like ashv-<VERSION>-SNAPSHOT-jar-with-dependencies.jar will be located at the relative path ashv/target

Return to Table of Contents

Security

Encryption and Container settings provide security for database passwords (go to Other tab -> Security block)

Encryption

Encryption setting has AES and PBE options

  • AES - Advanced Encryption Standard (AES) with 256-bit key encryption, from the Bouncy Castle provider, FIPS compliant algorithm;
  • PBE - Password based encryption (PBE) in PBEWithMD5AndDES mode with secret key (computer name or hostname). This option is weak and deprecated, please use AES when possible;

Container

It's the way to store your encrypted data

  • DBAPI - You sensitive data stored in Windows Data Protection API (DPAPI), maximum protected, Windows only;
  • Registry - OS System registry storage using java preferences API - weak, but better than Configuration;
  • Configuration - All data in local configuration file - weak, not recommended;

Recommendations

  • use AES encryption and Windows Data Protection API (DBAPI) whenever possible;
  • do not use PBE copied configuration on another host, you need to change password with a new secret key (always do it for password leak prevention).

Return to Table of Contents

Bugs and feature requests

If you found a bug in the code or have a suggestion for improvement, Please open an issue

Return to Table of Contents

Downloads

Return to Table of Contents

Based on

Return to Table of Contents

License

GPLv3 license

Code released under the GNU General Public License v3.0

Return to Table of Contents

Contact

Created by @akardapolov - feel free to contact me!

Return to Table of Contents