Java Doc for JdoTransactionManager.java in  » J2EE » spring-framework-2.0.6 » org » springframework » orm » jdo » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » J2EE » spring framework 2.0.6 » org.springframework.orm.jdo 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.springframework.transaction.support.AbstractPlatformTransactionManager
      org.springframework.orm.jdo.JdoTransactionManager

JdoTransactionManager
public class JdoTransactionManager extends AbstractPlatformTransactionManager implements ResourceTransactionManager,InitializingBean(Code)
org.springframework.transaction.PlatformTransactionManager implementation for a single JDO javax.jdo.PersistenceManagerFactory . Binds a JDO PersistenceManager from the specified factory to the thread, potentially allowing for one thread-bound PersistenceManager per factory. PersistenceManagerFactoryUtils and JdoTemplate are aware of thread-bound persistence managers and participate in such transactions automatically. Using either of those (or going through a TransactionAwarePersistenceManagerFactoryProxy is required for JDO access code supporting this transaction management mechanism.

This transaction manager is appropriate for applications that use a single JDO PersistenceManagerFactory for transactional data access. JTA (usually through org.springframework.transaction.jta.JtaTransactionManager ) is necessary for accessing multiple transactional resources within the same transaction. Note that you need to configure your JDO provider accordingly in order to make it participate in JTA transactions.

This transaction manager also supports direct DataSource access within a transaction (i.e. plain JDBC code working with the same DataSource). This allows for mixing services which access JDO and services which use plain JDBC (without being aware of JDO)! Application code needs to stick to the same simple Connection lookup pattern as with org.springframework.jdbc.datasource.DataSourceTransactionManager (i.e. org.springframework.jdbc.datasource.DataSourceUtils.getConnection or going through a org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy ).

Note: To be able to register a DataSource's Connection for plain JDBC code, this instance needs to be aware of the DataSource ( JdoTransactionManager.setDataSource ). The given DataSource should obviously match the one used by the given PersistenceManagerFactory. This transaction manager will autodetect the DataSource that acts as "connectionFactory" of the PersistenceManagerFactory, so you usually don't need to explicitly specify the "dataSource" property.

On JDBC 3.0, this transaction manager supports nested transactions via JDBC 3.0 Savepoints. The JdoTransactionManager.setNestedTransactionAllowed "nestedTransactionAllowed"} flag defaults to "false", though, as nested transactions will just apply to the JDBC Connection, not to the JDO PersistenceManager and its cached objects. You can manually set the flag to "true" if you want to use nested transactions for JDBC access code which participates in JDO transactions (provided that your JDBC driver supports Savepoints). Note that JDO itself does not support nested transactions! Hence, do not expect JDO access code to semantically participate in a nested transaction.
author:
   Juergen Hoeller
since:
   03.06.2003
See Also:   JdoTransactionManager.setPersistenceManagerFactory
See Also:   JdoTransactionManager.setDataSource
See Also:   javax.jdo.PersistenceManagerFactory.getConnectionFactory
See Also:   LocalPersistenceManagerFactoryBean
See Also:   PersistenceManagerFactoryUtils.getPersistenceManager
See Also:   PersistenceManagerFactoryUtils.releasePersistenceManager
See Also:   JdoTemplate
See Also:   TransactionAwarePersistenceManagerFactoryProxy
See Also:   org.springframework.jdbc.datasource.DataSourceUtils.getConnection
See Also:   org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection
See Also:   org.springframework.jdbc.core.JdbcTemplate
See Also:   org.springframework.jdbc.datasource.DataSourceTransactionManager
See Also:   org.springframework.transaction.jta.JtaTransactionManager




Constructor Summary
public  JdoTransactionManager()
     Create a new JdoTransactionManager instance.
public  JdoTransactionManager(PersistenceManagerFactory pmf)
     Create a new JdoTransactionManager instance.

Method Summary
public  voidafterPropertiesSet()
     Eagerly initialize the JDO dialect, creating a default one for the specified PersistenceManagerFactory if none set.
