[ http://issues.apache.org/jira/browse/JCR-576?page=all ]

Jorge Rodríguez Pedrianes updated JCR-576:
------------------------------------------

    Attachment: DatabaseFileSystem.java
                DatabasePersistenceManager.java

The attachmented files are the modified classes that use the checkConnection 
method.

 An example of configuration is:

        <FileSystem 
class="org.apache.jackrabbit.core.fs.db.JNDIDatabaseFileSystem">
                <param name="dataSourceLocation" 
value="java:comp/env/jdbc/nameDS"/>
                <param name="checkValidConnectionSQL" value="select 0 from 
dual" />
                <param name="schemaObjectPrefix" value="repository_"/>
        </FileSystem>

        <PersistenceManager 
class="org.apache.jackrabbit.core.state.db.JNDIDatabasePersistenceManager">
                <param name="dataSourceLocation" 
value="java:comp/env/jdbc/PriSolicitudDS"/>
                <param name="checkValidConnectionSQL" value="select 0 from 
dual" />                             
                <param name="schemaObjectPrefix" value="${wsp.name}_"/>
                <param name="externalBLOBs" value="false"/>
        </PersistenceManager>

> Close Connection when I use PersistenManager and FileSystem with mysql 
> database
> -------------------------------------------------------------------------------
>
>                 Key: JCR-576
>                 URL: http://issues.apache.org/jira/browse/JCR-576
>             Project: Jackrabbit
>          Issue Type: Improvement
>    Affects Versions: 1.0.1
>         Environment: tomcat  5.5.7
> mysql 5.0
> jackrabbit 1.0.1
>            Reporter: Jorge Rodríguez Pedrianes
>         Attachments: DatabaseFileSystem.java, DatabasePersistenceManager.java
>
>
> Hello.
>      In this days i was trying to configure jackrabbit with mysql database, 
> but i saw that connections to database were closed when my application was 
> idle about 8 hours. When i try to access to application this threw a 
> exception and i needed to restart tomcat to resolve this problem.  First, I 
> tried to resolve it adding a parameter to url connection 
> (autoReconnect=true), but this solution isn't successfully.
>     Then i saw your codes (DatabasePersistenceManager.java and 
> DatabaseFileSystem.java) and i could see the problem: when the connections 
> are closed by the server; the connection ("con" attribute)  isn't restarted. 
> So, I added a checkConnection Method, this method is add in all methods that 
> need conection: 
>     protected void checkConnection() throws FileSystemException {
>       if (checkValidConnectionSQL == null) {
>               return;
>       }
>       try {
>               checkConnection.executeQuery();
>               } catch (SQLException e) {
>                       log.warn("Restart connection, ErrorCode= \"" + 
> e.getErrorCode()+ "\"");
>                       initialized = false;
>                       init();
>                       e.printStackTrace();
>                       
>               }
>     }
>     I think that this improvement it's very interesting to avoid restart 
> connections when are necesary
> Thanks:
>         Jorge Rodríguez Pedrianes

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to