Welcome to Admin4J

Introduction

Admin4J is a set of administration utilities for Java EE applications.

Admin4J is open source and uses an Apache 2.0 License.

Admin4J will do the following:

  • Track and summarize exceptions generated by applications so the most severe issues are more easily identified.
  • Detect thread contention problems at runtime. Problems are logged and administrators optionally notified.
  • Detect memory issues at runtime. Problems are logged and administrators optionally notified.
  • Track and display performance metrics
  • Provides a SQL Performance Measurement page.
  • Identify the most frequently executed code ("Hot Spots") in web applications
  • Provides a Log Level administration page to change log levels at runtime. Currently supports log4j and jdk logging.
  • Provides a Web-Based File Explorer administration page with optional security features to limit display and change capabilities.
  • Provides a Java EE Filter to automatically detect application errors. Problems are logged and administrators optionally notified.
  • Provides a web-based JMX browser for environments that don't expose JMX ports for remote browsing.

Screen Shots

Hot Spot

Admin4J Hot Spot Screen shot

Exception Summary

Admin4J Exception Summary Screen shot

Log Level Management

Admin4J Log Management Screen shot

Performance Statistics

Admin4J Performance Statistics shot

SQL Performance Statistics

Admin4J SQL Performance Statistics shot

Background

The premise for Admin4J is that application administrators and support developers are automatically 'actors' for Java EE applications that have support needs and requirements that are similar for all Java EE applications. These use cases are as follows:

  • Administrators need assistance summarizing exceptions occurring in production. A typical custom-developed Java EE application with moderate to high usage may report hundreds or even thoushands of exceptions. Many occurances of these exceptions may arise from the same problem, however the volume generated by many applications makes it difficult and time-consuming to understand and prioritize work on the root problems at hand.
  • Adminsitrators need to be notified if thread contention beyond a specified threadshold occurs in production. Thread contention will often make Java EE applications appear "slow" and will lead to a negative view of the application by end-users.
  • Administrators need to be notified if memory issues (e.g. Memory usage occurs beyond a specified threshhold) are experienced in production. With advanced warning of such issues, adminsitrators can take planned corrective action before end-users experience resulting errors from memory issues.
  • Administrators sometimes need to be able to manipulate log levels at runtime to investigate issues. Both log4j and jdk logging rely on configuration files and require a container recycle to implement changes. This isn't practical in production environments.
  • Administrators need a record of errors experienced by end-users in production. The need to detect and log application errors resulting from web application usage is universal.
  • Administrators need information natively provided via JMX. Many environments don't expose JMX ports for containers.
  • Adminsitrators need to view application configuration files. In addition, some applications require the manipulation of file resources (e.g. report templates)
  • Administrators need information regarding application performance. This often happens in response to end-user complaints.
  • Incorporating administration capabilities in Java EE applications needs to be easy and unintrusive.