el servidor ejabberd se corrompe con Win 2000 pro

Contenido archivado

El contenido de la web se encuentra archivado y no se podrá crear nuevo contenido. Más información.

Tagged:

He instalado en mi PC (con Win 2000 Pro, s.p.4) el servidor ejabberd para hacer pruebas.

Lo mas curioso es que, en varias ocasiones que lo he cerrado, al volverlo a reiniciar se corrompen no se que datos del server y no hay forma de volver a hacerlo funcionar.

La unica manera de ponerlo en marcha que me ha funcionado, ha sido volviendo a reinstalarlo todo (no recuerdo ahora si he necesitado reinstalar el runtime del Erlang, pero creo que no).
Por lo demas, mientras no se corrompe, funciona bien la cosa.

¿A alguien se le ocurre alguna solucion al respecto?

Gracias.
Perezoso

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Detener el servidor de forma abrupta

--- Lo mas curioso es que, en varias ocasiones que lo he cerrado

He probado Ejabberd en Windows XP varias veces, pero ahora mismo no recuerdo cómo lo cerraba. Se que se puede iniciar de dos formas: por defecto se instala como servicio de Windows, por tanto se arranca él solo junto con el sistema operativo. También hay un acceso directo para iniciarlo, pero no recuerdo que instalara un acceso directo para cerrarlo. ¿Tu cómo lo cierras?

--- al volverlo a reiniciar se corrompen no se que datos del server y no hay forma de volver a hacerlo funcionar.

Supongo que la base de datos no se corrompe al iniciarlo, sino al cerrarlo de forma abrupta. Dicho esto, yo lo he cerrado en Linux de varias formas distintas (pasando un mensaje por RPC para que se cierre, con kill, apagando la máquina directamente), y creo que nunca me ha dado tal mensaje, claro que puede ser que esas formas de cerrarlo le avisaran antes para que pudiera guardar la base de datos.

--- ¿A alguien se le ocurre alguna solucion al respecto?

Diría que el problema está en cómo cierras el servidor, no en que sea en Windows 2000.

Concretando

Bueno ... ya te puedo decir algo mas concreto.

El ejabberd, lo cierro desde la ventana Erlang que aparece al abrir el server ... ahi tienes la opcion de cerrarlo (o eso creo que es lo que hace).
Ayer, lo he abierto y cerrado un monton de veces sin problemas.
Hoy, despues de tener apagado el PC toda la noche, al ponerlo en marcha ha vuelto a aparecer el problema. Algo se ha estropeado y ya no funciona el ejabbred.

Te pego la primera parte de los "pecados" que me ha dicho para ver si puedes descubrir alguna pista en todo eso:
*********************************************************
{error_logger,{{2004,9,20},{15,37,48}},'Protocol: ~p: register error: ~p~n',[ine
t_tcp,{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,s
tart_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,
init,1},{gen_server,init_it,6},{proc_lib,init_p,5}]}]}
*********************************************************
yo no se por donde empezar a meterle mano, parece que le falla todo.

Gracias por la ayuda.
Perezoso.

Nombre duplicado, dos ejabberds

--- El ejabberd, lo cierro desde la ventana Erlang que aparece al abrir el server ... ahi tienes la opcion de cerrarlo (o eso creo que es lo que hace).

Ah, al iniciar el Ejabberd con el acceso directo, te deja la ventana de werl abierta. Si va bien, te salen un montón de PROGRESS REPORT y al final dejan de salir mensajes. Si eso es lo que te sale, entonces sí, cerrar esa ventana cierra Erlang, y por tanto Ejabberd.

Como curiosidad, si pulsas Enter en esa ventana te sale la línea de comandos de Erlang, y puedes teclear cosas como:

toolbar:start().

que si te funciona, muestra una barra de herramientas con: visor de tablas Mnesia, visor de procesos, depurador, etc.

Si cerrar la ventana es malo para la base de datos, siempre puedes cerrar el nodo Erlang con la orden

q().

