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 andy <an...@hazlorealidad.com> on 2005/03/28 17:51:41 UTC

James grinds to halt after sending 1000 emails + Avoiding DNS lookups when using virtual hosting.

I have a problem with Apache James that appears to be that it is not
receiving emails via smtp when the spool cache reaches a limit.

I have a program written using javamail to send emails to distribution
lists it works fine with other servers smtp but when I tried it out with
james, it sent the first 1000 emails ok and then started going very
slowly.
I spotted a configuration parameter en the config.xml that said spool
limit 1000 and so changed it to 3000 and restarted james but the same
problem occurs,

With the last hundred or so emails my program has sent aproximately half
ok and the other 50% failed with the message

problem sending OSCAR javax.mail.SendFailedException: Sending failed;
nested exception is: javax.mail.MessagingException: 354 Ok Send data
ending with .

I have connected via telnet and sent a message everything works except
that
the telnet session hangs after entering enter . enter

I assume that it is waiting to send a message in order to receive the
message.
and that javamail times out the connection.

Is this correct?

My program uses one thread to send the mail and there is no delay
between
sending one and the next. It is possible that there is a bug in my
program but
if that is the case I dont understand why it should work fine with
sendmail.

Also in what circumstances does the following line appear:
24/03/05 11:54:39 ERROR smtpserver: SMTP Connection has idled out.


Can anyone please explain what is happening?

I have attached my configuration at the end as the configuration is
rather large and I dont want to bother you by sending a huge email
messages twice I would like to ask you all about another question. 


I have another problem with the configuration and that is that I am
using a firewall, so the internal server has a private Ip and the DLINK
DI-514 router the public Ip, unfortunately the router doesnt seem to be
smart enough to forward packets from the private network with the
destination address of the public ip, on to the private ip of the
server. In short from internet it works fine connecting to the public ip
port 25 but from my private network it doesnt. I could setup a private
dns with the private addresses but it seems like an overkill, and also I
would have to run 2 dns on the same machine which I would prefer not to
do. Is there anyway from the configuration to treat the virtual hosts as
local hosts and use 127.0.0.1 instead of trying to do a dns lookup, or
is there a mistake in my config.

In /etc/hosts I have
127.0.0.1       hazlo.hazlorealidad.com ...

and hostname gives
hazlo.hazlorealidad.com

InetAddress addr=InetAddress.getByName("hazlo.hazlorealidad.com");
System.out.println(addr);
gives
hazlo.hazlorealidad.com/127.0.0.1 


The problem is that if a user global at globalfastmoney.com sends a
message to andy at hazlorealidad.com then the following happens

28/03/05 10:28:09 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool28/03/05 10:28:09
DEBUG smtpserver: Getting SMTPHandler from pool.
28/03/05 10:28:09 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com (127.0.0.1)
28/03/05 10:28:09 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP Server (JAMES SMTP Server 2.2.0) ready Mon, 28 Mar 2005 10:28:09
-0500 (COT)
28/03/05 10:28:09 DEBUG smtpserver: Calling start()
28/03/05 10:28:09 DEBUG smtpserver: Watchdog default Worker #14 has time
to sleep 360000
28/03/05 10:28:09 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
28/03/05 10:28:09 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
28/03/05 10:28:09 DEBUG smtpserver: Calling reset() default Worker #14
28/03/05 10:28:09 DEBUG smtpserver: Command received: MAIL From:<global
at hazlo.hazlorealidad.com>
28/03/05 10:28:09 DEBUG smtpserver: Sent: 250 Sender <global at
hazlo.hazlorealidad.com> OK
28/03/05 10:28:09 DEBUG smtpserver: Calling reset() default Worker #14
28/03/05 10:28:09 DEBUG smtpserver: Command received: RCPT To:<andy at
hazlo.hazlorealidad.com>
28/03/05 10:28:09 DEBUG smtpserver: Sent: 250 Recipient <andy at
hazlo.hazlorealidad.com> OK
28/03/05 10:28:09 DEBUG smtpserver: Calling reset() default Worker #14
28/03/05 10:28:09 DEBUG smtpserver: Command received: DATA
28/03/05 10:28:09 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
28/03/05 10:28:20 INFO  smtpserver: Successfully spooled mail
Mail1112023689637-54 from global at hazlo.hazlorealidad.com for [andy at
hazlo.hazlorealidad.com]
28/03/05 10:28:20 DEBUG smtpserver: Sent: 250 Message received
28/03/05 10:28:20 DEBUG smtpserver: Calling reset() default Worker #14
28/03/05 10:28:20 DEBUG smtpserver: Command received: QUIT
28/03/05 10:28:20 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service closing transmission channel
28/03/05 10:28:20 DEBUG smtpserver: Calling stop() default Worker #14
28/03/05 10:28:20 DEBUG smtpserver: Closing socket.
28/03/05 10:28:20 DEBUG smtpserver: Calling disposeWatchdog() default
Worker #14
28/03/05 10:28:20 DEBUG smtpserver: Watchdog default Worker #14 is
exiting run().
28/03/05 10:28:20 DEBUG smtpserver: Returning SMTPHandler to pool.
28/03/05 10:28:20 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
28/03/05 10:28:28 INFO  James.Mailet: RemoteDelivery: Could not connect
to SMTP host: 200.116.255.19, port: 25;
  nested exception is:
        java.net.ConnectException: connection to 200.116.255.19 timed
out



In the logs and config all @ have been replaced by " at "


Thanks in advance



Andy Bailey
Hazlorealidad.com


smtp logfile

