Can anyone tell me why the SessionFactoryBinder hard codes the
hibernate.transaction.factory_class property with
org.hibernate.transaction.JTATransactionFactory
I am trying to manage my own transaction and cannot seem to get JBoss Portal to
let me. I commented out all of the transaction interceptors in
jboss-service.xml, as well as the the BMT entries for stateless session beans
in standardjboss.xml but then Hibernatre fails to close connections even though
I have close statements in finally blocks.
If I leave in the CachedConnectionInterceptor, the connections close but I
still get the following errors
Error 1:
09:49:34,890 INFO [CachedConnectionManager] Closing a connection for you.
Please close them yourself: [EMAIL PROTECTED]
java.lang.Throwable: STACKTRACE
at
org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:333)
at
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:482)
at
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:894)
at
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:73)
at
org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
at org.hibernate.jdbc.JDBCContext.userConnection(JDBCContext.java:114)
at org.hibernate.impl.SessionImpl.connection(SessionImpl.java:366)
at
com.agistics.platform.service.data.ejb.DataServicesBean.getSession(DataServicesBean.java:374)
at
com.agistics.platform.service.data.ejb.DataServicesBean.uniqueQuery(DataServicesBean.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:154)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:873)
at
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)
at
org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)
at $Proxy138.uniqueQuery(Unknown Source)
Error 2
09:49:35,046 INFO [NoTxConnectionManager] Throwable from unregisterConnection
java.lang.IllegalStateException: Trying to return an unknown connection2!
[EMAIL PROTECTED]
at
org.jboss.resource.connectionmanager.CachedConnectionManager.unregisterConnection(CachedConnectionManager.java:385)
at
org.jboss.resource.connectionmanager.NoTxConnectionManager$NoTxConnectionEventListener.connectionClosed(NoTxConnectionManager.java:93)
at
org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:247)
at
org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.jboss.resource.connectionmanager.CachedConnectionManager.closeConnection(CachedConnectionManager.java:585)
at
org.jboss.resource.connectionmanager.CachedConnectionManager.closeAll(CachedConnectionManager.java:480)
at
org.jboss.resource.connectionmanager.CachedConnectionManager.popMetaAwareObject(CachedConnectionManager.java:299)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:153)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:154)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:873)
at
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)
at
org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)
at $Proxy138.uniqueQuery(Unknown Source)
| First Session bean:
| protected String createProfileInternal(Entity e, Profile p) throws
ProfileException {
| try {
| DataServicesLocal dataServices =
dataServicesLocalHome.create();
|
| VersionedModelBase vmb = profileToPojo(e, p);
|
| String query = SQLGenerator.getEntityByProfile(e, p);
| ModelBase model = dataServices.uniqueQuery(query);
| if (model != null) {
| throw new DuplicateProfileException();
| }
|
| dataServices.save( vmb );
| return vmb.getGuid();
| } catch (ProfileException pe) {
| throw pe;
| } catch (Exception other) {
| log.error("createProfileInternal: error occurred while
creating new profile", other);
| throw new ProfileException(other.getMessage());
| }
| }
|
|
| public ModelBase uniqueQuery(String queryString) throws EJBException {
| // find a unique result based on the input query
| Session session = getSession();
| ModelBase result = null;
| try {
| Query query = session.createQuery(queryString);
| result = (ModelBase)query.uniqueResult();
| } catch (HibernateException e) {
| String message = "DataServices: uniqueQuery failed: " +
queryString;
| log.error(message, e);
| }
| finally {
| session.close();
| }
| return result;
| }
|
|
| protected Session getSession() {
| Session session = null;
| try {
| SessionFactory sf = (SessionFactory) new
InitialContext()
| .lookup(SESSION_FACTORY);
|
| session = session = sf.openSession();
| session.connection().setAutoCommit(false);
|
| return session;
| } catch (NamingException e) {
| log.error(e);
| throw new RuntimeException("DataServicesBean: Cannot
get Hibernate session.");
| } catch (SQLException e) {
| String message = "DataServices: SQLException: " +
e.getMessage();
| log.error(message, e);
| }
| return session;
| }
|
|
Any help is greatly appreciated.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923702#3923702
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923702
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user