WCF CONCORRENCIA
-
sexta-feira, 2 de março de 2012 18:58
Boa noite pessoal, tenho uma duvida que talvez algum de voces possa me ajudar, ficarei grato.
Atualmente em um sistema que temos, estamos enfrentando um problema de concorrencia, na verdade nao e bem concorrencia, o cenario e o seguinte.
aplicacao windows form, no momento da modificacao de uma tela , temos um botao modificar na qual travamos a entidade onde o cliente esta, por tras nada mais e do que uma tabela que contem a entidade que o cliente quer modificar e o id dele mesmo.
Entao se um outro kra entra e tenta modificar a mesma entidade por exemplo, cliente 1020, e exibido uma mensagem que esse cliente ja esta sendo modificado por um outro kra.. assim evitamos problemas de concorrencia, e uma solucao amadora, pois se o kra clica em modificar nesse momento acontece um insert em uma tabela de locks, mais se ele sai da aplicacao ou acontece uma pane qualquer, o id do kra e a da entidade vai estar sempre na tabela de locks, pois nao foi deletada apos a modificacao, ou seja, apos o clique no botao registrar..
Utiliso WCF , gostaria de saber se existe algo do tipo global, por exemplo uma variavle global onde eu consigo compartilhar entre todos os clientes, algo na memoria entre todos, assim eu implementaria uma colecao de entidades na memoria, e resolveria meu problema, ou se alguem tem uma solucao pra isso.. sei que existem metodos, mais o problema e que no momento que o kra clicar em modificar eu preciso bloquear de alguma maneira isso, e se um outro entrar tenho que exibir uma mensagem que alguem ja esta modificando, vi alguma coisa sobre uma coluna timespan na tabela mais isso nao posso fazer.
grato a todos
- Movido Seilor Bonancio JuniorMicrosoft Community Contributor segunda-feira, 5 de março de 2012 12:18 (De:ASP.NET)
Todas as Respostas
-
sexta-feira, 2 de março de 2012 19:17
Boa tarde.
Acredito que seu problema nao esteja na camada de servicos, e nem deva ser tratado por ela.
Voce deve alterar sua camada de dados e trabalhar com concorrencia e isolation level, segue alguns links para lhe ajudar:
http://www.linhadecodigo.com.br/artigo/2060/tratando-a-concorrencia-de-dados-com-linq-to-sql.aspx
http://www.linhadecodigo.com.br/artigo/666/trabalhando-com-isolation-level-e-hints.aspx
Nao importa quantas pessoas estao acessando o mesmo registro, deixe sua camada de dados cuidar disso para voce.
Qualquer duvida ou problema..poste ai!
Consultoria .NET
ANALISTA DESENVOLVEDOR
Se esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
Blog .Net Descomplicado- Marcado como Resposta Harley AraujoOwner segunda-feira, 5 de março de 2012 12:31

