App Acesso ACCESS ASP.NET escalável
-
21-09-2019 - |
Pergunta
Estou limitado pelo seguinte, de jeito nenhum:
- Dados somente leitura: acesso da Microsoft
- Jet 4.0 OldB
- ASP.NET 2.0
- Host compartilhado, muito pouco controle.
- Ou mapero - llbl gen pro
O aplicativo é uma ferramenta somente leitura que lê muitos bancos de dados do Microsoft Access na pasta app_data. Funciona bem principalmente.
Sob carga, ele começa a não acessar os MDBs de acesso.
Qual é a melhor estratégia para acessar os MDBs de acesso para limitar erros no acesso a eles? No momento, eu tento, então thread.sleep (500) em um erro e tente novamente.
Solução
Eu acho que pode haver maneiras de modificar as opções de isolamento/simultaneidade/bloqueio ao acessar os bancos de dados de acesso para eliminar a sobrecarga do gerenciamento de bloqueios. Talvez tentar "Modo = compartilhamento negar nenhum;" na string de conexão. Eu não usaria isso se você estiver modificando os dados de alguma forma a qualquer momento, pois estão praticamente jogando fora todo o gerenciamento de isolamento/simultaneidade que você recebe com um banco de dados. Use por sua conta e risco.
Outras dicas
Com que frequência os dados mudam? Se for somente leitura, você pode carregar os dados dos bancos de dados em cache e lê-los a partir daí, em vez de diretamente dos bancos de dados?
Que tipo de erros específicos recebendo. Presumo que sejam erros de conexão?
Esta é uma solução horrível, mas se você realmente está "perdido em uma ilha deserta com apenas essas ferramentas" e os bancos de dados de acesso são completamente somente leitura, crie várias cópias de cada uma delas e permita apenas um certo número de conexão em qualquer um dos eles em cada vez. Por exemplo, se você tiver 2 bancos de dados de acesso, MDBAA e MDBBB, crie cópias como:
- MDBAA01
- MDBAA02
- MDBAA03
- MDBBB01
- MDBBB02
- MDBBB03
Então, quando ocorre uma solicitação para o MDBAA, consulte quantas solicitações estão acessando atualmente o MDBAA01, se sobre o limite, tente MDBAA02, etc. Faça o mesmo para quaisquer solicitações ao arquivo MDBBB.
Como eu disse, isso é uma solução muito ruim, mas se você realmente não tem escolha, pode funcionar para você. Mas, realisticamente, parece que o aplicativo superou o acesso (e o host compartilhado), por isso é hora de atualizar a arquitetura.
Gaste um pouco de dinheiro e obtenha algum armazenamento SQL. Quanto tempo você gastou trabalhando para encaixar uma muleta em um sistema de som quebrado?
Se vale a pena fazer o projeto, vale a pena investir um pouco de dinheiro frio.
Se uma empresa está tentando forçá -lo a essa rota, explique por que a opção que você tem não é viável. Se você sugeriu a opção em primeiro lugar, cresça um par e explique por que você estava errado, mas é assim que você pode corrigi -lo.
Desculpe se isso aparece como irreverente.