费话就不说了,反正是通过Google收集了好些资料,终于把J2sdk5.0、j2eesdk-1_4、Eclipse3.0、JBOSS4.0、Oracle环境给弄好了.去年通过Tomcat+Oracle做了一个小网站,感觉太慢了,主要是程序建立数据库连接时太慢了.后来知道通过应用服务器的连接池可提高效力,认识这个对我来说,可不容易了,公司一直在用Delphi二次开发工具做项目,哪儿听说过有连接池这东东.
今天时间不多, 主要说一下JBOSS4.0+Oracle8i 连接池配置:
JBOSS4.0和Oracle8i安装在这里不说了
第一
把Oracle的JDBC驱动程序(D:/oracle/ora81/jdbc/lib/classes12.zip)复制到ClassPath下。同时我们把这个JDBC驱动程序复制到Jboss的server/default/lib目录下(D:/Java/jboss-4.0.0/server/default/lib/classes12.jar)
注意把classes12.zip改为classes12.jar
第二
1,如果使用的事非事务处理的数据源
把D:/Java/jboss-4.0.0/docs/examples/jca/oracle-ds.xml复制到D:/Java/jboss-4.0.0/server/default/deploy目录下,修改它:注意以下的"TYZHOUDB"是数据库ID不是本地网络服务名
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@10.19.1.9:1521:TYZHOUDB</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>TWEB</user-name>
<password>TWEB</password>
2,
把D:/Java/jboss-4.0.0/docs/examples/jca/oracle-xa-ds.xml复制到D:/Java/jboss-4.0.0/server/default/deploy目录下,修改它:注意以下的"IBMISDV"是本地网络服务名
<jndi-name>OracleDS</jndi-name>
<track-connection-by-tx/>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:oci8:@IBMISDV</xa-datasource-property>
<xa-datasource-property name="User">TWEB</xa-datasource-property>
<xa-datasource-property name="Password">TWEB</xa-datasource-property>
第三,修改standardjaws.xml
修改D:/Java/jboss-4.0.0/server/default/conf/standardjaws.xml 或jaws.xml配置文件,并把<datasource> 和 <type-mapping>元素这只为下面这样:
<jaws>
<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle8</type-mapping>
</jaws>
第四,修改standardjbosscmp-jdbc.xml
修改standardjbosscmp-jdbc.xml 或 jbosscmp-jdbc.xml配置文件,设置<datasource> 和 <datasource-mapping>元素使用Oracle。
<jbosscmp-jdbc>
<defaults>
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle8</datasource-mapping>
</defaults>
</jbosscmp-jdbc>
第五,修改login-config.xml
修改login-config.xml文件来使用Oracle,下面是login-config.xml文件的<application-policy>元素:
<application-policy name = "OracleDbRealm">
<authentication>
<login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name = "principal">sa</module-option>
<module-option name = "userName">TWEB</module-option>
<module-option name = "password">TWEB</module-option>
<module-option name ="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=OracleDS
</module-option>
</login-module>
</authentication>
</application-policy>
修改了oracle-ds.xml, standardjaws.xml, standardjbosscmp-jdbc.xml,和
login-config.xml 文件之后就可以再Jboss4中使用Oracle了
最后给大家一个测试源码:
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<%
DataSource ds = null;
String dsBoundName = "OracleDS";
try
{
Context ctx = new InitialContext();
try
{
ds = (DataSource)ctx.lookup(dsBoundName);
}
catch(NamingException ne1)
{
try
{
ds = (DataSource)ctx.lookup("java:/" + dsBoundName);
if(ds!=null){
out.println("连接成功");
<p>Connection cn=ds.getConnection();
if(cn!=null){
out.println("cn is Ok!");
Statement stmt = cn.createStatement();
ResultSet rst = stmt.executeQuery("select * from WEB_FRAME_BB");
out.println("<p>rst is Ok!" + rst.next());
while(rst.next()){
out.println("<P>用户名:" + rst.getString("NAME"));
}
cn.close();</p>
}
}
}
catch(NamingException ne2)
{
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/" + dsBoundName);
}
}
}
catch(Exception e)
{
out.println(e);
}
%>