English Case Studies
Debugging Production Problems
Production issues that arise during operation of a distributed system can be difficult to diagnose and reproduce. Reliably reproducing an issue is usually the first step in order to fix a problem and to verify that a development fix was successful. Simply reproducing the content of published JMS messages will not be sufficient if the problems were caused, for example, by invalid or unexpected JMS header fields or timing related issues.
Codestreet ReplayService™ can record JMS messages with a very high recording rate and will persist the complete JMS or MQ message with its recording time with nanosecond precision. The identical messages along with the precise timing intervals can then be replayed to recreate the precise production scenario.
The recorded messages can be searched in the ReplayService™ Web GUI or exported into files of various formats for further analysis. Codestreet ReplayService™ allows for the selection of messages based on time range, destination, and message content. Content selection can be based on JMS selectors, text pattern matching or XML XPath queries.
To test variations of JMS fields or headers, individual messages can manually be modified in the ReplayService™ Web GUI before resending them to a topic or queue.
Once the message scenario is identified, the selected set of messages can be replayed into the development environment through the ReplayService™ Web GUI, by shell scripts or the Java API. Codestreet ReplayService™ will reproduce the exact inter-message time intervals and preserve the original JMS MessageID and Timestamp to recreate the original messaging scenario in the closest way possible.
Retesting with previous production data can confirm that a new bug fix actually solved the problem, making ReplayService™ an indispensible tool for regression testing.
- Message and State Recovery: If something simple is wrong, fix it and resend.
- Message and State Recovery: On application startup, fallback to the state of the messaging system at a well-known time or global MSG ID”, FT-setup
- Message Rate Statistics: Routinely send message rate charts to different application groups
- Disaster Recovery
- Middleware Capacity Planning
- Stress Testing Applications
- Flow Control
- Issue Resolution
- Application Development, QA, and UAT
- Audit (infrastructure and content): Keep complete trail of messages on disk, for days, months or years