昨天帮一个朋友解决一个应用系统的发布问题,他们的应用系统必须发布在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当中,增加以下配置:
程序代码
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文件,在该文件当中增加以下的配置信息:
程序代码
name="SQLSERVERDS"
max-connections="30">
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-name="SQLSERVERDS"
jndi-name="jdbc/sunecaDataSource"
name="SunecaDataSource"/>
终于可以连接上去了。。。感动中。。。
希望这编文章对有这一方面需要的朋友有所帮助!
顺便将web.xml的配置也一起贴上来:
程序代码
...
DB Connection
jdbc/sunecaDataSource
javax.sql.DataSource
Container
...
数据源的引用
程序代码
...
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("jdbc/sunecaDataSource");
Connection conn = ds.getConnection();
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22403494/viewspace-1030460/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22403494/viewspace-1030460/