Hej
Vi har precis lagt till vår 1001 redaktör i Pololopoly och slog precis i Oracletaket med vår import av användare från vår motsvarande LDAP.
Vi letar reda på alla användare för att uppdatera deras attribut och använder följande.
Collection<User> users = getUserServer().findUsersByAttributeValue("user", "loginName", "%", caller);
för att hitta alla användare och uppdatera deras personliga uppgifter.
findUsersByAttributeValue() verkar skapa 1001 select-satser och skicka iväg i en batch vilket Oracle inte tillåter
Har någon en funktion att dela med sig så att jag inte behöver bygga en egen hitta alla användare i mindra batchar?
Mvh
Patric Jansson
-----------------------
25-Mar-2011 03:00:48 se.kth.ite.cortina.ugimport.EventConsumer cacheUsers
INFO: Starting to look up users.
25-Mar-2011 03:00:49 com.polopoly.ejb.SqlExceptionHandler convertSqlExceptionToEjbExceptionAndLogWarning
WARNING: Problem accessing database.
java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:810)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
at com.polopoly.ejb.user.UserSecurityHandlerBean.getUserIdsByContentIds(UserSecurityHandlerBean.java:2070)
at com.polopoly.ejb.user.UserSecurityHandlerBean.findUserIdsInternal(UserSecurityHandlerBean.java:1940)
at com.polopoly.ejb.user.UserSecurityHandlerBean.findUserDataIdsByAttributeValues(UserSecurityHandlerBean.java:1793)
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:597)
at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:960)
at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
: at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
at org.jboss.invocation.InvokerInterceptor.invokeLocalMarshalled(InvokerInterceptor.java:295)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:61)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy104.findUserDataIdsByAttributeValues(Unknown Source)
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:597)
at com.polopoly.management.ProxyServiceControlledApi.invoke(ProxyServiceControlledApi.java:219)
at com.polopoly.management.ProxyServiceControlledRemoteApi.invoke(ProxyServiceControlledRemoteApi.java:122)
at $Proxy104.findUserDataIdsByAttributeValues(Unknown Source)
at com.polopoly.user.server.impl.EjbUserService.findUserDataIdsByAttributeValues(EjbUserService.java:771)
at com.polopoly.user.server.impl.CachingUserServer.findUserIdsByAttributeValues(CachingUserServer.java:832)
at com.polopoly.user.server.impl.CachingUserServer.findUsersByAttributeValues(CachingUserServer.java:913)
at com.polopoly.user.server.impl.CachingUserServer.findUsersByAttributeValues(CachingUserServer.java:889)
at com.polopoly.user.server.impl.CachingUserServer.findUsersByAttributeValue(CachingUserServer.java:862)
at se.kth.ite.cortina.ugimport.UserServerWrapper.getAllUsers(UserServerWrapper.java:445)
at se.kth.ite.cortina.ugimport.EventConsumer.cacheUsers(EventConsumer.java:615)
at se.kth.ite.cortina.ugimport.EventConsumer.prepareSync(EventConsumer.java:705)
at se.kth.infosys.simplepropagator.SimplePropagator.prepareSync(SimplePropagator.java:368)
at se.kth.infosys.simplepropagator.SimplePropagator.fullSync(SimplePropagator.java:242)
at se.kth.infosys.simplepropagator.SimplePropagator.run(SimplePropagator.java:84)
25-Mar-2011 03:00:49 se.kth.ite.cortina.ugimport.UserServerWrapper getAllUsers
INFO: Error finding all uses
java.rmi.ServerException: EJBException:; nested exception is:
javax.ejb.EJBException: [Code: 1795][State: 42000][Message: ORA-01795: maximum number of expressions in a list is 1000
]
at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:365)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
at org.jboss.ejb.Container.invoke(Container.java:960)
at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
:
---
Rösta och lämna förslag på förbättringar i KTH:s IT-miljö!
https://www.kth.se/gemensamt/suggestions/---
Patric Jansson
KTH Royal Institute of Technology
IT-Department
Osquldasväg 6
100 44 Stockholm
Phone: +46-8-790 66 09
Mobile: +46-7-68 09 66 09
http://twitter.com/patricjanssonhttp://twitter.com/kthwebmasterpaddy@kth.sehttps://www.kth.se/social/user/u193834l/http://www.kth.se