Estou usando Struts e agora apareceu uma duvida, estou extendendo de DispatchAction e passo um parametro dizendo que metodo executar tipo Insert, Delete e Update , gostaria de saber se coloco em meus metodos a chamada a Synchronized para evitar que duas requisicoes executem ao mesmo tempo o mesmo metodo ou o Struts se preocupa com isso pra mim.
Por Exemplo estou usando assim …
public class MinhaAction extends DispatchAction {
public synchronized ActionForward MeuMetodo(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
Cara, se você precisa realmente disso, pode ser que você tenha um problema… sistema web, só permitir uma requisição por vez… hmmm… isso não me cheira bem…
No mais, synchronized é synchronized… ele não vai deixar executar… isso é da JVM, não tem a ver com o Struts.
O que eu gostaria de saber e se o Struts garante esta seguranca …
Não garante, e nem pode. Você já pensou numa listagem, por exemplo, se um cara pedir uma consulta que demora dez segundos para executar e pendura todo mundo? Web é concorrente. É uma característica do meio.
Abraço,
Armando
Te entendi, mas o que eu tenho justamente e isto , preciso pegar uma lista de valores e fazer alguns tratamentos , como vou garantir que estes dados nao vao se perder no meio do caminho entao.
Você pode até fazer dessa forma, aí teria que testar. Teria que entender melhor o que você precisa realmente para dizer, mas tente avaliar se não é possível controlar na aplicação. Por exemplo: se você depende que um determinado estado do sistema se mantenha durante uma operação, não seria melhor restringir o acesso a essa funcionalidade ou retornar uma mensagem ao usuário ao invés de deixá-lo pendurado?
Abraço,
Armando