6

We are using Tridion 2013 SP1 HR1 with Websphere 8.5. Recently we started getting this kind of exception when querying the broker:

org.hibernate.service.UnknownServiceException: Unknown service requested [org.hibernate.service.jdbc.connections.spi.ConnectionProvider] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:126) at org.hibernate.internal.AbstractSessionImpl.getJdbcConnectionAccess(AbstractSessionImpl.java:254) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.(JdbcCoordinatorImpl.java:75) at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.(TransactionCoordinatorImpl.java:87) at org.hibernate.internal.SessionImpl.(SessionImpl.java:227) at org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl.openSession(SessionFactoryImpl.java:1636) at org.hibernate.ejb.EntityManagerImpl.getRawSession(EntityManagerImpl.java:120) at org.hibernate.ejb.EntityManagerImpl.getSession(EntityManagerImpl.java:97) at org.hibernate.ejb.AbstractEntityManagerImpl.setDefaultProperties(AbstractEntityManagerImpl.java:267) at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:179) at org.hibernate.ejb.EntityManagerImpl.(EntityManagerImpl.java:89) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:125) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:120) at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) at java.lang.reflect.Method.invoke(Method.java:620) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod(AbstractEntityManagerFactoryBean.java:376) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:517) at com.sun.proxy.$Proxy56.createEntityManager(Unknown Source) at com.tridion.storage.persistence.JPABaseDAO.getEntityManager(JPABaseDAO.java:53) at com.tridion.storage.persistence.JPABaseDAO.executeQueryListResult(JPABaseDAO.java:264) at com.tridion.storage.persistence.JPABaseDAO.executeQueryListResult(JPABaseDAO.java:249) at com.tridion.storage.persistence.JPABaseDAO.executeQueryListResult(JPABaseDAO.java:220) at com.tridion.storage.persistence.JPABaseDAO.executeQuerySingleResult(JPABaseDAO.java:199) at com.tridion.storage.persistence.JPAItemDAO.findByPrimaryKey(JPAItemDAO.java:218) at com.tridion.storage.caching.CachedItemDAO.findByPrimaryKey(CachedItemDAO.java:67) at com.tridion.storage.caching.CachedItemDAO.findByPrimaryKey(CachedItemDAO.java:83) at com.tridion.meta.ComponentMetaFactory.getMeta(ComponentMetaFactory.java:105) at com.deltalloyd.dlva.dao.impl.NewsDAOImpl.getSortedComponentMetasList(NewsDAOImpl.java:190) at com.deltalloyd.dlva.dao.impl.NewsDAOImpl.findLast(NewsDAOImpl.java:120) at com.deltalloyd.dlva.tridion.taglib.NewsCollection.doTag(NewsCollection.java:54) at com.ibm._jsp._index._jspx_meth_bus_newscollection_0(_index.java:1477) at com.ibm._jsp._index.access$0(_index.java:1465) at com.ibm._jsp._index$_indexHelper.invoke0(_index.java:3264) at com.ibm._jsp._index$_indexHelper.invoke(_index.java:3313) at com.deltalloyd.dlva.tridion.taglib.CacheTag.doTag(CacheTag.java:38) at com.ibm._jsp._index._jspx_meth_bus_cache_0(_index.java:1897) at com.ibm._jsp._index._jspService(_index.java:398) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) at com.deltalloyd.dlva.filters.NewsArticleFilter.doFilter(NewsArticleFilter.java:55) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3923) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1006) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

I think the relevant part of this message is the following:

org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:517) at com.sun.proxy.$Proxy56.createEntityManager(Unknown Source) at com.tridion.storage.persistence.JPABaseDAO.getEntityManager(JPABaseDAO.java:53) at

It seems that the Tridion JPABaseDAO relies on Spring to get an "entity manager", but that something goes wrong in the EntityManagerFactory. Presumably there is a configuration setting somewhere that controls this behaviour.

Restarting the web application makes the problem disappear for a while, but not permanently.

What can cause this problem? What is the best strategy for solving it?

1 Answer 1

4

This is a database access exception, it most likely means you either don't have your broker configured correctly (could be direct database connection OR your items) or your websphere datasource isn't configured correctly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.