Is it possible to get a session to write to two workspaces within a transaction, surely this must be possible as versioning occurs within a transaction ?
Well, in theory, but in practice, versioning does not occur within a single transaction. It's possible (and sometimes happens in practice) that the workspace is updated but not the version storage, something that's pretty awkward to clear up. The problem is that each workspace handles its own persistence, with its own database connection or whatever. There's no external transaction manager controlling it all, so it's possible for the second commit to fail and the first commit is not rolled back.
My advice if transactional integrity is critical to your application is that you don't use multiple workspaces and you don't use versioning. Within a single workspace it should all be pretty safe. miro
