Samedi, 13. Janvier 2007

PermaLinkdb.FTSearch à oublier ?

Dans le cadre du développement de Domgle, je me suis rendu compte d'une belle anomalie liée à la méthode DB.FTSearch. Cette méthode gère très mal les droits d'accès aux documents. Voici ce que j'ai pu constater :

Dans un agent web s'exécutant en tant qu'utilisateur web (option de l'agent "run as web user"), la methode DB.FTSearch renvoie dans la collection résultant de la recherche des documents dont l'utilisateur n'a pas forcément les droits d'accès.
On s'en rend compte car lorsque l'on parcour la collection, on tombe sur des documents qui ont leurs champs et leurs propriétés vides. Un doc.GetitemValue("Form")(0) retourne "" de même pour doc.UniversalID.

Comment contourner le problème ?
Le premier réflexe que l'on peu avoir est de faire un test sur un des champ du document et si il est vide, on passe au document suivant. Je vous parle de cette solution car c'est celle que j'avais adoptée. Ben en fait c'est une très mauvaise solution.
Le problème vient du fait que la methode DB.FTSearch renvoie au maximum 5000 documents et si votre base en contient bien plus que cette limite, l'utilisateur peut se retrouver devant un résultat de recherche ne reflétant pas la réalité.

La bonne méthode est à mon sens de tout simplement oublier db.FTSearch mais d'utiliser plutôt NotesView.FTSearch. Lorsque l'on fait un db.getView("NomVue"), il filtre la vue avec les droits de l'utilisateur. Bien entendu cette vue doit afficher tous les documents de la base (SELECT @All).

Je n'ai pas remarqué de différence notable en terme de temps de réponse.

Conclusion :
Je ne sais pas si vous avez pu constater la même chose, je ne sais pas non plus si cela est spécifique aux agents web mais quoi qu'il en soit le bug est bien là. Pensez y donc a deux fois avant d'utiliser le bon vieux db.FTSearch.

AddOn :
Ces variables du notes.ini permettent de bypasser la limitation des 5000 documents FT_MAX_SEARCH_RESULTS
TEMP_INDEX_MAX_DOC
 Commentairesv

1. YoGi  13/01/2007 12:56:49


Curieux ton truc. Ton serveur Domino est sous quelle version ?


2. julien  13/01/2007 13:35:24


6.5.5


3. Smicky  14/01/2007 12:04:16


Pas normal du tout...ca ressemble a un bug car en théorie ca doit marcher (et ca a toujours marché pour moi...)


4. Laurent FRIBOULET  30/01/2007 15:25:48


Bonjour,

C'est un plaisir de lire ce type d'information car j'en apprend beaucoup.


5. Sylvain DE WEERDT  01/02/2007 18:29:52


Bonjour,

J'ai le même souci sur l'abonnement, il affiche tous les titres des docs sans restriction, au support Lotus ils n'étaient même pas au courrant de cette fonction...


6. Richard  29/08/2007 18:02:12


Salut,
J'ai eu le meme problème.
Mais en utilisant le client notes.
Un agent traitait les docs d'une collection de docs retournée par db.FTSearch.
Je voyais effectivement dans mes logs des docs n'ayant pas d'UNID.
J'ai regardé avec le debugger, pareil, j'avais au moment du traitement du doc, un doc sans aucune propriété !
J'ai perdu pas mal de temps à trouver de quel type etait ces étranges document fantômes sans trouvé...
Et bien merci maintenant je sais !
M'en vais d'ailleur faire un test sur une petite base avec 10 docs pour etre certain.
a+
Richard



 Saisir un commentaire^















Se souvenir de mes informations    

A propos

Ce site est destiné à faire connaître mon travail d'expert Domino indépendant et à vous faire partager mes analyses, découvertes et humeurs autour de Lotus Domino et bien d'autres sujets.

Hébergé sur ma Dedibox

Bonne visite.
A propos de moi

Prénom: Julien
Nom: Bottemanne
Adresse: Toulenne (33)

Originaire du Lot et Garonne, j'habite depuis maintenant 2 4 ans en Gironde. J'aime énormément cette région et je savoure avec ma femme et mes deux filles sa qualité de vie.

email - julien@domlike.net

 Monthly Archive
 Search
Contrat

Tous le contenu de ce site est mis à disposition sous un contrat Creative Commons.

Contrat Creative Commons

Paypal

RSS et autres

Lotus Domino ND6 RSS News Feed RSS Comments Feed Geo URL RSS Validator Blog Admin Lotus Geek Open Notes Picture Database OpenNTF BlogSphere