LDAP Import concurrent accessLDAP Import concurrent accesshttps://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1189303712024-03-28T22:15:08Z2024-03-28T22:15:08ZRE: LDAP Import concurrent accessChristoph Rabelhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1190099582020-04-22T16:02:25Z2020-04-22T16:02:25ZAre you sure that the clustering works?<br />I have seen that error before and IMHO only when the clustering didn't work.<br />Testing clustering is a bit annoying since you can only do things like add a portlet to a page on server 1 and refresh that page on server 2. When clustering works, the portlet should be seen instantly.<br />But if I recall correctly somebody posted a blog post on liferay.dev a while ago about checking clustering.Christoph Rabel2020-04-22T16:02:25ZLDAP Import concurrent accessSEBASTIEN PAYENhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1189303702020-04-14T09:07:38Z2020-04-14T09:07:38ZHello everybody,<br />I have a Liferay cluster with two nodes.Users are imported from a LDAP server and I noted concurrent access when updating users.Logs :2020-03-31 09:48:37.539 ERROR [liferay/scheduled_user_ldap_import-2][LDAPUserImporterImpl:1193] Unable to import user 192602<br />com.liferay.portal.kernel.exception.SystemException: com.liferay.portal.kernel.dao.orm.ORMException: {"agreedToTermsOfUse":false,"comments":"","companyId":"10157","contactId":"192603","createDate":1584016317263,"defaultUser":false,"emailAddress":"","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Jean-Michel","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Jean-Michel XXXXXX!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"XXXXXX","ldapServerId":"0","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1585312742000,"mvccVersion":"5432","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"XXXXXX","status":0,"timeZoneId":"Europe\/Paris","userId":"192602","uuid":"851340e6-5d06-2929-17eb-aa12cf6c4b78"} is stale in comparison to {"agreedToTermsOfUse":false,"comments":"","companyId":"10157","contactId":"192603","createDate":1584016317263,"defaultUser":false,"emailAddress":"","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Jean-Michel","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Jean-Michel XXXXXX!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"XXXXXX","ldapServerId":"0","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1585647596743,"mvccVersion":"5434","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"XXXXXX","status":0,"timeZoneId":"Europe\/Paris","userId":"192602","uuid":"851340e6-5d06-2929-17eb-aa12cf6c4b78"}<br />Â Â Â Â at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.processException(BasePersistenceImpl.java:446)<br />Â Â Â Â at com.liferay.portal.service.persistence.impl.UserPersistenceImpl.updateImpl(UserPersistenceImpl.java:8650)<br />Â Â Â Â at com.liferay.portal.service.persistence.impl.UserPersistenceImpl.updateImpl(UserPersistenceImpl.java:79)<br />Â Â Â Â at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.update(BasePersistenceImpl.java:544)<br />Â Â Â Â at com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl.update(BasePersistenceImpl.java:563)<br />Â Â Â Â at com.liferay.portal.service.impl.UserLocalServiceImpl.updateUser(UserLocalServiceImpl.java:5186)<br />Â Â Â Â at sun.reflect.GeneratedMethodAccessor456.invoke(Unknown Source)<br />Â Â Â Â at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br />Â Â Â Â at java.lang.reflect.Method.invoke(Method.java:497)<br />Â Â Â Â at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)<br />Â Â Â Â at com.sun.proxy.$Proxy684.updateUser(Unknown Source)<br />Â Â Â Â at com.liferay.portal.kernel.service.UserLocalServiceWrapper.updateUser(UserLocalServiceWrapper.java:3463)<br />Â Â Â Â at com.liferay.message.boards.internal.service.MBMessageUserLocalServiceWrapper.updateUser(MBMessageUserLocalServiceWrapper.java:71)<br />Â Â Â Â at sun.reflect.GeneratedMethodAccessor456.invoke(Unknown Source)<br />Â Â Â Â at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br />Â Â Â Â at java.lang.reflect.Method.invoke(Method.java:497)<br />Â Â Â Â at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)<br />Â Â Â Â at com.sun.proxy.$Proxy685.updateUser(Unknown Source)<br />Â Â Â Â at sun.reflect.GeneratedMethodAccessor456.invoke(Unknown Source)<br />Â Â Â Â at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br />Â Â Â Â at java.lang.reflect.Method.invoke(Method.java:497)<br />Â Â Â Â at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)<br />Â Â Â Â at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)<br />Â Â Â Â at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)<br />Â Â Â Â at com.liferay.portal.service.ServiceContextAdvice.invoke(ServiceContextAdvice.java:60)<br />Â Â Â Â at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)<br />Â Â Â Â at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)<br />Â Â Â Â at com.sun.proxy.$Proxy39.updateUser(Unknown Source)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.exportimport.LDAPUserImporterImpl.updateUser(LDAPUserImporterImpl.java:1727)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.exportimport.LDAPUserImporterImpl.importUser(LDAPUserImporterImpl.java:1168)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.exportimport.LDAPUserImporterImpl.importFromLDAPByUser(LDAPUserImporterImpl.java:883)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.exportimport.LDAPUserImporterImpl.importUsers(LDAPUserImporterImpl.java:535)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.exportimport.LDAPUserImporterImpl.importUsers(LDAPUserImporterImpl.java:461)<br />Â Â Â Â at com.liferay.portal.security.ldap.internal.configuration.persistence.listener.UserImportMessageListener.doReceive(UserImportMessageListener.java:136)<br />Â Â Â Â at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)<br />Â Â Â Â at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper._processMessage(SchedulerEventMessageListenerWrapper.java:127)<br />Â Â Â Â at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper.receive(SchedulerEventMessageListenerWrapper.java:98)<br />Â Â Â Â at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)<br />Â Â Â Â at com.liferay.portal.messaging.internal.SerialDestination$1.run(SerialDestination.java:60)<br />Â Â Â Â at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)<br />Â Â Â Â at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)<br />Â Â Â Â at java.lang.Thread.run(Thread.java:745)<br />Caused by: com.liferay.portal.kernel.dao.orm.ORMException: {"agreedToTermsOfUse":false,"comments":"","companyId":"10157","contactId":"192603","createDate":1584016317263,"defaultUser":false,"emailAddress":"","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Jean-Michel","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Jean-Michel XXXXXX!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"XXXXXX","ldapServerId":"0","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1585312742000,"mvccVersion":"5432","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"XXXXXX","status":0,"timeZoneId":"Europe\/Paris","userId":"192602","uuid":"851340e6-5d06-2929-17eb-aa12cf6c4b78"} is stale in comparison to {"agreedToTermsOfUse":false,"comments":"","companyId":"10157","contactId":"192603","createDate":1584016317263,"defaultUser":false,"emailAddress":"","emailAddressVerified":true,"externalReferenceCode":"","facebookId":"0","failedLoginAttempts":0,"firstName":"Jean-Michel","googleUserId":"","graceLoginCount":0,"greeting":"Welcome Jean-Michel XXXXXX!","jobTitle":"","languageId":"en_US","lastFailedLoginDate":null,"lastLoginDate":null,"lastLoginIP":"","lastName":"XXXXXX","ldapServerId":"0","lockout":false,"lockoutDate":null,"loginDate":null,"loginIP":"","middleName":"","modifiedDate":1585647596743,"mvccVersion":"5434","openId":"","portraitId":"0","reminderQueryAnswer":"","reminderQueryQuestion":"","screenName":"XXXXXX","status":0,"timeZoneId":"Europe\/Paris","userId":"192602","uuid":"851340e6-5d06-2929-17eb-aa12cf6c4b78"}<br />Â Â Â Â at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:67)<br />Â Â Â Â at com.liferay.portal.dao.orm.hibernate.SessionImpl.merge(SessionImpl.java:244)<br />Â Â Â Â at com.liferay.portal.service.persistence.impl.UserPersistenceImpl.updateImpl(UserPersistenceImpl.java:8646)<br />Â Â Â Â ... 40 more<br />Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.liferay.portal.model.impl.UserImpl#192602]<br />Â Â Â Â at org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:485)<br />Â Â Â Â at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:255)<br />Â Â Â Â at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)<br />Â Â Â Â at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:867)<br />Â Â Â Â at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:851)<br />Â Â Â Â at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:855)<br />Â Â Â Â at com.liferay.portal.dao.orm.hibernate.SessionImpl.merge(SessionImpl.java:241)<br />Â Â Â Â ... 41 more<br />DidÂ