Pergunta

Estou limitado pelo seguinte, de jeito nenhum:

  1. Dados somente leitura: acesso da Microsoft
  2. Jet 4.0 OldB
  3. ASP.NET 2.0
  4. Host compartilhado, muito pouco controle.
  5. 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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top