I am trying to have Jboss (4.2.2) and hibernate work together with JTA.  I 
deploy my hibernate classes via a .har file.  I've seen this issue mentioned in 
some threads, but never resolved.  I feel like I am just missing a simple 
setting or something.  Any help would be appreciated.

I have great success using the following:
ctx = new InitialContext();
factory  = (SessionFactory)ctx.lookup("java:/hibernate/SessionFactory");
Session hSess = factory.openSession();
Transaction tx = hSess.beginTransaction();

But I cannot get the following to work:
Session hSess = factory.getCurrentSession();

The error thrown is:
org.hibernate.HibernateException: Unable to locate current JTA transaction at 
org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:61)
 at 
org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544)
 at test.TestServlet.processRequest(TestServlet.java:57) at 
test.TestServlet.doGet(TestServlet.java:129) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.Standar!
 dWrapperValve.invoke(StandardWrapperValve.java:230) at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
 at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
 at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
 at 
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:393) at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:!
 844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
r.process(Http11Protocol.java:583) at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at 
java.lang.Thread.run(Thread.java:595) 

Obvously no transaction is obtained from the TransactionManager, but why?  I 
thought that was the point of the method call to deal with opening the session 
for you.

I have the following properties setup.

  | <mbean code="org.jboss.hibernate.jmx.Hibernate" 
name="jboss.har:service=Hibernate">
  |         <depends>jboss:service=Naming</depends>
  |         <depends>jboss:service=TransactionManager</depends>        
  |         <attribute name="DatasourceName">java:/MyDS</attribute>
  |         <attribute 
name="Dialect">org.hibernate.dialect.Oracle9Dialect</attribute>
  |         <attribute 
name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>
  |         <attribute name="Password">xxx</attribute>
  |         <attribute name="Username">xxx</attribute>        
  |         <attribute 
