Java EE mandates a (JTA) transaction manager to be present. There is however no standardized portable JNDI defined for this. Currently a variety of Java EE AS implementations use different names, e.g.:
|java:jboss/TransactionManager||JBoss AS 7|
|java:/TransactionManager||JBoss AS 4 ~ 6, JRun4|
|java:comp/UserTransaction||Resin, Orion, JOnAS (JOTM)|
(list taken from Infinispan's GenericTransactionManagerLookup)
Some implementations (e.g. WebSphere), don't seem to register a transaction manager in JNDI at all.
For an end user this is troublesome, since various transactional products (ORMs, Caching solutions) now need to bother the user with finding this information for the particular AS the user is deploying that product on. Generic solutions that scan well known locations may fail when the user upgrades the AS or moves to another AS.
To increase portability, I would like to request to introduce a portable name for the platform transaction manager and mandate that this will be available in all conforming implementations. E.g. java:/TransactionManager.