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

本文介绍如何在Oracle容器OC4J中配置MSSQLServer连接池,包括复制驱动、修改配置文件data-sources.xml的具体步骤,并提供了一个成功配置的例子。

 

      昨天帮一个朋友解决一个应用系统的发布问题,他们的应用系统必须发布在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();
...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值