Well, let's check LocalDelivery:

    public void service(Mail mail) throws MessagingException {
        Collection recipients = mail.getRecipients();
        Collection errors = new Vector();
        for (Iterator i = recipients.iterator(); i.hasNext(); ) {
            MailAddress recipient = (MailAddress) i.next();
            try {
                getMailetContext().storeMail(mail.getSender(), recipient,
mail.getMessage());
            } catch (Exception ex) {
                getMailetContext().log("Error while storing mail.", ex);
                errors.add(recipient);
            }
        }

        if (!errors.isEmpty()) {
            // If there were errors, we redirect the email to the ERROR
processor.
            // In order for this server to meet the requirements of the SMTP
specification,
            // mails on the ERROR processor must be returned to the sender.
Note that this
            // email doesn't include any details regarding the details of
the failure(s).
            // In the future we may wish to address this.
            getMailetContext().sendMail(mail.getSender(),
                                        errors, mail.getMessage(),
Mail.ERROR);
        }

So in the event of an exception from the JDBC layer, we SHOULD be logging
the exception and posting the mail to the error processor, so you should
find the e-mails in your error repository.  Of course, if the spooler is
also using JDBC, then we can't do that (but nor would we be able to receive
new e-mails), nor can we store it in the error repository if THAT store uses
JDBC.

So ... how are your stores configured, and what do you see in the logs?

As for the rejection notice, check the comment (above).  It is your
responsibility to properly configure the error processor.  We will probably
enhance this area for v3.

By the way, must you use MSSQL?  I hear nothing (absolutely nothing) good
about the JDBC drivers for MSSQL.  I can tell you that in my own testing
with MySQL, I have pumped millions of messages.  My last stress test ran 40
hours and roughly 4 million messages.  Success breeds trust.

        --- Noel

-----Original Message-----
From: Alan Gerhard [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, December 04, 2002 23:00
To: 'James Developers List'
Subject: SQL DOWN; MAIL LOST?


James 2.0a3 - recompiled and running
setup MSSQL for mail boxes

all is working more or less okay.

SQL crashed - 6 hours later James' JVM died.

Hmm ....  was anything lost ??


tested :

stopped SQL
sendmailserverONE sent msg to James; received an OK from James
hm....  where did it go ??

started SQL and a reset of James was necessary. it appears that the spool we
lost or that the mail was processed positively but it wasn't able to deliver
to
the pop3 mailbox.

is this a James issue or my inability to properly configure the necessary
mailets?

this is what i have -

        <!--  Processor CONFIGURATION SAMPLE: transport is a sample custom
        processor for local or remote delivery -->
        <processor name="transport">
          <!-- Is the recipient is for a local account, deliver it
locally -->
          <mailet match="RecipientIsLocal" class="LocalDelivery">
          </mailet>

          <!-- 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>error</processor>
          </mailet>  but we kill this shit ... -->
          <mailet match="HostIsLocal" class="Null">
          </mailet

and by looking at it i see the error of my ways..

in any case, the question is : if the local recipient is not available
because
the mailbox is down, shouldn't we sent back a rejection ??  or is that me
again
with the inability to properly set this puppy up ?? :->

thanks,
alan


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

Reply via email to