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

#6 Maximiliano Damian Accotto
27/11/2003 - 00:52 | Informe spam
hola Miguel!! no se si di en el clavo pero es como lo haria yo!!

ahora te hago una pregunta?

porque falla decis cuando esta conectado?

q es lo q falla?

porque si haces el SP q verifica si esta conectado y de ser asi dispara un
netsend por no habria problemas!! ahora si lo q queres q aparezca un
mensaje tipo los de outlook creo q aca se te va a complicar por lo
siguiente.

Si se dispara y envias un netsend es directo la cosa entonces no tiene q
hacer nada tu aplicacion del lado del cliente, sino lo q tiene q hacer es
verificar una BDD de vez en cuando para ver si se disparo algo!! Digamos q
estaria monitoriando una tabla tambien!!
Pero repito si no queres usar ni netsend ni MAPI, no creo q tengas otra. Tu
cliente deberia chequiar de vez en cuando (hasta lo podrias setiar esto) si
en una tabla se aconsesio algo!! la consulta seria simple y no deberia
empastarte la aplicacion

un ej:

podrias tener una tabla de eventos
ej:
id_tarea,nombre,fecha,usuario_tarea

y en tu cliente llamar cada 5 min por ej (o q esto se pueda setiar) y q
filtre solo:

las nuevas y las del usuario q esta logeado.

Es mas esto lo podrias poner como un servicio de Windows y si el ñato cerro
la aplicacion las alertas le podrian salir igual!!

Pero basicamente yo haria eso!! es como hacer un cliente de correo!! debes
chequiar de vez en cuando si hay novedades (le pones un tiempo de 1 min y
listo el pollo)

Es asi mas o menos como funcionan la mayoria de esos sistemas de alertas!!
te digo porque yo tengo varios desarrollados q hacen esto y no he tenido
mayores problemas.

Un saludo y espero haber sido claro y que te ayude mi comentario

Bye

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

Gerente de Sistemas y Tecnologia
()

"Miguel Tubia" escribió en el mensaje
news:
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
#7 Miguel Tubía
27/11/2003 - 07:48 | Informe spam
Hola y buenos días!
el net send no me vale pq sale un mensajito de windows, y lo q necesito es
poner los datos en un formulario de windows. Ciertamente la opción más usada
es la de chequear, como los clientes de correo. Para este caso no importa
mucho, pero estaba buscando otra forma por lo siguiente: hay una parte del
programa que controla unos servicios (la empresa cliente es de ambulancias).
Cada cierto tiempo, con bastante frecuencia, entran nuevos, la gente q
llama, y si son de hoy, que son muchos, se debe refrescar la pantalla con
estos. La aplicación que tienen ahora, cada 'x' tiempo, no sé cuanto, busca
en la BD y trae TODOS los servicios, lo q es una sobrecarga de red
tremenda... yo pensaba que, cada vez que entrara un servicio en la BD, esta
avisara que hay uno nuevo, su id o algo así, y entonces los clientes lo
sabrían y solo pedirían ese servicio. De lo contrario, si cada cierto tiempo
he de mirar la tabla y traer todos, se sobrecarga la cosa demasiado. Por eso
mi empeño en hacer esto (si es q soy un cabezota...).
Lo q digo q falla cuando está conectado, me refiero en realidad a q no sé
como notificar instantaneamente al usuario del aviso, sin tener que chequear
la tabla periodicamente. Quizás ahora se comprenda mi perra con intentar
hacer lo de la 'notificacion instantanea', para luego evitar una sobrecarga
de red.
De todos modos, si no encuentro forma de hacerlo, me quedaré con la opcion
de chequear la BD. Pero seguiré buscando... Sé q es un tema q se ha
discutido más veces, no recuerdo se en este foro o en otro, el q la BD
notifiq a una aplicación de algo, y como sé q hay gente interesada en esto,
si descubro algo nuevo lo haré saber.
De todos, modos, como siempre, se agradecerán sugerencias. Pero de momento,
me temo q me quedo con chequear la BD cada cierto tiempo.
Muchas gracias por todo tu tiempo
Un saludo
Respuesta Responder a este mensaje
#8 Accotto Maximiliano D.
27/11/2003 - 13:48 | Informe spam
hola nuevamente!!

haber eso esta bien lo q plantias!! no se en q lenguaje programas pero si lo
haces en.net los datataset son desconectados por lo cual no consumirias
recursos de RED.
pero muchas alternativas no veo amigo!!

Un saludo


Maximiliano Damian Accotto
"Miguel Tubía" escribió en el mensaje
news:
Hola y buenos días!
el net send no me vale pq sale un mensajito de windows, y lo q necesito es
poner los datos en un formulario de windows. Ciertamente la opción más


usada
es la de chequear, como los clientes de correo. Para este caso no importa
mucho, pero estaba buscando otra forma por lo siguiente: hay una parte del
programa que controla unos servicios (la empresa cliente es de


ambulancias).
Cada cierto tiempo, con bastante frecuencia, entran nuevos, la gente q
llama, y si son de hoy, que son muchos, se debe refrescar la pantalla con
estos. La aplicación que tienen ahora, cada 'x' tiempo, no sé cuanto,


busca
en la BD y trae TODOS los servicios, lo q es una sobrecarga de red
tremenda... yo pensaba que, cada vez que entrara un servicio en la BD,


esta
avisara que hay uno nuevo, su id o algo así, y entonces los clientes lo
sabrían y solo pedirían ese servicio. De lo contrario, si cada cierto


tiempo
he de mirar la tabla y traer todos, se sobrecarga la cosa demasiado. Por


eso
mi empeño en hacer esto (si es q soy un cabezota...).
Lo q digo q falla cuando está conectado, me refiero en realidad a q no sé
como notificar instantaneamente al usuario del aviso, sin tener que


chequear
la tabla periodicamente. Quizás ahora se comprenda mi perra con intentar
hacer lo de la 'notificacion instantanea', para luego evitar una


sobrecarga
de red.
De todos modos, si no encuentro forma de hacerlo, me quedaré con la opcion
de chequear la BD. Pero seguiré buscando... Sé q es un tema q se ha
discutido más veces, no recuerdo se en este foro o en otro, el q la BD
notifiq a una aplicación de algo, y como sé q hay gente interesada en


esto,
si descubro algo nuevo lo haré saber.
De todos, modos, como siempre, se agradecerán sugerencias. Pero de


momento,
me temo q me quedo con chequear la BD cada cierto tiempo.
Muchas gracias por todo tu tiempo
Un saludo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida