Publicado por : gon en (Software Libre)
VirtualBox! Me salvaste el día
Etiquetado como : .net, sql server, virtualbox, virtualización
El primer intento de implantación de la aplicación de lectura de huellas no fue muy bueno. Antes de continuar, conozco un documental (minuto 28) que tiene mucho que ver con este caso.
En primer lugar, me enteré a destiempo que el servidor corría la versión 7 de SQL Server. Además, es difícil ir cualquier momento al lugar para hacer cualquier prueba, menos para estar sentado tranquilo codeando. Lo primero que intentamos hace un tiempo, fue hacer una copia de seguridad de la base de datos completa. Suponiendo que Microsoft Management Studio sería suficiente para conectarme a la base y crear las tablas nuevas, fue lo primero que pensé hacer ese día.
Pero como la Ley de Murphy está presente siempre, me salió un incómodo mensaje diciéndome que No se puede conectar a una versión anterior de SQL Server menor 2000 (es decir, versión 8). Ya que Management Studio esta basado en .NET, dude que mi aplicación en .NET pudiera conectarse. Más tarde, descubrí que estaba equivocado, pero en el momento no tuve alternativa más que evaluar otras soluciones.
Entonces, durante esta fase de la evaluación de soluciones nuevas, consideramos replicar el servidor completo para averiguar como hacer funcionar todo. Para ello, conseguimos una copia de SQL Server 7. Lamentablemente, me fue imposible instalarla en XP. Por eso, además conseguí una copia de Windows 2000 Server.
Salvando la oscura era digital
Lo primero que pensé, fue instalar Windows 2000 server la máquina que teníamos para hacer pruebas. El problema, es que aun teniendo éxito, luego no podría trabajar con ello si me llevaba el notebook. Por otro lado, no podía instalarle el sistema al notebook, porque no tengo espacio para ello, mis particiones ya están hechas. Primero, como igual debía hacerlo, ocupe un disco de ubuntu para particionar, y luego se instaló normalmente windows 2000 en ese equipo.
Para solucionar el asunto en mi notebook, recordé a un amigui: virtualbox. Cree la máquina virtual, instalé windows 2000 server y finalmente, monté el sql server 7 en él. En los 2 casos, logramos restaurar la copia de seguridad completa que nos habían facilitado la vez anterior. Por lo cual, partimos el día anotando un éxito.
Conectando con la oscura era digital
La segunda prueba, consistía en averiguar si la aplicación en .NET era capaz de conectarse a SQL Server 7. Nuevamente gracias a @janitux quien me dio el dato, me fue posible hacer una conexión desde mi Sistema Anfitrión (windows xp y/o kubuntu) al sistema invitado (windows 2000 server) donde se encontraba corriendo SQL Server 7. Para lograr esta magia, se debe crear un redirección de puerto (mismo concepto que se aplica en un router), de tal modo que al conectarme a un puerto X en mi máquina anfitrión, pasara hacia dentro de la máquina invitada. La configuración se realiza por consola de un modo similar a esto:
cd C:\"Archivos de Programa"\"Sun\"xVM VirtualBox"\ VBoxManage.exe setextradata "nombrevm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/NOMBRE_DE_REDIRECCION/HostPort" PUERTO_HOST VBoxManage.exe setextradata "nombrevm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/NOMBRE_DE_REDIRECCION/GuestPort" PUERTO_VM VBoxManage.exe setextradata "nombrevm" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/NOMBRE_DE_REDIRECCION/Protocol" TCP :: :::: listo!
- nombrevm = Nombre de mi máquina virtual.
- NOMBRE_DE_REDIRECCION = un nombre para la redirección (ie: http, ftp, myHttp, sql, …).
- PUERTO_HOST = número de puerto de la máquina host.
- PUERTO_VM = número de puerto para enviar a la máquina virtual.
(Cuando tenga un tiempo, probaré lo mismo en Linux) Luego de eso, conecté a localhost:1433 (puerto por defecto de SQL Server) y listo! Estaba andando perfecto
.
Éxito!
A pesar de estar trabajando con una plataforma propietaria, las soluciones a varios problemas, pasaron por la aplicación de software libre. Sin duda un gran triunfo.
Un detalle, acá está el video con el documental completo
:

bueno, ahora vi que los comandos para la redireccion son iguales en linux y windows (excepto por el .exe :P) y tb da lo mismo lo que pongas en SQL, solo es para diferenciar las reglas.
bye