MW? When I Google that I get a local construction company.
A cache is, theoretically speaking, a local database which can be accessed faster than the primary database can be. Actually, one example of this is the class of database proxy servers, where one or more local apps connect (usually via
JDBC) to the local DB proxy, which fulfills requests from its local cache where possible, and only queries the primary (external) database when there's a cache miss.
If your application is hard-coded to retrieve data via a web service or JMS request instead of JDBC, you might be able to find a similar proxy service available for those protocols. I think, in fact that maybe MQ itself may have that option. The other alternative would be to tune the backend server.
I'm not mentioning Spring caches because that would imply making application changes plus it would potentially bind a lot of data directly to the app, which reduces both flexibility and manageability. You'd normally only find an in-app cache to be an advantage if the app's working set data was fairly small and slow-changing.