Confluence7.4跟AD同步后,每天首次登录很慢。报错信息如下

image

image

java.lang.Throwable
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
at [email protected]/java.util.concurrent.locks.LockSupport.park(Unknown Source)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(Unknown Source)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(Unknown Source)
at [email protected]/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(Unknown Source)
at net.sf.ehcache.concurrent.ReadWriteLockSync.lock(ReadWriteLockSync.java:50)
at net.sf.ehcache.constructs.blocking.BlockingCache.acquiredLockForKey(BlockingCache.java:196)
at net.sf.ehcache.constructs.blocking.BlockingCache.get(BlockingCache.java:158)
at com.atlassian.cache.ehcache.LoadingCache.get(LoadingCache.java:79)
at com.atlassian.cache.ehcache.DelegatingCachedReference.get(DelegatingCachedReference.java:74)
at com.atlassian.confluence.cache.DeferredCachedReference.sync(DeferredCachedReference.java:140)
at com.atlassian.confluence.cache.TransactionalCacheFactory$DelegateCacheSynchronization.synchronizeCache(TransactionalCacheFactory.java:252)
at com.atlassian.confluence.cache.TransactionalCacheFactory$DelegateCacheSynchronization.synchronizeCaches(TransactionalCacheFactory.java:231)
at com.atlassian.confluence.cache.TransactionalCacheFactory$DelegateCacheSynchronization.afterCompletion(TransactionalCacheFactory.java:218)
at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:171)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:992)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:967)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:788)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:714)
at jdk.internal.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at [email protected]/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
at com.sun.proxy.$Proxy75.commit(Unknown Source)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:152)
at com.atlassian.confluence.util.profiling.ConfluenceSitemeshDecorator.render(ConfluenceSitemeshDecorator.java:98)
at com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:33)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84)
at com.atlassian.confluence.util.profiling.ProfilingSiteMeshFilter.doFilter(ProfilingSiteMeshFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:39)

这个问题还真不好说。

考古了下网上的内容,有提到过 AD 慢的问题: Jira Login is slow after updating base DN | Jira | Atlassian Documentation

说是有提到了下面的解决方案。

2022-10-11_23-50-14

和下面的这个社区的问题了:https://community.atlassian.com/t5/Jira-questions/Synchronize-windows-AD-is-slow/qaq-p/1701042

从你的错误日志上来看,看不出有什么异常的问题。

可以考虑的是:

  • 插件的版本是不是兼容
  • 网络环境的问题,我们公司用过微软的 AD 云服务,没有什么问题
  • 用户量有多少,通常不会耗费太长时间

可以考虑是不是自己写一个 AD 连接的测试或者在网络环境上测一下,是不是这台机器本身连接 AD 就有问题。

每天首次登录慢,感觉是 JIRA 为了同步缓存 AD 的内容导致的,当内容被缓存下来了,那么登录就快了。

我感觉也是为了同步缓存内容 大概两千多用户吧 这个有什么解决办法吗

或者不让他缓存?直接用每天自动同步的AD信息?

我记得在 LDAP 的高级设置中,有一个同步时间的选项。

你看看 AD 有没有。

2022-10-12_08-41-08

另外,根据文章中的内容,看看是不是可以不选择这个选项。

2022-10-12_08-42-34

image
我是这么设置的 是不太行的

你这个设置只设置了分页,这个没有什么用呀。

分页只是说分页下载而已。

同步时间正好是 24 小时,上面是 1440 分钟,你改成 60 分钟试试。

登录时更新组员信息,显示是从不,你改成针对新添加用户。

然后上面可以选择下简单 DN 匹配,看看性能有没有改变。

只使用分页,没有任何意义,只是每次查询返回的结果罢了,一共也才 2000 个用户,最多就进行 3 次查询,没有任何区别。

2022-10-13_07-45-27