用jdbc连接本地oracle10g,出现以下异常:
Caused by: java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.cvnet.data.jdbc.ResourceManager.getConnection(ResourceManager.java:44)
at com.cvnet.data.jdbc.CorporationUserChatSelfDaoImpl.findByDynamicWhereMine(CorporationUserChatSelfDaoImpl.java:657)
... 24 more
com.cvnet.data.exceptions.CorporationUserChatRoomDaoException: SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at com.cvnet.data.jdbc.CorporationUserChatRoomDaoImpl.findByDynamicWhereMine(CorporationUserChatRoomDaoImpl.java:616)
at org.apache.jsp.ChatRoom.Program.ShowMessage_jsp._jspService(ShowMessage_jsp.java:235)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.cvnet.data.jdbc.ResourceManager.getConnection(ResourceManager.java:44)
at com.cvnet.data.jdbc.CorporationUserChatSelfDaoImpl.findByDynamicWhereMine(CorporationUserChatSelfDaoImpl.java:657)
... 24 more
com.cvnet.data.exceptions.CorporationUserChatRoomDaoException: SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
at com.cvnet.data.jdbc.CorporationUserChatRoomDaoImpl.findByDynamicWhereMine(CorporationUserChatRoomDaoImpl.java:616)
at org.apache.jsp.ChatRoom.Program.ShowMessage_jsp._jspService(ShowMessage_jsp.java:235)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
一个一个排查吧.
防火墙也退出了
JDBC连接串:
private static String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
private static String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:xe";
如果是间歇性的,增加process数试试:例如:
SQL> alter system set processes=300 spfile=both;
把tomcat的连接池的连接最大数,改为小于数据库配置的process数.
jdbc连接数据库代码:package com.cvnet.data.jdbc;import java.sql.*;public class ResourceManager
{
private static String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
private static String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:xe";
//private static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
//private static String JDBC_URL = "jdbc:mysql://127.0.0.1:3306/xe";
//private static String JDBC_URL = "jdbc:microsoft:sqlserver://192.168.0.120:1433";
// private static String JDBC_URL = "jdbc:microsoft:sqlserver://192.168.1.9:1433"; //private static String JDBC_DRIVER = "net.sourceforge.jtds.jdbc.Driver";
//private static String JDBC_URL = "jdbc:jtds:sqlserver://127.0.0.1:1433";//DatabaseName=CVNETDB"; //jdbc.username=cvnet
//jdbc.password=cvnetdb
private static String JDBC_USER = "system";
private static String JDBC_PASSWORD = "1"; private static Driver driver = null; public static synchronized Connection getConnection()
throws SQLException
{
if (driver == null)
{
try
{
Class jdbcDriverClass = Class.forName( JDBC_DRIVER );
driver = (Driver) jdbcDriverClass.newInstance();
DriverManager.registerDriver( driver );
}
catch (Exception e)
{
//System.out.println( "Failed to initialise JDBC driver" );
e.printStackTrace();
}
} return DriverManager.getConnection(
JDBC_URL,
JDBC_USER,
JDBC_PASSWORD
);
}
public static void close(Connection conn)
{
try {
if (conn != null) conn.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
} public static void close(PreparedStatement stmt)
{
try {
if (stmt != null) stmt.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
} public static void close(ResultSet rs)
{
try {
if (rs != null) rs.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
} }
public static void close(Statement stmt) {
try {
if (stmt != null)
stmt.close();
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
}
没看到你访问数据结束后调用close的代码,记得每关闭连接.
processes integer 40
{
// declare variables
final boolean isConnSupplied = (userConn != null);
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// get the user-specified connection or get a connection from the ResourceManager
conn = isConnSupplied ? userConn : ResourceManager.getConnection();
// construct the SQL statement
final String SQL = sql;
// prepare statement
stmt = conn.prepareStatement( SQL );
stmt.setMaxRows( maxRows );
// bind parameters
for (int i=0; sqlParams!=null && i<sqlParams.length; i++ ) {
stmt.setObject( i+1, sqlParams[i] );
}
rs = stmt.executeQuery();
// fetch the results
return fetchMultiResults(rs);
}
catch (SQLException _e) {
throw new CorporationChatRoomContentDaoException( "SQLException: " + _e.getMessage(), _e );
}
catch (Exception _e) {
throw new CorporationChatRoomContentDaoException( "Exception: " + _e.getMessage(), _e );
}
finally {
ResourceManager.close(rs);
ResourceManager.close(stmt);
if (!isConnSupplied) {
ResourceManager.close(conn);
}
}
}访问数据结束后调用close的代码
ORA-02095: 无法修改指定的初始化参数
alter system set processes=300 scope=spfile;这样就OK 了