Hi, all Lately I have started to evaluate James v2.0a2 with M$ SQL sever. In a production env, I need a mail server to handle large amount of small ( < 700b) messages. To test James' behavior under such king of load, I run two threads, which concurently sending and receiving mail through the server.
So, here is my problem: 1. Setting number of threads in spool manager to 1, makes James work fine with 3-4 messages per second. If I increase message rate the spool manager becomes overloaded and it takes a lot of time to get mail delivered to local inbox. 2. Setting number of threads in spool manager to 2 and more, causes the following exception to be thrown (Full stack trace is attached) java.io.IOException: java.sql.SQLException: Giving up... no connections available. I made the same test with different JDBC drivers: inet, ThinWeb, jnetdirect; and I got almost identical results. Did any of you ever consider this problem? Are there any test results available for a comparison? Regards, David.
java.io.IOException: java.sql.SQLException: Giving up... no connections available. at org.apache.james.mailrepository.MimeMessageJDBCSource.getInputStream(MimeMessageJDBCSource.java:95) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:177) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:213) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:203) at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:418) at org.apache.james.transport.LinearProcessor.service(LinearProcessor.java:189) at org.apache.james.transport.JamesSpoolManager.process(JamesSpolManager.java:241) at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:208) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) java.io.IOException: java.sql.SQLException: Giving up... no connections available. at org.apache.james.mailrepository.MimeMessageJDBCSource.getInputStream(MimeMessageJDBCSource.java:95) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:177) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:213) at org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:203) at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:418) at org.apache.james.James.storeMail(James.java:435) at java.lang.reflect.Method.invoke(Native Method) at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:88) at $Proxy9.storeMail(Unknown Source) at org.apache.james.transport.mailets.LocalDelivery.service(LocalDelivery.java:29) at org.apache.james.transport.LinearProcessor.service(LinearProcessor.java:168) at org.apache.james.transport.JamesSpoolManager.process(JamesSpoolManager.java:241) at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:208) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) java.sql.SQLException: Giving up... no connections available. at org.apache.james.util.mordred.JdbcDataSource.getConnection(JdbcDataSource.java:382) at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:301) at org.apache.james.James.sendMail(James.java:261) at java.lang.reflect.Method.invoke(Native Method) at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:88) at $Proxy9.sendMail(Unknown Source) at org.apache.james.smtpserver.SMTPHandler.doDATA(SMTPHandler.java:599) at org.apache.james.smtpserver.SMTPHandler.parseCommand(SMTPHandler.java:248) at org.apache.james.smtpserver.SMTPHandler.handleConnection(SMTPHandler.java:163) at org.apache.avalon.cornerstone.blocks.connection.ConnectionRunner.run(Connection.java:163) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) java.lang.reflect.UndeclaredThrowableException: java.lang.reflect.InvocationTarg etException: java.lang.RuntimeException: Exception caught while storing mail Con tainer: java.io.IOException: java.sql.SQLException: Giving up... no connectionsavailable. at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:435) at org.apache.james.James.storeMail(James.java:435) at java.lang.reflect.Method.invoke(Native Method) at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:88) at $Proxy9.storeMail(Unknown Source) at org.apache.james.transport.mailets.LocalDelivery.service(LocalDelivery.java:29) at org.apache.james.transport.LinearProcessor.service(LinearProcessor.java:168) at org.apache.james.transport.JamesSpoolManager.process(JamesSpoolManager.java:241) at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:208) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) Exception in processor <root> java.lang.RuntimeException: Exception caught while storing mail Container: java. io.IOException: java.sql.SQLException: Giving up... no connections available. at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:435) at org.apache.james.transport.LinearProcessor.service(LinearProcessor.java:189) at org.apache.james.transport.JamesSpoolManager.process(JamesSpoolManager.java:241) at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:208) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) java.io.IOException: java.sql.SQLException: Giving up... no connections available. at org.apache.james.mailrepository.MimeMessageJDBCSource.getInputStream(MimeMessageJDBCSource.java:95) at org.apache.james.core.MimeMessageWrapper.loadHeaders(MimeMessageWrapper.java:64) at org.apache.james.core.MimeMessageWrapper.getAllHeaderLines(MimeMessageWrapper.java:562) at org.apache.james.pop3server.POP3Handler.doTOP(POP3Handler.java:440) at org.apache.james.pop3server.POP3Handler.parseCommand(POP3Handler.java:214) at org.apache.james.pop3server.POP3Handler.handleConnection(POP3Handler.java:136) at org.apache.avalon.cornerstone.blocks.connection.ConnectionRunner.run(Connection.java:163) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80) java.sql.SQLException: Giving up... no connections available. at org.apache.james.util.mordred.JdbcDataSource.getConnection(JdbcDataSource.java:382) at org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailRepository.java:301) at org.apache.james.James.sendMail(James.java:261) at java.lang.reflect.Method.invoke(Native Method) at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:88) at $Proxy9.sendMail(Unknown Source) at org.apache.james.smtpserver.SMTPHandler.doDATA(SMTPHandler.java:599) at org.apache.james.smtpserver.SMTPHandler.parseCommand(SMTPHandler.java:248) at org.apache.james.smtpserver.SMTPHandler.handleConnection(SMTPHandler.java:163) at org.apache.avalon.cornerstone.blocks.connection.ConnectionRunner.run(Connection.java:163) at org.apache.avalon.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:47) at org.apache.avalon.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:80)
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
