jboss 数据源配置
拷贝%jboss_root%/docs/examples/jca目录下对应的数据库模板文件如mysql-ds.xml到 %jboss_root%server/default/deploy目录下。
修改mysql-ds.xml内容? <jndi-name>poc</jndi-name>
注意jndi名字不能有冒号(:)
在persistence.xml中,需要配置 <jta-data-source>java:/poc </jta-data-source>
如果需要去掉java前缀,以保证不同服务器之间的可移植,在mysql-ds.xml
<use-java-context>false</ use-java-context>
具体参考jboss数据源配置wiki
http://wiki.jboss.org/wiki/ConfigDataSources
查看jndi:
http://localhost:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss:service%3DJNDIView
invoke相应方法
?
?
weblogic 10.3 数据源配置用控制台向导next就ok,假定数据源jndi名字也是poc
?在persistence.xml中,需要配置, <jta-data-source>poc </jta-data-source>
查看jndi:
?
WebSphere下查看jndi
执行bin/dumpNameSpace脚本
?
关于TimerService
JBoss的TimerService实现采用数据库来保存timer信息。
默认采用hypersonic的数据库,非xa的datasource
如果应用采用非xa的数据库驱动的话,比如说mysql,这样ts是没有办法把两个非xa的datasource纳入一个事务管理中的。
虽然我们可一通过配置 jbossjta-properties.xml中的 com.arjuna.ats.jta.allowMultipleLastResources 为true来允许加入两个非xa的datasource,但是这样会导致数据不一致。
?
可以修改timer默认使用的datasource和应用的datasource一致。
修改ejb3-timer-service.xml中的<depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
为
<depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=poc</depends>
即可,4.2.3版本的该项配置在ejb3-deployer.xml中。
?
当然也可以采用支持xa的mysql driver。
参考
http://shrubbery.mynetgear.net/wiki/Upgrading_to_JBoss_4.2_from_4.0
?
EJB的jndi名字
在jboss下,ejb单独部署和在一个ear中部署,其默认的jndi是不一样的。
单独的jar : EJB类名/remote(local)
在ear中:ear名字/EJB类名/remote(local)
参考
http://trailblazer.demo.jboss.com/EJB3Trail/serviceobjects/slsb/index.html
?
?