Thx for the Feedback. Im sure there is still plenty of room for improvments.
But I think it Shows the idea. Bye Norman 2010/9/18, Eric Charles <e...@apache.org>: > OK. > Apart those activemq exceptions in log that will be soon fixed, new > spool is working fine on my side. > Many tks for this new architecture enhancement :) > Eric > > > On 18/09/2010 08:07, Norman Maurer wrote: >> Yeah thats how transactions should work.. >> >> BTW if some of you notice this exception: >> >> INFO 07:39:44,414 | >> org.apache.activemq.broker.TransportConnection.Transport | Transport >> failed: org.apache.activemq.transport.TransportDisposedIOException: >> Peer (vm://localhost#51) disposed. >> org.apache.activemq.transport.TransportDisposedIOException: Peer >> (vm://localhost#51) disposed. >> at >> org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:159) >> at >> org.apache.activemq.transport.vm.VMTransportServer$1.stop(VMTransportServer.java:81) >> at >> org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65) >> at >> org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65) >> at >> org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) >> at >> org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:43) >> at >> org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:656) >> at >> org.apache.activemq.pool.ConnectionPool.close(ConnectionPool.java:130) >> at >> org.apache.activemq.pool.ConnectionPool.expiredCheck(ConnectionPool.java:161) >> at >> org.apache.activemq.pool.ConnectionPool.decrementReferenceCount(ConnectionPool.java:148) >> at >> org.apache.activemq.pool.PooledConnection.close(PooledConnection.java:71) >> at >> org.apache.james.queue.ActiveMQMailQueue.deQueue(ActiveMQMailQueue.java:120) >> at >> org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:155) >> at java.lang.Thread.run(Thread.java:717) >> >> Its harmless and will be fixed in activemq 5.4.1, which will be >> released during the weekend (I hope) >> >> http://www.manning-sandbox.com/thread.jspa?messageID=103340 >> https://issues.apache.org/activemq/browse/AMQ-2902 >> >> Bye, >> Norman >> >> 2010/9/18 Eric Charles<e...@apache.org>: >>> Yes for Exceptions. >>> >>> Sorry, I was not precise enough. I was talking of java process crash >>> (jvm >>> crash, kill -9,...). >>> If the mail is longer out-of-the-queue, there are more chance that the >>> crash >>> (if any) occurs during that period. >>> (I suppose that the queue is responsible to restore its content, even in >>> cash of jvm crash,...) >>> Does it makes sense? >>> >>> Tks, >>> Eric >>> >>> >>> On 18/09/2010 07:29, Norman Maurer wrote: >>>> No you can't loose the mail, it will rollback the transaction on an >>>> error and so let the mail in the queue. >>>> >>>> Bye. >>>> Norman >>>> >>>> 2010/9/18 Eric Charles<e...@apache.org>: >>>>> +1 much more readable and extensible. >>>>> >>>>> About the long transactions, the downsize is there is more risk to >>>>> loose >>>>> some mail in case of abrupt failure of the process for example. >>>>> DeQueing/EnQueing at each mail process allowed to rely on the spool for >>>>> mail >>>>> queue persistence between each process. >>>>> Now, we may have a longer "grey zone" during which the mail may be >>>>> lost, >>>>> but >>>>> I suppose that's the price to pay for performance. >>>>> >>>>> Tks, >>>>> >>>>> Eric >>>>> >>>>> >>>>> On 17/09/2010 15:09, Norman wrote: >>>>>> Hi there, >>>>>> >>>>>> I just committed some code which change how James handle the queue. >>>>>> Please >>>>>> review the changes and tell me if you see something you don't like >>>>>> about >>>>>> it. >>>>>> I think its a way better then everything we had before ;) >>>>>> >>>>>> Anyway let me give you some overview on the changes: >>>>>> >>>>>> * Introduce a MailQueueFactory and MailQueue interface >>>>>> This two interfaces are the core of the new queue stuff. MailQueue >>>>>> does >>>>>> the actual queing/dequeing and MailQueueFactory helps to lookup the >>>>>> queue by >>>>>> name. For now we ship a ActiveMQ implementation. The interface are >>>>>> currently located in the core-api module. Not sure if we should better >>>>>> move >>>>>> them to an extra module or not. Same goes to the ActiveMQ >>>>>> implementations >>>>>> which are in spoolmanager-function and should better be moved to >>>>>> queue-activemq or something else >>>>>> >>>>>> >>>>>> * Copy the JamesSpoolManager, RemoteDeliver class and MailContainer, >>>>>> MailProcessor, ProcessorList (which is now called MailProcessorList >>>>>> and >>>>>> extend MailProcessor) interfaces back from previous trunk version >>>>>> The JamesSpoolManager is responsible to call the dequeue(..) on the >>>>>> MailQueue and pass the Mail objects to the MailProcessList. >>>>>> RemoveDelivery call dequeue(..) on the outgoing queue and try to >>>>>> resend >>>>>> message on temporary erros >>>>>> >>>>>> * Misc >>>>>> We now do the whole Mailet/Matcher stuff in one long transaction >>>>>> without >>>>>> storing the Mail back the Queue after each MailProcessor. This should >>>>>> give >>>>>> us a performance boost. The downside is that we could have "long >>>>>> transactions". >>>>>> >>>>>> Just ask if you have any futher questions. >>>>>> >>>>>> Bye, >>>>>> Norman >>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >>>>>> For additional commands, e-mail: server-dev-h...@james.apache.org >>>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >>>>> For additional commands, e-mail: server-dev-h...@james.apache.org >>>>> >>>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >>>> For additional commands, e-mail: server-dev-h...@james.apache.org >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >>> For additional commands, e-mail: server-dev-h...@james.apache.org >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org >> For additional commands, e-mail: server-dev-h...@james.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org > For additional commands, e-mail: server-dev-h...@james.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org