Notificar a aplicación

26/11/2003 - 11:27 por Miguel Tubía | Informe spam
Hola a todos,
tengo una consulta q no sé muy bien si es posible hacerla siquiera... A ver
si me pueden guiar un poco.
Tenemos una aplicación cliente-servidor realizada en c#. El usuario puede
crear alertas para q le avisen en un momento determinado. Para ello, el
servidor de la aplicación llama a un procedimiento almacenado de la BD, que
registra la alerta en una tabla para que quede constancia de ello (para q no
puedan negar q la han creado más q nada). Ese sp tb crea un trabajo,
programado en la fecha que elija el usuario. La idea era q el trabajo avise
al servidor de alguna forma. He visto una cosa q se llaman
ServerNotificationServices. Por lo q he leido podrían servir para algo como
esto, pero no estoy seguro. Si alguien sabe como puedo hacer para notificar
esto a la app... Si es posible que el sql server envíe datos por red a una
ip y a un puerto me podría servir, pues puedo guardar la ip del servidor en
una tabla y que escuche por un puerto... Aunq quizás haya una forma mejor.
De todos modos, si alguien ha oído hablar o trabajado con los
ServerNotificationServices, le agradecería me comentara por encima para q se
pueden usar y su experiencia con ello (buena, mala...)
Muchas gracias a todos y perdon por la chapa.. espero haberme explicado
bien...
Un saludo

Preguntas similare

Leer las respuestas

#1 Accotto Maximiliano D.
26/11/2003 - 13:28 | Informe spam
hola!! mira lo q yo haria seria esto:

Vos al crear una alerta o un trabajo podes que por ej al dar con exito la
misma podes enviar una notificacion por correo o red por ej:

Si lo haces por red lo q hace es un net send

quizas eso te sea util!! yo lo uso para notificaciones tambien y no he
tenido problemas.

en la pagina www.sqldev.net encontraras algunos controles para el envio de
mail muy interesantes de por si.

Un saludo

Maximiliano Damian Accotto
"Miguel Tubía" escribió en el mensaje
news:%
Hola a todos,
tengo una consulta q no sé muy bien si es posible hacerla siquiera... A


ver
si me pueden guiar un poco.
Tenemos una aplicación cliente-servidor realizada en c#. El usuario puede
crear alertas para q le avisen en un momento determinado. Para ello, el
servidor de la aplicación llama a un procedimiento almacenado de la BD,


que
registra la alerta en una tabla para que quede constancia de ello (para q


no
puedan negar q la han creado más q nada). Ese sp tb crea un trabajo,
programado en la fecha que elija el usuario. La idea era q el trabajo


avise
al servidor de alguna forma. He visto una cosa q se llaman
ServerNotificationServices. Por lo q he leido podrían servir para algo


como
esto, pero no estoy seguro. Si alguien sabe como puedo hacer para


notificar
esto a la app... Si es posible que el sql server envíe datos por red a una
ip y a un puerto me podría servir, pues puedo guardar la ip del servidor


en
una tabla y que escuche por un puerto... Aunq quizás haya una forma mejor.
De todos modos, si alguien ha oído hablar o trabajado con los
ServerNotificationServices, le agradecería me comentara por encima para q


se
pueden usar y su experiencia con ello (buena, mala...)
Muchas gracias a todos y perdon por la chapa.. espero haberme explicado
bien...
Un saludo


