Awesome
ASH Viewer
ASH Viewer provides graphical view of active session history data within the database.
Supported databases: Oracle, PostgreSQL
Table of contents
- Quick start
- How it works
- Build
- Security
- Bugs and feature requests
- Downloads
- Based on
- License
- Contact
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)
- Press Connect button and start to monitor your system and highlight a range to show details.
- Review Raw data interface to gain a deep insight into active session history
- Double-click on Top sql & sessions interface to get window with ASH details by sql or session ID
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.
Build
To compile the application into an executable jar file, do the following:
-
Install JDK version 11 or higher, Maven and Git on your local computer.
java -version mvn -version git --version
-
Download the source codes of the application to your local computer using Git
git clone <url source code storage system> cd ASH-Viewer
-
Compile the project using Maven
mvn clean compile
-
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
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).
Bugs and feature requests
If you found a bug in the code or have a suggestion for improvement, Please open an issue
Downloads
Based on
- JFreeChart by David Gilbert
- E-Gantt Library by Keith Long
- Berkeley DB Java Edition
- SwingLabs GUI toolkit by alexfromsun, kleopatra, rbair and other
- Dagger 2 by Google
- AES cipher by Bouncy Castle
- Windows DPAPI Wrapper by @peter-gergely-horvath
License
Code released under the GNU General Public License v3.0
Contact
Created by @akardapolov - feel free to contact me!