Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Apache Tomcat »

Re: problem with Tomcat 5.5.17, Axis 2, MySQL 3.1.12, JNDI

David Smith

2007-07-12

Replies:

I'd recommend dropping the context definition in your server.xml. Under
normal conditions you should never have to modify that file except to
alter server-wide settings like which ports it listens on.

Also looking at your axis2/META-INF/context.xml file, I see the port
number is incorrect.

Lastly, I would recommend you drop the autoReconnect parameter of your
database url and add validationQuery="select 1" to your Resource
element. Autoreconnect is of minimal usefullness and validationQuery
can test the db connection before your app attemps to use it.

--David

albert quinn wrote:
> Hi ! :
>
> First of all : excuse my poor english. Second : I'm trying to set up
> a MySQL connection pool on Tomcat 5.5.17 (running over Windows XP) to
> connect to a remote DB from a web service running on the Axis 2
> deployed in Tomcat. I've read the Tomcat docs and the Tomcat mailing
> lists but i've not founded any answers that help me to fix the
> problem. I've this in my "conf\server.xml" :
>
>
> .....
>       <Context docBase="axis2" path="C:\Archivos de
> programa\Apache Software Foundation\Tomcat 5.5\webapps\axis2"
> reloadable="true">
>
>           <Resource auth="Container" driverClassName="
> com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000"
> name="java:comp/env/jdbc/DB" password="mypassword"
> type="javax.sql.DataSource"
> url="jdbc:mysql://remoteaddress.com:3306/db?autoReconnect=true"
> username="myname"/>
>
>       </Context>
>    </Host>
>
> ....
>
>
> I've this "C:\Archivos de programa\Apache Software Foundation\Tomcat
> 5.5\webapps\axis2\META-INF\context.xml " file :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Context>
>
>   <WatchedResource>WEB-INF/web.xml</WatchedResource>
>
>    <Resource auth="Container" driverClassName="
> com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000"
> name="jdbc/DB" password="mypassword" type="javax.sql.DataSource"
> url="jdbc:mysql://remoteaddress.com:3036/db?autoReconnect=true"
> username="myname"/>
>
> </Context>
>
> I've these lines in "C:\Archivos de programa\Apache Software
> Foundation\Tomcat 5.5\webapps\axis2\WEB-INF\web.xml"
>
>   <resource-ref>
>     <description>
>        a description
>     </description>
>     <res-ref-name>
>        jdbc/DB
>     </res-ref-name>
>     <res-type>
>        javax.sql.DataSource
>     </res-type>
>     <res-auth>
>        Container
>     </res-auth>
>   </resource-ref>
>
> When i call the web service running on Axis 2, after a long time i
> get the next Exception message :
>
> Cannot create PoolableConnectionFactory (Server connection failure
> during transaction. Due to underlying exception:
> 'java.net.SocketException: java.net.NoRouteToHostException: No route
> to host: connect'.
>
> ** BEGIN NESTED EXCEPTION **
>
> java.net.SocketException
> MESSAGE: java.net.NoRouteToHostException: No route to host: connect
>
> STACKTRACE:
>
> java.net.SocketException: java.net.NoRouteToHostException: No route to
> host: connect
>
>   at
> com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java:156)
>
>
>   at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
>
>   at com.mysql.jdbc.Connection.createNewIO (Connection.java :2680)
>
>   at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
>
>   at
> com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:266)
>
>
>   at
> org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection
> (DriverConnectionFactory.java:37)
>
>   at
> org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>
>
>   at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory
> (BasicDataSource.java:877)
>
>   at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
>
>
>   at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
>
>
>   at code.prueba.PruebaBD.getUserLogin(PruebaBD.java:20)
>
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>
>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>
>   at java.lang.reflect.Method.invoke(Unknown Source)
>
>   at
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic (RPCMessageReceiver.java
>
> :91)
>
>   at
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive (AbstractInOutSyncMessageReceiver.java:39)
>
>
>   at org.apache.axis2.engine.AxisEngine.receive (AxisEngine.java:144)
>
>   at
> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine (RESTUtil.java:122)
>
>
>   at
> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest (RESTUtil.java:116)
>
>
>   at
> org.apache.axis2.transport.http.AxisServlet$ProcessRESTRequest.processURLRequest
>
> (AxisServlet.java:776)
>
>   at
> org.apache.axis2.transport.http.AxisServlet.doGet (AxisServlet.java:238)
>
>   at javax.servlet.http.HttpServlet.service (HttpServlet.java:689)
>
>   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
> 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)
>
>
>
> ** END NESTED EXCEPTION **
>
>
> Attempted reconnect 3 times. Giving up.)
>
>
> I've tried to turn it off the FireWall, but i've got the same
> Exception message. The lines in the web service are :
>
>
>        Context oContext = new InitialContext();
>        DataSource oDataSource = (DataSource)
> oContext.lookup("java:comp/env/jdbc/DB");
>        Connection oConnection = oDataSource.getConnection();
>
> I've tried to modify the web service to connect to the DB using the
> JDBC Driver directly with :
>
>
>        Class jdbcDriverClass = Class.forName(
> "com.mysql.jdbc.Driver" );
>        Driver oDriver = (Driver) jdbcDriverClass.newInstance();
>        DriverManager.registerDriver(oDriver);
>        Connection oConnection =
> DriverManager.getConnection("jdbc:mysql://remoteaddress.com:3306/db","myname","mypassword");
>
>
> That way i can connect to the remote database without problems. Of
> course i've the mysql jar in the Tomcat's "common\lib" directory. But
> after many hours of reading and trying and knocking on heaven's door
> (hard, with the head!! ;) i've no idea of what is happening, even
> worse... i've no idea of what to do to find the problem. Does anybody
> have any idea to help me to discover where is the problem? Many thanks
> to anybody who help!!!!
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@(protected)
> To unsubscribe, e-mail: users-unsubscribe@(protected)
> For additional commands, e-mail: users-help@(protected)
>


---------------------------------------------------------------------
To start a new topic, e-mail: users@(protected)
To unsubscribe, e-mail: users-unsubscribe@(protected)
For additional commands, e-mail: users-help@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.