For your issue it can be handled by having a singleton pattern where in you can get the same connection instance for your transactions once done make sure you close this connection instance and get a new connection for your next transactions which needs new connections if not do not close the first instance but re-use untill you do'nt need this connection.
Though still have no answer to why ConnectionPoolDatasource & XADataSource does'nt get returned and it seems kind of mandatory to use DataSource type only for now ,lets wish ourselves luck in finding the answer ...
[Message sent by forum member 'md7777' (md7777)]
http://forums.java.net/jive/thread.jspa?messageID=264375