Thanks for the reply Adrian.
Perhaps I should have made this clearer initialy, but my client is a remote swing application. From what I can tell (and please correct me if I'm wrong) the java:/ConnectionFactory, from an out-of-the-box jboss 3.2.6 default configuration, is for in-VM usage. I don't think this will work for me.
I've since gotten around this issue by performing the publish in the beforeCompletion() call using transacted jms messages. This seems to work so far. However, I'd still prefer doing a specific transaction status check and publishing after the commit. Should this be possible?
Clients do not take part in transaction synchronizations.