hi alan,

On 4/16/07, Alan R <[EMAIL PROTECTED]> 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.


Reply via email to