Most Application Servers support propagation of transaction contexts across remote calls, but the Spring Framework / Spring Container does not support propagation of transaction contexts across remote calls, so do you think theres any alternative other than EJB ?
Does the book talk about distributed transactions spanning multiple databases?
A Moment's insight is sometimes worth a Life's experience.
The answer lies in responsibility. In an app server what is responsible for handlig these transactions, and that is the transaction manager. JTA Transaction manager. Spring can use a JTA Transaction manager and run in an app server. So in essence my point is, it isn't Spring's responsibility to do this. It is the server and tm which Spring gladly participates without having to do any jumping through hoops.
Distributed transactions are not a primary focus of the book, but Spring is able to work with both local and distributed transactions — without requiring any code changes. This is one of the advantages of Spring: you are able to decouple these types of concerns to a matter of configuration. You can leverage JTA vs a local transaction provider simply by updating your Spring configuration.