O spring só suporta transações distribuidas (two phase commit) se a transação for controlada via JTA
ou seja, isto só vai funcionar se estiver em um servidor de aplicações que tenha suporte a two phase commit.
Outra alternativa é configurar uma transação JTA no container de servlets ou até no próprio spring framework, utilizando algo parecido com o JbossSTS
tem um tutorial aqui: http://www.linuxworld.com/news/2007/jw-04-xa.html