Im currently working on some improvements, which will help to handle big messages more efficient.
So stay tuned! Bye Norman 2010/9/18, Norman Maurer <nor...@apache.org>: > 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