Latest News

In a partnership with Rittman Mead Consulting, Brighton, UK, Stewart Bryson is speaking at Kaleidoscope 2009, the premier conference for Oracle Developers, sponsored by the Oracle Development Tools User Group (ODTUG). Kaleidoscope is scheduled to run June 21 through June 25 in Monterey, CA.

Evolve Framework

Instrumentation takes many forms, including event messaging and logging, exception raising and reporting, and application debugging and tracing.

A major problem with developing PL/SQL applications is the lack of standard libraries for auditing, logging and basic code instrumentation comparable to what exists in other languages, including Java and .Net. The foundation for instrumentation exists in the combination of a powerful exception engine with the database packages DBMS_APPLICATION_INFO and DBMS_MONITOR. But Oracle provides no framework for tying all these things together and making instrumentation repeatable and easy. That's where Evolve comes in.

Simplified Set of Instrumentation Objects

We have tied together components in Oracle Database Server into one framework for easy, repeatable instrumentation. Evolve uses the combination of a single type, called EVOLVE_OT, and a package, called EVOLVE, to present a unified process for logging information and error messages, configuring and raising exceptions, and debugging and tracing processes. An EVOLVE_OT type is instantiated in every stored subprogram to register information about this program unit with the database. The combination of the methods available within the instantiated object and the functions and procedures available in the EVOLVE package allows you to write smarter, more efficient code.

Coherent Framework for Code Identification

Evolve inherits the concepts of module and action as they exist in Oracle Database Server to form the basis for instrumentation. The EVOLVE_OT object is instantiated with a provided module name, and methods in the object allow for easily changing the action within the subprogram block. Because of this granular approach, Evolve enables a developer to easily pinpoint exact locations in his or her code, and these locations make configuring instrumentation a breeze.

Logging

Procedures for logging messages and errors operate along the module and action paradigm so that all messages highlight the exact section of code where it was generated. Unhandled exceptions generate log entries which provide the complete backtrace to the origin of the error. Informational messages are coded with a logging level parameter, and the logging level can be configured for an individual module, or for the entire framework. This allows developers to place numerous debug and informational messages in the application that only materialize when the logging level is turned up.

Registration and Runmode Functionality

By default, Evolve registers the invocation of any module with the database, but registration can be disabled for the entire framework, or for a particular module. Evolve also recognizes the concept of runmode, allowing instrumented applications to be run in either runtime or debug mode. Debug mode allows the exclusion of possibly harmful actions during the execution of a process, while simultaneously increasing the logging level. Runmode can be configured for any module, so that problematic aspects of your application can be debugged regardless of the source of execution. Or, the runmode can be toggled for a given session, so that every instrumented module executed in that session will run in debug mode.

For more information about Evolve or our other product offerings, contact us here.


Evolve Framework

Transcend Suite