martes, 25 de agosto de 2009

Instalación de Tomcat en windows 64 bit... la odisea

Gran satisfacción gran... luego de desesperar hasta el punto de decidir dejar "para el futuro" este tema, casi de la nada y simplemente surfeando en la red y razonando un poco, se ha logrado hacer que Tomcat sea gestionado como servicio en windows x64.

El problema es el siguiente: si se instala tomcat en un server con windows 2003 64 bits (pero pareciera que también sobre XP 64 bit), todo parecería proceder sin problemas; y de hecho se puede lanzar tomcat como proceso, pero no como servicio ya que muestra un fantasmagorico "error 2" en el log del servicio jakarta.

Navegando, surfeando, volando e inmergiéndome en la güeb encontré la punta del ovillo, que si no entendí mal sería la siguiente: el programa tomcat, cuando se instala con el instalador de windows (o sea el archivo con extensión "exe" que está en el sitio del download) lo hace a 32 bits, con el consiguiente uso de la "tecnología" wow64. Pareciera que no es posible que un proceso a 32 bit gestione un servicio en Windows 64 bit.

Para la posteridad, y para todos los desesperados del planeta que estén buscando la solución y aún no la hayan encontrado, dejo la resolución de este problema en el blog; pero para no traicionar la vocación sarcástica, la presentaré como una receta de la abuela.

Ahí vá (leer con la música de "utilisima" de fondo):

RECETA DE LA INSTALACIÓN DE TOMCAT COMO SERVICIO EN UN SERVER x64 (está para tomcat 5.5.27, pero funciona con todas)


INGREDIENTES:
  • archivo descargado desde tomcat.apache.org con la versión de tomcat deseada (pero no la autoinstalante sino la versión comprimida en un archivo zip)____________________ 1 (uno)
  • archivo descargado desde microsoft.com con el instalador de la versión de runtime de visual c++ 2005 x64 ______________________ 1 (uno)
  • archivos binarios compilados en 64 bit, descargados desde tomcat.apache.org ________________ 2 (dos) o sea tomcat 5w.exe y del subdirectorio que corresponda (AMD64 si el procesador es amd, y IA64 si es intel), el archivo tomcat5.exe
  • tiempo ______________________ cantidad necesaria (mucho)
  • paciencia _____________________________ cantidad necesaria


RECETA
  • instalar el runtime de visual c++2005 (ojo que no avisa que terminó la instalación, simplemente desaparece la pantalla de instalación)
  • NO ES NECESARIO REINICIAR (si, como diría Ripley, "es verdad aunque usted no lo crea")
  • descompactar el zip de tomcat en algún directorio (las reglas no escritas dirían que se descompacta en el directorio "program files", vamos a suponer que se siguen las reglas
  • (esto no es nes-sario -como decía un antiguo presidente- pero es bueno para simplificar) cambiar el nombre del directorio descompactado en algo más corto como por ejemplo "apache-tomcat"... quedará ahora copiado tomcat en el directorio C:\Program Files\apache-tomcat (para los pasos siguientes vamos a suponer que así quedará)
  • copiar en el directorio bin de apache los binarios descargados (ej: en C:\Program Files\apache-tomcat\bin copio los archivos tomcat5.exe y tomcat5w.exe)
  • como ya existían esos archivos (la versión 32 bit), el sistema operativo va a preguntar si queremos sobreescribirlos... por supuesto, contestar que si (para eso estamos haciendo todo este quilombo)
  • configurar la variable de entorno JAVA_HOME al directorio donde está instalado java (en mi caso C:\Program Files\Java\jdk1.6.0_06)... esto se hace desde las propiedades de MI PC (ver figura al lado)
  • abrir una shell mediante "run" -> "cmd"
  • ubicarse en el directorio donde se copiaron los archivos binarios ( cd C:\Program Files\apache-tomcat\bin)
  • ejecutar " service.bat install"... esto instalará el servicio "Tomcat5"
  • probar a iniciar el servicio "tomcat5" (NET START TOMCAT5)
Servir tibio y disfrutar con las manos cruzadas por detrás de la nuca mientras nos recostamos en la silla... Oh si, somos los más grandes...

miércoles, 5 de agosto de 2009

En las buenas y en las malas...


Todos, absolutamente todos, hemos pasado por una situación de peligro... una de esas situaciones en la que el nivel de adrenalina sube astronómicamente en la sangre y nos invade esa sensación de "quién mierda me manda a meterme en situaciones como esta" mezclada con un "yo lo sabía, yo lo sabía"...
Pero también es cierto que todos, absolutamente todos (incluso los que se la dan de "hombres rudos"), cuando nos encontramos en esas situaciones nos sentimos seguros sabiendo que a nuestro lado, mirando por nuestro hombro derecho... si, ese hombro pero un poquito más arriba... como decía, allí tenemos a nuestro fiel compañero, ese combatiente que nos ha acompañado en cien batallas y que conoce lo que necesitamos con solo un gesto de nuestras cejas?
Porque admitámoslo... ¿qué sería de Batman sin Robin?¿que sería de Don Quijote sin Sancho Panza?¿qué sería de Leónidas sin los otros 299 espartanos?¿qué sería de R2D2 sin C3PO?
Bueno, eso me pasó esta semana, cuando parecía que el mundo (informático) se me venía abajo, tratando de mantener el sistema y las fieras que me rodeaban a 360 grados.. Pero nada me amedrentaba porque sabía que a mi lado se encontraba mi fiel escudero, ese pedazo de Cabral dispuesto a sacarme de abajo del caballo para que me lleve los laureles... y esa situación en el fondo me tranquilizaba...
El problema es que cuando necesitamos al compañero inseparable, más aún en los momentos de crisis, lo necesitamos con toda la mente puesta en la situación... porque admitámoslo, como podría confiar Batman si supiera que Robin estaba pensando en Batichica justo cuando tenía que darle un roscazo a El Guasón... o Don Quijote como podría confiar en Sancho Panza mientras atacaba a los molinos de viento si sabía que estaba pensando en Dulcinea (triángulos amorosos bizarros si los hubo alguna vez)... o como podría confiar R2D2 si sabía que C3PO estaba pensando en Obi Wan Kenobi mimoseando con Luke Skywalker mientras atacaba a la estrella de la muerte?
Ya ven, es triste la vida del pobre héroe que tiene que enfrentar a los malos momentos (o como en este caso, a los malos procedimientos de programación) acompañado solamente por un compañero que está pensando en hacer otro tipo de trabajo con otros tipos de personas...