Respuesta Responder a este mensaje
#2 Miguel Tubía
26/11/2003 - 15:58 | Informe spam
Hola,
gracias por responder.
En la solución que me propones, de usar net send o mandar mails, me vienen
genial para otras cosas, pero me temo que no me sirven para esto que me
traigo entre manos. Pero voy a intentar explicar el pq a ver si, bien hay
otra solución, bien es q me estoy liando yo solo y se puede hacer de otra
forma más fácil.
Lo q quiero es llevarlo todo por la aplicación que estoy desarrollando. La
idea es q cuando el servidor de la aplicación sea notificado de la alerta,
hace una serie de cosas. Entre ellas, comprueba si el usuario está
conectado, y si lo está le envía, usando .net remoting, al cliente el
mensaje, el cuál se lo muestra por pantalla de forma gráfica tal y como esté
configurado en la aplicación. Si no lo está, guarda un evento en la BD para
que lo lea cuando se conecte la próxima vez el usuario. Esto entre otras
cosas. Quizás veas pq no me sirve una simple notificación por net send (este
solo salta una ventanita en pantalla, de forma cutre y q molesta seriamete
el trabajo si hay muchas alertas) o por mail (este necesita cuenta de correo
y cliente de correo, lo cuál no tendrán todos). De todos modos también me
serviría si se pudieran invocar programas externos al terminar el trabajo o
interactuar con servicios instalados; en este caso preparo un servicio
windows a instalar, o bien un programa que se ejecuta pasándole los
parámetros cuando sea necesario.
Por mi parte sigo mirando los notification services, pero dados los plazos q
tengo eso es más bien para la siguiente versión.
Buf... no sé si me he aclarado ni yo... Si me pueden ayudar les estaré muy
agradecido. De ya, gracias por todo y perdón de nuevo por el tostón (si es q
me complico la vida)
Un saludo
Respuesta Responder a este mensaje
#3 CAFC
26/11/2003 - 16:09 | Informe spam
Si entendí bien quizas te pueda servir esto.
Si un usuario crea una alerta, quizas te podría servir
agendar esta aleta con el comando AT, este comando agenda
una tarea a una hora determinada y el o los dias
determinados de la semana, se puede dejar recurrente o no,
lo que hice una vez fue justamente agendar unos procesos
que el usuario configuraba, o sea cada usuario configuraba
el dia y la hora que queria correr sus procesos, entonces
lo agendaba con este comando y en mi caso al momento de
gatillar uno de los procesos tenia una pequeña aplicación
que se encargaba de ir a buscar a la BD y rescatar el
recordatorio y hacer lo que en eŽl se indicaba. Por
ejemplo, envio de listas de mail.

Espero te pueda servir de algo
Saludos.
Cristian.

Hola a todos,
tengo una consulta q no sé muy bien si es posible hacerla


siquiera... A ver
si me pueden guiar un poco.
Tenemos una aplicación cliente-servidor realizada en c#.


El usuario puede
crear alertas para q le avisen en un momento determinado.


Para ello, el
servidor de la aplicación llama a un procedimiento


almacenado de la BD, que
registra la alerta en una tabla para que quede constancia


de ello (para q no
puedan negar q la han creado más q nada). Ese sp tb crea


un trabajo,
programado en la fecha que elija el usuario. La idea era


q el trabajo avise
al servidor de alguna forma. He visto una cosa q se llaman
ServerNotificationServices. Por lo q he leido podrían


servir para algo como
esto, pero no estoy seguro. Si alguien sabe como puedo


hacer para notificar
esto a la app... Si es posible que el sql server envíe


datos por red a una
ip y a un puerto me podría servir, pues puedo guardar la


ip del servidor en
una tabla y que escuche por un puerto... Aunq quizás haya


una forma mejor.
De todos modos, si alguien ha oído hablar o trabajado con


los
ServerNotificationServices, le agradecería me comentara


por encima para q se
pueden usar y su experiencia con ello (buena, mala...)
Muchas gracias a todos y perdon por la chapa.. espero


haberme explicado
bien...
Un saludo


.

Respuesta Responder a este mensaje
#4 Maximiliano Damian Accotto
26/11/2003 - 22:48 | Informe spam
una cosa!! y porque en tu trabajo no haces esto:

Dentro de un trabajo vos tenes pasos si?

ej

1: Backup Base Datos
2: Si da ok registra en una tabla dia,fecha,etc


me explico?

vos asi podrias hacer q un trabajo se componga por varios pasos ej:

Si activa y al terminar si da exito ejecuta un sp y si no tiene exito otro
sp.

