Hello Nathan,

You seem to have run out of JDBC connections. I have experienced similar
problems when my JDBC connections expire. James does not restart them
and it simply hangs after a while.

This is what I would do:
  1. Restart your server.
  2. Defragment your MySQL queues periodically via crontab:
0 * * * * /usr/local/mysql/bin/mysql -uXXX -pXXX -Dmail -e"OPTIMIZE
TABLE spool"
  3. Replace Mordred by DBCP:
org.apache.james.util.mordred.JdbcDataSource

Hope this helps,


Diego

-----Message d'origine-----
De�: Nathan Cheng [mailto:[EMAIL PROTECTED] 
Envoy�: mardi 21 d�cembre 2004 02:32
��: James Users List
Objet�: Re: i need help urgently

It all started with this error in the spoolmanager log:

17/12/04 14:02:06 ERROR spoolmanager: Exception in processor <transport>
javax.mail.MessagingException: Exception caught while storing mail
Container: java.io.IOException: 
java.sql.SQLException: Giving up... no connections available.
         at
org.apache.james.mailrepository.JDBCMailRepository.store(JDBCMailReposit
ory.java:764)
         at
org.apache.james.mailrepository.JDBCSpoolRepository.store(JDBCSpoolRepos
itory.java:238)
         at
org.apache.james.transport.LinearProcessor.service(LinearProcessor.java:
438)
         at
org.apache.james.transport.JamesSpoolManager.process(JamesSpoolManager.j
ava:451)
         at
org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:
360)
         at java.lang.Thread.run(Thread.java:534)
17/12/04 14:02:06 ERROR spoolmanager: An error occurred processing
Mail1103309206722-118542 through transport
17/12/04 14:02:06 ERROR spoolmanager: Result was ghost

No connections available, eh? What is wrong with these settings:

...

             <data-source name="maildb"
class="org.apache.james.util.mordred.JdbcDataSource">
                 <driver>org.gjt.mm.mysql.Driver</driver>
 
<dburl>jdbc:mysql://newco-prod-db/mail?autoReconnect=true</dburl>
                 <user>xxxxxxx</user>
                 <password>xxxxxxx</password>
                 <max>100</max>
             </data-source>
             <data-source name="newcodb"
class="org.apache.james.util.mordred.JdbcDataSource">
                 <driver>org.gjt.mm.mysql.Driver</driver>
 
<dburl>jdbc:mysql://newco-prod-db/newco?autoReconnect=true</dburl>
                 <user>xxxxxxx</user>
                 <password>xxxxxxx</password>
                 <max>100</max>
             </data-source>

...

    <connections>
       <idle-timeout>300000</idle-timeout>
       <max-connections>100</max-connections>
    </connections>

...

    <thread-manager>
       <thread-group>
          <name>default</name>
          <priority>8</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>

And here is this:

mysql> select count(*), message_state from spool group by message_state;
+----------+---------------+
| count(*) | message_state |
+----------+---------------+
|       41 | error         |
|     5903 | root          |
|       99 | spam          |
|       32 | transport     |
+----------+---------------+
4 rows in set (0.55 sec)

... 2 minutes pass ....

mysql> select count(*), message_state from spool group by message_state;
+----------+---------------+
| count(*) | message_state |
+----------+---------------+
|       41 | error         |
|     5903 | root          |
|       99 | spam          |
|       32 | transport     |
+----------+---------------+
4 rows in set (0.58 sec)


... 10 minutes pass ....

mysql> select count(*), message_state from spool group by message_state;
+----------+---------------+
| count(*) | message_state |
+----------+---------------+
|       41 | error         |
|     5889 | root          |
|       99 | spam          |
|       59 | transport     |
+----------+---------------+
4 rows in set (0.56 sec)

... 1 minute passes ...

mysql> select count(*), message_state from spool group by message_state;
+----------+---------------+
| count(*) | message_state |
+----------+---------------+
|       41 | error         |
|     5889 | root          |
|       99 | spam          |
|       60 | transport     |
+----------+---------------+
4 rows in set (0.56 sec)

... 3 minutes pass ...

mysql> select count(*), message_state from spool group by message_state;
+----------+---------------+
| count(*) | message_state |
+----------+---------------+
|       41 | error         |
|     5885 | root          |
|       99 | spam          |
|       65 | transport     |
+----------+---------------+
4 rows in set (0.55 sec)

THANKS!


Nathan

Nathan Cheng wrote:
> We have been using James for over a year to provide email to our 
> customers. Off and
> on we have had really bad problems that we have been able to deal with

> by either
> upgrading to the latest James or tinkering with the config.xml for 
> several days. We
> now have several hundred users who depend on our email to run their 
> day-to-day
> businesses, and James has once again started to fail miserably. We do 
> not have time
> any more to tinker around in the dark with config.xml.
> 
> We need help from someone who knows James much better than whoever
wrote 
> the
> documentation knows James. Please help.
> 
> If you are qualified, please contact me by email at 
> [EMAIL PROTECTED]
> 
> Here are the symptoms:
> 
> As of early Friday morning James had been working fine for a couple 
> months, sending
> and receiving on the order of 10's of thousands of emails per day.
Then 
> something
> happened. I don't know what happened. It may have been that were
several 
> hundred more
> messages sent than usual. But anyway, something happened, and James 
> decided not to work
> any more. It would allow POPping about 50% of the time, it would claim

> to fail when
> sending an email through SMTP, but then about 25% of the time actually

> send the message
> several hours later. It continued like that throughout the weekend. 
> After fiddling with
> it for a while today, and blocking our web application from reaching
the 
> mail server
> using iptables (so that only people using their own email clients
could 
> access it),
> I actually got it to send several thousand spooled emails over the 
> period of about an
> hour. Then, without warning, it stopped again--with about 6000 emails 
> left in the
> 'root' message_state and 11 in 'transport'. Our web application has 
> another 1000 mails
> or so queued up that it's trying to send (but can't thanks to
iptables). 
> So we're behind
> about 7000 emails and we've got several hundred angry clients.
> 
> As I said, please help.
> 
> Thank you,
> 
> Nathan
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to