Enviando mensajes a otras computadoras de la red

8 comentarios

Aunque este artículo no está directamente relacionado con Firebird es sobre algo que muchas veces puede resultarnos útil: enviar mensajes a otras computadoras de la red.

Anteriormente existía el comando NET SEND, que se usaba para ello, pero las nuevas versiones del Windows ya no disponen de ese comando sino que lo han reemplazado por MSG.

Podemos usar MSG tanto desde la ventanita “Símbolo del sistema” como desde dentro de nuestras propias aplicaciones. La sintaxis de este comando y algunas breves explicaciones podemos encontrar en:

http://support.microsoft.com/kb/186480/es

msg [username] [/server:servername] [/time:seconds] [/v] [/w] [/?] [message]

msg [sessionname] [/server:servername] [/time:seconds] [/v] [/w] [/?] [message]

msg [sessionID] [/server:servername] [/time:seconds] [/v] [/w] [/?] [message]

msg [@filename] [/server:servername] [/time:seconds] [/v] [/w] [/?] [message]

msg * [/server:servername] [/time:seconds] [/v] [/w] [/?] [message]

En general, se usa para enviar mensajes desde el Servidor hacia las otras computadoras, pero también podemos usarlo para enviar mensajes desde una computadora hacia otra computadora. Pero en este caso debemos alterar el registro del Windows de la computadora destino, porque de lo contrario no funcionará.

Configurando la computadora destino para que pueda recibir mensajes

Primero, debemos ejecutar el programa REGEDIT, el cual nos permite cambiar el Registro del Windows. Para ello hacemos clic en “Inicio” y luego escribimos REGEDIT.

MSG1

Captura 1. Si haces clic en la imagen la verás más grande

MSG2

Captura 2. Si haces clic en la imagen la verás más grande

Eso ejecutará al programa REGEDIT, como vemos a continuación:

MSG3

Captura 3. Si haces clic en la imagen la verás más grande

Ahora lo que debemos hacer es cambiar la clave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.

y poner el valor de AllowRemoteRPC en 1, como vemos a continuación:

MSG4

Captura 4. Si haces clic en la imagen la verás más grande

Ejemplo 1

Abrimos la ventanita “Símbolo del sistema” y enviamos un mensaje al usuario “Walter” de la computadora cuya dirección IP es 192.168.0.4

MSG5

Captura 5. Si haces clic en la imagen la verás más grande

Y en la computadora con IP 192.168.0.4 el usuario “Walter” verá esta ventanita:

MSG6

Captura 6. Si haces clic en la imagen la verás más grande

Como ves, una forma rápida y sencilla de enviar mensajes entre computadoras.

Ejemplo 2

Si quieres enviar mensajes desde un Servidor a todas las computadoras que están conectadas a ese Servidor puedes reemplazar el nombre del usuario por un asterisco, como en este ejemplo:

MSG7

Captura 7. Si haces clic en la imagen la verás más grande

 MSG8

Captura 8. Si haces clic en la imagen la verás más grande

Conclusión:

Muchas veces puede ser muy útil poder enviar mensajes a las otras computadoras de una red local, y el comando MSG sirve justamente para eso. Es muy fácil de usar, simplemente se debe conocer la dirección IP de la computadora destino y el usuario de esa computadora a quien se le dirige el mensaje (y ambos datos puedes guardarlos en una tabla, por supuesto, así los tendrás siempre disponibles).

Dirigir el mensaje a todas las computadoras conectadas a un Servidor es aún más sencillo, simplemente usas un asterisco en lugar del nombre del usuario y con eso le dices al programa MSG que el mensaje va dirigido a todas ellas.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios

Usando ISQL.EXE para extraer los metadatos

1 comentario

Como seguramente sabes, en cada instalación de Firebird viene incluido un programa llamado ISQL.EXE (Interactive SQL) con el cual puedes realizar todas las operaciones posibles en una Base de Datos (crearla, conectarte a ella, agregarle dominios, tablas, índices triggers, stored procedures, insertar filas, modificar filas, borrar filas, etc., etc. etc.)

También podemos usar ese programa para extraer los metadatos y guardarlos en un archivo de texto plano ¿para qué necesitaríamos hacer algo así? por muchas razones, por ejemplo:

  • Verificar que todos los metadatos son los correctos
  • Verificar que no esté sobrando algún dominio
  • Cambiarle el nombre a una tabla

No es necesario usar ISQL.EXE para estas tareas, las mismas puedes también realizarlas con cualquier administrador gráfico como el EMS SQL Manager, el IBExpert, el Flame Robin, etc., pero la ventaja de hacerlas con ISQL.EXE es que este programa está siempre disponible, siempre lo tenemos a nuestra disposición, en cambio podría darse el caso que no contemos con los otros programas.

Enviar los metadatos a un archivo de texto plano tiene la gran ventaja de que muy rápidamente podemos encontrar la información que necesitamos, por ejemplo:

  • ¿Hay algún índice descendente?
  • ¿Hay alguna tabla sin Primary Key?
  • ¿Los nombres de todas las tablas son los correctos?
  • ¿Todas las tablas hijas tienen Foreign Keys a sus tablas padres?
  • ¿Hay algún dominio que no se esté usando?
  • ¿Todas las tablas que deberían tener columnas calculadas, tienen columnas calculadas?
  • Y un largo etcétera

¿Cómo enviamos los metadatos a un archivo de texto usando ISQL.EXE?

  1. Abriendo la ventanita “Símbolo del sistema” del Windows
  2. Ubicándonos en la carpeta donde se encuentra el programa ISQL.EXE
  3. Escribiendo: ISQL -extract MiBaseDatos > MiArchivoTexto

Donde “MiBaseDatos” puede ser la ruta y el nombre completos de la Base de Datos o simplemente un alias que hayamos especificado en el archivo ALIASES.CONF

ISQL1

Captura 1. Si haces clic en la imagen la verás más grande

En este ejemplo, el alias de la Base de Datos es ERP2000 (se lo definió en el archivo ALIASES.CONF) y el nombre del archivo de texto es ERP2000.SQL (el nombre y la extensión pueden ser cualesquiera, en el caso de la extensión la que más se usa es .SQL) y el símbolo “mayor que” es el utilizado por el DOS para redirigir la salida a un archivo.

Luego de unos segundos, cuando el programa ISQL.EXE finalice su tarea tendremos un archivo de texto llamado ERP2000.SQL conteniendo los metadatos de ERP2000.FDB

Podemos ver el contenido de ese archivo de texto con cualquier programa que permita leer archivos de texto, por ejemplo con el Bloc de Notas del Windows.

ISQL2

Captura 2. Si haces clic en la imagen la verás más grande

En la Captura 2 puedes ver los primeros metadatos.

Ahora, ya es muy fácil revisar el archivo de texto y encontrar cualquier inconsistencia que tenga la Base de Datos.

Artículo relacionado:

El índice del blog Firebird21