1. A method for troubleshooting one or more communications between a first device and a second device, comprising the steps of: receiving a message associated with the communication(s) at a monitoring device disposed between the first device and the second device; analyzing the received message; and storing the analyzed message whenever the analyzed message satisfies one or more troubleshooting criteria.