24/03/05 11:20:04 DEBUG smtpserver: Calling disposeWatchdog() for
inactive
watchdog
24/03/05 11:20:04 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:20:04 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:25:51 DEBUG smtpserver: Watchdog default Worker #7 has time
to
sleep 360000
24/03/05 11:26:07 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:26:07 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:26:07 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com
(127.0.0.1)
24/03/05 11:26:07 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:26:07 -0500
(COT)
24/03/05 11:26:07 DEBUG smtpserver: Calling start()
24/03/05 11:26:07 DEBUG smtpserver: Watchdog default Worker #11 has time
to
sleep 360000
24/03/05 11:26:07 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
24/03/05 11:26:07 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello
hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
24/03/05 11:26:07 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:26:07 DEBUG smtpserver: Command received: MAIL
FROM:<andy at hazlorealidad.com>
24/03/05 11:26:07 DEBUG smtpserver: Sent: 250 Sender <andy at
hazlorealidad.com>
OK
24/03/05 11:26:07 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:26:07 DEBUG smtpserver: Command received: RCPT
TO:<gerfer2 at epm.net.co>
24/03/05 11:26:07 DEBUG smtpserver: Sent: 250 Recipient <gerfer2 at
epm.net.co>
OK
24/03/05 11:26:07 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:26:07 DEBUG smtpserver: Command received: RCPT
TO:<ventas at web-creativa.com>
24/03/05 11:26:07 DEBUG smtpserver: Sent: 250 Recipient
<ventas at web-creativa.com> OK
24/03/05 11:26:07 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:26:07 DEBUG smtpserver: Command received: DATA
24/03/05 11:26:07 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:26:35 INFO  smtpserver: Successfully spooled mail
Mail1111681191173-264 from info at proyecto-armonia.com for
[bmcaicedo at elpoli.edu.co]
24/03/05 11:26:35 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:26:35 DEBUG smtpserver: Command received: QUIT
24/03/05 11:26:35 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service
closing transmission channel
24/03/05 11:26:35 DEBUG smtpserver: Calling stop() default Worker #7
24/03/05 11:26:35 DEBUG smtpserver: Closing socket.
24/03/05 11:26:35 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#7
24/03/05 11:26:35 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:26:35 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:26:35 DEBUG smtpserver: Watchdog default Worker #7 is
exiting
run().
24/03/05 11:26:35 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:26:35 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:26:35 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com
(127.0.0.1)
24/03/05 11:26:35 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:26:35 -0500
(COT)
24/03/05 11:26:35 DEBUG smtpserver: Calling start()
24/03/05 11:26:35 DEBUG smtpserver: Watchdog default Worker #6 has time
to
sleep 360000
24/03/05 11:26:35 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
24/03/05 11:26:35 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello
hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Command received: MAIL
FROM:<info at proyecto-armonia.com>
24/03/05 11:26:35 DEBUG smtpserver: Sent: 250 Sender
<info at proyecto-armonia.com> OK
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Command received: RCPT
TO:<seraginte at hotmail.com>
24/03/05 11:26:35 DEBUG smtpserver: Sent: 250 Recipient
<seraginte at hotmail.com> OK
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Command received: DATA
24/03/05 11:26:35 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:26:35 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:27:10 INFO  smtpserver: Successfully spooled mail
Mail1111681567980-266 from andy at hazlorealidad.com for [gerfer2 at
epm.net.co,
ventas at web-creativa.com]
24/03/05 11:27:10 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:27:10 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:27:10 DEBUG smtpserver: Command received: RSET
24/03/05 11:27:10 DEBUG smtpserver: Sent: 250 OK
24/03/05 11:27:10 DEBUG smtpserver: Calling reset() default Worker #11
24/03/05 11:27:10 DEBUG smtpserver: Command received: QUIT
24/03/05 11:27:10 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service
closing transmission channel
24/03/05 11:27:10 DEBUG smtpserver: Calling stop() default Worker #11
24/03/05 11:27:10 DEBUG smtpserver: Closing socket.
24/03/05 11:27:10 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#11
24/03/05 11:27:10 DEBUG smtpserver: Watchdog default Worker #11 is
exiting
run().
24/03/05 11:27:10 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:27:10 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:30:11 INFO  smtpserver: Successfully spooled mail
Mail1111681595350-267 from info at proyecto-armonia.com for
[seraginte at hotmail.com]
24/03/05 11:30:11 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #6
24/03/05 11:30:11 DEBUG smtpserver: Command received: QUIT
24/03/05 11:30:11 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service
closing transmission channel
24/03/05 11:30:11 DEBUG smtpserver: Calling stop() default Worker #6
24/03/05 11:30:11 DEBUG smtpserver: Closing socket.
24/03/05 11:30:11 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#6
24/03/05 11:30:11 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:30:11 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:30:11 DEBUG smtpserver: Watchdog default Worker #6 is
exiting
run().
24/03/05 11:30:11 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:30:11 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:30:11 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com
(127.0.0.1)
24/03/05 11:30:11 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:30:11 -0500
(COT)
24/03/05 11:30:11 DEBUG smtpserver: Calling start()
24/03/05 11:30:11 DEBUG smtpserver: Watchdog default Worker #13 has time
to
sleep 360000
24/03/05 11:30:11 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
24/03/05 11:30:11 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello
hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Command received: MAIL
FROM:<info at proyecto-armonia.com>
24/03/05 11:30:11 DEBUG smtpserver: Sent: 250 Sender
<info at proyecto-armonia.com> OK
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Command received: RCPT
TO:<jonykg at hotmail.com>
24/03/05 11:30:11 DEBUG smtpserver: Sent: 250 Recipient <jonykg at
hotmail.com>
OK
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Command received: DATA
24/03/05 11:30:11 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:30:11 DEBUG smtpserver: Calling reset() default Worker #13
24/03/05 11:36:11 DEBUG smtpserver: Watchdog default Worker #13 has time
to
sleep 360000
24/03/05 11:40:35 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:40:35 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:40:35 INFO  smtpserver: Connection from
mysql7.worldispnetwork.com
(66.160.175.24)
24/03/05 11:40:35 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:40:35 -0500
(COT)
24/03/05 11:40:35 DEBUG smtpserver: Calling start()
24/03/05 11:40:35 DEBUG smtpserver: Watchdog default Worker #16 has time
to
sleep 360000
24/03/05 11:40:35 DEBUG smtpserver: Command received: HELO
mail9.worldispnetwork.com
24/03/05 11:40:35 DEBUG smtpserver: Sent: 250-hazlo.hazlorealidad.com
Hello
mail9.worldispnetwork.com (mysql7.worldispnetwork.com [66.160.175.24])
24/03/05 11:40:35 DEBUG smtpserver: Sent: 250-AUTH LOGIN PLAIN
24/03/05 11:40:35 DEBUG smtpserver: Sent: 250 AUTH=LOGIN PLAIN
24/03/05 11:40:35 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:40:36 DEBUG smtpserver: Command received: MAIL
FROM:<mercadeomedellin at palosdemoguer.com>
24/03/05 11:40:36 DEBUG smtpserver: Sent: 250 Sender
<mercadeomedellin at palosdemoguer.com> OK
24/03/05 11:40:36 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:40:36 DEBUG smtpserver: Command received: RCPT
TO:<andy at hazlorealidad.com>
24/03/05 11:40:36 DEBUG smtpserver: Sent: 250 Recipient
<andy at hazlorealidad.com> OK
24/03/05 11:40:36 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:40:36 DEBUG smtpserver: Command received: DATA
24/03/05 11:40:36 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:40:37 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:40:37 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:40:59 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:40:59 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:40:59 INFO  smtpserver: Connection from 221.140.55.129
(221.140.55.129)
24/03/05 11:40:59 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:40:59 -0500
(COT)
24/03/05 11:40:59 DEBUG smtpserver: Calling start()
24/03/05 11:40:59 DEBUG smtpserver: Watchdog default Worker #14 has time
to
sleep 360000
24/03/05 11:40:59 DEBUG smtpserver: Command received: HELO
200.116.255.19
24/03/05 11:40:59 DEBUG smtpserver: Sent: 250-hazlo.hazlorealidad.com
Hello
200.116.255.19 (221.140.55.129 [221.140.55.129])
24/03/05 11:40:59 DEBUG smtpserver: Sent: 250-AUTH LOGIN PLAIN
24/03/05 11:40:59 DEBUG smtpserver: Sent: 250 AUTH=LOGIN PLAIN
24/03/05 11:40:59 DEBUG smtpserver: Calling reset() default Worker #14
24/03/05 11:41:00 DEBUG smtpserver: Command received: MAIL FROM:
<rltuqs11 at daum.net>
24/03/05 11:41:00 DEBUG smtpserver: Sent: 250 Sender <rltuqs11 at
daum.net> OK
24/03/05 11:41:00 DEBUG smtpserver: Calling reset() default Worker #14
24/03/05 11:41:00 DEBUG smtpserver: Command received: RCPT TO:
<smtphunter11 at daum.net>
24/03/05 11:41:00 DEBUG smtpserver: Sent: 530 Authentication Required
24/03/05 11:41:00 ERROR smtpserver: Rejected message - authentication is
required for mail request
24/03/05 11:41:00 DEBUG smtpserver: Calling reset() default Worker #14
24/03/05 11:41:00 DEBUG smtpserver: Calling stop() default Worker #14
24/03/05 11:41:00 DEBUG smtpserver: Closing socket.
24/03/05 11:41:00 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#14
24/03/05 11:41:00 DEBUG smtpserver: Watchdog default Worker #14 is
exiting
run().
24/03/05 11:41:00 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:41:00 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:42:11 DEBUG smtpserver: Watchdog default Worker #13 has time
to
sleep -9
24/03/05 11:42:11 ERROR smtpserver: SMTP Connection has idled out.
24/03/05 11:42:11 DEBUG smtpserver: Watchdog default Worker #13 is
exiting
run().
24/03/05 11:42:11 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:42:11 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:42:11 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com
(127.0.0.1)
24/03/05 11:42:11 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:42:11 -0500
(COT)
24/03/05 11:42:11 DEBUG smtpserver: Calling start()
24/03/05 11:42:11 DEBUG smtpserver: Watchdog default Worker #7 has time
to
sleep 360000
24/03/05 11:42:11 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
24/03/05 11:42:11 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello
hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Command received: MAIL
FROM:<info at proyecto-armonia.com>
24/03/05 11:42:11 DEBUG smtpserver: Sent: 250 Sender
<info at proyecto-armonia.com> OK
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Command received: RCPT
TO:<aybitpa at epm.net.co>
24/03/05 11:42:11 DEBUG smtpserver: Sent: 250 Recipient <aybitpa at
epm.net.co>
OK
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Command received: DATA
24/03/05 11:42:11 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:11 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:30 INFO  smtpserver: Successfully spooled mail
Mail1111682436591-271 from mercadeomedellin at palosdemoguer.com for
[andy at hazlorealidad.com]
24/03/05 11:42:30 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:42:30 DEBUG smtpserver: Calling reset() default Worker #16
24/03/05 11:42:30 DEBUG smtpserver: Command received: QUIT
24/03/05 11:42:30 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service
closing transmission channel
24/03/05 11:42:30 DEBUG smtpserver: Calling stop() default Worker #16
24/03/05 11:42:30 DEBUG smtpserver: Closing socket.
24/03/05 11:42:30 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#16
24/03/05 11:42:30 DEBUG smtpserver: Watchdog default Worker #16 is
exiting
run().
24/03/05 11:42:30 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:42:30 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:42:39 INFO  smtpserver: Successfully spooled mail
Mail1111682531280-272 from info at proyecto-armonia.com for [aybitpa at
epm.net.co]
24/03/05 11:42:39 INFO  smtpserver: Successfully spooled mail
Mail1111681811101-269 from info at proyecto-armonia.com for [jonykg at
hotmail.com]
24/03/05 11:42:39 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #7
24/03/05 11:42:39 DEBUG smtpserver: Command received: QUIT
24/03/05 11:42:39 DEBUG smtpserver: Sent: 221 hazlo.hazlorealidad.com
Service
closing transmission channel
24/03/05 11:42:39 DEBUG smtpserver: Calling stop() default Worker #7
24/03/05 11:42:39 DEBUG smtpserver: Closing socket.
24/03/05 11:42:39 DEBUG smtpserver: Calling disposeWatchdog() default
Worker
#7
24/03/05 11:42:39 DEBUG smtpserver: Watchdog default Worker #7 is
exiting
run().
24/03/05 11:42:39 DEBUG smtpserver: Sent: 250 Message received
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() for inactive
watchdog
24/03/05 11:42:39 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:42:39 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:42:39 ERROR smtpserver: Socket to hazlo.hazlorealidad.com
(127.0.0.1) closed remotely.
java.net.SocketException: Socket closed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.read1
(BufferedInputStream.java:220)
        at java.io.BufferedInputStream.read
(BufferedInputStream.java:277)
        at
sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
        at sun.nio.cs.StreamDecoder$CharsetSD.implRead
(StreamDecoder.java:450)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.BufferedReader.fill(BufferedReader.java:136)
        at java.io.BufferedReader.read(BufferedReader.java:157)
        at
org.apache.james.util.CRLFTerminatedReader.readLine
(CRLFTerminatedReader.java:98)
        at
org.apache.james.smtpserver.SMTPHandler.readCommandLine
(SMTPHandler.java:505)
        at
org.apache.james.smtpserver.SMTPHandler.handleConnection
(SMTPHandler.java:358)
        at
org.apache.james.util.connection.ServerConnection
$ClientConnectionRunner.run(ServerConnection.java:417)
        at
org.apache.james.util.thread.ExecutableRunnable.execute
(ExecutableRunnable.java:55)
        at org.apache.james.util.thread.WorkerThread.run
(WorkerThread.java:90)
24/03/05 11:42:39 DEBUG smtpserver: Calling disposeWatchdog() for
inactive
watchdog
24/03/05 11:42:39 DEBUG smtpserver: Returning SMTPHandler to pool.
24/03/05 11:42:39 DEBUG smtpserver: Returning a
org.apache.james.smtpserver.SMTPHandler to the pool
24/03/05 11:42:39 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:42:39 DEBUG smtpserver: Getting SMTPHandler from pool.
24/03/05 11:42:39 INFO  smtpserver: Connection from
hazlo.hazlorealidad.com
(127.0.0.1)
24/03/05 11:42:39 DEBUG smtpserver: Sent: 220 hazlo.hazlorealidad.com
SMTP
Server (JAMES SMTP Server 2.2.0) ready Thu, 24 Mar 2005 11:42:39 -0500
(COT)
24/03/05 11:42:39 DEBUG smtpserver: Calling start()
24/03/05 11:42:39 DEBUG smtpserver: Watchdog default Worker #8 has time
to
sleep 359999
24/03/05 11:42:39 DEBUG smtpserver: Command received: EHLO
hazlo.hazlorealidad.com
24/03/05 11:42:39 DEBUG smtpserver: Sent: 250 hazlo.hazlorealidad.com
Hello
hazlo.hazlorealidad.com (hazlo.hazlorealidad.com [127.0.0.1])
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Command received: MAIL
FROM:<info at proyecto-armonia.com>
24/03/05 11:42:39 DEBUG smtpserver: Sent: 250 Sender
<info at proyecto-armonia.com> OK
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Command received: RCPT
TO:<mleonorcalle at epm.net.co>
24/03/05 11:42:39 DEBUG smtpserver: Sent: 250 Recipient
<mleonorcalle at epm.net.co> OK
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Command received: DATA
24/03/05 11:42:39 DEBUG smtpserver: Sent: 354 Ok Send data ending with
<CRLF>.<CRLF>
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:42:39 DEBUG smtpserver: Calling reset() default Worker #8
24/03/05 11:48:39 DEBUG smtpserver: Watchdog default Worker #8 has time
to
sleep 360000
24/03/05 11:54:39 DEBUG smtpserver: Watchdog default Worker #8 has time
to
sleep -16
24/03/05 11:54:39 ERROR smtpserver: SMTP Connection has idled out.
24/03/05 11:54:39 DEBUG smtpserver: Watchdog default Worker #8 is
exiting
run().
24/03/05 11:54:39 DEBUG smtpserver: Retrieving a
org.apache.james.smtpserver.SMTPHandler from the pool
24/03/05 11:54:39 DEBUG smtpserver: Getting SMTPHandler from pool.


etc


Config
<?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">
]>

<!--  Configuration file for the ASF James server -->

<!--  This file contains important settings that control the behaviour
-->
<!--  of all of the services and repositories. -->

<!--                               README!                            --
>

<!-- This configuration file is designed to run without alteration for
simple tests. -->
<!-- It assumes you have a DNS server on localhost and assigns a root
password of root. -->

<!-- In case the defaults do not suit you, the items you are most likely
to need to change -->
<!-- are preceded by a CHECKME! or CONFIRM? comment in the left margin.
-->

<!-- For production use you will probably need to make more extensive
changes, see -->
<!-- http://james.apache.org/documentation_2_1.html -->

<!-- $Revision: 1.40.2.26 $ Committed on $Date: 2004/06/16 02:42:08 $
by: $Author: noel $ -->

<config>
   <James>

<!-- CHECKME! -->
      <!-- This is the postmaster email address for this mail server. --
>
      <!-- Set this to the appropriate email address for error reports
-->
      <!-- If this is set to a non-local email address, the mail server
-->
      <!-- will still function, but will generate a warning on startup.
-->
      <postmaster>postmaster at localhost</postmaster>

      <!-- servernames identifies the DNS namespace served by this
instance of James. -->
      <!-- These servernames are used for both matcher/mailet processing
