What is the best way to implement a transactional global object that is accessible to multiple sessions/clients. For example, I have a large amount of clients that need have a synchronized view of a few tables in the DB. I want to store those tables in an XML data structure (essentially caching the up to date data) thus avoiding multiple database hits from the client everytime another client updates data.

I have heard of the singleton pattern but am unclear of its transactional integrity.

Thanks all.