在weblogic 12c添加一個server成功后,在將server刪除。重新啟動AndminServer時拋出大量的 java.lang.ArrayIndexOutOfBoundsException的錯誤,日志報錯如下代碼:
<Critical> <EmbeddedLDAP> <BEA-000000> <java.lang.ArrayIndexOutOfBoundsException: Entry or EntryChange field length possibly corrupted: field=EntryChange3, lengthBytes=2,004,317,998, remainingBytes=83 at com.octetstring.vde.Entry.checkEntryFieldLength(Entry.java:785) at com.octetstring.vde.EntryChanges.readBytes(EntryChanges.java:288) at com.octetstring.vde.EntryChanges.<init>(EntryChanges.java:75) at com.octetstring.vde.replication.BackendChangeLog.getChange(BackendChangeLog.java:548) at com.octetstring.vde.replication.Replicator.run(Replicator.java:205) at com.octetstring.vde.replication.Replication.run(Replication.java:339)
錯誤分析:由於新增一個server,啟動后,weblogic自動在ldap文件目錄下添加了一個server文件,當我們在weblogic的后台刪除這個server的時候,並沒有刪除掉ldap文件目錄下的server文件。因此,我們新增的server並沒有徹底的刪除干凈,在啟動AndminServer的時候,它找不到我們新增的server, 所有導致了數組越界,拋出大量的java.lang.ArrayIndexOutOfBoundsException異常。
解決方法:進入servers/AndminServer/data下找到ldap文件,將其刪除,再重新啟動服務生成新的ldap文件就可以了。
1.先停止管理服務器AndminServer
2.備份servers/AndminServer/data下的ldap文件
3.刪除ldap文件
4.再重啟AndminServer,重新生成新的ldap文件就可以了