Local transactions in application servers.

I apologize for a lengthy posting but I did try hard to make it as precise as possible!

I am trying to evaluate the benefits of Spring's usage in Weblogic (by using Spring's declarative tx management in Local/Non-jta transactions) in an application that uses a single Stateless session bean as Facade to POJOs and uses a SINGLE database.

The information I gathered about Transaction Models are as follows:

1) non-jta transactions can be taken care by ejbs and depends on the related resource manager.

2) Certain settings in the deployment descriptor.

3) Application servers make the decision of evoking jta/non-jta transactions during runtime depending on the situation.

Now I have few questions:

A) Are the above mentioned, supported in weblogic 9.2 application server? If so, are there any deployment descriptor settings involved?

B) Is executing local/non-jta transaction SLOW in an application server that supports only JTA environment.

C) Does Spring's non-jta transaction manager usage overrides the default support of weblogic for JTA transactions? If not what is the benefit of using Spring in weblogic in my application scenario, apart from the configuration based Dependency injection?

Your input and any pointers to useful articles are highly appreciated.

A) Are the above mentioned, supported in weblogic 9.2 application server? If so, are there any deployment descriptor settings involved?

B) Is executing local/non-jta transaction SLOW in an application server that supports only JTA environment.

C) Does Spring's non-jta transaction manager usage overrides the default support of weblogic for JTA transactions? If not what is the benefit of using Spring in weblogic in my application scenario, apart from the configuration based Dependency injection?

A. Default Weblogic Transaction Manager (weblogic.transaction.TransactionManager)supports JTA and you should not have any problem.

B. There is no impact on local transactions in a JTA enabled App server

C. In a transaction that involves both your Weblogic Transaction Manager through SLSBs and Spring Transaction Manager, its the common denominator that will affect the transaction. If you want your transaction to support JTA when working with Spring POJOs, you need to configure Spring to use the appropriate JTA transaction manager, preferably the same one used by Weblogic. Else, if you have just one resource (DB), stick with the defaults.

See the Spring Txn management doc. Especially look at the box titled "Is an application server needed for transaction management?"