Well we were able to overcome the lock problems by changing the datasource from XA to JDBCDataSource. It is sufficient to use the JDBCDatasource as i do not jave multple datasources.
Now i have a peculiar problem when i use JDBCDataSource - When an exception happens in my Stateless Session Bean with Container managed Transaction the log says that it is rolling back and also throws a TransactionRolledBackException. But in reality the data has been committed to the Database. I tried debugging by stepping thru the code and found that TxCapsule's rollback method is called which in turn calls rollbackResources but the problem is that the resourceCount variable is 0 so nothing gets really rolled back. Moreover the addResource method is also not called, i think the whole implementation of the transaction manager in JBOSS 2.4.4 is XA Resource oriented. Can someone throw light or tell me if i am missing something here. How can i get going without having to use XA Resources for my transactions.