JBoss JNDI的配置

项目涉及到两个数据库oracle和db2,移植到JBoss需要配置JNDI。经R&D后,配置如下:

 

[JBoss的配置]

 

Add JNDI datasource configuration file: oracle-ds.xml and db2-ds.xml to JBOSS_HOME/server/default/deploy/

 

oracle-ds.xml 和 db2-ds.xml 参照JBoss里的例子...

 

-----------------------------------

 

[项目里的配置]

 

1. Add these two files: hibernate-config-db2.xml and hibernate-config-oracle.xml to config/properties/

 

hibernate-config的主要内容如下:

<hibernate-configuration>
   <session-factory>
      <property name="connection.datasource">java:OracleDS</property>
      <property name="show_sql">false</property>
      <property name="cache.use_second_level_cache">false</property>
      <property name="cache.use_query_cache">false</property>
      <property name="hibernate.hbm2ddl.auto">none</property>
      <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
   </session-factory>
</hibernate-configuration>

 

 

2. sessionFactory to JNDI configuration:

 

< bean id = "sessionFactory"   class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >

 

    < property name = "mappingDirectoryLocations" >

        < list > < value > bo </ value > </ list >

    </ property >

    < property name = "configLocation" >

        < value >

            classpath:hibernate-config-oracle.xml

        </ value >

    </ property >

    < property name = "hibernateProperties" >

        < ref bean = "hibernateProperties" />

    </ property >

</ bean >

 

以上的配置已经完成了JNDI的配置。项目需要配置了两个sessionFactory。

 

 

-----------------------------------

 

项目里用到两个数据库,且有部分业务涉及到同时向两个数据库插入数据,此时需要用到JTATrasaction,而Spring虽然支持分布式事务,但没有实现。各大容器比如:jboss,weblogic都有自己的实现,可是与容器绑定,不够灵活,这时可以考虑使用第三方的实现:Atomikos。然而现实是残酷的,项目做到一定程度不可能有太的改动,只能用折中的方案:手动写事务。如果以JDBC来连接数据库的则需要一个Configuration,但是用JNDI则只要在hibernate-config里面加入一个property,创建一个sessionFactory,然后在用得着的地方lookup,即可拿得这个sessionFactory。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Redis作为JBoss的Session共享存储,需要配置以下步骤: 1. 首先,在JBoss服务器上安装Redis服务器和相关的Java Redis客户端 2. 在JBoss服务器的standalone.xml文件中添加以下配置: ``` <subsystem xmlns="urn:jboss:domain:infinispan:6.0" default-cache-container="web" jndi-name="infinispan"> <cache-container name="web" jndi-name="infinispan/web"> <transport lock-timeout="60000"/> <distributed-cache name="sessions" mode="SYNC" segmented="false"> <expiration max-idle="1800000"/> <persistence passivation="false"> <file-store path="${jboss.server.temp.dir}/infinispan/web/sessions" /> </persistence> <partition-handling when-split="MERGE" merge-policy="REMOVE_ALL" /> <file-store /> <remote-store> <property name="hotrod-client-properties" value="hotrod-client.properties"/> <property name="remote-cache-name" value="sessions"/> <property name="raw-values" value="false"/> <property name="shared" value="true"/> <property name="preload" value="true"/> </remote-store> </distributed-cache> </cache-container> </subsystem> ``` 3. 新建一个hotrod-client.properties文件,内容如下: ``` infinispan.client.hotrod.server_list=redis_host:redis_port ``` 其中,redis_host是Redis服务器的地址;redis_port是Redis服务器的端口号。 4. 将hotrod-client.properties文件放在JBoss服务器的classpath下。 5. 在Web应用程序的web.xml文件中添加以下配置: ``` <session-config> <session-store-name>infinispan</session-store-name> <cookie-config> <path>/</path> </cookie-config> </session-config> ``` 6. 重新启动JBoss服务器,即可使用Redis作为Session共享存储。 注意: 多个JBoss服务器之间通过Redis共享Session时,需要保证Redis使用的是同一个实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值