Servlet com muitas requisições

4 respostas
R

Boa tarde

Eu tenho uma servlet que recebe muitas requisições e estamos preocupados com o seguinte pedaço de código:

private static final ResourceBundle prop = ResourceBundle.getBundle("PWSMSReceiveConfig");
private static final String countrycode = prop.getString("countrycode");

São duas variáveis globais que lêem um arquivo de propriedades. Como essa servlet e executada centenas de vezes por segundo ficamos preocupado se o fato de ler toda vez um arquivo de propriedade causaria um problema de perfomance da aplicação e se existe uma forma mais prática de resolver essa questão.

Desde já muito obrigado.

4 Respostas

P

Vc realmente precisa ler esse valor toda hora?

Nao e recomendável, geralmente se tem um listener ou cria-se um leitor independente que pode retornar um bean com os campos todos lidos.

BlackDog

ronildobraga:
Boa tarde

Eu tenho uma servlet que recebe muitas requisições e estamos preocupados com o seguinte pedaço de código:

private static final ResourceBundle prop = ResourceBundle.getBundle("PWSMSReceiveConfig");
private static final String countrycode = prop.getString("countrycode");

São duas variáveis globais que lêem um arquivo de propriedades. Como essa servlet e executada centenas de vezes por segundo ficamos preocupado se o fato de ler toda vez um arquivo de propriedade causaria um problema de perfomance da aplicação e se existe uma forma mais prática de resolver essa questão.

Desde já muito obrigado.

Leia o valor no inicio da aplicação e armazena na memória. Declare duas variaveis como static e popule-as no inicio da subida da aplicação. Depois busque sempre das variaveis.

ignacio83

Pessoal…

Pelo que entendi… Esta tudo ok como esse código, já que as duas variaveis já são static. Desse modo tem-se a garantia que esse código só vai ser executado uma vez (na primeira vez que a Servlet for instanciada).

Esse código já está fazendo exatamente o que vc quer ronildobraga.

E

Dica: nem tudo em um servlet pode ser “static”. Algumas coisas (como NumberFormat e DateFormat) você tem de deixar “thread-local”. Um exemplo disso está aqui:

DecimalFormat, SimpleDateFormat - Threading Issues

Criado 2 de setembro de 2009
Ultima resposta 2 de set. de 2009
Respostas 4
Participantes 5