and SMTP auth -->
      <!-- to determine when a mail is intended for local delivery. -->
      <!-- -->
      <!-- If autodetect is TRUE, James wil attempt to discover its own
host name AND -->
      <!-- use any explicitly specified servernames. -->
      <!-- If autodetect is FALSE, James will use only the specified
servernames. -->
      <!-- -->
      <!-- If autodetectIP is not FALSE, James will also allow add the
IP address for each servername. -->
      <!-- The automatic IP detection is to support RFC 2821, Sec 4.1.3,
address literals. -->
      <!-- -->
      <!-- To override autodetected server names simply add explicit
servername elements. -->
      <!-- In most cases this will be necessary. -->
      <!-- By default, the servername 'localhost' is specified. This can
be removed, if required. -->
      <!-- -->
      <!-- Warning: If you are using fetchpop it is important to include
the -->
      <!-- fetched domains in the server name list to prevent looping.
-->
      <servernames autodetect="false" autodetectIP="true">
<!-- CONFIRM? -->
         <servername>hazlorealidad.com</servername>
         <servername>hazlo.hazlorealidad.com</servername>
         <servername>globalfastmoney.com</servername>
         <servername>localhost</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="db://maildb/inbox/" type="MAIL"/>
      </inboxRepository>

      <!-- Alternative inbox repository definition for DB use. -->
      <!-- The format for the destinationURL is "db://<data-
source>/<table>" -->
      <!-- <data-source> is the datasource name set up in the database-
connections block, below -->
      <!-- <table> is the name of the table to store user inboxes in -->
      <!-- The user name is used as <repositoryName> for this repository
config. -->
      <!--
      <inboxRepository>
         <repository destinationURL="file://var/mail/inboxes/"
type="MAIL"/>
         <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>
      -->

      <!-- Alternative inbox repository definition for mbox use. -->
      <!-- This method uses UNIX standard mbox files and is meant for
people using mbox files -->
      <!-- with systems such as mail list archive displayers -->
      <!-- Note that dot-locking is not currently supported -->
      <!-- so network (write) accesses may cause mbox corruption -->
      <!-- the sample mbox URL is an absolute URL; mbox:///var/mail will
put the users mbox files in /var/mail/-->
      <!--
      <inboxRepository>
         <repository destinationURL="mbox:///var/mail/" type="MAIL"/>
      </inboxRepository>
      -->
   </James>

   <!-- Fetch pop block, fetches mail from POP3 servers and inserts it
into the incoming spool -->
   <!-- Warning: It is important to prevent mail from looping by setting
the  -->
   <!-- fetched domains in the <servernames> section of the <James>
block     -->
   <!-- above. This block is disabled by default.
-->
   <!-- FetchPOP is being deprecated in favor of FetchMail
-->
    <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>

    <!-- This is an example configuration for FetchMail, a JavaMail
based gateway  -->
    <!-- service that pulls messages from other sources, and inserts
them into the -->
    <!-- spool.  They are then processed normally, although FetchMail
generally    -->
    <!-- has to fabricate some of the envelope information.  FetchMail
should be   -->
    <!-- considered a mail gateway, rather than a relay, in RFC terms.
-->
    <!-- Fetchmail is a functionally richer replacement for FetchPOP.
-->
    <!-- CHECKME: FetchMail is disabled by default, and must be
configured to use. -->
    <!-- Edit the file referred to by fetchmailConfig to enable and
configure.     -->
    &fetchmailConfig;

   <!-- The James Spool Manager block  -->
   <!-- -->
   <!-- This block is responsible for processing messages on the spool.
-->
   <spoolmanager>
      <!-- Number of spool threads -->
      <threads> 10 </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. -->
         <!-- Useful for detecting and eliminating spam. -->
         <!-- For this block to function, the spam processor must be
configured. -->
         <!--
         <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 at middle-earth=sauron at
mordor</mapping> -->
            <!-- 1:n mapping i-->
            <!-- <mapping>istari at middle-earth=saruman at
isengard;radigast;gandalf</mapping> -->
            <!-- DSN mapping -->
            <!-- <mapping>boromir at osgilliath=error:550 Requested
action not taken: no such user here</mapping>-->
            <!-- regex based mapping -->
            <!-- <mapping>* at osgilliath=regex:(.*) at osgilliath:${1}
at minas-tirith</mapping> -->
            <mapping>* at hazlorealidad.com=andy at
hazlorealidad.com</mapping>
            <mapping>* at globalfastmoney.com=global at
globalfastmoney.com</mapping>
            <!-- both standard and regex mapping -->
            <!-- <mapping>ring at *=onering at mordor;regex:ring at
(.*):ring at ${1}</mapping>-->
            <!-- conditional regex mapping example -->
            <!-- <mapping>* at listserver=regex:(.*)-on at listserver:
${1}-subscribe at listserver;
                                  regex:(.*)-off at listserver:${1}-
unsubscribe at listserver 
            </mapping>-->
         </mailet>

         <!-- White List:
              If you use block lists, you will probably want to check
              for known permitted senders.  This is particularly true
              if you use more aggressive block lists, such as SPEWS,
              that are prone to block entire subnets without regard
              for non-spamming senders.
          -->

         <!-- specific known senders -->
         <!--
         <mailet match="SenderIs=goodboy at 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 -->
         <!-- This set of matchers/mailets redirect all emails from
known -->
         <!-- black holes, open relays, and spam servers to the spam
processor -->
         <!-- For this set to function properly, the spam processor must