Por ej yo tengo armado algo muy similar con un proceso dentro de mi BDD q
una vez a la semana corre y actualiza una serie de cabeceras, si el paso da
ok hago generar una tabla de auditoria donde pongo ciertos datos q luego
chequeo.

Algo asi es lo q buscas por ej?

un saludo enorme



Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()

"Miguel Tubía" escribió en el mensaje
news:
Hola,
gracias por responder.
En la solución que me propones, de usar net send o mandar mails, me vienen
genial para otras cosas, pero me temo que no me sirven para esto que me
traigo entre manos. Pero voy a intentar explicar el pq a ver si, bien hay
otra solución, bien es q me estoy liando yo solo y se puede hacer de otra
forma más fácil.
Lo q quiero es llevarlo todo por la aplicación que estoy desarrollando. La
idea es q cuando el servidor de la aplicación sea notificado de la alerta,
hace una serie de cosas. Entre ellas, comprueba si el usuario está
conectado, y si lo está le envía, usando .net remoting, al cliente el
mensaje, el cuál se lo muestra por pantalla de forma gráfica tal y como


esté
configurado en la aplicación. Si no lo está, guarda un evento en la BD


para
que lo lea cuando se conecte la próxima vez el usuario. Esto entre otras
cosas. Quizás veas pq no me sirve una simple notificación por net send


(este
solo salta una ventanita en pantalla, de forma cutre y q molesta seriamete
el trabajo si hay muchas alertas) o por mail (este necesita cuenta de


correo
y cliente de correo, lo cuál no tendrán todos). De todos modos también me
serviría si se pudieran invocar programas externos al terminar el trabajo


o
interactuar con servicios instalados; en este caso preparo un servicio
windows a instalar, o bien un programa que se ejecuta pasándole los
parámetros cuando sea necesario.
Por mi parte sigo mirando los notification services, pero dados los plazos


q
tengo eso es más bien para la siguiente versión.
Buf... no sé si me he aclarado ni yo... Si me pueden ayudar les estaré muy
agradecido. De ya, gracias por todo y perdón de nuevo por el tostón (si es


q
me complico la vida)
Un saludo


Respuesta Responder a este mensaje
#5 Miguel Tubia
27/11/2003 - 00:36 | Informe spam
Hola de nuevo! y gracias por contestar!
bueno, en realidad tengo algo parecido a lo que dices.
Antes permitame explicar lo q representa un trabajo en este escenartio. En
este caso, un trabajo se crea cuando un usuario, por programa, dice
'Recuérdame tal día de esto', como una tarea del outlook. Entonces, creo un
trabajo en la bd programado con la fecha dada por el usuario q ese día
ejecuta un sp q lee de una tabla el aviso y 'lanza' un evento. Si el usuario
está conectado, lo recibe al momento, sin tener que chequear la BD cada 5
minutos, por ejemplo. Si no está conectado, se graba en la tabla avisos para
que lo vea la próxima vez que inicie sesión.
Mi trabajo se compone de tres pasos: uno, el principal, que es el que
debería notificar al usuario. Este, llama a un sp, que mira en una tabla los
usuarios conectados. Si el usuario al q va dirigido el trabajo está
conectado le envía la notificación al instante, si no, se lo deja en una
tabla de avisos que se revisa siempre q se inicia la sesión. Luego, si el
trabajo tiene éxito, se acutliza una tabla indicando que el trabajo ha
tenido éxito, la hora, etc... Si falla, lo mismo, actualiza unos campos de
la BD.
El problema es, precisamente, el de notificar el aviso al instante. Es
decir, en otras aplicaciones he visto que regularmente se sonde la BD a ver
si hay mensajes nuevos. Eso es lo q no quiero Pero siempe q el usuario
inicia sesión en la aplicación, va a una tabla de avisos donde se han
guardado todos los avisos que le envían los demás usuarios e incluso los
'enviados' por un trabajo.
Es ese 'evento' de si está logeado que lo vea al momento lo q falla. Por lo
demás, ha dado en el clavo de como lo tengo organizado (otra cosa es q luego
funcione bien :))
Uf, q liada madre... muchas gracias por todo
Un saludo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida