Question

Je suis contraint par la suite, rien autour de lui:

  1. données en lecture seule: Microsoft Access
  2. Jet 4.0 OLDB
  3. ASP.NET 2.0
  4. hébergement mutualisé, très peu de contrôle.
  5. OU Mapper - LLBL Gen Pro

L'application est un outil de lecture seule qui lit beaucoup de bases de données Microsoft Access dans le dossier App_Data. Fonctionne bien la plupart du temps.

En cas de charge, il commence à ne pas accéder aux banques multilatérales de développement d'accès.

Quelle est la meilleure stratégie pour accéder aux banques multilatérales de développement pour limiter les erreurs d'accès pour y accéder? En ce moment, je tente, puis Thread.Sleep (500) sur une erreur puis essayez à nouveau.

Était-ce utile?

La solution

Je pense qu'il peut y avoir des façons de modifier l'isolement / verrouillage / options concurrency lors de l'accès aux bases de données d'accès pour éliminer les frais généraux de gestion des verrous. Peut-être essayer "Mode = Partager Deny Aucun;" dans la chaîne de connexion. Je ne voudrais pas utiliser si vous modifiez les données de quelque façon à tout moment même si, comme il est à peu près jeter toute la gestion isolement / accès concurrentiel que vous obtenez avec une base de données. Utilisez à vos propres risques.

Autres conseils

Comment souvent le changement de données? Si elle est en lecture seule que vous pouvez charger les données à partir des bases de données dans le cache et le lire à partir de là au lieu de directement à partir des bases de données?

Quel genre d'erreurs spécifiques obtenir. Je suppose que ce sont des erreurs de connexion?

Ceci est une solution horrible, mais si vous êtes vraiment « perdu sur une île déserte avec ces outils » et les bases de données d'accès sont complètement en lecture seule, puis créer plusieurs copies de chacun d'entre eux et permettent seulement un certain nombre de connexion dans l'un d'eux à la fois. Par exemple, si vous avez 2 bases de données d'accès, MdbAA et MdbBB puis créer des copies comme:

  • MdbAA01
  • MdbAA02
  • MdbAA03
  • MdbBB01
  • MdbBB02
  • MdbBB03

Ensuite, lorsqu'une demande vient pour MdbAA, voir combien de demandes sont actuellement en train d'accéder MdbAA01, si le seuil, essayez MdbAA02, etc. Faites la même chose pour toutes les demandes au fichier MdbBB.

Comme je l'ai dit est très mauvaise solution, mais si vous avez vraiment pas d'autre choix, alors il pourrait fonctionner pour vous. Mais réaliste, il semble que l'application est trop grand pour l'accès (et l'hôte partagé) donc il est temps de mettre à jour l'architecture.

Passez un peu d'argent et d'obtenir un espace de stockage sql. Combien de temps avez-vous passé à travailler sur l'adaptation de béquille à un système de sondage brisé?

Si le projet en vaut la peine, alors il vaut la peine d'investir un peu espèces sonnantes et trébuchantes.

Si une entreprise essaie de vous forcer dans cette voie, expliquer pourquoi l'option que vous avez est pas viable. Si vous suggérez l'option en premier lieu, développer une paire et expliquer pourquoi vous avez eu tort, mais voici comment vous pouvez le corriger.

Désolé si cela se détache comme cavalière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top