Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

ORA-12519 with servlet

 
Lars Vegas
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I'm facing a strange behaviour on my tomcat webserver with a servlet. I'm using Oracle 10g as the database and try to access it with my servlet.
The doPost-method throws the following exception while trying to establish the connection to the RDBMS:

"SQLException:
Connecting not possible:
Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found The Connection descriptor used by the client was: localhost:1521 BTEN"

After starting my servlet, the connection to the database for other applications blocks with the same error message
for a few minutes. After these few minutes connecting to the database is possible again!!! Restarting the database and the listener also helps...



public void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException {

Connection conn = null;

response.setContentType( "text/html" );
PrintWriter out = response.getWriter();

String connStr = "jdbc racle:thin:@localhost:1521 BTEN";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch( ClassNotFoundException cnf ){
out.println( "CNFException: "+cnf.getMessage() );
}

//retrieve Connection
try{
conn = DriverManager.getConnection( connStr, "scott", "tiger" );
}catch( SQLException sqle ){
out.println( "SQLException: <BR> Connecting not possible: <BR> "+sqle.getMessage()+"<BR>" );
}

.....

}



When I put that part in a 'normal' main program everything is ok. I can connect to the database and access tables with select statements and everything is ok.



public static void main(String[] args) {

Connection conn = null;
//retrieve Connection
try{
String connStr = "jdbc racle:thin:@localhost:1521 BTEN";

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException cnf){
System.out.println( "CNFException: "+cnf.getMessage() );
}

conn = DriverManager.getConnection( connStr, "scott", "tiger" );

}catch( SQLException sqle ){
System.out.println( "SQLException:"+sqle.getMessage() );
}

.....

}


Does anyone have an idea what the problem is in this case?
I will also post in the Servlet forum
Regards,
Lars
 
Reid M. Pinchback
Ranch Hand
Posts: 775
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The only thing I can think of is that maybe your stand-alone code and your servlet aren't hitting the same oracle JDBC driver library. Over the last couple of years I've seen info in Oracle docs talking about the shift from accessing the remote database via service name instead of SID; you may want to take a look at what you are doing to see if you are providing the SID or the service name. I wouldn't really expect a driver difference to cause you to trip over that, I'd have expected the listener to completely determine the result... but yet for some reason you aren't connecting. Nothing else is really coming to mind beyond trying to really make sure that you are using the current 10g JDBC drivers and make sure you are specifying the correct connection info.
[ January 31, 2006: Message edited by: Reid M. Pinchback ]
 
Paul Sturrock
Bartender
Posts: 10336
Eclipse IDE Hibernate Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Lars Vegas"

Welcome to JavaRanch!

One of the few rules we have round here is that you use a real sounding user name. Our naming policy is found here. You can edit your name here.

Thank you, and enjoy JavaRanch!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic