The solution options are as follows:
- Design to publish data about errors and state changes in order to enable health status monitoring, management and issue resolutions.
- Establish a health status model that captures the state changes based on application performance, and leverage this health model for health instrumentation requirements.
- Design monitoring, such as performance counters, alerts, and events, that detects state changes and publish this through standard management instrumentation capabilities.
- Create a snapshot of the system's state to leverage for troubleshooting and include instrumentation that can be activated to provide detailed operational and functional reports.
- Design the auditing of application data that will be useful for debugging and issue resolution. A good logging mechanism will be critical for identifying fatal or error conditions.
- Enable tracing in the web tier to troubleshoot errors and exceptions conditions.
- Leverage standard frameworks to provide logging and tracing support in the implementation, though dependency injection and Aspect Oriented Programming (AOP).
- Establish a method for monitoring the system behaviors and heath. Consider leveraging monitoring tools, such as systems center.
- Leverage tools like Tivoli software to provide extensive monitoring and management capability for the entire application landscape.
- Plan for instrumentation and profiling of implementation to ensure that it meets the quality thresholds and standards.