Implementing a Transactional Service

In Rhythmyx 6.5 and 6.5.1, we have introduced some more aggressive caching to improve Content Manager performance.

These changes mean that certain types of Java API programs need to access the Content Manager service from within the Rhythmyx transaction.

This change does not impact programs called by the Content Editor or Content Assembler directly (e.g. JEXL binding functions, validation extensions, etc), nor does it affect Web Services programs. All of these are already run within the transaction.

The most commonly impacted programs are JSPs and other Servlets (including Spring controller classes) that access Binary (or long text) fields.

These programs should perform this access in a Java service added to the Rhythmyx transaction.

I have attached a document that describes, step by step, how to implement these Java services, and a zip file that contains a sample Java service.