Je sais que cela ressemble à une question de programmation mais ce n'est pas le cas. Soyez patients avec moi s'il vous plaît:
J'ai un client qui rencontre un problème étrange que je ne peux pas expliquer: un programme utilise un fichier sur un lecteur SMB partagé (serveur Windows 2008R2) ouvert en mode partagé.
Avant d'effectuer une mise à jour à l'intérieur du fichier, le programme verrouillera des parties spécifiques en utilisant LockFile, lira les données, écrira les modifications requises à ces parties et les déverrouillera ensuite.
Cela est fait pour s'assurer que plusieurs instances du même programme ne peuvent pas écraser les modifications de l'autre.
Dans le cas de mon client, ce programme (qui fonctionnait parfaitement depuis des années dans tous les autres endroits) parvient à verrouiller le fichier mais l'appel subséquent à ReadFile sur la même poignée échoue et GetlastError renvoie l'erreur 64 Le nom de réseau spécifié n'est plus disponible
Ainsi, ma question:
Y a-t-il un paramètre dans le client SMB ou le serveur Windows qui pourrait causer quelque chose comme ça ?
Cela me semble être un verrouillage optimiste mais Windows ne fait pas de verrous optimistes par défaut (il fait des verrous opportunistes).
Ma première suspicion est que ce problème est causé par le logiciel antivirus (Kaspersky) mais l'administrateur du site assure que tous les antivirus ont une exclusion pour ce chemin réseau, aussi bien sur le client que sur le serveur de fichiers.
Le système d'exploitation client est un mélange de Windows XP, 7, 2003 et 2008R2 (via services de terminal). Il semble se produire uniquement en période de charge importante (le matin lorsque tout le monde arrive ou le soir lorsque tout le monde se déconnecte).