be configured. -->
         <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 at 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> db://maildb/deadletter/error
</repositoryPath>
            <!-- An alternative database repository example follows. -->
            <!--
            <repositoryPath> file://var/mail/error/</repositoryPath>
            <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;
        -->

         <!-- Is the recipient is for a local account, deliver it
locally -->
         <mailet match="RecipientIsLocal" class="LocalDelivery"/>

         <!-- If the host is handled by this server and it did not get
-->
         <!-- locally delivered, this is an invalid recipient -->
         <mailet match="HostIsLocal" class="ToProcessor">
            <processor> local-address-error </processor>
            <notice>550 - Requested action not taken: no such user
here</notice>
         </mailet>

<!-- CHECKME! -->
         <!-- This is an anti-relay matcher/mailet combination -->
         <!-- -->
         <!-- Emails sent from servers not in the network list are  -->
         <!-- rejected as spam.  This is one method of preventing your
-->
         <!-- server from being used as an open relay.  Make sure you
understand -->
         <!-- how to prevent your server from becoming an open relay
before -->
         <!-- changing this configuration. See also
<authorizedAddresses> in SMTP Server -->
         <!-- -->
         <!-- This matcher/mailet combination must come after local
delivery has -->
         <!-- been performed.  Otherwise local users will not be able to
receive -->
         <!-- email from senders not in this remote address list. -->
         <!-- -->
         <!-- If you are using this matcher/mailet you will probably
want to -->
         <!-- update the configuration to include your own
network/addresses.  The -->
         <!-- matcher can be configured with a comma separated list of
IP addresses  -->
         <!-- wildcarded IP subnets, and wildcarded hostname subnets. --
>
         <!-- e.g. "RemoteAddrNotInNetwork=127.0.0.1, abc.de.*,
192.168.0.*" -->
         <!-- -->
         <!-- If you are using SMTP authentication then you can (and
generally -->
         <!-- should) disable this matcher/mailet pair. -->
         <mailet match="RemoteAddrNotInNetwork=127.0.0.1,192.168.0.*"
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> db://maildb/spool/outgoing </outgoing>
            <!-- alternative database repository example below -->
            <!--
            <outgoing> file://var/mail/outgoing/ </outgoing>
            <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>
            <delayTime>  2 hours </delayTime>
            <delayTime>  3 hours </delayTime>
            <delayTime>  6 hours </delayTime>
            <maxRetries> 25 </maxRetries>

            <!-- The number of threads that should be trying to deliver
outgoing messages -->
            <deliveryThreads> 1 </deliveryThreads>

            <!-- If false the message will not be sent to given server
if any recipients fail -->
            <sendpartial>false</sendpartial>

            <!-- A single mail server to deliver all outgoing messages.
-->
            <!-- This is useful if this server is a backup or failover
machine, -->
            <!-- or if you want all messages to be routed through a
particular mail server, -->
            <!-- regardless of the email addresses specified in the
message -->
            <!-- -->
            <!-- The gateway element specifies the gateway SMTP server
name. -->
            <!-- If your gateway mail server is listening on a port
other than 25, -->
            <!-- you can set James to connect to it on that port using
the gatewayPort -->
            <!-- element. -->
            <!-- Although normally multiple addresses are implemented
through proper -->
            <!-- DNS configuration, the RemoteDelivery mail does allow
specifying -->
            <!-- multiple gateway elements, each of which may also have
a port -->
            <!-- e.g., mygateway:2525 -->
            <!-- the gatewayPort element is used as a default -->
            <!--
            <gateway> otherserver.mydomain.com </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> db://maildb/deadletter/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>file://var/mail/spam/</repositoryPath>
            <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">
         <!-- 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 message had an invalid
address, uncomment this matcher/mailet configuration -->
         <!--
         <mailet match="All" class="NotifyPostmaster"/>
         -->

         <mailet match="All" class="ToRepository">
            <repositoryPath> db://maildb/deadletter/address-error
</repositoryPath>
            <!-- An alternative database repository example follows. -->
            <!--
            <repositoryPath> file://var/mail/address-
error/</repositoryPath>
            <repositoryPath> db://maildb/deadletter/address-error
</repositoryPath>
            -->
         </mailet>
      </processor>

      <!-- This processor handles messages that are for foreign domains,
where relaying is denied -->
      <!-- As of James v2.2, this processor can be deprecated by using
the <authorizedAddresses> tag
           in the SMTP Server, and rejecting the message in the protocol
transaction.  -->
      <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> db://maildb/deadletter/relay-denied
</repositoryPath>
            <!-- An alternative database repository example follows. -->
            <!--
            <repositoryPath>file://var/mail/relay-
denied/</repositoryPath>
            <repositoryPath> db://maildb/deadletter/relay-denied
</repositoryPath>
            -->
         </mailet>
      </processor>
   </spoolmanager>

   <!-- DNS Server Block -->
   <!-- -->
   <!-- Specifies DNS Server information for use by various components
inside -->
   <!-- James. -->
   <!-- -->
   <!-- If autodiscover is true, James will attempt to autodiscover the
DNS servers configured on your underlying system.-->
   <!-- Currently, this works if the OS has a unix-
like /etc/resolv.conf,-->
   <!-- or the system is Windows based with ipconfig or winipcfg.-->
   <!-- -->
   <!-- If no DNS servers are found and you have not specified any
below, 127.0.0.1 will be used-->
   <!-- If you use autodiscover and add DNS servers manually a
combination of all the dns servers will be used  -->
   <!--  -->
   <!-- Information includes a list of DNS Servers to be used by James.
These are -->
   <!-- specified by the server elements, each of which is a child
element of the -->
   <!-- servers element.  Each server element is the IP address of a
single DNS server. -->
   <!-- The servers element can have multiple server children. -->
   <dnsserver>
      <servers>
         <!--Enter ip address of your DNS server, one IP address per
