Solving weblogic embedded ldap error

While starting a cluster in one of production systems we encountered every time a SOASuite or WLS cluster starts at least one managed server get a error like below. to solve weblogic embedded ldap error’s you can follow below steps.

After much debugging we finally restored the ldap from the backups but the issue still remained.we had around 9 managed servers using Unicast protocol for cluster communication.
Below are the logs which we see in logs file.

<Apr 11, 2013 9:11:29 AM BRT> <Error> <EmbeddedLDAP> <BEA-000000> <Error reading changelog entry#: 409882>
<Apr 11, 2013 9:11:29 AM BRT> <Critical> <EmbeddedLDAP> <BEA-000000>
<java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)

####<Oct 1, 2013 12:34:38 AM PDT> <Error> <EmbeddedLDAP> <slcad942> <AdminServer> <VDE Replication Thread> <<anonymous>> <> <82a35563d7f9f106:-3a0ff0c1:14172e524f8:-8000-00000000000001ac> <1380612878203> <BEA-000000> <Error reading changelog entry#: 0>
####<Oct 1, 2013 12:34:38 AM PDT> <Critical> <EmbeddedLDAP> <sdsd42> <AdminServer> <VDE Replication Thread> <<anonymous>> <> <82a35563d7f9f106:-3a0ff0c1:14172e524f8:-8000-00000000000001ac> <1380612878203> <BEA-000000> <java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)
>
####<Oct 1, 2013 12:34:38 AM PDT> <Error> <EmbeddedLDAP> <sdsd42> <AdminServer> <VDE Replication Thread> <<anonymous>> <> <82a35563d7f9f106:-3a0ff0c1:14172e524f8:-8000-00000000000001ac> <1380612878204> <BEA-000000> <Error reading changelog entry#: 0>
####<Oct 1, 2013 12:34:38 AM PDT> <Critical> <EmbeddedLDAP> <sdsd42> <AdminServer> <VDE Replication Thread> <<anonymous>> <> <82a35563d7f9f106:-3a0ff0c1:14172e524f8:-8000-00000000000001ac> <1380612878204> <BEA-000000> <java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)
<Oct 1, 2013 12:15:57 PM PDT> <Error> <EmbeddedLDAP> <BEA-000000> <Error reading changelog entry#: 0>
<Oct 1, 2013 12:15:57 PM PDT> <Critical> <EmbeddedLDAP> <BEA-000000> <java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)
>
<Oct 1, 2013 12:15:57 PM PDT> <Error> <EmbeddedLDAP> <BEA-000000> <Error reading changelog entry#: 0>
<Oct 1, 2013 12:15:57 PM PDT> <Critical> <EmbeddedLDAP> <BEA-000000> <java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)
>
<Oct 1, 2013 12:15:57 PM PDT> <Error> <EmbeddedLDAP> <BEA-000000> <Error reading changelog entry#: 0>
<Oct 1, 2013 12:15:57 PM PDT> <Critical> <EmbeddedLDAP> <BEA-000000> <java.lang.NullPointerException
at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:256)
at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:72)
at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548)
at com.octetstring.vde.replication.Replicator.run(Replicator.java:180)
at com.octetstring.vde.replication.Replication.run(Replication.java:339)
We finally found out that this error is because of ldap files of servers running inside the domain getting corrupted while getting started.

If restore the ldap from the backups does not work, We can follow below solution to fix the issue:
==============================================
1. Backup the ldap directory of servers in domain directory
2. Enable “refresh replica at startup” option for embedded ldap.
3. Stop all the server instances inside the domain and delete ldap directory for all the servers inside <MW_HOME>/servers/<server_name>/ldap
4. Restart all the servers in the domain

Steps for enabling “refresh replica at startup” option for EmbeddedLDAP:
========================================================================

Login to WebLogic console, click on domain name on left pane –> go to security tab –> Embedded LDAP tab –> click on “Refresh replica at startup” option.

Refresh replica at startup screen

wls security console

 Precautions to take for next time:

1. Configure Backups for the Embedded LDAP Server

– Expand the Domain node.
– Select the Security–> Embedded LDAP tab.
– Set the Backup Hour, Backup Minute, and Backup Copies attributes on the Embedded LDAP tab.

EmbeddedLdap backup settings
– Click Apply to save your changes.
– Reboot WebLogic Server.

2. Time To Time monitor the LDAP settings by connecting to it:

Please find the sample instructions to do the same. you can get many open source ldap browsers in sorceforge.net like Jexplorer,open ldap etc.

Download an external LDAP browser from the following location:
http:/www.iit.edu/~gawojar/ldap/
To view the contents, change the embedded LDAP credentials.
Expand the Domain node.
Select the Security–>Embedded LDAP tab.
Change the Credential attribute from its generated value to a password you will use in the LDAP browser.
Click Apply.
Reboot WebLogic Server.
Enter the following command at a command prompt to start the LDAP browser:
lbe.sh
Configure a new connection in the LDAP browser:
Set the host field to localhost.
Set the port field to 7001 (7002 if SSL is being used).
Set the Base DN field to dc=mydomain where mydomain is the name of the WebLogic Server domain you are using.
Uncheck the Anonymous Bind option.
Set the User DN field to cn=Admin.
Set the Password field to the password you specified in the previous Step.
Click the new connection.
Use the LDAP browser to navigate the hierarchy of the embedded LDAP server.

In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.

Leave a Reply