Foros del Web » Programación para mayores de 30 ;) » Java »

Variable global contador en app web java

Estas en el tema de Variable global contador en app web java en el foro de Java en Foros del Web. Buenas, estoy creando una aplicación web y en dicha aplicación el servidor genera unos eventos a cada uno de los cuales quiero asignarle un ID ...
  #1 (permalink)  
Antiguo 02/09/2013, 05:34
 
Fecha de Ingreso: abril-2013
Mensajes: 36
Antigüedad: 11 años
Puntos: 0
Variable global contador en app web java

Buenas, estoy creando una aplicación web y en dicha aplicación el servidor genera unos eventos a cada uno de los cuales quiero asignarle un ID distinto y único, el tema es que quiero tener el rango de número relativamente controlado pues debe caber en una variable de tipo long.

Habia pensado hacer un contador y almacenarlo en la base de datos y que solo se lea en el inicio de la aplicación para evitar conflictos ya que varios usuarios estaran usando la aplicación simultaneamente, alguien me podría dar unas pautas de como realizar esto? un saludo y gracias.
  #2 (permalink)  
Antiguo 02/09/2013, 06:12
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Variable global contador en app web java

Hola:

Usa un ServletContextListener para cargar el valor de la base de datos http://www.mkyong.com/servlet/what-i...tener-example/ y para salvarlo cuando se termine le aplicación.

En el contextInitialized lee el contador de base de datos y guardalo en una propiedad "Application Scope". A partir de ahí puedes consultarla en cualquier momento e incrementarla en esa misma Application Scope.

En el contextDestroyed, lee el valor de esa propiedad Application Scope y guardala en base de datos.

Quizás esto te sea de interés para las propiedades Application Scope http://chuwiki.chuidiang.org/index.p...lication_scope

Para evitar posibles colisiones si varios clientes acceden a la vez, haz la lectura de la propiedad application scope su incremento y el guardado de la misma incrementa en el application scope en un método synchronized.

En cualquier caso, si ese contador que pretendes usar es un id de base de datos, lo suyo es usar un autoincremente o sequence de base de datos y no encargarte tú de ello en tu código.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: app, contador, global, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:23.