En travaillant avec Websphere Application Serveur et plus particulierement commerce, je me suis retrouvé face à cette erreur :

RegisteredRes E WTRN0063E: An illegal attempt to enlist a one phase capable resource with existing two phase capable resources has occurred" when attempting to execute a transaction.
... stack de l'erreur
Plus précisément :
"An attempt was made to have a one-phase resource participate in a global transaction while an XA resource or another one-phase resource already participated in this global transaction."

Le problème venait du fait que l'on se trouvait au sein d'une transaction globale (XA). En fait XA est la spécification qui décrit l'interface entre le Transaction Manager du serveur d'application et les les manager locaux des ressources pour pouvoir utiliser JTA (java transaction api).
Concrètement cela permet d'accéder à plusieurs ressources au sein d'une même transaction.
Dans notre cas, les multiples transactions sont faites à cause des transactions des EJB. Vu que c'est le container qui doit gérer automatiquement les transaction des ejb, d'autres appels sont fait (et donc des transactions créés) vers d'autres ressources lors de l'execution de la commande RMS. Il faut en fait voir un EJB comme une nouvelle ressource.
L'appel que je faisais à ma datasource extérieur créait une nouvelle transaction.
Dans un contexte normal, cette transaction isolée devrait pouvoir s'executer en tant que non-XA et donc en utilisant un 1PC. Pour raison obscure propre à la configuration de was (cela doit pouvoir être modifié, mais je n'ai pas trouvé comment), ce type d'action ne fonctionne pas de base. Une requête 1PC ne peut pas être utilisée dans un environnement
Du coup lorsque Transaction Manager fait un commit des transactions des EJB, il veut utiliser le protocole 2 phase commit pour valider l'envoie de toutes les transactions des ejb (celle qui lance une exception dans le tas).
Le driver de cette datasource n'étant pas de type XA, il n'implémentait pas le protocole 2PC et du coup on avait cette erreur.

La solution consistait donc à changer la classe du driver pour le passer en XA afin qu'il puisse faire ses 2PC !