protected  DataAccessExceptionconvertJdoAccessException(JDOException ex)
     Convert the given JDOException to an appropriate exception from the org.springframework.dao hierarchy.
protected  voiddoBegin(Object transaction, TransactionDefinition definition)
    
protected  voiddoCleanupAfterCompletion(Object transaction)
    
protected  voiddoCommit(DefaultTransactionStatus status)
    
protected  ObjectdoGetTransaction()
    
protected  voiddoResume(Object transaction, Object suspendedResources)
    
protected  voiddoRollback(DefaultTransactionStatus status)
    
protected  voiddoSetRollbackOnly(DefaultTransactionStatus status)
    
protected  ObjectdoSuspend(Object transaction)
    
public  DataSourcegetDataSource()
     Return the JDBC DataSource that this instance manages transactions for.
public  JdoDialectgetJdoDialect()
     Return the JDO dialect to use for this transaction manager.
public  PersistenceManagerFactorygetPersistenceManagerFactory()
     Return the PersistenceManagerFactory that this instance should manage transactions for.
public  ObjectgetResourceFactory()
    
protected  booleanisExistingTransaction(Object transaction)
    
public  voidsetAutodetectDataSource(boolean autodetectDataSource)
     Set whether to autodetect a JDBC DataSource used by the JDO PersistenceManagerFactory, as returned by the getConnectionFactory() method.
public  voidsetDataSource(DataSource dataSource)
     Set the JDBC DataSource that this instance should manage transactions for. The DataSource should match the one used by the JDO PersistenceManagerFactory: for example, you could specify the same JNDI DataSource for both.

If the PersistenceManagerFactory uses a DataSource as connection factory, the DataSource will be autodetected: You can still explictly specify the DataSource, but you don't need to in this case.

A transactional JDBC Connection for this DataSource will be provided to application code accessing this DataSource directly via DataSourceUtils or JdbcTemplate.

public  voidsetJdoDialect(JdoDialect jdoDialect)
     Set the JDO dialect to use for this transaction manager.
public  voidsetPersistenceManagerFactory(PersistenceManagerFactory pmf)
     Set the PersistenceManagerFactory that this instance should manage transactions for.

The PersistenceManagerFactory specified here should be the target PersistenceManagerFactory to manage transactions for, not a TransactionAwarePersistenceManagerFactoryProxy.

protected  booleanshouldCommitOnGlobalRollbackOnly()
     This implementation returns "true" for JDO 2.0: a JDO2 commit will properly handle transactions that have been marked rollback-only at a global level.


Constructor Detail
JdoTransactionManager
public JdoTransactionManager()(Code)
Create a new JdoTransactionManager instance. A PersistenceManagerFactory has to be set to be able to use it.
See Also:   JdoTransactionManager.setPersistenceManagerFactory



JdoTransactionManager
public JdoTransactionManager(PersistenceManagerFactory pmf)(Code)
Create a new JdoTransactionManager instance.
Parameters:
  pmf - PersistenceManagerFactory to manage transactions for




Method Detail
afterPropertiesSet
public void afterPropertiesSet()(Code)
Eagerly initialize the JDO dialect, creating a default one for the specified PersistenceManagerFactory if none set. Auto-detect the PersistenceManagerFactory's DataSource, if any.



convertJdoAccessException
protected DataAccessException convertJdoAccessException(JDOException ex)(Code)
Convert the given JDOException to an appropriate exception from the org.springframework.dao hierarchy.

Default implementation delegates to the JdoDialect. May be overridden in subclasses.
Parameters:
  ex - JDOException that occured the corresponding DataAccessException instance
See Also:   JdoDialect.translateException




doBegin
protected void doBegin(Object transaction, TransactionDefinition definition)(Code)



doCleanupAfterCompletion
protected void doCleanupAfterCompletion(Object transaction)(Code)



doCommit
protected void doCommit(DefaultTransactionStatus status)(Code)



doGetTransaction
protected Object doGetTransaction()(Code)



doResume
protected void doResume(Object transaction, Object suspendedResources)(Code)



doRollback
protected void doRollback(DefaultTransactionStatus status)(Code)



doSetRollbackOnly
protected void doSetRollbackOnly(DefaultTransactionStatus status)(Code)



doSuspend
protected Object doSuspend(Object transaction)(Code)



getDataSource
public DataSource getDataSource()(Code)
Return the JDBC DataSource that this instance manages transactions for.



getJdoDialect
public JdoDialect getJdoDialect()(Code)
Return the JDO dialect to use for this transaction manager.

Creates a default one for the specified PersistenceManagerFactory if none set.




getPersistenceManagerFactory
public PersistenceManagerFactory getPersistenceManagerFactory()(Code)
Return the PersistenceManagerFactory that this instance should manage transactions for.



getResourceFactory
public Object getResourceFactory()(Code)



isExistingTransaction
protected boolean isExistingTransaction(Object transaction)(Code)



setAutodetectDataSource
public void setAutodetectDataSource(boolean autodetectDataSource)(Code)
Set whether to autodetect a JDBC DataSource used by the JDO PersistenceManagerFactory, as returned by the getConnectionFactory() method. Default is "true".

Can be turned off to deliberately ignore an available DataSource, to not expose JDO transactions as JDBC transactions for that DataSource.
See Also:   JdoTransactionManager.setDataSource
See Also:   javax.jdo.PersistenceManagerFactory.getConnectionFactory




setDataSource
public void setDataSource(DataSource dataSource)(Code)
Set the JDBC DataSource that this instance should manage transactions for. The DataSource should match the one used by the JDO PersistenceManagerFactory: for example, you could specify the same JNDI DataSource for both.

If the PersistenceManagerFactory uses a DataSource as connection factory, the DataSource will be autodetected: You can still explictly specify the DataSource, but you don't need to in this case.

A transactional JDBC Connection for this DataSource will be provided to application code accessing this DataSource directly via DataSourceUtils or JdbcTemplate. The Connection will be taken from the JDO PersistenceManager.

Note that you need to use a JDO dialect for a specific JDO provider to allow for exposing JDO transactions as JDBC transactions.

The DataSource specified here should be the target DataSource to manage transactions for, not a TransactionAwareDataSourceProxy. Only data access code may work with TransactionAwareDataSourceProxy, while the transaction manager needs to work on the underlying target DataSource. If there's nevertheless a TransactionAwareDataSourceProxy passed in, it will be unwrapped to extract its target DataSource.
See Also:   JdoTransactionManager.setAutodetectDataSource
See Also:   JdoTransactionManager.setJdoDialect
See Also:   javax.jdo.PersistenceManagerFactory.getConnectionFactory
See Also:   org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy
See Also:   org.springframework.jdbc.datasource.DataSourceUtils
See Also:   org.springframework.jdbc.core.JdbcTemplate




setJdoDialect
public void setJdoDialect(JdoDialect jdoDialect)(Code)
Set the JDO dialect to use for this transaction manager.

The dialect object can be used to retrieve the underlying JDBC connection and thus allows for exposing JDO transactions as JDBC transactions.
See Also:   JdoDialect.getJdbcConnection




setPersistenceManagerFactory
public void setPersistenceManagerFactory(PersistenceManagerFactory pmf)(Code)
Set the PersistenceManagerFactory that this instance should manage transactions for.

The PersistenceManagerFactory specified here should be the target PersistenceManagerFactory to manage transactions for, not a TransactionAwarePersistenceManagerFactoryProxy. Only data access code may work with TransactionAwarePersistenceManagerFactoryProxy, while the transaction manager needs to work on the underlying target PersistenceManagerFactory.
See Also:   TransactionAwarePersistenceManagerFactoryProxy




shouldCommitOnGlobalRollbackOnly
protected boolean shouldCommitOnGlobalRollbackOnly()(Code)
This implementation returns "true" for JDO 2.0: a JDO2 commit will properly handle transactions that have been marked rollback-only at a global level. On JDO 1.0, the rollback-only flag will be managed in Spring's resource holder.