server -->
         <!-- element. -->
         <!--
          <server>127.0.0.1</server>
         -->
          <server>192.168.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>-->
      <autodiscover>false</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>
         <!-- This is the name used by the server to identify itself in
the RemoteManager -->
         <!-- 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>
         <administrator_accounts>
<!-- CHECKME! changed andy -->
            <!-- Change the default login/password. -->
            <account login="root" password="1tsasecret"/>
         </administrator_accounts>
         <connectiontimeout> 60000 </connectiontimeout>
      </handler>
   </remotemanager>

    <!-- The POP3 server is enabled by default -->
    <!-- Disabling blocks will stop them from listening, -->
    <!-- but does not free as many resources as removing them would -->
   <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>
         <!-- This is the name used by the server to identify itself in
the POP3 -->
         <!-- 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>
      </handler>
   </pop3server>

    <!-- The SMTP server is enabled by default -->
    <!-- Disabling blocks will stop them from listening, -->
    <!-- but does not free as many resources as removing them would -->
   <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>
         <!-- This is the name used by the server to identify itself in
the SMTP -->
         <!-- 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>360000</connectiontimeout>

         <!--  Uncomment this if you want to require SMTP
authentication. -->
         <!--
	andy
         -->
         <authRequired>true</authRequired>

<!-- CHECKME! -->
         <!--  Uncomment this if you want to authorize specific
addresses/networks.
               If you use SMTP AUTH, addresses that match those
specified here will
               be permitted to relay without SMTP AUTH.  If you do not
use SMTP
               AUTH, and you specify addreses here, then only addresses
that match
               those specified will be permitted to relay.

               Addresses may be specified as a an IP address or domain
name, with an
               optional netmask, e.g.,

               127.*, 127.0.0.0/8, 127.0.0.0/255.0.0.0, and localhost/8
are all the same

               See also the RemoteAddrNotInNetwork matcher in the
transport processor.
               You would generally use one OR the other approach.
         -->
         <authorizedAddresses>127.0.0.0/8</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 -->
    <!-- Disabling blocks will stop them from listening, -->
    <!-- but does not free as many resources as removing them would -->
    <!-- NNTP-specific: if you disable the NNTP Server, you should also
set the nntp-repository's
         threadCount to 0, otherwise there will be threads active and
polling  -->
	<!-- changed to false andy -->
   <nntpserver enabled="false">
   <!-- THE NNTP PROTOCOL IS EXPERIMENTAL AND NOT AS WELL TESTED AS SMTP
AND POP3 IN THIS RELEASE.
        The James project recommends that you check the James web site
for updates to the NNTP
        service.  -->
      <!-- port 563 is the well-known/IANA registered port for NNTP over
SSL/TLS -->
      <!-- port 119 is the well-known/IANA registered port for Standard
NNTP -->
      <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. -->
      <!-- Groups here will be added to those found in the file system,
           but removing groups from here will NOT remove them from the
           server.  Change <newsgroups> to <newsgroups only="true"> to
           restrict newsgroups to ONLY those found in this list.  -->
      <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>1</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>3000</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>3000</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 -->
      <!-- The spool repository is the location where incoming mails are
temporarily stored -->
      <!-- before being processed. -->
      <spoolRepository>
         <repository destinationURL="db://maildb/spool/spool"
type="SPOOL"/>
      </spoolRepository>

      <!-- Alternative spool repository definition for JDBC use -->
      <!--
      <spoolRepository>
         <repository destinationURL="file://var/mail/spool/"
type="SPOOL"/>
      </spoolRepository>
      <spoolRepository>
         <repository destinationURL="db://maildb/spool/spool"
type="SPOOL"/>
      </spoolRepository>
      -->

      <!-- Alternative spool repository definition for JDBC use -->
      <!-- Stores message body in file system, rest in database -->
      <!--
      <spoolRepository>
         <repository destinationURL="dbfile://maildb/spool/spool"
type="SPOOL"/>
      </spoolRepository>
      -->
   </mailstore>


   <!-- The User Storage block -->
   <users-store>
      <!-- Configure User Repositories here. -->
      <!-- -->
      <!-- User repositories are required for the following purposes: --
>
      <!--    - storing James user information, including forwards,