name="CacheProviderClass">org.hibernate.cache.NoCacheProvider</attribute>       
  |         <attribute name="QueryCacheEnabled">false</attribute>
  |         <attribute name="MinimalPutsEnabled">false</attribute>
  |         <attribute name="MaxFetchDepth">3</attribute>       
  |         <attribute name="ShowSqlEnabled">true</attribute>        
  |     </mbean>
  | 
  | hibernate.cfg.xml (i don't think this is actually needed):
  | <hibernate-configuration>
  |     <session-factory>
  |         <property name="current_session_context_class">jta</property>
  |         <property 
name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
  |         <property 
name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
        
  |     </session-factory>
  | </hibernate-configuration>
  | 
  | datasource config:
  | <xa-datasource>
  |     <jndi-name>MyDS</jndi-name>
  |     <track-connection-by-tx/>
  |     <isSameRM-override-value>false</isSameRM-override-value>
  |     
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
  |     <xa-datasource-property 
name="URL">jdbc:oracle:oci8:@db</xa-datasource-property>
  |     <!-- Uses the pingDatabase method to check a connection is still valid 
before handing it out from the pool -->
  |     
<!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
  |     
  |    <!-- Oracles XA datasource cannot reuse a connection outside a 
transaction once enlisted in a global transaction and vice-versa -->
  |     <no-tx-separate-pools/>
  | 
  |       <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml 
(optional) -->
  |       <metadata>
  |          <type-mapping>Oracle9i</type-mapping>
  |       </metadata>
  |   </xa-datasource>
  | 
Hibernate log after server starts reads ok by my interpretation:
2007-12-03 16:44:41,580 INFO  [org.hibernate.cfg.Environment] Hibernate 
3.2.4.sp1
2007-12-03 16:44:41,595 INFO  [org.hibernate.cfg.Environment] 
hibernate.properties not found
2007-12-03 16:44:41,595 INFO  [org.hibernate.cfg.Environment] Bytecode provider 
name : javassist
2007-12-03 16:44:41,611 INFO  [org.hibernate.cfg.Environment] using JDK 1.4 
java.sql.Timestamp handling
2007-12-03 16:44:41,705 INFO  [org.hibernate.cfg.Configuration] Searching for 
mapping documents in jar: my.har
2007-12-03 16:44:41,720 INFO  [org.hibernate.cfg.Configuration] Found mapping 
document in jar: beans/tn3270_inactivity.hbm.xml
2007-12-03 16:44:41,751 DEBUG [org.hibernate.util.DTDEntityResolver] trying to 
resolve system-id [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd]
2007-12-03 16:44:41,751 DEBUG [org.hibernate.util.DTDEntityResolver] recognized 
hibernate namespace; attempting to resolve on classpath under org/hibernate/
2007-12-03 16:44:41,767 DEBUG [org.hibernate.util.DTDEntityResolver] located 
[http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd] in classpath
2007-12-03 16:44:42,017 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: 
beans.InactiveDeviceBean -> tn3270.inactivity
2007-12-03 16:44:42,205 INFO  [org.hibernate.util.NamingHelper] JNDI 
InitialContext properties:{}
2007-12-03 16:44:42,220 INFO  
[org.hibernate.connection.DatasourceConnectionProvider] Using datasource: 
java:/MyDS
2007-12-03 16:44:42,611 DEBUG [org.hibernate.cfg.SettingsFactory] could not get 
database version from JDBC metadata
2007-12-03 16:44:42,611 INFO  [org.hibernate.cfg.SettingsFactory] RDBMS: 
Oracle, version: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
2007-12-03 16:44:42,611 INFO  [org.hibernate.cfg.SettingsFactory] JDBC driver: 
Oracle JDBC driver, version: 9.2.0.1.0
2007-12-03 16:44:42,642 INFO  [org.hibernate.dialect.Dialect] Using dialect: 
org.hibernate.dialect.Oracle9Dialect
2007-12-03 16:44:42,642 WARN  [org.hibernate.dialect.Oracle9Dialect] The 
Oracle9Dialect dialect has been deprecated; use either Oracle9iDialect or 
Oracle10gDialect instead
2007-12-03 16:44:42,642 INFO  
[org.hibernate.transaction.TransactionFactoryFactory] Transaction strategy: 
org.hibernate.transaction.JTATransactionFactory
2007-12-03 16:44:42,642 INFO  [org.hibernate.util.NamingHelper] JNDI 
InitialContext properties:{}
2007-12-03 16:44:42,642 INFO  
[org.hibernate.transaction.TransactionManagerLookupFactory] instantiating 
TransactionManagerLookup: 
org.hibernate.transaction.JBossTransactionManagerLookup
2007-12-03 16:44:42,658 INFO  
[org.hibernate.transaction.TransactionManagerLookupFactory] instantiated 
TransactionManagerLookup
2007-12-03 16:44:42,658 INFO  
[org.hibernate.transaction.TransactionManagerLookupFactory] instantiating 
TransactionManagerLookup: 
org.hibernate.transaction.JBossTransactionManagerLookup
2007-12-03 16:44:42,658 INFO  
[org.hibernate.transaction.TransactionManagerLookupFactory] instantiated 
TransactionManagerLookup
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Automatic 
flush during beforeCompletion(): enabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Automatic 
session close at end of transaction: enabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] JDBC batch 
size: 15
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] JDBC batch 
updates for versioned data: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Scrollable 
result sets: enabled
2007-12-03 16:44:42,658 DEBUG [org.hibernate.cfg.SettingsFactory] Wrap result 
sets: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] JDBC3 
getGeneratedKeys(): disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Connection 
release mode: after_statement
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Maximum outer 
join fetch depth: 3
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Default batch 
fetch size: 1
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Generate SQL 
with comments: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Order SQL 
updates by primary key: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Order SQL 
inserts for batching: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Query 
translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2007-12-03 16:44:42,658 INFO  [org.hibernate.hql.ast.ASTQueryTranslatorFactory] 
Using ASTQueryTranslatorFactory
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Query 
language substitutions: {}
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] JPA-QL strict 
compliance: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Second-level 
cache: enabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Query cache: 
disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Cache 
provider: org.hibernate.cache.NoCacheProvider
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Optimize 
cache for minimal puts: disabled
2007-12-03 16:44:42,658 INFO  [org.hibernate.cfg.SettingsFactory] Structured 
second-level cache entries: disabled
2007-12-03 16:44:42,673 INFO  [org.hibernate.cfg.SettingsFactory] Echoing all 
SQL to stdout
2007-12-03 16:44:42,673 INFO  [org.hibernate.cfg.SettingsFactory] Statistics: 
disabled
2007-12-03 16:44:42,673 INFO  [org.hibernate.cfg.SettingsFactory] Deleted 
entity synthetic identifier rollback: disabled
2007-12-03 16:44:42,673 INFO  [org.hibernate.cfg.SettingsFactory] Default 
entity-mode: pojo
2007-12-03 16:44:42,673 INFO  [org.hibernate.cfg.SettingsFactory] Named query 
checking : enabled
2007-12-03 16:44:42,720 INFO  [org.hibernate.impl.SessionFactoryImpl] building 
session factory
2007-12-03 16:44:42,720 DEBUG [org.hibernate.impl.SessionFactoryImpl] Session 
factory constructed with filter configurations : {}
2007-12-03 16:44:42,720 DEBUG [org.hibernate.impl.SessionFactoryImpl] 
instantiating session factory with properties: 
{hibernate.cache.use_minimal_puts=false, 
hibernate.transaction.flush_before_completion=true, 
hibernate.transaction.auto_close_session=true, 
hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider, 
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup,
 hibernate.dialect=org.hibernate.dialect.Oracle9Dialect, 
hibernate.cache.use_query_cache=false, hibernate.max_fetch_depth=3, 
hibernate.connection.agressive_release=true, hibernate.connection.username=xxx, 
hibernate.connection.datasource=java:/MyDS, hibernate.show_sql=true, 
hibernate.connection.password=antelope, 
hibernate.connection.release_mode=after_statement, 
hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory}
2007-12-03 16:44:43,064 DEBUG [org.hibernate.impl.SessionFactoryObjectFactory] 
initializing class SessionFactoryObjectFactory
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryObjectFactory] 
registered: 8a1f66ba16a1f7d70116a1f7d9380000 (unnamed)
2007-12-03 16:44:43,080 INFO  [org.hibernate.impl.SessionFactoryObjectFactory] 
Not binding factory to JNDI, no JNDI name configured
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryImpl] 
instantiated session factory
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryImpl] obtaining 
JTA TransactionManager
2007-12-03 16:44:43,080 INFO  [org.hibernate.util.NamingHelper] JNDI 
InitialContext properties:{}
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryImpl] Checking 
0 named HQL queries
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryImpl] Checking 
0 named SQL queries
2007-12-03 16:44:43,080 DEBUG [org.hibernate.impl.SessionFactoryImpl] Returning 
a Reference to the SessionFactory

Any ideas?

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4110031#4110031

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4110031

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to