Re: Distributed transactions

2012-06-26 Thread Jim Crossley
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

2011-12-31 Thread Michael Jaaka
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

2011-12-31 Thread Bronsa
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

2011-12-31 Thread Leonardo Borges
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

2011-12-31 Thread Daniel Pittman
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

2011-12-31 Thread Jeff Heon
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

2011-12-31 Thread Shantanu Kumar


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

2011-12-31 Thread Jim
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

2011-12-31 Thread Jim
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

2011-12-31 Thread Stuart Halloway
 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

2011-12-31 Thread Jim


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