这两天在网上折腾,看到了jta的相关文章,很想自己尝试下j2ee中分布式事物的配置,顺表看看他们是怎么处理分布式的。抱着试一试的想法,我开始了jta之旅,没想到这条道路是那么艰险,犹如唐僧取经一般有着一把有一把的问题等待自己解决。为了最大限度的方针jta的分布式事物,我没有小儿科似的在本机配置多个相同的数据源,而是最大限度的模拟真是条件下的分布式,也为了爽一爽新配备的电脑,我在rhel5(后文称:200)上安装虚拟机,虚拟了两台服务器,一台是xp(后文称:5)上面装了sqlserver2000;一台rhel5(后文称:4)上面装了jboss4.2.3以及oracle10 client。200上同时安装了oracle10g server。
我会尽量详细的把所遇到的问题,以及解决方案贴出来,至于具体的代码清参见胡长城的jta的相关文章。里面有详细的叙述。
问题一:在4启动jboss无法获得jndi连接,并且不能ie访问:请修改启动脚本:./run.sh -b 192.168.1.4 -Djboss.bind.adress=0.0.0.0
问题二:可以获得jndi连接,但是context.lookup时会找不到配置好的数据源:检查数据源配置文件中是否有如下片段:<use-java-context>false</use-java-context>
问题三:如何配置oracle-xa-ds?xa是好东西,但也是有代价的:你需要在jboss所跑的主机安装oracle client所以我在4上安装了oracle-client。并且在启动jboss的时候要确保环境变量:LD_LIBRARY_PATH=$ORACLE_HOME/lib如果你遇到的异常i
综上,我的jboss启动脚本如下:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
# export PATH=$ORACLE_HOME/bin:$PATH
./run.sh -b 192.168.1.4 -Djboss.bind.adress=0.0.0.0
# ./run.sh -Djboss.bind.adress=0.0.0.0
因为oci驱动不像jdbc那样是纯正的java写的驱动,或者说是类型4的jdbc驱动;他是类型2的驱动,也就是需要c作底层的通讯,因此我们需要指定环境量LD_LIBRARY_PATH;告诉java到哪里去找c写的代码。
问题四:sqlserver2000的配置问题:sqlserver2000是我大学时候用的数据库,工作之后就在也没有用到过,今天使用起来好像回到了大学时代。呵呵,扯远了。java使用sqlserver2000需要jdbc,需要jdbc则需要sp4。也就是sqlserver2000的sp4包。另外推荐使用microsoft sqlserver2005 jdbc 驱动比较好,该驱动虽然叫2005但,向下兼容sqlserver2000并且如果你想用xa你只能用该驱动老的jdbc 2000不支持xa。具体安装方法自己google之。
问题五:在执行UserTransaction.begin()遇到:UT factory lookup failed。呵呵恭喜你,你里成功不远了。把org.jnp.interfaces.NamingContextFactory改成:org.jboss.naming.NamingContextFactory参加:http://www.jboss.org/community/docs/DOC-12476
低级失误:忘记拷贝oracle jdbc 和 sqlserver jdbc到jboss/server/default/lib
没有把jboss-clientall.jar引入客户端程序。
参考资料:
http://blog.csdn.net/james999/archive/2006/09/25/1281070.aspx
http://www.jboss.org/community/docs/DOC-12476
http://read.newbooks.com.cn/info/175508.html
http://database.e800.com.cn/articles/2007/620/1182276890521451751_1.html
这篇文章写的很杂,我的感觉就像是trouble shooting。如果还有什么问题我没有涉及到,很希望你能够跟帖或者通知我,另外一点,我很怀疑xa事物的可靠性,所以如果哪位在实际工作当中用到了jta希望你能够跟下贴,让哥们开开眼。
分享到:
相关推荐
NULL 博文链接:https://xnbhnly.iteye.com/blog/1547459
JTS/JTA (Java Transaction Service / Java Transaction API) Servlet and JSP (JavaServer Pages) JNDI (Java Naming and Directory Interface) 它还提供一些高级特性,比如集群、JMX、Web Service。它还整合了IIOP...
在jboss7\standalone\configuration\standalone.xml文件中找到<subsystem xmlns="urn:jboss:domain:web:1.0" default-virtual-server="default-host">做如下配置 Xml代码 收藏代码 <subsystem xmlns="urn:jboss:...
NULL 博文链接:https://liufangmeng.iteye.com/blog/1971266
JBOSS,JBoss安装部署 JBOSS,JBoss安装部署
JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动 JBoss启动
JavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-...
[Packt Publishing] JBoss AS 7 Configuration, Deployment and Administration (E-Book) ☆ 出版信息:☆ [作者信息] Francesco Marchioni [出版机构] Packt Publishing [出版日期] 2011年12月16日 [图书页数]...
JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南
jboss 下载(httpwww.jboss.org)
某大牛写的jboss-exp 1. 查看系统名称 java -jar jboss_exploit_fat.jar -i http://192.168.7.84:10081/invoker/JMXInvokerServlet get jboss.system:type=ServerInfo OSName 2. 查看系统版本 java -jar jboss_...
Jboss项目部署文档
帮你设置jboss安全性问题。Jboss安全设置 jboss安全性 jboss设置安全性Jboss安全设置 jboss安全性 jboss设置安全性
IDE 1.4.0 3 基于JBoss 4.x的JSF应用开发 4 基于JBoss 4.x的JMS应用开发 5 基于JBoss 4.x的Hibernate应用开发 6 基于JBoss 4.x的JTA应用开发 7 基于JBoss 4.x的JavaMail应用开发 8 基于JBoss 4.x...
The book walks you through the JBoss 5 Application Server, from installation and configuration to production deployment. It guides you through configuring the server’s component containers, such as ...
赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final....
jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署