Thanks Bjorn. You're doing a good job of selling @Asynchronous (via TomEE) over JMS. I agree, I think JMS may be more than what i actually need, but it's working great in my app and helped me to finally do some asynchronous processing and it's working great. and i heard you about the 'middle man'... i am listening in on the activemq user list, and I do see/hear many questions/issues about messages being lost, and from what you're telling me, your code and configuration and use of @Asynchronous seems to be reliable and it seems as though items on the queue are never lost out in asynchronous-processing world/space/universe.
I have seen evidence that every-now-and-then, an MDB on the queue was either not completed or not executed or there was a network disconnect... you and others probably heard me mention already that i'm using activemq/jms to keep google calendar in-sync with my app's database. i am very pleased with tomee/AMQ/JMS and the implementation, but usually, a network/internet disconnect leaves a bunch of duplicates on google calendar. every now and then = this behavior occurs days apart, and a day that has plenty of events on a single day on the calendar.i have not tried to dig into the problem as i know that it is usually a network disconnect, but our internet connection is supposed to be quite reliable and always up 99% of the time, I think. before i change the code/implementation, i would rather search any all log files (tomee + windows logs). On Sun, Mar 24, 2013 at 4:43 PM, Bjorn Danielsson < [email protected]> wrote: > Well, concerning JMS vs @Asynchronous, there are different fits > for different requirements, and your mileage may vary as always. > I used JMS to deal with asynchronous processing, because it was > the only tool for the purpose in Java EE 5. Then I found a tool > in EE 6 that fitted my purpose better. JMS is much more than what > I ever needed, and I think that contributed to making it hard for > me to get it working exactly the way I wanted. > > And actually I do recall having some problem with @Asynchronous > stuff also, but Romain fixed that so fast so I no longer remember > what it was about! > > -- > Bjorn Danielsson > Cuspy Code AB > > > "Howard W. Smith, Jr." <[email protected]> wrote: > > That is good to know, thanks for sharing! And you squeezed a bit more > > information/details out of Romain... i couldn't squeeze the following > line > > out of him earlier... lol > > > >> Yes, you squeezed the network layer, you avoided network problems ;) > > > > > > On Sun, Mar 24, 2013 at 1:35 PM, Bjorn Danielsson < > > [email protected]> wrote: > > > >> Well, I still have networking between my two (for failover) > >> TomEE servers and the SQL service that holds the queue and > >> commits the transactions. But I eliminated a middle-man :) > >> > >> -- > >> Bjorn Danielsson > >> Cuspy Code AB > >> > >> > >> Romain Manni-Bucau <[email protected]> wrote: > >> > Yes, you squeezed the network layer, you avoided network problems ;) > >> > Le 24 mars 2013 18:12, "Bjorn Danielsson" < > >> [email protected]> > >> > a écrit : > >> > > >> >> Interesting, I went the opposite way, from JMS to @Asynchronous. > >> >> > >> >> I began using JMS for asynchronous requests that were required > >> >> to be transactional and reliable. This worked great during > >> >> initial development, first with OpenMQ in GlassFish and then > >> >> with ActiveMQ in OpenEJB/TomEE. But when I started testing > >> >> ActiveMQ failover configurations under heavy loads, I started > >> >> getting lost messages and hung JMS connections. > >> >> > >> >> So after struggling for a while I ended up rolling my own > >> >> persistent queue in SQL, and used @Asynchronous for the request > >> >> dispatch. That turned out to solve all of my problems, and the > >> >> overall configuration also become notably simpler. > >> >> > >> >> -- > >> >> Bjorn Danielsson > >> >> Cuspy Code AB > >> >> > >> >> > >> >> "Howard W. Smith, Jr." <[email protected]> wrote: > >> >> > On Sat, Mar 23, 2013 at 5:55 PM, Romain Manni-Bucau > >> >> > <[email protected]>wrote: > >> >> > > >> >> >> just to be sure: @Schedule != @Asynchronous > >> >> >> > >> >> >> > >> >> > True/understood. hahaha! > >> >> > > >> >> > My point is this... since i had issues using @Asynchronous, it is > hard > >> >> > going back to @Asynchronous since i'm loving AMQ/JMS. :) > >> >> > > >> >> > I think I heard you and/or others say that JMS is old technology > >> (java ee > >> >> > 5), and I know @Asynchronous is java ee 6, so i trust @asynchronous > >> can > >> >> do > >> >> > the job, but i even heard that @asynchronous is not good to use in > >> JSF or > >> >> > servlet (request-based) apps. > >> >> > >> >