Fields inherited from org.springframework.transaction.support.AbstractPlatformTransactionManager
final public static int SYNCHRONIZATION_ALWAYS(Code)(Java Doc)
final public static int SYNCHRONIZATION_NEVER(Code)(Java Doc)
final public static int SYNCHRONIZATION_ON_ACTUAL_TRANSACTION(Code)(Java Doc)
protected transient Log logger(Code)(Java Doc)

Methods inherited from org.springframework.transaction.support.AbstractPlatformTransactionManager
final public void commit(TransactionStatus status) throws TransactionException(Code)(Java Doc)
protected int determineTimeout(TransactionDefinition definition)(Code)(Java Doc)
abstract protected void doBegin(Object transaction, TransactionDefinition definition) throws TransactionException(Code)(Java Doc)
protected void doCleanupAfterCompletion(Object transaction)(Code)(Java Doc)
abstract protected void doCommit(DefaultTransactionStatus status) throws TransactionException(Code)(Java Doc)
abstract protected Object doGetTransaction() throws TransactionException(Code)(Java Doc)
protected void doResume(Object transaction, Object suspendedResources) throws TransactionException(Code)(Java Doc)
abstract protected void doRollback(DefaultTransactionStatus status) throws TransactionException(Code)(Java Doc)
protected void doSetRollbackOnly(DefaultTransactionStatus status) throws TransactionException(Code)(Java Doc)
protected Object doSuspend(Object transaction) throws TransactionException(Code)(Java Doc)
final public int getDefaultTimeout()(Code)(Java Doc)
final public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException(Code)(Java Doc)
final public int getTransactionSynchronization()(Code)(Java Doc)
final protected void invokeAfterCompletion(List synchronizations, int completionStatus)(Code)(Java Doc)
protected boolean isExistingTransaction(Object transaction) throws TransactionException(Code)(Java Doc)
final public boolean isFailEarlyOnGlobalRollbackOnly()(Code)(Java Doc)
final public boolean isGlobalRollbackOnParticipationFailure()(Code)(Java Doc)
final public boolean isNestedTransactionAllowed()(Code)(Java Doc)
final public boolean isRollbackOnCommitFailure()(Code)(Java Doc)
protected DefaultTransactionStatus newTransactionStatus(TransactionDefinition definition, Object transaction, boolean newTransaction, boolean newSynchronization, boolean debug, Object suspendedResources)(Code)(Java Doc)
protected void registerAfterCompletionWithExistingTransaction(Object transaction, List synchronizations) throws TransactionException(Code)(Java Doc)
final protected void resume(Object transaction, SuspendedResourcesHolder resourcesHolder) throws TransactionException(Code)(Java Doc)
final public void rollback(TransactionStatus status) throws TransactionException(Code)(Java Doc)
final public void setDefaultTimeout(int defaultTimeout)(Code)(Java Doc)
final public void setFailEarlyOnGlobalRollbackOnly(boolean failEarlyOnGlobalRollbackOnly)(Code)(Java Doc)
final public void setGlobalRollbackOnParticipationFailure(boolean globalRollbackOnParticipationFailure)(Code)(Java Doc)
final public void setNestedTransactionAllowed(boolean nestedTransactionAllowed)(Code)(Java Doc)
final public void setRollbackOnCommitFailure(boolean rollbackOnCommitFailure)(Code)(Java Doc)
final public void setTransactionSynchronization(int transactionSynchronization)(Code)(Java Doc)
final public void setTransactionSynchronizationName(String constantName)(Code)(Java Doc)
protected boolean shouldCommitOnGlobalRollbackOnly()(Code)(Java Doc)
final protected SuspendedResourcesHolder suspend(Object transaction) throws TransactionException(Code)(Java Doc)
final protected void triggerBeforeCommit(DefaultTransactionStatus status)(Code)(Java Doc)
final protected void triggerBeforeCompletion(DefaultTransactionStatus status)(Code)(Java Doc)
protected boolean useSavepointForNestedTransaction()(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.