cancel
Showing results for 
Search instead for 
Did you mean: 

Portal Connection issue with MDM

Former Member
0 Kudos

Hello,

We are running an online catalog using MDM 5.5, which is surfaced through our Enterprise Portal system. Currently we have 3 iViews defined and once in awhile, maybe twice a month, those iViews are unable to connect to the MDM system.

Looking in the default trace log, we get the following error:

com.sap.engine.services.connector.exceptions.BaseResourceException: Cannot get connection for 120 seconds. Possible reasons: 1) Connections are cached within SystemThread(can be any server service or any code invoked within SystemThread in the SAP J2EE Engine), 2) The pool size of adapter "MDM Factory" is not enough according to the current load of the system or 3) The specified time to wait for connection is not enough according to the pool size and current load of the system. In case 1) the solution is to check for cached connections using the Connector Service list-conns command, in case 2) to increase the size of the pool and in case 3) to increase the time to wait for connection property. In case of application thread, there is an automatic mechanism which detects unclosed connections and unfinished transactions.

at java.lang.Throwable.<init>(Throwable.java:194)

at java.lang.Exception.<init>(Exception.java:41)

at javax.resource.ResourceException.<init>(ResourceException.java:73)

at com.sap.engine.services.connector.exceptions.BaseResourceException.<init>(BaseResourceException.java:50)

at com.sap.engine.services.connector.jca.ConnectionHashSet.match(ConnectionHashSet.java:183)

at com.sap.engine.services.connector.jca.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:117)

at com.sap.mdm.connector.connection.MdmConnectionFactory.getConnectionEx(MdmConnectionFactory.java:205)

at com.sap.portal.ivs.internalconnector.ConnectionProvider.getConnection(ConnectionProvider.java:268)

at com.sap.portal.ivs.internalconnector.ConnectionProvider.getConnection(ConnectionProvider.java:259)

at com.sapportals.portal.ivs.cg.ConnectorService.getConnection(ConnectorService.java:456)

at com.sapportals.portal.ivs.cg.ConnectorService.getConnection(ConnectorService.java:80)

at com.bse.isa.mdmSearchDisplay.utils.ConnectionUtilities.getConnection(ConnectionUtilities.java:40)

at com.bse.isa.mdmSearchDisplay.utils.DoSearch.getMaskId(DoSearch.java:98)

at com.bse.isa.mdmSearchDisplay.TextSearch$TextSearchPage.doInitialization(TextSearch.java:92)

at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:63)

at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:110)

at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:166)

at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:111)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:200)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:115)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:177)

at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:201)

at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:633)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:200)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:115)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:177)

at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:561)

at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:107)

at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:436)

at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:402)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:79)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:332)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:0)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:336)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:868)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:250)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:0)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:92)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:30)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:35)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Has anyone seen this error before?

Thanks,

Dale Dingmann

Accepted Solutions (0)

Answers (1)

Answers (1)

benjamin_houttuin
Active Contributor
0 Kudos

No I haven't seen it but the error message is superb:

Possible reasons: 
1) Connections are cached within SystemThread(can be any server service or any code invoked within SystemThread in the SAP J2EE Engine), 
2) The pool size of adapter "MDM Factory" is not enough according to the current load of the system or 
3) The specified time to wait for connection is not enough according to the pool size and current load of the system. 
In case 1) the solution is to check for cached connections using the Connector Service list-conns command, 
in case 2) to increase the size of the pool and 
in case 3) to increase the time to wait for connection property. 
In case of application thread, there is an automatic mechanism which detects unclosed connections and unfinished transactions.

I guess that the connection pool is full and more connections are needed but are not availible. That would seem to match with your description that it only occures twice a month.... The real cause may lay in the fact that the connections are not relaesed properly ant that could lead to connections running out.

Good luck,

Benjamin Houttuin