none
detectar inactividadad asmx RRS feed

  • Pregunta

  • Hola foro:

    Como  puedo hacer para  detectar inactividad en metodos de webservices mios que instalo en un intranet  de un cliente

    (tambien lo tendriaque hacer a futuro en otro ws de otro cliente pero  que va estar expuesto un servidor mio)
    Considerando que  la horas de inactividad es dinamica , o sea puedo cambiar las horas que considero  de inactividad   horas ect.configurable.

    Pense en  loguear en una tabla distinta para cdo se usa  cada metodo , despues deberia controlar la diferencia de horas, no se si es lo mejor. Con esta inactividad  luego se debe enviar un mail hacia afuera. si hago esto con una taba de logs va a ser gigante porque a los metodos del servicio le pegan muchas veces, se podra borrar log de tabla 30 dias dias para atras

    Para  este control me conviene hacerlo por un windservice, o con un job?


    y despues lo otro  que hacer es dectectar caida de webservice . Pero eso ya seria otro post

    gracias

     

    lunes, 29 de febrero de 2016 22:48

Respuestas

  • hola

    >>Si llego a usar la estrategia de MSMQ para registrar como podria hacer?

    podrias usar log4net, con este podrias configurar como y donde loguear los datos, pudiendolo cambiar sin tocar una lines de codigo sino que lo haces por configuracion

    >>si el tamaño de la cola por ejemploes de 60 registros me conviene registar en la cola los primeros 60 y despues voy pasando a la bd lo que sobra ?

    no se si entendi lo de los 60 registros, pero se supone que tiene un log intensivo de miles de transacciones por minuto, si son solo 60 registro una db ni se entera

    la idea de usar colas es para no bloquear la transacciones, entonces el logi lo registras en Ms Queue o usando Rabbit Queue y despues otro proceso es el encargado de llevar los datos de la cola a un medio persistente

    >>no se si el usuario puedo consultar el sistema de colas directamente ?

    no se puede, la idea de las queue es desacoplar, despues un proceso es quien vuelca, pero remarco es para muchas transacciones si son solo 60 registra directo en la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 1 de marzo de 2016 1:41
  • >>al grabar en logs perjudico la performance y boquee algunos selects, mas si son muchos?

    si lo haces directo contra la db durante la misma operacion puede causar algun problema, no deberia, pero puede

    es por eso que la operacion de log se desacopla usando queues, para que no interfiera en la operacion y el dato del log se vuelque donde debe ir en segundo plano

    como comente sino quieres colas una db nosql seria una buena alternativa

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Inovador2015 martes, 1 de marzo de 2016 23:13
    martes, 1 de marzo de 2016 10:32
  • >>ccon nosql se podria guardar muchos datos por años sin borrar.?

    si tienes capacidad de disco podrias guardar cuanto quieras

    las db nosql estan pensadas para guardar volumen importante de datos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Inovador2015 martes, 1 de marzo de 2016 23:13
    martes, 1 de marzo de 2016 10:53

Todas las respuestas

  • hola

    no vayas por el camino dificil, no registres inactividad, sino que registra actividad, los huecos entre una actividad y otro sera lo que llamas inactividad

    es mas tampoco seria correcto el verbo actividad, sino mas bien es el uso del servicio cuando se invoca

    simplemente registra las llamadas que se realzian al servicio registrando dia, hora y el metodo que se invoca, despues con esos datos trabajas como necesites

    >>si hago esto con una taba de logs va a ser gigante

    por supuesto el log siemrpe es gigante, por eso no se realiza en linea, sino que se usan tecnica como ser colas, o sea Ms Queue para registrar y despues otro sistema registra en la db

    o sino lo mejor es usar una db NoSql, como ser MongoDb, Raven , etc estas son mas rapidas que las dbs transaccionales para registrar datos

    hay tecnicas mas avanzadas que usan logstash, lo cual permite un analisis del log con mucho detalle

    Using logstash, ElasticSearch and log4net for centralized logging in Windows

    >>despues lo otro  que hacer es dectectar caida de webservice

    la caida del servicio no puedes detectarla tu, sino que salta cuando el cliente invoca y falla

    salvo que tengas algun agente que este realizando un ping al servicio constantemente nunca te enteras si el servicio se cayo o no

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 1 de marzo de 2016 0:08
  • Leandro sos un genio, me pasaste muy buenas ideas. 

    me gusto lo de la no sql pera guardar datos  como MongoDB, el tema que el cliente quiere consultar los logs en sql .

    (Salvo que le muestre los logs con alguna aplicacion )

    Si llego a usar la estrategia de MSMQ para registrar como podria hacer? , si el tamaño de la cola por ejemploes de 60 registros me conviene registar en la cola los primeros 60 y despues voy pasando a la bd lo que sobra ?

    no se si el usuario puedo consultar el sistema de colas directamente ?

    gracias
    martes, 1 de marzo de 2016 0:52
  • hola

    >>Si llego a usar la estrategia de MSMQ para registrar como podria hacer?

    podrias usar log4net, con este podrias configurar como y donde loguear los datos, pudiendolo cambiar sin tocar una lines de codigo sino que lo haces por configuracion

    >>si el tamaño de la cola por ejemploes de 60 registros me conviene registar en la cola los primeros 60 y despues voy pasando a la bd lo que sobra ?

    no se si entendi lo de los 60 registros, pero se supone que tiene un log intensivo de miles de transacciones por minuto, si son solo 60 registro una db ni se entera

    la idea de usar colas es para no bloquear la transacciones, entonces el logi lo registras en Ms Queue o usando Rabbit Queue y despues otro proceso es el encargado de llevar los datos de la cola a un medio persistente

    >>no se si el usuario puedo consultar el sistema de colas directamente ?

    no se puede, la idea de las queue es desacoplar, despues un proceso es quien vuelca, pero remarco es para muchas transacciones si son solo 60 registra directo en la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 1 de marzo de 2016 1:41
  • gracias leandro, si en realidad quise poner un numero y puse un numero no representativo sin pensar, si son muchas logs por minuto. Uno de los metodos tiene 1000 por dia mas o menos.

    Los metodo como estan no inician transacciones son stores sin transaccion que hacen select . al grabar en logs perjudico la performance y boquee algunos selects, mas si son muchos?

    gracias




    martes, 1 de marzo de 2016 2:32
  • >>al grabar en logs perjudico la performance y boquee algunos selects, mas si son muchos?

    si lo haces directo contra la db durante la misma operacion puede causar algun problema, no deberia, pero puede

    es por eso que la operacion de log se desacopla usando queues, para que no interfiera en la operacion y el dato del log se vuelque donde debe ir en segundo plano

    como comente sino quieres colas una db nosql seria una buena alternativa

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Inovador2015 martes, 1 de marzo de 2016 23:13
    martes, 1 de marzo de 2016 10:32
  • gracias leandro, ccon nosql se podria guardar muchos datos por años sin borrar.? o se tendria que borrar tambien ?
    martes, 1 de marzo de 2016 10:37
  • >>ccon nosql se podria guardar muchos datos por años sin borrar.?

    si tienes capacidad de disco podrias guardar cuanto quieras

    las db nosql estan pensadas para guardar volumen importante de datos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Inovador2015 martes, 1 de marzo de 2016 23:13
    martes, 1 de marzo de 2016 10:53