My Oracle Support Banner

WebLogic Uses Too Many Embedded LDAP "LDAPCONNTHREAD-#" Threads and LDAPS Connections (Doc ID 2390101.1)

Last updated on JUNE 12, 2018

Applies to:

Oracle WebLogic Server - Version 12.2.1.2.0 and later
Information in this document applies to any platform.

Symptoms

After upgrading a Weblogic domain, the number of LDAP connections between managed servers and the admin server grew in comparison to previous releases. In previous WebLogic versions, six LDAP connection threads were common.  The number of LDAP connections varied from 2 to over 40 connections. As soon as a managed server started up, embedded LDAP connections appeared. The number was unpredictable, but the number of LDAP connections for a particular managed server was consistent between server restarts.

 

To test if a managed server is exhibiting this problem, start the managed server with WebLogic property -Dweblogic.security.ldap.poolsize=x on the Java startup command line, where "x" is the number of threads in the LDAP pool.  For this particular test, set "x" equal to 2 threads (i.e. -Dweblogic.security.ldap.poolsize=2).  Start the server, and then capture three thread dumps 15 seconds apart.  For instructions on how to capture a thread dump, refer to "Different ways to take thread dumps in WebLogic Server (Doc ID 1098691.1)" on My Oracle Support.  


Next, look at the thread dumps.  When the managed server is running, the thread stacks for the LDAP connection threads will appear as below.  If you count more than "x=2" LDAPConnThreads, then you have hit this problem. 


  "LDAPConnThread-0 ldaps://localhost:8001" #57 daemon prio=5 os_prio=0
tid=0x0000000064a1e800 nid=0x3420 runnable [0x000000006a67e000]
  java.lang.Thread.State: RUNNABLE
  at java.net.SocketInputStream.socketRead0(Native Method)
  at
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
  at java.net.SocketInputStream.read(SocketInputStream.java:171)
  at java.net.SocketInputStream.read(SocketInputStream.java:141)
  at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
  at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
  - locked (a java.io.BufferedInputStream)
  at netscape.ldap.ber.stream.BERElement.getElement(Unknown Source)
  at netscape.ldap.LDAPConnThread.run(Unknown Source)
  at java.lang.Thread.run(Thread.java:748)

Changes

 The behavior was observed after upgrading WebLogic Server from version 12.1.3.0.0 to 12.2.1.2.0. 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.