aliases, -->
      <!--      and authentication data. -->
      <!--    - holding lists of users for the listserv mailet -->
      <!-- Currently, two different storage options are available: -->
      <!--    - file-based storage using Java serialization -->
      <!--    - database-backed storage -->
      <!-- (Use of database or file-system is defined on a "per-
repository" basis) -->
      <!-- -->
      <!-- Note: One user repository is required for James: -->
      <!--   LocalUsers - the users for whom you are providing POP3,
NNTP, or SMTP service -->
      <!-- -->
      <!-- Other repositories may be used by matchers or mailets. -->

      <!-- Default: File-based user repositories  Use these
configurations to store user info in the filesystem  -->
      <!-- The LocalUsers repository, for storing James' User info. -->
      <!--
      <repository name="LocalUsers"
class="org.apache.james.userrepository.UsersFileRepository">
         <destination URL="file://var/users/"/>
      </repository>
      -->

      <!-- Database backed user repositories -->
      <!-- -->
      <!-- Use these configurations to store user info in a database. --
>
      <!-- Note: The <data-source> element must refer to a connection
configured -->
      <!--       in the <database-connections> configuration section. --
>

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

      <!-- This is an example configuration including configuration for
a list server. -->
      <!-- CHECKME: before uncommenting this, edit the configuration
file's contents   -->
      <!--
        &listserverStores;
      -->

   </users-store>

   <!-- The database-connections block -->
   <database-connections>
      <!-- These connections are referred to by name elsewhere in the
config file -->
<!-- CHECKME! -->
      <!-- To allow James to use a database you must configure the
database connection here. -->
      <!-- If you are not using a database, you can leave this section
unchanged. -->
      <!-- These connections are referred to by name in URLs elsewhere
in the config file. -->
      <data-sources>
         <!--
              James has previously used an in-house connection pool,
Mordred.
              Mordred is being deprecated in favor of Jakarta Commons
DBCP.
              To use DBCP:    org.apache.james.util.dbcp.JdbcDataSource
              To use Mordred:
org.apache.james.util.mordred.JdbcDataSource

              Change it back, of course, to use Mordred.

              NOTE: DBCP is configured to recover from a database server
outage.
                    This, alone, may be reason for you to give it a try.
         -->
         <!-- James is distributed with a built in relevant copy of the
mm.mysql JDBC    -->
         <!-- driver.  No additional driver is needed for mysql. Read
the mm.mysql LGPL  -->
         <!-- license at apps\james\SAR-INF\lib\mm.mysql.LICENCE
-->

         <!-- JDBC driver .jar libraries for other RDBMS can be placed
in ~james/lib/  -->

         <!-- Example, connecting to a MySQL database called "mail" on
localhost-->
         <!-- -->
         <!-- The max value is the maximum number of concurrent
connections James will -->
         <!-- open to this database-->
         <!-- If you see "SQLException: Giving up... no connections
available." in your -->
         <!-- log files or bounced mail you should increase this value
-->
         <!--
	uncommented by andy
         -->
         <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>james</user>
            <password>mailer</password>
            <max>20</max>
         </data-source>

         <!-- Example, connecting to a Microsoft MSSQL database called
"mail" on localhost-->
         <!-- -->
         <!-- The max value is the maximum number of concurrent
connections James will -->
         <!-- open to this database-->
         <!-- If you see "SQLException: Giving up... no connections
available." in your -->
         <!-- log files or bounced mail you should increase this value
-->
         <!--
         <data-source name="maildb"
class="org.apache.james.util.dbcp.JdbcDataSource">
            <driver>com.inet.tds.TdsDriver</driver>
            <dburl>jdbc:inetdae7:127.0.0.1?database=James</dburl>
            <user>sa_james</user>
            <password>blahblah</password>
            <max>20</max>
         </data-source>
         -->

      </data-sources>
   </database-connections>

   <!-- Configuration for Cornerstone Services -->
   <!-- -->
   <!-- For a simple configuration, nothing beneath this line should
require -->
   <!-- alteration. -->
   <!-- -->
   <!-- You will need to adjust the Socket Manager service configuration
if you want -->
   <!-- to enable secure sockets (TLS) for any James service.
-->
   <!-- -->
   <!-- Complex or high volume configurations may require changes to the
parameters -->
   <!-- in this section.  Please read the James and Avalon documentation
before -->
   <!-- attempting to adjust this section. -->
   <!-- -->

   <!-- 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 -->
   <!-- -->
   <!-- The idle-timeout is the number of milliseconds that it will take
for idle -->
   <!-- client connections managed by this connection manager to be
marked at timed out. -->
   <!-- If no value is specified, the value defaults to 5 minutes,
300000 milliseconds -->
   <!-- A value of 0 means that client sockets will not timeout. -->
   <!-- -->
   <!-- The max-connections parameter specifies the default maximum
number of client -->
   <!-- connections that this connection manager will allow per managed
server socket. -->
   <!-- This value can be overridden by each individual service. -->
   <!-- If no value is specified, the value defaults to 30. -->
   <!-- A value of 0 means that there is no limit imposed by the
connection manager, although -->
   <!-- resource limitations imposed by other components (i.e. max # of
threads) may -->
   <!-- serve to limit the number of open connections. -->
   <!-- -->
   <connections>
      <idle-timeout>300000</idle-timeout>
      <max-connections>30</max-connections>
   </connections>

   <!-- The Socket Manager block -->
   <!-- -->
   <!-- The server-sockets element has a number of factory sub-elements.
-->
   <!-- Each of the factory elements has a name and class attribute -->
   <!-- The name attribute for each factory element must be unique.  -->
   <!-- The class attribute is the name of a class that implements the
-->
   <!-- interface
org.apache.avalon.cornerstone.services.ServerSocketFactory -->
   <!-- Specific factory elements may require some sub-elements.  This
is -->
   <!-- factory class dependent. -->
   <!-- -->
   <!-- The client-sockets element has a number of factory sub-elements.
-->
   <!-- Each of the factory elements has a name and class attribute -->
   <!-- The name attribute for each factory element must be unique.  -->
   <!-- The class attribute is the name of a class that implements the
-->
   <!-- interface org.apache.avalon.cornerstone.services.SocketFactory
-->
   <!-- Specific factory elements may require some sub-elements.  This
is -->
   <!-- factory class dependent. -->
   <!-- -->
   <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 -->
   <!-- -->
   <!-- The thread manager provides thread pools for use throughout the
server. -->
   <!-- -->
   <!-- A thread pool with the name "default" must be defined in this
thread manager -->
   <!-- configuration. -->
   <!-- -->
   <!-- Each thread pool is defined with a "thread-group" element. -->
   <!-- Each of these elements has the following required sub-elements:
-->
   <!--   name - the name of the thread pool, used by other components
to -->
   <!--          lookup the thread pool -->
   <!--   priority - the thread priority for threads in the pool.  This
is -->
   <!--              a value between 0 and 10, with 5 being the normal
-->
   <!--              priority and 10 being the maximum. -->
   <!--   is-daemon - whether the threads in the pool are daemon
threads. -->
   <!--   max-threads - the maximum number of threads allowed in the
pool. -->
   <!--   min-threads - the minimum number of threads allowed in the
pool. (not implemented) -->
   <!--   min-spare-threads - (not implemented) -->
   <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>




---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org