1. JNDI名字 ds = (DataSource) ctx.lookup("java:/TestDb"); 正确
ds = (DataSource) ctx.lookup("java:TestDb"); 正确
ds=(DataSource)ctx.lookup(“TestDb”); 不正确,没有被捆绑、绑定。 javax.naming.NameNotFoundException: TestDb not bound
配置文件如下:
在Oracle数据中表的字段必须都为大写,小写无效
Hibernate:
select
user0_.name as name0_0_,
user0_.password as password0_0_
from
O_USER user0_
where
user0_.name=? 其中,name列会去寻找大写的name(即NAME列),如Oracle中表的字段为小写,则回报ORA-00904错误,列名无效(找不到name/NAME列)
4. 在JOBSS下测试JNDI连接,一直连不上,忘了开Oracle服务,启动Oracle服务之后,ok
5. JTA 用JNDI连MySql可以,再加上JNID Oracle连接,报错
数据源配置错误,应配置XA datasource,当初配置的是local transaction。
比如:oralce-ds.xml àoralce-xa-ds.xml 里面的内容为配置XA datasource.
改完之后,程序运行成功(注:只配了oracle-xa-ds.xml,并没有配mysql-xa-ds.xml,好像mysql 5.0之后支持XA,不配也能运行成功,事务控制验证通过)(mysql在前,Oracle数据库在后,事务控制有效;Oracle数据中在前,Mysql在后,事务控制依然有效,都抛出了异常,并且回滚了操作);