OC4J或Oracle Application Server 下MSSQLServer数据源的配置

 

      昨天帮一个朋友解决一个应用系统的发布问题,他们的应用系统必须发布在Oracle Application Server下,原先开的用的Servlet容器是使用Tomcat,现在需要将应用系统移植到OAS上面。由于OAS比较大,所以我们使用了OAS的核心容器OC4J,直接使用OC4J对资源的损耗,也少很多。
    因为一直使用Oracle数据库,还真的没在OC4J上面使用连接池连接到达MSSQLServer,所以搞了一两个小时,居然搞定定,实在是丢脸,也觉得很不好意思。昨天晚上回到家之后,继续研究这一块的实现,终于搞定了如何在OC4J上面配置MSSQLServer的连接池,这种配置方式Mysql一样可行。
    OC4J的EM控制台做得比较****,而这个管理后台只支持Oracle的连接池跟数据源的配置,晕死!如果想采用其他的数据库,那只能通过手工修改配置文件的方式来实现了,再次晕死。。。。
    首先介绍一下网上网友的实现方案:
    第一步:将MSSQLServer的jdbc driver拷贝到%OC4J_HOME%/j2ee/home/applib,对于OC4J或OAS都是一样,应用程序的包文件,可以放在这个目录下,OAS或OC4J会自动加载。
    第二步:修改%OC4J_HOME%/j2ee/home/conf/data-sources.xml,在XML当中,增加以下配置:

 程序代码
<data -source
         class = "com.evermind.sql.DriverManagerDataSource"
        name = "JIRA database"
        location = "jdbc/sunecaDataSource"
        xa -location = "jdbc/xa/sunecaDataSource"
        pooled -location = "jdbc/sunecaDataSource"
        connection -driver = "net.sourceforge.jtds.jdbc.Driver"
        username = "suneca"
        password = "www.suneca.com"
        url = "jdbc:jtds:sqlserver://localhost/suneca;tds=8.0;lastupdatecount=true"
        inactivity -timeout = "30"
/ >



使用上面的方式怎么配置都起不来。。。晕死。。。我测试使用了MSSQLServer官方的driver跟jtds都不行(上面的配置是使用jtds的,如果是官方driver,无非就是url跟driver不同而已)!居然网上类似的贴还真是多。。。真是天下文章一大抄,哈哈~~~

后来研究了一下,根据一些OAS的DEMO,使用以下例子终于可以实现,以下例子是使用Microsoft官方Driver。
修改一下data-sources.xml文件,在该文件当中增加以下的配置信息:

 程序代码
     <connection-pool
        name = "SQLSERVERDS"
        max-connections = "30" >
         <connection-factory factory-class = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
            user = "suneca"
            password = "www.suneca.com"
            url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=suneca;SelectMethod=Cursor"
            commit-record-table-name = "" / >
     < /connection-pool >

     <managed-data-source
        connection-pool-name = "SQLSERVERDS"
        jndi-name = "jdbc/sunecaDataSource"
        name = "SunecaDataSource" / >


终于可以连接上去了。。。感动中。。。
希望这编文章对有这一方面需要的朋友有所帮助!

顺便将web.xml的配置也一起贴上来:

 程序代码
...
<resource-ref >
     <description >DB Connection < /description >
     <res-ref-name >jdbc /sunecaDataSource < /res-ref-name >
     <res-type >javax.sql.DataSource < /res-type >
     <res-auth >Container < /res-auth >
< /resource-ref >
...



数据源的引用

 程序代码
. . .
Context context   = new InitialContext ( ) ;
DataSource ds = (DataSource )context .lookup ( "jdbc/sunecaDataSource" ) ;
Connection conn = ds .getConnection ( ) ;
. . .

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值