Limpiando una Instancia de WebLogic Server para Reiniciar el Servidor

En estos días trabajando en un proyecto he tenido que desplegar mi aplicación varias veces en una máquina no muy potente y he notado que luego de varios despliegues el servidor tiende a ponerse lento por lo que tiendo reiniciarlo, en algunos casos matando el proceso directamente, lo cual causa  que se queden archivos de ejecución que afectan el reiniciar el servidor ya que estos indican que el servidor está corriendo.

En esta entrada presento algunas cosas que descubrí y que puede ser de ayuda para subir el servidor nuevamente:

Síntoma: Locks!

El primer elemento con el que me encontré fue, que al momento de subir el servidor por consola empiezo a ver el mensaje:
unable to get file lock, will retry …
Para solucionarlo hay que eliminar el archivo .lok ubicado en: <WL_DOMAIN_HOME>/servers/<SERVER>/tmp/SERVER_NAME.lok
El otro archivo que puede estar interfiriendo se encuentra ubicado en:
<WL_DOMAIN_HOME>/servers/<SERVER>/data/ldap/ldapfiles/EmbeddedLDAP.lok
en mi caso los archivos se encontraban en:
adf_domain/servers/AdminServer/tmp/AdminServer.lok
adf_domain/servers/AdminServer/data/ldap/ldapfiles/EmbeddedLDAP.lok

Síntoma: Problemas con archivo _WLS_ADMINSERVER000000.DAT

Luego de remover los archivos de locks, intenté nuevamente subir el servidor y en este caso obtuve un error de esta forma:
<BEA-280061> <The persistent store "_WLS_AdminServer" could not be deployed: weblogic.store.PersistentStoreException: java.io.IOException: [Store:280021]There was an error while opening the file store file "_WLS_ADMINSERVER000000.DAT"
weblogic.store.PersistentStoreException: java.io.IOException: [Store:280021]There was an error while opening the file store file "_WLS_ADMINSERVER000000.DAT"

at weblogic.store.io.file.Heap.open(Heap.java:166)
at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:87)
at weblogic.store.internal.PersistentStoreImpl.recoverStoreConnections(PersistentStoreImpl.java:327)
at weblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl.java:318)
at weblogic.store.admin.AdminHandler.activate(AdminHandler.java:135)
Truncated. see log file for complete stacktrace
java.io.IOException: [Store:280021]There was an error while opening the file store file "_WLS_ADMINSERVER000000.DAT"
at weblogic.store.io.file.StoreDir.throwIOException(StoreDir.java:213)
at weblogic.store.io.file.StoreDir.open(StoreDir.java:103)
at weblogic.store.io.file.Heap.open(Heap.java:164)
at weblogic.store.io.file.FileStoreIO.open(FileStoreIO.java:87)
at weblogic.store.internal.PersistentStoreImpl.recoverStoreConnections(PersistentStoreImpl.java:327)
Truncated. see log file for complete stacktrace
java.io.IOException: Error from fcntl() for file locking, Resource temporarily unavailable, errno=11
at weblogic.store.io.file.direct.DirectIONative.open(Native Method)
at weblogic.store.io.file.direct.DirectFileChannel.<init>(DirectFileChannel.java:51)
at weblogic.store.io.file.direct.DirectIOManager.open(DirectIOManager.java:138)
at weblogic.store.io.file.StoreFile.openInternal(StoreFile.java:107)
at weblogic.store.io.file.StoreFile.open(StoreFile.java:142)
Truncated. see log file for complete stacktrace
Luego de hacer una busqueda en internet me encontré con que hay dos archivos .DAT que se quedaron en el servidor.
La solución: Buscar y remover los archivos .DAT dentro del dominio
WL_DOMAIN_HOME: find . –name “*.DAT” –print
en mi caso los archivos que borre fueron:
adf_domain/servers/AdminServer/data/store/default/_WLS_ADMINSERVER000000.DAT
adf_domain/servers/AdminServer/data/store/diagnostics/WLS_DIAGNOSTICS000000.DAT

Síntoma: Puerto Activo

El último elemento que se presentó fue que el proceso Java se quedo pegado en el puerto por lo que hay que hacer una búsqueda sobre el puerto
netstat -lpn |grep :7001
El resultado es
tcp6       0      0 :::7001                 :::*                    LISTEN      6782/java
Kill –9 6782
Y con esto el servidor vuelve a la vida.


4 Responses to Limpiando una Instancia de WebLogic Server para Reiniciar el Servidor

Anónimo dijo...

Grande!!

Anónimo dijo...

Esto funciona para mí.

Cedeweb dijo...

Gracias por compartir la información, es muy interesante y de gran valor.

Compartimos este material digital, que servirá a muchos interesados en aplicaciones oracle.

Éxito http://bit.ly/1fhAJa0

Christian Alvarado dijo...

Si lo que necesitan es reiniciar un servicio Web logic me resulto renombrando
/servers//tmp/
/servers//data/

y lanzarlo de nuevo.