Experts:


            After we deploy our application to production in Tomcat server 
9.0.33,  we got following error when multiple users login for some time and the 
server hangs.



            When user click the "Login" button on the login form, it has a 
security realm that connect to the LDAP as in the server.xml:



                                    <Realm 
className="org.apache.catalina.realm.LockOutRealm">

                                                 &LDAP_realm;

                                    </Realm>



cat  LDAP_realm.xml

<Realm className="org.apache.catalina.realm.JNDIRealm"

   connectionURL="ldaps://XXXX"

   connectionName="XXX"

      authentication="simple"

   referrals="ignore"

   userSearch="(sAMAccountName={0})"

   userBase="XXX "

   userSubtree="true"

   roleSearch="(member={0})"

   roleName="cn"

   roleSubtree="true"

   roleBase="XXXX"

   adCompat="true"

/>





30-Mar-2020 12:47:29.218 INFO [https-jsse-nio-9443-exec-30] 
org.apache.catalina.realm.JNDIRealm.authenticate Exception performing 
authentication. Retrying...

            javax.naming.CommunicationException: Connection reset [Root 
exception is java.net.SocketException: Connection reset]; remaining name "XXX"

                        at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:2002)

                        at 
com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1844)

                        at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1769)

                        at 
com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:392)

                        at 
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:358)

                        at 
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:341)

                        at 
javax.naming.directory.InitialDirContext.search(InitialDirContext.java:267)

                        at 
org.apache.catalina.realm.JNDIRealm.getUserBySearch(JNDIRealm.java:1685)

                        at 
org.apache.catalina.realm.JNDIRealm.getUser(JNDIRealm.java:1521)

                        at 
org.apache.catalina.realm.JNDIRealm.getUser(JNDIRealm.java:1469)

                        at 
org.apache.catalina.realm.JNDIRealm.authenticate(JNDIRealm.java:1414)

                        at 
org.apache.catalina.realm.JNDIRealm.authenticate(JNDIRealm.java:1296)

                        at 
org.apache.catalina.realm.CombinedRealm.authenticate(CombinedRealm.java:190)

                        at 
org.apache.catalina.realm.LockOutRealm.authenticate(LockOutRealm.java:154)

                        at 
org.apache.catalina.authenticator.FormAuthenticator.doAuthenticate(FormAuthenticator.java:243)

                        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:631)

                        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

                        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

                        at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)

                        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

                        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

                        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)

                        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

                        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

                        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)

                        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

                        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

                        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

                        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

                        at java.lang.Thread.run(Thread.java:748)

            Caused by: java.net.SocketException: Connection reset

                        at 
java.net.SocketInputStream.read(SocketInputStream.java:210)

                        at 
java.net.SocketInputStream.read(SocketInputStream.java:141)

                        at 
sun.security.ssl.InputRecord.readFully(InputRecord.java:465)

                        at 
sun.security.ssl.InputRecord.read(InputRecord.java:503)

                        at 
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)

                        at 
sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)

                        at 
sun.security.ssl.AppInputStream.read(AppInputStream.java:105)

                        at 
java.io.BufferedInputStream.fill(BufferedInputStream.java:246)

                        at 
java.io.BufferedInputStream.read1(BufferedInputStream.java:286)

                        at 
java.io.BufferedInputStream.read(BufferedInputStream.java:345)

                        at com.sun.jndi.ldap.Connection.run(Connection.java:836)

                        ... 1 more





Any idea?



Thanks

Gary

Reply via email to