--- {badmatch,{error,duplicate_name}

Ejabberd funciona en un nodo Erlang (una ventana esas de werl, por ejemplo). Cada nodo Erlang ha de tener un nombre distinto. Si quieres tener varios nodos Erlang en la misma máquina (por ejemplo para tener Ejabberd y Yaws), el nodo de cada programa debe tener nombres distintos.

Pues bien, sabiendo esto el error que te da ya es más entendible: Erlang no puede arrancar porque ya hay otro nodo con ese nombre. En tu caso, debe ser que cuando arrancas Ejabberd ya hay otro Ejabberd funcionando en esa máquina. Es posible que Windows te lo arranque como servicio de sistema, para ahorrarte trabajo ;) . Este error no tiene nada que ver con la base de datos.

2 ejabberds

Efectivamente, sin ejecutar nada, veo que siguen cargados "erl.exe", "erlsrv.exe", "werl.exe", etc.

Tengo puesta mi IP publica en la configuracion del ejabberd y, al probar a conectarme con los clientes desde mi lan, solo permite la conexion al cliente que esta en el mismo PC donde vive el server, los clientes de los demas PCs no pueden conectarse ni con la IP publica ni con la privada... ????

Si no puedo reabrir el programa (porque falla) y no puedo conectarme desde otros PCs .... ¿que puedo hacer sin tener que reinstalar de nuevo el ejabberd?

Me parece recordar que, en otra ocasion, cuando le habia mandado finalizar esos procesos, de repente se me reseteaba el PC y, creo que no solucionaba nada porque (supongo) se vuelven a cargar de nuevo al reiniciar el Windows.

¿Necesito una bendicion? (jeje)

Un afectuoso saludo.

Bendicion

Ok ... parece que llegó esa bendicion... :-)

La solucion está en desactivar el ejabberd como un servicio automatico del propio Windows y listo.

Despues de eso, al no arrancar junto al S.O., la cosa funciona perfectamente porque no hay otro ejabberd cargado por abajo.

Aunque me ha dado bastante trabajo resolverlo, me ha servido de gran ayuda tu indicacion de donde estaba el problema, porque no sabia por donde empezar ... muchas gracias, Badlop.

Aun hay algunas otras cosas que necesitan currarse, pero bueno, aunque sea lentamente, parece que se va avanzando :-)

A proposito, eso que has dicho de:
"Como curiosidad, si pulsas Enter en esa ventana te sale la línea de comandos de Erlang, y puedes teclear cosas como: ... "
no he conseguido que funcione :-( ... lo que sí me da acceso a algunas funciones es cuando pulso "Ctrl + C" dentro de la ventana.

Seguimos en contacto ... reitero eso de las muchas gracias.
Saludos.
Perezoso

server ejabberd y asuntos de IP's

Gracias por las respuestas.

Me habia cansado de pelear con eso (entre otras cosas, por la poca info que encontrada) pero, voy a reinstalarlo de nuevo y te cuento luego con mas detalle, no recuerdo ahora como hacia para cerrarlo.

Hay una cosa que no entiendo como puede funcionar.
Si, en el fichero de configuracion, le pones la IP de acceso al server y esa es la IP publica (para que puedan entrar desde afuera) ... como se consigue entrar desde dentro de la red LAN en la que esta el server (o desde el propio PC en el que esta instalado) con un cliente?
Que yo sepa, no es posible entrar a tu propia red utilizando la IP publica... ??????

Gracias por tu atencion ... un saludo.
Perezoso.

otra bendicion :-)

Configurando el host con la IP publica, los accesos de los clientes (desde la Lan) deben de realizarse por la IP privada para que funcione correctamente todo. Las cuentas creadas tanto desde fuera (Internet) como desde dentro (Lan) deben de ir con la IP publica.

Un ejemplo para los que, como yo, necesitamos empezar desde muy abajo:

IP publica: 180.38.34.124
IP privada: 192.168.0.3

Para crear una cuenta (desde Internet o Lan), usar este modelo: minick@180.38.34.124
Para acceder con el cliente a esa cuanta desde la Lan, este: minick@192.168.0.3
Para acceder con el cliente a esa cuanta desde Internet, este otro: minick@180.38.34.124

("minick" ... es el nick que elija cada cual)

Supongo que es muy basico todo esto, pero os aseguro que me ha tenido liado unas cuantas horas hasta encontrar la solucion para que funcionara bien.

Seguimos currando ... Saludos.
Perezoso.