2010-01-13 7 views
2

Depuis longtemps, j'ai eu un problème avec l'utilisation du service de recherche de vérité fourni avec ColdFusion 8. Le problème est avec les erreurs de délai survenant lors de l'exécution d'une opération sur une collection. Il est intermittent et se produit généralement après quelques opérations réussies. Par exemple: Si j'ajoute des enregistrements à une collection, le premier, disons 15 enregistrements, passera sans problème, mais tous les enregistrements suivants expireront jusqu'à ce que le service soit redémarré. Je suis sur un serveur partagé, Windows 2008, 64 bits pour autant que je sache. L'erreur que je reçois est: "Erreur lors de l'exécution d'une opération dans la bibliothèque du moteur de recherche Erreur lors de la lecture des informations de collection: com.verity.api.administration.ConfigurationException: java.io.IOException: lecture expirée" Après avoir parlé à ma société d'hébergement, et après avoir fait des recherches, il a été suggéré que le nombre de collections sur un serveur pourrait causer ce problème. J'ai réduit la quantité de collections que j'utilise et il y a actuellement 39 collections sur le serveur. Comme je suis sur un serveur partagé, je n'ai aucun contrôle sur le nombre de collections que d'autres clients utilisent, mais j'ai lu que la limite est de 128 collections, donc je ne vois pas pourquoi 39 devrait la rendre inutilisable. Les collections ne sont pas grandes, il y a peut-être environ 5 000 enregistrements entre elles.Timeout reading verity collection - CF8

Des idées?

Répondre

0

Verity semble être très vulnérable aux index corrompus, etc. L'optimisation régulière va aider un peu. J'avais l'habitude d'avoir toutes sortes de problèmes de Verity et d'erreurs comme ci-dessus.

J'ai implémenté un cflock autour de toutes mes actions de lecture et d'écriture sur la collection et aucune autre erreur ne s'est produite. (Je suppose qu'il ne peut pas faire de mal dans la plupart des situations, surtout si vous prévoyez de grandes mises à jour hors pointe)

Alors peut-être cela peut être une bonne solution supplémentaire pour vous aussi (ou d'autres bien sûr). Ci-dessous un petit exemple de cflock around delete action.

<cflock name="SearchLock_#veritycollection#" type="exclusive" timeout="5"> 
     <cfindex 
      collection = "#veritycollection#" 
      action = "delete" 
      type = "file" 
      key ="#toScheduleKey#"> 

      <cffile action="delete" 
      file="#toScheduleKey#"> 
    </cflock>