You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by Cory <co...@resourceworld.com> on 2005/06/20 20:40:14 UTC
Help needed: Could not create enough Components to service your request.
Hello,
I'm running just default mailet/matchers, and I'm encountering this
error in my logs.
--- Start ---
18/06/05 00:46:03 DEBUG connections: Adding one connection for a total of 1
18/06/05 00:46:03 DEBUG connections: Retrieving a
org.apache.james.util.connection.ServerConnection$ClientConnectionRunner
from the pool
---- Same message for the next 3 ----
18/06/05 00:46:03 DEBUG connections: Adding one connection for a total of 5
18/06/05 00:46:03 ERROR connections: Exception executing client
connection runner: Could not create enough Components to service your
request.
java.lang.Exception: Could not create enough Components to service your
request.
at
org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:133)
at
org.apache.james.util.connection.ServerConnection.addClientConnectionRunner(ServerConnection.java:215)
at
org.apache.james.util.connection.ServerConnection.run(ServerConnection.java:304)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:55)
at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:90)
--- End ---
I'm running a P4 2.4 Ghz, 1gb ram, on a Win2k with MySql 4.1, with the
3.0.16 JDBCMySql connector.
This error will replicate every time I start the server, regardless of
how many spool threads I have; nothwithstanding attempts with less than
5 threads.
Can anyone shed some light on this for me?
Thanks in advance,
Cory
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your
request.
Posted by Cory <co...@resourceworld.com>.
I disabled the NNTP server in this request.
I'll try bumping up the max connections. I'll post the results.
Thanks Stefano.
--Cory
Stefano Bagnara wrote:
>I don't really know, but:
>
>
>
>> <spoolmanager>
>> <threads> 100 </threads>
>> </spoolmanager>
>>
>> <nntp-repository>
>> <spool>
>> <configuration>
>> <threadCount>60</threadCount>
>> </configuration>
>> </spool>
>> </nntp-repository>
>>
>> <database-connections>
>> <data-sources>
>> <data-source name="maildb"
>>class="org.apache.james.util.dbcp.JdbcDataSource">
>> <max>100</max>
>> </data-source>
>> </data-sources>
>> </database-connections>
>>
>> <connections>
>> <idle-timeout>3000</idle-timeout>
>> <max-connections>0</max-connections>
>> </connections>
>>
>> <thread-manager>
>> <thread-group>
>> <name>default</name>
>> <max-threads>100</max-threads>
>> </thread-group>
>> </thread-manager>
>>
>>
>
>You have 100 email spool threads + 60 nntp spoll thread and declared a
>maximum of 100 threads: you should have more threads in the max-threads from
>the thread-manager than the sum of spoolmanager/threads +
>nntp-repository/spool/condiguration/threadCount +
>connections/max-connections.
>
>I think I would change the connections/max-connections to 50 and increase
>the max-threads to around 210/250.
>
>Stefano
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>For additional commands, e-mail: server-user-help@james.apache.org
>
>
>.
>
>
>
Re: Help needed: Could not create enough Components to service your
request.
Posted by Hes Siemelink <he...@izecom.com>.
Stefano Bagnara wrote:
>
> It mainly depends from processor/mailets complexity and number of incoming
> mails.
> I've got antivirus, antispam, content based filters in my processors and I
> need dozens of threads to avoid spooling bottleneck.
>
Of course. But for better performance you should choose the lowest
number of threads. More threads is more overhead and makes James slower.
A 100 spool threads sounds like overkill. Performance does degrade when
using more threads, as indicated by the original problem. The default in
the configuration file is 10 spool threads. That seems a very sensible
value to use until you run into bottle necks.
Cheers,
Hes.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your request.
Posted by Stefano Bagnara <ap...@bago.org>.
> Stefano Bagnara wrote:
> >
> > You have 100 email spool threads
>
> Why so many spool threads? I use 4 threads.
>
> I did some tests and that gave the best performance in my set-up.
>
> Might be worth a try...
It mainly depends from processor/mailets complexity and number of incoming
mails.
I've got antivirus, antispam, content based filters in my processors and I
need dozens of threads to avoid spooling bottleneck.
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your
request.
Posted by Hes Siemelink <he...@izecom.com>.
Stefano Bagnara wrote:
>
> You have 100 email spool threads
Why so many spool threads? I use 4 threads.
I did some tests and that gave the best performance in my set-up.
Might be worth a try...
Hes.
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your request.
Posted by Stefano Bagnara <ap...@bago.org>.
I don't really know, but:
> <spoolmanager>
> <threads> 100 </threads>
> </spoolmanager>
>
> <nntp-repository>
> <spool>
> <configuration>
> <threadCount>60</threadCount>
> </configuration>
> </spool>
> </nntp-repository>
>
> <database-connections>
> <data-sources>
> <data-source name="maildb"
> class="org.apache.james.util.dbcp.JdbcDataSource">
> <max>100</max>
> </data-source>
> </data-sources>
> </database-connections>
>
> <connections>
> <idle-timeout>3000</idle-timeout>
> <max-connections>0</max-connections>
> </connections>
>
> <thread-manager>
> <thread-group>
> <name>default</name>
> <max-threads>100</max-threads>
> </thread-group>
> </thread-manager>
You have 100 email spool threads + 60 nntp spoll thread and declared a
maximum of 100 threads: you should have more threads in the max-threads from
the thread-manager than the sum of spoolmanager/threads +
nntp-repository/spool/condiguration/threadCount +
connections/max-connections.
I think I would change the connections/max-connections to 50 and increase
the max-threads to around 210/250.
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your
request.
Posted by Cory <co...@resourceworld.com>.
I mistakenly believed that updating the connector would fix all my
woes. Lo' & behold the error occurs when the server is under load.
When the messages approach >400 msgs/min. I continue to get the same
error in the Connections log:
20/06/05 16:36:43 ERROR connections: Exception executing client
connection runner: Could not create enough Components to service
your request.
java.lang.Exception: Could not create enough Components to service
your request.
at
org.apache.avalon.excalibur.pool.DefaultPool.get(DefaultPool.java:133)
at
org.apache.james.util.connection.ServerConnection.addClientConnectionRunner(ServerConnection.java:215)
at
org.apache.james.util.connection.ServerConnection.run(ServerConnection.java:304)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:55)
at
org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:90)
MySql is on the same box.
Messages are being directed to the deadletter repository with the error:
Exception caught while storing mail Container: java.io.IOException:
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection,
pool exhausted
Any help would be greatly appreciated.
Here is my config file:
--- Begin---
<?xml version="1.0"?>
<!DOCTYPE config [
<!ENTITY listserverConfig SYSTEM "../conf/james-listmanager.xml">
<!ENTITY listserverStores SYSTEM "../conf/james-liststores.xml">
<!ENTITY fetchmailConfig SYSTEM "../conf/james-fetchmail.xml">
]>
<config>
<James>
<postmaster>Postmaster@localhost</postmaster>
<servernames autodetect="true" autodetectIP="true">
<!-- CONFIRM? -->
<servername>test.com</servername>
</servernames>
<!-- Set whether user names are case sensitive or case insensitive -->
<!-- Set whether to enable local aliases -->
<!-- Set whether to enable forwarding -->
<usernames ignoreCase="true" enableAliases="true"
enableForwarding="true"/>
<!-- The inbox repository is the location for users inboxes -->
<!-- Default setting: file based repository - enter path ( use
"file:///" for absolute) -->
<!--
<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
-->
<inboxRepository>
<repository destinationURL="db://maildb/inbox/" type="MAIL"/>
</inboxRepository>
<!-- Alternative inbox repository definition for DB use. -->
<!-- Stores message body in file system, rest in database -->
<!--
<inboxRepository>
<repository destinationURL="dbfile://maildb/inbox/" type="MAIL"/>
</inboxRepository>
-->
<!--
<inboxRepository>
<repository destinationURL="mbox:///var/mail/" type="MAIL"/>
</inboxRepository>
-->
</James>
<fetchpop enabled="false">
<!-- You can have as many fetch tasks as you want, but each must
have a -->
<!-- unique name by which it identified -->
<fetch name="mydomain.com">
<!-- Host name or IP address -->
<host>mail.mydomain.com</host>
<!-- Account login username -->
<user>username</user>
<!-- Account login password -->
<password>pass</password>
<!-- How frequently this account is checked - in
milliseconds. 600000 is every ten minutes -->
<interval>600000</interval>
</fetch>
</fetchpop>
&fetchmailConfig;
<!-- The James Spool Manager block -->
<!-- -->
<!-- This block is responsible for processing messages on the spool. -->
<spoolmanager>
<!-- Number of spool threads -->
<threads> 100 </threads>
<!-- Set the Java packages from which to load mailets and matchers -->
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
</mailetpackages>
<matcherpackages>
<matcherpackage>org.apache.james.transport.matchers</matcherpackage>
</matcherpackages>
<!-- The root processor is a required processor - James routes all
mail on the spool -->
<!-- through this processor first. -->
<!-- -->
<!-- This configuration is a sample configuration for the root
processor. -->
<processor name="root">
<!-- Checks that the email Sender is associated with a valid
domain. -->
<!--
<mailet
match="SenderInFakeDomain=64.55.105.9,64.94.110.11,194.205.62.122,194.205.62.62,195.7.77.20,206.253.214.102,212.181.91.6,219.88.106.80,194.205.62.42,216.35.187.246,203.119.4.6"
class="ToProcessor">
<processor> spam </processor>
</mailet>
-->
<!-- Important check to avoid looping -->
<mailet match="RelayLimit=30" class="Null"/>
<!--
<mailet match="All" class="XMLVirtualUserTable">
<!- 1:1 mapping ->
<mapping>morgoth@middle-earth=sauron@mordor</mapping>
<!- 1:n mapping ->
<mapping>istari@middle-earth=saruman@isengard;radigast;gandalf</mapping>
<!- DSN mapping ->
<mapping>boromir@osgilliath=error:550 Requested action not
taken: no such user here</mapping>
<!- regex based mapping ->
<mapping>*@osgilliath=regex:(.*)@osgilliath:${1}@minas-tirith</mapping>
<!- both standard and regex mapping ->
<mapping>ring@*=onering@mordor;regex:ring@(.*):ring@${1}</mapping>
<!- conditional regex mapping example ->
<mapping>*@listserver=regex:(.*)-on@listserver:${1}-subscribe@listserver;
regex:(.*)-off@listserver:${1}-unsubscribe@listserver
</mapping>
</mailet>
-->
<!-- White List: -->
<!-- specific known senders -->
<!--
<mailet match="SenderIs=goodboy@goodhost"
class="ToProcessor">
<processor> transport </processor>
</mailet>
-->
<!-- People on this list agree to pay a penalty if they send
spam -->
<mailet match="InSpammerBlacklist=query.bondedsender.org"
class="ToProcessor">
<processor> transport </processor>
</mailet>
<!-- E-mail legally required not to be spam (see:
http://www.habeas.com) -->
<!--
<mailet match="HasHabeasWarrantMark" class="ToProcessor">
<processor> transport </processor>
</mailet>
-->
<!-- End of White List -->
<!-- Check for delivery from a known spam server -->
<mailet match="InSpammerBlacklist=dnsbl.njabl.org"
class="ToProcessor">
<processor> spam </processor>
<notice>550 Requested action not taken: rejected - see
http://njabl.org/ </notice>
</mailet>
<mailet match="InSpammerBlacklist=relays.ordb.org"
class="ToProcessor">
<processor> spam </processor>
<notice>550 Requested action not taken: rejected - see
http://www.ordb.org/ </notice>
</mailet>
<!-- Sample matching to kill a message (send to Null) -->
<!--
<mailet match="RecipientIs=badboy@badhost" class="Null"/>
-->
<!-- Send remaining mails to the transport processor for either
local or remote delivery -->
<mailet match="All" class="ToProcessor">
<processor> transport </processor>
</mailet>
</processor>
<!-- The error processor is required. James may internally set
emails to the -->
<!-- error state. The error processor is generally invoked when
there is an -->
<!-- unexpected error either in the mailet chain or internal to
James. -->
<!-- -->
<!-- By default configuration all email that generates an error in
placed in -->
<!-- an error repository. -->
<processor name="error">
<!-- If you want to notify the sender their message generated
an error, uncomment this -->
<!--
<mailet match="All" class="Bounce"/>
-->
<!-- If you want to notify the postmaster that a message
generated an error, uncomment this -->
<!--
<mailet match="All" class="NotifyPostmaster"/>
-->
<!-- Logs any messages to the repository specified -->
<mailet match="All" class="ToRepository">
<!--
<repositoryPath> file://var/mail/error/</repositoryPath>
-->
<!-- An alternative database repository example follows. -->
<repositoryPath> db://maildb/deadletter/error </repositoryPath>
</mailet>
</processor>
<!-- Processor CONFIGURATION SAMPLE: transport is a sample custom
processor for local or -->
<!-- remote delivery -->
<processor name="transport">
<!-- This is an example configuration including configuration
for a list server. -->
<!-- CHECKME: before uncommenting this, edit the configuration
file's contents -->
<!--
&listserverConfig;
-->
<mailet match="HostIsLocal" class="ToProcessor">
<processor> local-address-error </processor>
<notice>550 - Requested action not taken: no such user
here</notice>
</mailet>
<!-- CHECKME! -->
<mailet match="RemoteAddrNotInNetwork=127.0.0.1"
class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying
denied</notice>
</mailet>
<!-- Attempt remote delivery using the specified repository for
the spool, -->
<!-- using delay time to retry delivery and the maximum number
of retries -->
<mailet match="All" class="RemoteDelivery">
<!-- <outgoing> file://var/mail/outgoing/ </outgoing> -->
<!-- alternative database repository example below -->
<outgoing> db://maildb/spool/outgoing </outgoing>
<!-- Delivery Schedule based upon RFC 2821, 4.5.4.1 -->
<!-- 5 day retry period, with 4 attempts in the first
hour, two more within the first 6 hours, and then
every 6 hours for the rest of the period. -->
<delayTime> 5 minutes </delayTime>
<delayTime> 10 minutes </delayTime>
<delayTime> 45 minutes </delayTime>
<maxRetries> 3 </maxRetries>
<!-- The number of threads that should be trying to deliver
outgoing messages -->
<deliveryThreads> 30 </deliveryThreads>
<!-- If false the message will not be sent to given server
if any recipients fail -->
<sendpartial>false</sendpartial>
<!--
<gateway> 127.0.0.1 </gateway>
<gatewayPort>25</gatewayPort>
-->
</mailet>
</processor>
<!-- Processor CONFIGURATION SAMPLE: spam is a sample custom
processor for handling -->
<!-- spam. -->
<!-- You can either log these, bounce these, or just ignore them. -->
<processor name="spam">
<!-- To destroy all messages, uncomment this matcher/mailet
configuration -->
<mailet match="All" class="Null"/>
<!-- To notify the sender their message was marked as spam,
uncomment this matcher/mailet configuration -->
<!--
<mailet match="All" class="Bounce"/>
-->
<!-- To notify the postmaster that a message was marked as
spam, uncomment this matcher/mailet configuration -->
<!--
<mailet match="All" class="NotifyPostmaster"/>
-->
<!-- To log the message to a repository, this matcher/mailet
configuration should be uncommented. -->
<!-- This is the default configuration. -->
<mailet match="All" class="ToRepository">
<!-- <repositoryPath>file://var/mail/spam/</repositoryPath> -->
<!-- Changing the repositoryPath, as in this commented out
example, will -->
<!-- cause the mails to be stored in a database repository. -->
<!-- Please note that only one repositoryPath element can be
present for the mailet -->
<!-- configuration. -->
<repositoryPath> db://maildb/deadletter/spam
</repositoryPath>
</mailet>
</processor>
<!-- This processor handles messages that are for local domains,
where the user is unknown -->
<processor name="local-address-error">
<!--
<mailet match="All" class="Bounce">
<attachment>none</attachment>
</mailet>
-->
<!-- To notify the postmaster that a message had an invalid
address, uncomment this matcher/mailet configuration -->
<!--
<mailet match="All" class="NotifyPostmaster"/>
-->
<mailet match="All" class="ToRepository">
<!-- <repositoryPath>
file://var/mail/address-error/</repositoryPath> -->
<!-- An alternative database repository example follows. -->
<repositoryPath> db://maildb/deadletter/address-error
</repositoryPath>
</mailet>
</processor>
<processor name="relay-denied">
<!-- To notify the sender the address was invalid, uncomment
this matcher/mailet configuration -->
<!-- The original message is not attached to keep the bounce
processor from deliverying spam -->
<!--
<mailet match="All" class="Bounce">
<attachment>none</attachment>
</mailet>
-->
<!-- To notify the postmaster that a relay request was denied,
uncomment this matcher/mailet configuration -->
<!--
<mailet match="All" class="NotifyPostmaster"/>
-->
<mailet match="All" class="ToRepository">
<!--
<repositoryPath>file://var/mail/relay-denied/</repositoryPath> -->
<!-- An alternative database repository example follows. -->
<repositoryPath> db://maildb/deadletter/relay-denied
</repositoryPath>
</mailet>
</processor>
</spoolmanager>
<!-- DNS Server Block -->
<dnsserver>
<servers>
<!--Enter ip address of your DNS server, one IP address per
server -->
<!-- element. -->
<!--
<server>127.0.0.1</server>
-->
</servers>
<!-- Change autodiscover to false if you would like to turn off
autodiscovery -->
<!-- and set the DNS servers manually in the <servers> section -->
<autodiscover>true</autodiscover>
<authoritative>false</authoritative>
</dnsserver>
<remotemanager>
<port>4555</port>
<!-- Uncomment this if you want to bind to a specific inetaddress -->
<!--
<bind> </bind>
-->
<!-- Uncomment this if you want to use TLS (SSL) on this port -->
<!--
<useTLS>true</useTLS>
-->
<handler>
<helloName autodetect="true">myMailServer</helloName>
<administrator_accounts>
<!-- CHECKME! -->
<!-- Change the default login/password. -->
<account login="***" password="***"/>
</administrator_accounts>
<connectiontimeout> 60000 </connectiontimeout>
</handler>
</remotemanager>
<!-- The POP3 server is enabled by default -->
<pop3server enabled="true">
<!-- port 995 is the well-known/IANA registered port for POP3S ie
over SSL/TLS -->
<!-- port 110 is the well-known/IANA registered port for Standard
POP3 -->
<port>110</port>
<!-- Uncomment this if you want to bind to a specific inetaddress -->
<!--
<bind> </bind>
-->
<!-- Uncomment this if you want to use TLS (SSL) on this port -->
<!--
<useTLS>true</useTLS>
-->
<handler>
<helloName autodetect="true">myMailServer</helloName>
<connectiontimeout>120000</connectiontimeout>
</handler>
</pop3server>
<!-- The SMTP server is enabled by default -->
<smtpserver enabled="true">
<!-- port 25 is the well-known/IANA registered port for SMTP -->
<port>25</port>
<!-- Uncomment this if you want to bind to a specific inetaddress -->
<!--
<bind> </bind>
-->
<!-- Uncomment this if you want to use TLS (SSL) on this port -->
<!--
<useTLS>true</useTLS>
-->
<handler>
<helloName autodetect="false">xpMailer</helloName>
<connectiontimeout>36000</connectiontimeout>
<!-- Uncomment this if you want to require SMTP
authentication. -->
<!--
<authRequired>true</authRequired>
-->
<!-- CHECKME! -->
<authorizedAddresses>127.0.0.0/8,
192.168.0.0/24</authorizedAddresses>
<!-- Uncomment this if you want to verify sender addresses,
ensuring that -->
<!-- the sender address matches the user who has
authenticated. -->
<!-- This prevents a user of your mail server from acting as
someone else -->
<!--
<verifyIdentity>true</verifyIdentity>
-->
<!-- This sets the maximum allowed message size (in kilobytes)
for this -->
<!-- SMTP service. If unspecified, the value defaults to 0,
which means no limit. -->
<maxmessagesize>0</maxmessagesize>
</handler>
</smtpserver>
<!-- The NNTP server is enabled by default -->
<nntpserver enabled="false">
<port>119</port>
<!-- Uncomment this if you want to bind to a specific inetaddress -->
<!--
<bind> </bind>
-->
<!-- Uncomment this if you want to use TLS (SSL) on this port -->
<!--
<useTLS>true</useTLS>
-->
<handler>
<!-- This is the name used by the server to identify itself in
the NNTP -->
<!-- protocol. If autodetect is TRUE, the server will discover
its -->
<!-- own host name and use that in the protocol. If discovery
fails, -->
<!-- the value of 'localhost' is used. If autodetect is FALSE,
James -->
<!-- will use the specified value. -->
<helloName autodetect="true">myMailServer</helloName>
<connectiontimeout>120000</connectiontimeout>
<!-- Set the authRequired value to true to enable
authenticated NNTP -->
<authRequired>false</authRequired>
</handler>
</nntpserver>
<nntp-repository>
<!-- If this is set to true, posting will be disallowed. -->
<readOnly>false</readOnly>
<rootPath>file://var/nntp/groups</rootPath>
<tempPath>file://var/nntp/temp</tempPath>
<articleIDPath>file://var/nntp/articleid</articleIDPath>
<articleIDDomainSuffix>news.james.apache.org</articleIDDomainSuffix>
<!-- The news groups hosted in this NNTP repository. -->
<newsgroups>
<newsgroup>org.apache.james.dev</newsgroup>
<newsgroup>org.apache.james.user</newsgroup>
<newsgroup>org.apache.avalon.dev</newsgroup>
<newsgroup>org.apache.avalon.user</newsgroup>
</newsgroups>
<spool>
<configuration>
<spoolPath>file://var/nntp/spool</spoolPath>
<!-- The number of threads that process spooler related
tasks. -->
<threadCount>60</threadCount>
<!-- The spool thread(s) should idle for some time, if it
has nothing to do -->
<threadIdleTime>60000</threadIdleTime>
</configuration>
</spool>
</nntp-repository>
<!-- The Mailstore block -->
<mailstore>
<repositories>
<!-- File based repositories. These repositories store all
message data -->
<!-- in the file system. -->
<repository
class="org.apache.james.mailrepository.AvalonMailRepository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
</repository>
<repository
class="org.apache.james.mailrepository.AvalonSpoolRepository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
</repository>
<!-- JDBC based repositories. These repositories store all
message data -->
<!-- in the database. -->
<repository
class="org.apache.james.mailrepository.JDBCMailRepository">
<protocols>
<protocol>db</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</config>
</repository>
<repository
class="org.apache.james.mailrepository.JDBCSpoolRepository">
<protocols>
<protocol>db</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
<maxcache>1000</maxcache>
</config>
</repository>
<!-- These repositories store message delivery and headers in
the DB, and the body to the filesystem -->
<repository
class="org.apache.james.mailrepository.JDBCMailRepository">
<protocols>
<protocol>dbfile</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
<filestore>file://var/dbmail</filestore>
</config>
</repository>
<repository
class="org.apache.james.mailrepository.JDBCSpoolRepository">
<protocols>
<protocol>dbfile</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
<filestore>file://var/dbmail</filestore>
<maxcache>1000</maxcache>
</config>
</repository>
<!-- The mbox repository is designed for MAIL only; SPOOL
performance would be less than ideal-->
<repository
class="org.apache.james.mailrepository.MBoxMailRepository">
<protocols>
<protocol>mbox</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
</repository>
</repositories>
<!-- Spool repository configuration -->
<!-- Alternative spool repository definition for JDBC use -->
<spoolRepository>
<repository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
</spoolRepository>
</mailstore>
<!-- The User Storage block -->
<users-store>
<!-- Configure User Repositories here. -->
<!-- Database backed user repositories -->
<!-- The LocalUsers repository, for storing James' User info. -->
<repository name="LocalUsers"
class="org.apache.james.userrepository.JamesUsersJdbcRepository"
destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
</users-store>
<!-- The database-connections block -->
<database-connections>
<data-sources>
<data-source name="maildb"
class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
<user>root</user>
<password>root</password>
<max>100</max>
</data-source>
</data-sources>
</database-connections>
<!-- Configuration for Cornerstone Services -->
<!-- -->
<!-- The Object Storage block -->
<!-- -->
<!-- Defines file storage details that are used for file-based
repositories. -->
<objectstorage>
<repositories>
<repository
class="org.apache.james.mailrepository.filepair.File_Persistent_Object_Repository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>OBJECT</type>
</types>
<models>
<model>SYNCHRONOUS</model>
<model>ASYNCHRONOUS</model>
<model>CACHE</model>
</models>
</repository>
<repository
class="org.apache.james.mailrepository.filepair.File_Persistent_Stream_Repository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>STREAM</type>
</types>
<models>
<model>SYNCHRONOUS</model>
<model>ASYNCHRONOUS</model>
<model>CACHE</model>
</models>
</repository>
</repositories>
</objectstorage>
<!-- The Connection Manager block -->
<!-- -->
<connections>
<idle-timeout>3000</idle-timeout>
<max-connections>0</max-connections>
</connections>
<!-- The Socket Manager block -->
<!-- -->
<sockets>
<server-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/>
<!--
<factory name="ssl"
class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
<keystore>
<file>conf/keystore</file>
<password>secret</password>
<type>JKS</type>
<protocol>TLS</protocol>
<algorithm>SunX509</algorithm>
<authenticate-client>false</authenticate-client>
</keystore>
</factory>
-->
</server-sockets>
<client-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory"/>
</client-sockets>
</sockets>
<!-- The Thread Manager block -->
<thread-manager>
<thread-group>
<name>default</name>
<priority>5</priority>
<is-daemon>false</is-daemon>
<max-threads>100</max-threads>
<min-threads>20</min-threads>
<min-spare-threads>20</min-spare-threads>
</thread-group>
</thread-manager>
</config>
---End---
Cory wrote:
> Thanks for the prompt response
>
> What james release are you using? Can you send us your config.xml?
>
> I'm using 2.2.0.
>
>> I don't know where is the problem but you should upgrade connector/j
>> to 3.1
>> (afaik mysql 4.1 needs connector/j 3.1).
>>
>>
> I upgraded the connector and the error isn't replicating anymore.
> I'll post again, if I can replicate it.
>
> Thanks again,
>
> --Cory
>
Re: Help needed: Could not create enough Components to service your
request.
Posted by Cory <co...@resourceworld.com>.
Thanks for the prompt response
What james release are you using? Can you send us your config.xml?
I'm using 2.2.0.
>I don't know where is the problem but you should upgrade connector/j to 3.1
>(afaik mysql 4.1 needs connector/j 3.1).
>
>
I upgraded the connector and the error isn't replicating anymore. I'll
post again, if I can replicate it.
Thanks again,
--Cory
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Help needed: Could not create enough Components to service your request.
Posted by Stefano Bagnara <ap...@bago.org>.
> 18/06/05 00:46:03 DEBUG connections: Adding one connection
> for a total of 5
> 18/06/05 00:46:03 ERROR connections: Exception executing
> client connection runner: Could not create enough Components
> to service your request.
> java.lang.Exception: Could not create enough Components to
> service your request.
> [...]
> I'm running a P4 2.4 Ghz, 1gb ram, on a Win2k with MySql 4.1, with the
> 3.0.16 JDBCMySql connector.
I don't know where is the problem but you should upgrade connector/j to 3.1
(afaik mysql 4.1 needs connector/j 3.1).
> This error will replicate every time I start the server,
> regardless of how many spool threads I have; nothwithstanding
> attempts with less than
> 5 threads.
>
> Can anyone shed some light on this for me?
What james release are you using? Can you send us your config.xml?
Stefano
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org