Oracle Analytics Server weblogic en
Data In Hands · Real Support Case Notes

How To: When AD users sign in fast but only “weblogic” takes 2+ minutes

This case wasn’t about CPU, memory, or storage. It was about the Authentication Provider chain. The key was making the AD Authenticator stop “holding on” for a long time when the weblogic user does not exist in AD, so it can move on to the embedded LDAP in a quick “give up and move on” manner.

Symptom: only weblogic slow Setup: AD + Embedded LDAP Fix: time limits + referrals Goal: predictable sign-in time
What happened

At first, this sounded like a typical “post-migration performance” complaint: after moving to OCI, users said sign-in felt slow and the UI felt slow. But once we timed sign-in properly, a very specific pattern showed up.

The key pattern

Normal business users (from AD) sign in quickly, similar to on-prem.
But the weblogic account (admin user) takes 2+ minutes to sign in. And that delay is consistent across both WebLogic Console and Analytics.

Note: dashboard load time can be slow for all users for a completely different reason (query/DB track). I intentionally separated that from the sign-in issue in this post.

Environment / authentication layout
  • Normal users: managed in Microsoft AD
  • weblogic: exists only in embedded LDAP (DefaultAuthenticator)
  • Security Realm: ADAuthenticator + DefaultAuthenticator

This is a common setup. The real issue comes from the fact that weblogic is not in AD. Ideally, the AD provider should determine “user not found” quickly and then the flow should move on to the embedded LDAP. If the AD provider spends a long time waiting during connect/search/referral handling, the “user not found” decision is delayed, and that delay becomes your sign-in time.

Authentication Providers list
Authentication Providers configured under Security Realm → Providers → Authentication.
DefaultAuthenticator Control Flag REQUIRED
Example of DefaultAuthenticator Control Flag set to REQUIRED. In many environments, this is a safe default and not the root cause by itself.
ADAuthenticator before tuning
Example “before” settings. If Connect Timeout / Results Time Limit are 0, you may effectively have no upper bound on how long a lookup can take.
ADAuthenticator after tuning
Example “after” settings (Connect Timeout, Results Time Limit, Referrals, Keep Alive, etc.).
Why only “weblogic” becomes slow
What we expect to happen

User enters weblogic → AD Authenticator quickly determines “not found” → flow moves to DefaultAuthenticator (embedded LDAP) → sign-in completes

In reality, the AD provider can spend time in multiple places: establishing the LDAP connection, performing the search, or chasing referrals. If any of those steps wait too long, the “not found” result is delayed, and the admin sign-in feels “stuck”.

A common misconception

“If the user doesn’t exist in AD, it will immediately fall through to the next provider.” That is only true when the AD lookup returns quickly. If time limits are effectively infinite (0) or referrals expand the lookup path, a non-existent user can still take a long time.

What we saw in thread dumps

During the slow sign-in window, we repeatedly saw multiple LDAPConnThread threads and a recurring socketRead0 pattern. Even when the Java thread state shows RUNNABLE, the stack can represent native I/O wait (waiting on a response).

text LDAP socket read wait pattern
java.net.SocketInputStream.socketRead0
java.io.BufferedInputStream.read / fill
netscape.ldap.ber.stream.BERElement.getElement
netscape.ldap.LDAPConnThread.run
Important: don’t overclaim from dumps

Seeing LDAP wait patterns does not automatically prove LDAP is the root cause. The stronger proof is to correlate the actual login request thread (ExecuteThread / request thread) and show it is blocked in the authentication path.

bash Thread dumps (3x)
PID=<bi_server1_pid>
jcmd $PID Thread.print > /tmp/bi_server1_td_1.txt
sleep 10
jcmd $PID Thread.print > /tmp/bi_server1_td_2.txt
sleep 10
jcmd $PID Thread.print > /tmp/bi_server1_td_3.txt
What we changed (and why it worked)

The goal is simple: because weblogic is not in AD, we want the AD Authenticator to stop waiting too long and move on to embedded LDAP. So we focused on controlling (1) the maximum waiting time and (2) unnecessary lookup expansion.

  1. Set a finite Connect Timeout

    If Connect Timeout is 0, a connection attempt can effectively wait without a hard upper bound (depending on the environment). For troubleshooting and stabilization, starting with something like 10–30 seconds is practical.

    Key point

    Connect Timeout only covers establishing the connection. If the connection succeeds but the LDAP search is slow, you need a separate search/response time limit.

  2. Set a finite Results Time Limit (search/response)

    If Results Time Limit is 0, the LDAP search can take a long time and you will see socketRead0 waits. A common starting point is 2000–5000 ms, then adjust based on the environment.

  3. Use “Follow Referrals” only when required

    Referrals can expand a lookup to additional endpoints. That can increase latency and make analysis harder. If there is no explicit requirement, disabling referrals is often the safer operational choice.

  4. Keep Alive is supportive, not the main fix

    Keep-alive can reduce connection churn, but the main stabilizer for “worst-case login time” is setting reasonable time limits.

  5. Restart after changes

    Provider changes often behave more consistently after a restart. In production, do this with a change window and a rollback plan.

Result

The weblogic sign-in time dropped from “minutes” to a shorter, more predictable window (tens of seconds). AD user sign-in remained fast.

Should DefaultAuthenticator (REQUIRED) be changed to SUFFICIENT?
Recommendation

I do not recommend changing it just to “fix slowness”.
If the weblogic account exists only in embedded LDAP, DefaultAuthenticator = REQUIRED is usually a safe baseline.

In this pattern, the problem is rarely “DefaultAuthenticator is REQUIRED”. The more common issue is that the AD Authenticator is taking too long to decide “not found”. So the first priority is to make the AD path stop waiting too long (timeouts + referral control).

“Does it fall through immediately?”

It falls through quickly only if AD returns “not found” quickly. If the network, search, or referrals delay the response, the login can wait until the configured limit (or indefinitely if that limit is 0). In practice, perceived login time is heavily influenced by timeout/referral settings.

Validation
  • Measure WebLogic Console sign-in time with weblogic (3 trials)
  • Measure Analytics sign-in time with weblogic (3 trials)
  • Confirm AD user sign-in performance did not regress
  • If still slow: recapture dumps and correlate request threads ↔ LDAP wait paths
Next: dashboard load slowness

If dashboards remain slow for all users, treat that as a separate track: query/DB performance. The fastest route is to identify the slow Physical SQL and work with the DBA on execution plans and wait events.

Scroll to Top