I installed Confluence 4.2.7 w/ MySQL support on a virtual machine (vmware) with SuSE Linux. MySQL DB and Confluence are on the same VM installation.
Startup of Confluence is awfully slow (>400.000msec the logs state), but the system continously uses 40% CPU at least. After startup, using confluence is possible (no NPE or other exceptions) but it's slow (not unusable slow, but slow).
Various memory settings (-Xms -Xmx) tried, but to no effect. Garbage collection is not an issue here, it seems. Getting various thread dumps, it looks like the system is essentially idle, but one thread, invoked by Quartz, performing some DB operation.
The relevant portion of thread dump output is:
scheduler_Worker-9 daemon prio=10 tid=0x00000000407a2000 nid=0x1cac runnable 0x00007f8bb0447000
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
- locked <0x00000000dca645d0> (a com.mysql.jdbc.util.ReadAheadInputStream)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2499)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2954)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2943)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3486)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2687)
- locked <0x00000000dc4dac80> (a java.lang.Object)
at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1651)
- locked <0x00000000dc4dac80> (a java.lang.Object)
at com.mchange.v2.c3p0.impl.NewProxyConnection.commit(NewProxyConnection.java:803)
- locked <0x00000000dcabf330> (a com.mchange.v2.c3p0.impl.NewProxyConnection)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:63)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:510)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy89.jobToBeExecuted(Unknown Source)
at org.quartz.core.QuartzScheduler.notifyJobListenersToBeExecuted(QuartzScheduler.java:1906)
at org.quartz.core.JobRunShell.notifyListenersBeginning(JobRunShell.java:335)
at org.quartz.core.JobRunShell.run(JobRunShell.java:173)
at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Any ideas?