Wednesday, June 24, 2009

DTCPing RPC server is unavailable

Cuando utilizas DTCPing para validar la conectividad entres dos machines sobre los cuales pretendes que gestiones MSDTC, probablmente te encuentres con este mensajito.

Problem:fail to invoke remote RPC method
Error(0x6BA) at dtcping.cpp @303
-->RPC pinging exception
-->1722(The RPC server is unavailable.)
RPC test failed


Lo que sucede es que sobre una de tus Machines, la que funge de Biztalk Server, el Firewall esta bloqueando el dtcping.exe y deberias agregar una excepcion para que este permita su normal ejecucion.

Recuerda que DTCPing debe ejecutarse al mismo tiempo sobre ambas machines, cuando pretendes validar la conectividad DTC entre ellas.

Monday, June 22, 2009

RPC reverse BIND failed Access is denied

Cuando estas utilizando DTCPing para validar que los requisitos minimos de comunicacion entre tu Biztalk server y tu Database server esten habilitados entre ambas machines, puede que recibas este mensajito:

Received Bind call from Machine
Trying Reverse Bind to Machine
Error(0x5) at ServerManager.cpp @453
-->RPC reverse BIND failed
-->5(Access is denied.)
Reverse Binding to Machine Failed


Lo que sucede es que la clave HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\RPC probablemente NO exista y debes crearla en el machine, entiendase este como el nombre del server donde estas configurando el soporte para MSDTC.

Dentro de dicha clave, deberas agregar la propiedad: RestrictRemoteClients del tipo REG_WORD con el valor igual 0 (cero).

New transaction cannot enlist in the specified transaction coordinator

Cuando estas utilizando el soporte a transacciones, System.Transactions, para realizar operaciones contra la Database en el desarrollo de tu producto de software, probablemente te encuentres con este mensajito.

System.Runtime.InteropServices.COMException (0x8004D00A): New transaction cannot enlist in the specified transaction coordinator

Lo que sucede es que NO se estan dando todos los requisitos necesario para la comunicacion entre tu Biztalk Server y tu Database Server.

Este mensaje es muy generico, aun, es necesario validar a bajo nivel si las caracteristicas necesarias para el MSDTC estan dadas, entre las dos machines.

Para ello, es necesario que utilices el DTCPing de Microsoft.

Una vez que copies el ejecutable tanto en el Biztalk Server como en el Database Server, los ejecutaras al mismo tiempo.

Desde el Biztalk Server colocaras el nombre de tu Database Server en la consola del DTCPing, y este testeara sin los requisitos minimos de comunicacion entre ambas machines, estan dadas, y te informara de los inconvenientes, para que puedas solucionarlo.

Alli, tendras informacion especifica sobre el inconveniente y ya NO un simple mensaje generico.

Thursday, June 18, 2009

SQL Server does not exist or access denied

Cuando te encuentras involucrado en hacer el deployment de un software con conectividad a Base de Datos en un entorno de produccion, te encuentras con ciertos inconvenientes que tendras que superar.

Cuestiones de orden, ajenos al desarrollo mismo del software.

El mensaje mas visto es: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied

Cuando tienes el SQL Server Express en tu misma Developer PC, pues jamas veras este mensajito.

Recuerda que en ese sesgado escenario tu eres amo, dueño y señor de tu PC :)

En un entorno donde el Web Server se encuentra sobre una Machine diferente al Database Server que deja ya de ser un simple SQL Server Express entonces la situacion empieza por complicarse.

Firewall, Antiviruses y otras historias en el Database Server deberan ser configurados para permitir que la conectividad, con este, sea permitida.

Inclusive puedes cambiar el famoso, conocido y prostituible puerto 1433 del SQL Server Express, para que sea otro el puerto por el cual comunicarse con el Database Server.

En consecuencia, debes verificar si algun software esta bloqueando el puerto por el cual te comunicas con el Database Server.

Si aquellio esta verificado, pues la primera validacion esta sobre el nombre del Database Server sobre la red, especificado en el connectionString.

La segunda validacion sobre el nombre de la instancia sobre el Database Server, por ejemplo: mySqlServer\SqlExpress.

Luego, el numero del puerto por el cual te comunicas al Database Server que por defecto es el 1433, pero si lo habeis cambiado en el server, tendras que indicarlo en tu connectionString, por ejemplo: mySqlServer\SqlExpress,6969, donde 6969 es el puerto por el cual el Database Server atiende las peticiones.

Saturday, June 06, 2009

Tetris 25 años Google logo aniversario

Tetris cumple 25 años desde que su creador lo dio a la luz.

Su creador, Alexey Pajitnov, un vicioso de los juegos y ordenadores concibio la idea que ha marcado una epoca. Un juego que se ha jugado de todas la formas, hasta su version en 3D, espectacular sin duda.

Pero siempre, regresamos al simple Tetris, que nos gusta y apasiona :)

Nos hace pasar un buen rato, ¿a que si?

Recuerdo cuando en la universidad, en mi añorada asignatura de Computacion Grafica, teniamos que finalizar todos con un proyecto, nosotros -un grupo de cinco chavales- elegimos el Tetris.

Lo recuerdo como si fuera ayer, aquellos dias en los que teniamos que construir nuestro propio video juego, el algoritmo para manejar las colisiones entre las fichas sin necesidad de utilizar matrices que era la solucion simplista.

Recuerdo cuando con Yuri nos pasamos dibujando los bloques en una hoja de papel, marcando las dimensiones y sus coordenadas, para luego plasmarlo en la arquitectura del videojuego.

Recuerdo la primera amanecida en casa de Yuri, para empezar a construir nuestra primera obra de arte :)

Recuerdo cuando Alex, Rudy, Romulo, Yuri y este pechito, en esa noche fria, nos sentamos para decidir que opciones tomar con respecto a la construccion del videojuego.

Diseñando lo que seria nuestro primer hijo.

La programacion orientada a objetos y el polimorfismo en su maxima expresion :)

Recuerdo al dia siguiente, al amanecer, cuando Alex dio su primer gran aporte al codigo, un punto y coma que pasabamos por alto me parece. Nos reimos todos, aquella vez :)

Recuerdo que gestionamos la velocidad con la cual caian los bloques conforme el player acumulaba puntos.

Cuando se lo mostramos al profesor, en el laboratorio, se quedo fascinado y hasta pego ese grito friki cuando los bloques empezaban a caer tan rapido que NO podia decidir prontamente su correcta posicion.

Tetris, fue algo que marco mi vida al frente de una PC.

Pude construir desde cero este lindo videojuego, usando assembler a bajo nivel, el precioso C++ y su herencia multiple.

Todo sobre esa pantalla del Borland C++ modo texto :)

OMG! Tetris forever...!

Nuestro Tetris tuvo aquella vez la mas alta nota, superando inclusive a la pollito y su conejito saltarin, una especie de Mario Bros amanerado. Pero eso hoy poco importa.

Hoy, Tetris cumple 25 años de ser concebido, por obra y gracia del espiritu santo :)

Google nos lo recuerda como solo el buscador mas famoso sobre la faz de la Tierra es capaz de realizar, hoy, en una vida al frente de la PC.