Re: Distributed transactions
Well, it took a little longer than I thought it would, but we announced support for XA on Immutant today: http://immutant.org/news/2012/06/26/transactions/ Enjoy! Jim On Saturday, December 31, 2011 7:59:27 PM UTC-5, Jim Crossley wrote: On Dec 31, 7:33 pm, Stuart Halloway stuart.hallo...@gmail.com wrote: On Dec 31, 1:16 pm, Jeff Heon jfh...@gmail.com wrote: Immutant is going to have distributed (XA) transactions. The're furiously working on it 8) http://immutant.org/ Furiously is probably not the right word, but XA is definitely on the roadmap. It's just a matter of wiring up the TransactionManager provided by JBoss AS7. We've done this already for Ruby with TorqueBox, so it should be straightforward. With any luck, we'll have it wired up by Februrary, certainly in time for Clojure/West. Jim What wiring is needed, beyond knowing how to call a Java API from Clojure? At a minimum, we need to obtain a TransactionManager (easy) and define XAResource implementations for each resource participating in the transaction (easy for messaging, not as easy for db). In ruby, the activerecord jdbc adapter helps us with the latter, allowing us to automatically create XAResource's for each key listed in the Rails database.yml file, using standard ruby conventions to provide XA for free when a rails app is deployed under TorqueBox. We need to figure out what those conventions are for clojure. Or help define them. Also, the Java API's for XA are kinda awkward. I hope we can wrap them a bit to make the common usage patterns simple. Now, back to drinking. :) Jim Stu Stuart Halloway Clojure/corehttp://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Distributed transactions
Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
maybe avout is what you're looking for? https://github.com/liebke/avout 2011/12/31 Michael Jaaka michael.ja...@googlemail.com Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
Distributed transactions slow u down Why the hell would you want that? I'm yet to see a valid use case! They require sticky sessions *whi*ch suck for scalability! Keep in mind it's 4am on the 31st of December :-) Leonardo Borges www.leonardoborges.com Sent from my Galaxy Nexus(IceCreamSandwhich) On Jan 1, 2012 3:42 AM, Bronsa brobro...@gmail.com wrote: maybe avout is what you're looking for? https://github.com/liebke/avout 2011/12/31 Michael Jaaka michael.ja...@googlemail.com Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
Well, I can't speak for Michael, but we want them because we need to update the database *and* send events notifying other parts of the distributed system about the change. We really don't want to do only one *or* the other, because that requires that we get into the fun world where distributed tools in multiple languages can't trust the events we send, or need to implement client polling to notice change. Distributed database transactions? Not much fun. Transactions that cover more than just one technology? More useful. Daniel On Sat, Dec 31, 2011 at 09:39, Leonardo Borges leonardoborges...@gmail.com wrote: Distributed transactions slow u down Why the hell would you want that? I'm yet to see a valid use case! They require sticky sessions which suck for scalability! Keep in mind it's 4am on the 31st of December :-) Leonardo Borges www.leonardoborges.com Sent from my Galaxy Nexus(IceCreamSandwhich) On Jan 1, 2012 3:42 AM, Bronsa brobro...@gmail.com wrote: maybe avout is what you're looking for? https://github.com/liebke/avout 2011/12/31 Michael Jaaka michael.ja...@googlemail.com Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- ♲ Made with 100 percent post-consumer electrons -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
Immutant is going to have distributed (XA) transactions. The're furiously working on it 8) http://immutant.org/ On Dec 31, 11:26 am, Michael Jaaka michael.ja...@googlemail.com wrote: Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
On Dec 31 2011, 9:26 pm, Michael Jaaka michael.ja...@googlemail.com wrote: Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Did you look at JOTM? http://jotm.ow2.org/xwiki/bin/view/Main/WebHome You can wrap the Java calls with Clojure. Regards, Shantanu -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
On Dec 31, 1:16 pm, Jeff Heon jfh...@gmail.com wrote: Immutant is going to have distributed (XA) transactions. The're furiously working on it 8) http://immutant.org/ Furiously is probably not the right word, but XA is definitely on the roadmap. It's just a matter of wiring up the TransactionManager provided by JBoss AS7. We've done this already for Ruby with TorqueBox, so it should be straightforward. With any luck, we'll have it wired up by Februrary, certainly in time for Clojure/West. Jim On Dec 31, 11:26 am, Michael Jaaka michael.ja...@googlemail.com wrote: Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
On Dec 31, 12:39 pm, Leonardo Borges leonardoborges...@gmail.com wrote: Distributed transactions slow u down Why the hell would you want that? I'm yet to see a valid use case! They require sticky sessions *whi*ch suck for scalability! Keep in mind it's 4am on the 31st of December :-) It's a surprisingly common request, Leonardo, especially when it's necessary to include both messaging and persistence in the same tx. Without XA, you have to implement your own middleware to account for failed sends or writes, e.g. the idempotent receiver pattern. This adds accidental complexity to your codebase, and it's hard to get right, adding tests for all possible failure scenarios. With a good TransactionManager, the performance hit is negligible, and your codebase becomes *MUCH* simpler. XA is certainly not for every app, but it can be a very attractive solution for many. And fwiw, you can certainly make good use of XA without sticky sessions, so I'm not totally clear on why you say they're required. Regardless, have a happy (and SAFE!) new year! Jim Leonardo Borgeswww.leonardoborges.com Sent from my Galaxy Nexus(IceCreamSandwhich) On Jan 1, 2012 3:42 AM, Bronsa brobro...@gmail.com wrote: maybe avout is what you're looking for? https://github.com/liebke/avout 2011/12/31 Michael Jaaka michael.ja...@googlemail.com Is there any attempt to make distributed transactions? The usage scenario is the same like in JEE apps. I mean, there is a web service call, the transaction is started, there are some changes to db, some jms sends and when there is no failure all is commited. Maybe someone is already using glassfish or spring from clojure? Some reference to github? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
On Dec 31, 1:16 pm, Jeff Heon jfh...@gmail.com wrote: Immutant is going to have distributed (XA) transactions. The're furiously working on it 8) http://immutant.org/ Furiously is probably not the right word, but XA is definitely on the roadmap. It's just a matter of wiring up the TransactionManager provided by JBoss AS7. We've done this already for Ruby with TorqueBox, so it should be straightforward. With any luck, we'll have it wired up by Februrary, certainly in time for Clojure/West. Jim What wiring is needed, beyond knowing how to call a Java API from Clojure? Stu Stuart Halloway Clojure/core http://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Distributed transactions
On Dec 31, 7:33 pm, Stuart Halloway stuart.hallo...@gmail.com wrote: On Dec 31, 1:16 pm, Jeff Heon jfh...@gmail.com wrote: Immutant is going to have distributed (XA) transactions. The're furiously working on it 8) http://immutant.org/ Furiously is probably not the right word, but XA is definitely on the roadmap. It's just a matter of wiring up the TransactionManager provided by JBoss AS7. We've done this already for Ruby with TorqueBox, so it should be straightforward. With any luck, we'll have it wired up by Februrary, certainly in time for Clojure/West. Jim What wiring is needed, beyond knowing how to call a Java API from Clojure? At a minimum, we need to obtain a TransactionManager (easy) and define XAResource implementations for each resource participating in the transaction (easy for messaging, not as easy for db). In ruby, the activerecord jdbc adapter helps us with the latter, allowing us to automatically create XAResource's for each key listed in the Rails database.yml file, using standard ruby conventions to provide XA for free when a rails app is deployed under TorqueBox. We need to figure out what those conventions are for clojure. Or help define them. Also, the Java API's for XA are kinda awkward. I hope we can wrap them a bit to make the common usage patterns simple. Now, back to drinking. :) Jim Stu Stuart Halloway Clojure/corehttp://clojure.com -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en