jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@gmail.com>
Subject Re: About the parameter config of Mysql autoReconnect
Date Mon, 16 Apr 2007 10:01:05 GMT
hi alan,

On 4/16/07, Alan R <arof+nabble@messagio.com> wrote:
>
> Hi.  I'm using connection pooling and not using autoReconnect, but sometimes

please note that JNDIDatabasePersistenceManager does not actively make use
of connection pooling as the warning in the javadoc indicates:
http://jackrabbit.apache.org/api-1/org/apache/jackrabbit/core/state/db/JNDIDatabasePersistenceManager.html

> I get the same broken pipe problem.  I'm using Jackrabbit 1.2.2 on linux
> with tomcat 5.5 and MySQL 5 (JDBC connector version 5.0.4).  The problem is
> intermittent and unpredictable. I'm not quite sure how to reproduce it, but
> it's in the logs.
>
> In case there's a config problem, here's my config info (slightly sanitized
> for security):
>
> From repository.xml (and the same in workspace.xml):
>
>          <PersistenceManager
>
> class="org.apache.jackrabbit.core.persistence.db.JNDIDatabasePersistenceManager">
>            <param name="dataSourceLocation"
> value="java:comp/env/jdbc/mmjcr"/>
>            <param name="schemaObjectPrefix" value="${wsp.name}_"/>
>            <param name="externalBLOBs" value="true"/>
>            <param name="schema" value="mysql"/>
>        </PersistenceManager>
>
>
> From context file for tomcat:
>
>  <Resource      name="jdbc/mmjcr"
>                 auth="Container"
>                 type="javax.sql.DataSource"
>             maxActive="4"
>             maxIdle="2"
>             maxWait="5000"
>             username="<DB_NAME>"
>             password="<PASSWORD>"
>             driverClassName="com.mysql.jdbc.Driver"
>         url="jdbc:mysql://<DB_HOST>/<DB_NAME>"/>
>
>
> <Resource name="jcr/repository"
>           auth="Container"
>           type="javax.jcr.Repository"
>
> factory="org.apache.jackrabbit.core.jndi.BindableRepositoryFactory"
>           configFilePath="<HOME_DIR>/repository.xml"
>           repHomeDir="<HOME_DIR>" />
>
>
> Any idea why this might be happening?

mysql does shutdown connections that have been idle for some period of time.
'broken pipe' errors in the log are therefore to be expected and per se
nothing to be worried about since jackrabbit tries to silently reestablish
a broken connection.

apart from the log messages, are there any other related issues?

cheers
stefan

> -Alan
>
> P.S.: FYI, here's the log info for the first problem encountered:
>
> 08:57:55,052 ERROR [DatabasePersistenceManager] failed closing Statement
> 08:57:55,053 ERROR [DatabasePersistenceManager]     reason: 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:2637)
>         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554)
>         at
> com.mysql.jdbc.ServerPreparedStatement.realClose(ServerPreparedStatement.jav\
> a:908)
>         at
> com.mysql.jdbc.ServerPreparedStatement.close(ServerPreparedStatement.java:47\
> 6)
>         at
> org.apache.tomcat.dbcp.dbcp.DelegatingStatement.close(DelegatingStatement.ja\
> va:165)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.closeSt\
> atement(DatabasePersistenceManager.java:915)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.reestab\
> lishConnection(DatabasePersistenceManager.java:781)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.execute\
> Stmt(DatabasePersistenceManager.java:845)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.exists(\
> DatabasePersistenceManager.java:673)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemSta\
> te(SharedItemStateManager.java:1052)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedI\
> temStateManager.java:287)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.hasItemState(LocalIte\
> mStateManager.java:180)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(XAItemState\
> Manager.java:252)
>         at
> org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(Sessio\
> nItemStateManager.java:176)
>         at
> org.apache.jackrabbit.core.ItemManager.createItemInstance(ItemManager.java:4\
> 65)
>         at
> org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:323)
>         at
> org.apache.jackrabbit.core.NodeImpl.getProperty(NodeImpl.java:2492)
>
> --
> View this message in context: http://www.nabble.com/About-the-parameter-config-of-Mysql-autoReconnect-tf2649052.html#a10012897
> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>
>

Mime
View raw message