One embodiment includes a system for application-layer monitoring of
communication between one or more database clients and one or more
database servers. The system includes one or more decoders residing at a
decoding layer above a network layer. The decoders reside at a first
network location between one or more database clients residing at one or
more second network locations and one or more database servers residing
at one or more third network locations. The decoders receive database
messages communicated from the database clients and intended for the
database servers and database messages communicated from the database
servers and intended for the database clients, decode the database
messages, and extract query-language statements from the database
messages. The system also includes a monitoring application residing at
an application layer above the decoding layer. The monitoring application
resides at the first network location. The monitoring application
receives query-language statements extracted at the decoders and records
observations on the database messages based on the query-language
statements extracted at the decoders.