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]>

Reply via email to