SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 37076: Price approvals fail when running with concurrent users

DetailsHotfixAboutRate It

When you are using SAS® Regular Price Optimization with multiple concurrent users, price approvals might fail. The following error might be reported in the SAS® Merchandise Intelligence middle-tier application log:

2009-06-17 07:53:47,821 [RMI TCP Connection(69)-10.12.11.22] ERROR com.sas.solutions.di.server - We could not recover after a deadlock/outOfConnections after 10 attempts. java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sas.solutions.di.server.Server.privateInvoke(Server.java:347) at com.sas.solutions.di.server.Server.invoke(Server.java:316) at $Proxy0.invoke(Unknown Source) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java :1399) at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java: 82) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnect ionImpl.java:1246) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectio nImpl.java:1340) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:783) at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) Caused by: javax.management.RuntimeMBeanException: RuntimeException thrown in operation savePlanMemberSummaries at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:42 4) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:228) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerI nterceptor.java:822) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) ... 22 more Caused by: org.hibernate.exception.LockAcquisitionException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:82) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.doList(Loader.java:2223) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152) at com.sas.solutions.di.server.rpo.RPOPlanningService.getNextApprovedPlanMembers(RP OPlanningService.java:5941) at com.sas.solutions.di.server.rpo.RPOPlanningService.getNextApprovedPlanMembers(RP OPlanningService.java:5995) at com.sas.solutions.di.server.rpo.RPOPlanningService.validatePlanMembersForApprova l(RPOPlanningService.java:5757) at com.sas.solutions.di.server.rpo.RPOPlanningService.savePlanMembers(RPOPlanningSe rvice.java:456) at com.sas.solutions.di.server.rpo.RPOPlanningService.savePlanMemberSummaries(RPOPl anningService.java:366) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:41 0) ... 25 more Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 2 at com.ibm.db2.jcc.a.zc.b(zc.java:3190) at com.ibm.db2.jcc.c.kb.i(kb.java:231) at com.ibm.db2.jcc.c.kb.a(kb.java:187) at com.ibm.db2.jcc.c.kb.a(kb.java:35) at com.ibm.db2.jcc.c.x.a(x.java:30) at com.ibm.db2.jcc.c.j.Fb(j.java:331) at com.ibm.db2.jcc.a.zc.R(zc.java:3033) at com.ibm.db2.jcc.c.d.f(d.java:1041) at com.ibm.db2.jcc.a.s.a(s.java:189) at com.ibm.db2.jcc.a.zc.c(zc.java:311) at com.ibm.db2.jcc.a.zc.next(zc.java:283) at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:168) at org.hibernate.loader.Loader.doQuery(Loader.java:697) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:2 36) at org.hibernate.loader.Loader.doList(Loader.java:2220) ... 40 more 2009-06-17 07:53:47,836 [RMI TCP Connection(69)-10.12.11.22] ERROR com.sas.solutions.di.server - Exception thrown during the invocation of method com.sas.solutions.di.server.rpo.RPOPlanningService.savePlanMemberSummaries. org.hibernate.exception.LockAcquisitionException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:82) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.doList(Loader.java:2223) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152) at com.sas.solutions.di.server.rpo.RPOPlanningService.getNextApprovedPlanMembers(RP OPlanningService.java:5941) at com.sas.solutions.di.server.rpo.RPOPlanningService.getNextApprovedPlanMembers(RP OPlanningService.java:5995) at com.sas.solutions.di.server.rpo.RPOPlanningService.validatePlanMembersForApprova l(RPOPlanningService.java:5757) at com.sas.solutions.di.server.rpo.RPOPlanningService.savePlanMembers(RPOPlanningSe rvice.java:456) at com.sas.solutions.di.server.rpo.RPOPlanningService.savePlanMemberSummaries(RPOPl anningService.java:366) at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(StandardMetaDataImpl.java:41 0) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:228) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerI nterceptor.java:822) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sas.solutions.di.server.Server.privateInvoke(Server.java:347) at com.sas.solutions.di.server.Server.invoke(Server.java:316) at $Proxy0.invoke(Unknown Source) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java :1399) at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java: 82) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnect ionImpl.java:1246) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectio nImpl.java:1340) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:783) at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 2 at com.ibm.db2.jcc.a.zc.b(zc.java:3190) at com.ibm.db2.jcc.c.kb.i(kb.java:231) at com.ibm.db2.jcc.c.kb.a(kb.java:187) at com.ibm.db2.jcc.c.kb.a(kb.java:35) at com.ibm.db2.jcc.c.x.a(x.java:30) at com.ibm.db2.jcc.c.j.Fb(j.java:331) at com.ibm.db2.jcc.a.zc.R(zc.java:3033) at com.ibm.db2.jcc.c.d.f(d.java:1041) at com.ibm.db2.jcc.a.s.a(s.java:189) at com.ibm.db2.jcc.a.zc.c(zc.java:311) at com.ibm.db2.jcc.a.zc.next(zc.java:283) at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:168) at org.hibernate.loader.Loader.doQuery(Loader.java:697) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:2 36) at org.hibernate.loader.Loader.doList(Loader.java:2220) ... 40 more

The problem is the result of the batch job (which saves changes from the plan member summary view) taking too long in a concurrent user environment. This results in a long database transaction that will cause subsequent queries to timeout and fail.

There is no workaround for this issue.

Select the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Regular Price OptimizationMicrosoft Windows 2000 Advanced Server3.29.1 TS1M3 SP4
Microsoft Windows 2000 Datacenter Server3.29.1 TS1M3 SP4
Microsoft Windows 2000 Server3.29.1 TS1M3 SP4
Microsoft Windows 2000 Professional3.29.1 TS1M3 SP4
Microsoft Windows NT Workstation3.29.1 TS1M3 SP4
Microsoft Windows Server 2003 Datacenter Edition3.24.29.1 TS1M3 SP49.2 TS2M0
Microsoft Windows Server 2003 Enterprise Edition3.24.29.1 TS1M3 SP49.2 TS2M0
Microsoft Windows Server 2003 Standard Edition3.24.29.1 TS1M3 SP49.2 TS2M0
Microsoft Windows Server 20083.29.1 TS1M3 SP4
Microsoft Windows XP Professional3.24.29.1 TS1M3 SP49.2 TS2M0
Windows Vista3.24.29.1 TS1M3 SP49.2 TS2M0
64-bit Enabled AIX3.24.29.1 TS1M3 SP49.2 TS2M0
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.