----- Original Message ----- From: "Noel J. Bergman" <[EMAIL PROTECTED]> To: "James Developers List" <[EMAIL PROTECTED]> Sent: Sunday, November 09, 2003 5:17 PM Subject: RE: LocalDelivery and Delivered-To
> Send an e-mail to multiple local recipients. Each time you call addHeader, > you should be adding a new Delivered-To header to the message, which means > that you will be accumulating additional headers. If you only have one > local recipient, you'll never notice the difference. Yes, I have taken that into account and thats also why I have to remove the header after leaving LocalDelivery > The call to saveChanges is required by the JavaMail specification, but we > end up short-circuiting it, which is the whole purpose for our > updateHeaders() method. Different approach same result. But my message isnt loaded into memory. > The only place we create a duplicate in LinearProcessor is where we have two > paths for a Mail to take after a matcher. IFF there are recipients for both > paths, a duplicate is made of the Mail, which is just the processing > envelope not the message contents, to track the dual paths. Yes, the situation when theres a mix of recipients. This duplication was eliminated. Not a big change but quicker. > I've been aware of this issue, and am planning address it shortly. One > thing that you can do is use the dbfile protocol. I added an additional tag in my config-file setting the max messagesize of mails I dont want to store in the DB. If the size is exceeded I move the tmp-file (.m64) into the users inbox and reset the filelocation in the messagesource object, so finally the mail wont be loaded into memory ever. > My James version im working with is quite different but > > I dont think it has any affect on this peace of code. > > Do you want to submit any of your changes for consideration? If it can be usefull I will, but I am afraid I made too many changes that only meet my needs. The first thing I did with version 2.1 was removing pheonix. My start up of James is done in a single class. I was alienated by the fact that an email server is integrated into a container because in my opinion this is a classic stand alone app but this is only a question of taste, so we shouldnt argue about that. Already at this point I doubted that I could make any useful contributions besides expressing general ideas or addressing very specific issues. Another point was the spooler. I have two (different versions) of them. One for my incoming messages and another for my error-messages. Loading the same mail repeatedly into one spooler wasnt as efficient as I thought it should be. A message cache for/in the MailRepositories also improved the performance. Also a cache for the PreparedStatements. The only thing left is clustering capabilities which is the next I will be on as far as I can free time for it. This reminds me of a debate earlier this year. If I am really concerned about failure detection and prevention I would definetly use a cluster and dont invest my energy in creating interprocess software communication on a single machine. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]