We are using form-based authentication. We changed to the
DataSourceRealm last weekend and it appears (so far) to have solved the
problem (again with TC 5.5.7 plus session replication patch).

 - Richard


Darren Govoni wrote:
> I had similar problems, and was forced to revert back to Tomcat 5.0.x.
>
> Are you using HTTP or Form-based authentication to get the user
> credentials?
>
> On Tue, 2005-03-08 at 11:57 -0700, Richard Mixon (qwest) wrote:
>
>> Has anything changed with the way that JDBCReal handles connection
>> timeouts in Tomcat 5.5.7?
>>
>> We upgraded from Tomcat 5.0.19 to Tomcat 5.5.7 in production and are
>> now getting JDBC connection errors when the site has not been
>> accessed for a while.  This is happening when a user tries to login
>> - we use a JDBCRealm to authenticate the user.
>>
>> We had this problem a while back but fixed it by adding the
>> "autoReconnect" parm, but now with Tomcat 5.5. we are having the
>> problem again. We are using MySQL 4.1.7 and version 3.1.7 of the
>> MySQL JDBC connector.
>>
>> Here is the realm specification:
>>
>>   <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
>>        driverName="com.mysql.jdbc.Driver"
>>
>>
>>
>>
>> connectionURL="jdbc:mysql://dbserver1:3306/webapp1?autoReconnect=tru
>> e&amp;autoCommit=true" connectionName="user1"
>> connectionPassword="password1" userTable="PoPerson"
>> userNameCol="userid" userCredCol="password"
>> userRoleTable="PoPersonRole" roleNameCol="roleName" />
>>
>>     <Resource         name="jdbc/webapp1"
>>                       type="javax.sql.DataSource"
>>                       auth="Container"
>>                  maxActive="100"
>>                    maxIdle="10"
>>                    maxWait="10000"
>>          defaultAutoCommit="true"
>>                   username="user1"
>>                   password="password1"
>>            driverClassName="com.mysql.jdbc.Driver"
>>
>> url="jdbc:mysql://dbserver1:3306/ltojsw?autoRecon
>>            nect=true&amp;autoCommit=true" removeAbandoned="true"
>>     removeAbandonedTimeout="60"
>>               logAbandoned="true"
>>   />
>>
>> I also included the corresponding datasource defined for actual
>> application access. The actual exception is below.
>>
>> Would using the DataSourceReal provide any help here? I was thinking
>> that since it uses DBCP pooling maybe timeout recovery might be more
>> robust. I am trying to duplicate the problem in development now,
>> before trying the DataSourceRealm.
>>
>> Thank you all for any suggestions or solutions.
>>
>>  - Richard
>>
>> Here is the exception:
>> 16:50:00,269 ERROR [TP-Processor6] [/stars]:541 - Exception
>> retrieving password for "wazinger"
>> com.mysql.jdbc.CommunicationsException: Communications link failure
>> due to underlying exception:
>>
>> ** BEGIN NESTED EXCEPTION **
>>
>> java.net.SocketException
>> MESSAGE: Broken pipe
>>
>> STACKTRACE:
>>
>> java.net.SocketException: Broken pipe
>>         at java.net.SocketOutputStream.socketWrite0(Native Method)
>> at
>> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>> at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>> at
>>
>>
>>
>>
>>
>>
>>
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>>         at
>> java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) at
>>         com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2616) at
>> com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2547) at
>> com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1512) at
>> com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622) at
>> com.mysql.jdbc.Connection.execSQL(Connection.java:2376) at
>> com.mysql.jdbc.Connection.execSQL(Connection.java:2297)         at
>>
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:
>> 1860) at
>>
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:170
>> 5) at
>> org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java:526)
>> at
>> org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:399)
>> at
>>
>> org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:347)
>>         at
>>
org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAut
>> henticator.java:256) at
>>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
>> Base.java:391) at
>>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
>>> 126)
>>         at
>>
org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve
>>         .java:130) at
>>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
>>> 105)
>>         at
>>
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAcc
>>         essLogValve.java:481) at
>>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
>>         java:107) at
>>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
>>         48) at
>> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:306)
>> at
>> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
>> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:745)
>>         at
>>
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
>> 675) at
>> org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:868)
>> at
>>
>>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
>> .java:684) at java.lang.Thread.run(Thread.java:595)
>>
>>
>> ** END NESTED EXCEPTION **
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to