Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / Databases / July 2004

Tip: Looking for answers? Try searching our database.

jdbcrealm MYSQL autoReconnect problem

Thread view: 
PC - 09 Jul 2004 16:46 GMT
I'm using jdbcrealm to connect mySQL DB.
The following is from my server.xml.
It works well except autoReconnect part.
Every morning when I try to connect I get "Invalid username/password" error
message once.
and when I try again it connects.
Have any one had this problem?
Thanks.

*************************************************
<ResourceParams name="jdbc/mydb">
           <parameter>
             <name>factory</name>
             <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
           </parameter>

           <!-- Maximum number of dB connections in pool. Make sure you
                configure your mysqld max_connections large enough to
handle
                all of your db connections. Set to 0 for no limit.
                -->
           <parameter>
             <name>maxActive</name>
             <value>100</value>
           </parameter>

           <!-- Maximum number of idle dB connections to retain in pool.
                Set to 0 for no limit.
                -->
           <parameter>
             <name>maxIdle</name>
             <value>30</value>
           </parameter>

           <!-- Maximum time to wait for a dB connection to become
available
                in ms, in this example 10 seconds. An Exception is thrown
if
                this timeout is exceeded.  Set to -1 to wait indefinitely.
                -->
           <parameter>
             <name>maxWait</name>
             <value>30000</value>
           </parameter>

           <!-- MySQL dB username and password for dB connections  -->
           <parameter>
             <name>username</name>
             <value>myname</value>
           </parameter>
           <parameter>
             <name>password</name>
             <value>mypw</value>
           </parameter>

           <!-- Class name for mm.mysql JDBC driver -->
           <parameter>
             <name>driverClassName</name>
             <value>com.mysql.jdbc.Driver</value>
           </parameter>

           <!-- The JDBC connection url for connecting to your MySQL dB.
                The autoReconnect=true argument to the url makes sure that
the
                JDBC Driver will automatically reconnect if mysqld closed
the
                connection.  mysqld by default closes idle connections
after
                8 hours.
                -->
           <parameter>
             <name>url</name>

<value>jdbc:mysql://myserver.comom/mydb?autoReconnect=true</value>
           </parameter>

           <parameter>
             <name>removeAbandoned</name>
             <value>true</value>
           </parameter>

         </ResourceParams>
         <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
                driverName="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://myserver.com/mydb?user=myname&amp;password=mypw"
                userTable="users"
                userNameCol="user_login"
                userCredCol="user_password"
                userRoleTable="user_role"
                roleNameCol="user_role"/>
<!--

Signature

****************** End of Message ******************

--
****************** End of Message ******************

Mark Matthews - 10 Jul 2004 04:34 GMT
> I'm using jdbcrealm to connect mySQL DB.
> The following is from my server.xml.
[quoted text clipped - 4 lines]
> Have any one had this problem?
> Thanks.

MySQL's autoreconnect feature will always cause this, because the
current query can't just automatically be 'replayed', because it's not
safe to do so (you risk data corruption, even if using transactions,
because the application, in this case Tomcat, will think the entire
transaction was okay, when it wasn't).

The issue is basically that Tomcat's JDBCRealm is not very robust in the
face of connection failure (timeouts, database server being restarted,
network cable unplugged, et-al). If you're using a Tomcat-5.0, you'd be
better off using a DataSourceRealm anyway:

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/realm-howto.html#DataSourceRealm

Regards,

    -Mark

Signature

Mr. Mark Matthews
MySQL AB, Software Development Manager, J2EE and Windows Platforms
Office: +1 708 332 0507
www.mysql.com

MySQL Guide to Lower TCO
http://www.mysql.com/it-resources/white-papers/tco.php

PC - 13 Jul 2004 18:55 GMT
Thanks, Mark.

> > I'm using jdbcrealm to connect mySQL DB.
> > The following is from my server.xml.
[quoted text clipped - 15 lines]
> network cable unplugged, et-al). If you're using a Tomcat-5.0, you'd be
> better off using a DataSourceRealm anyway:

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/realm-howto.html#DataSourceRealm

> Regards,
>
> -Mark


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.