规范的写法是第一种, J2EE 1.3 开始,资源管理在 全局资源管理器的池子中, 每一个容器 (Web , EJB ) 应该配置资源引用(链接), 当查找资源时,容器负责资源的注入。 就相当于你在程序中用 web.xml 或 ejb-jar.xml 配置的局部名字(容器内唯一),来查找资源,容器会自动对应找到全局 JNDI 中的一个资源给你使用。
不过我也不知道为什么:  用第二种情况中 Oracle 不行,而 db2 却可以, 所有的其他条件都一样的么?