J'espère bien que vous connaissez mieux votre produit que moi.
J'aurais pourtant préféré des points plus concrèts de votre part.
P.ex. impossible de reproduire le comportement chez nous, etc.
Il n'y a pourtant pas de réponse aux que
- Pourquoi ces ralentissements si d'autres produits ne les montrent
pas? - Pourquoi parler d'un problème générale de Windows si d'autres
produits ne le connaissent pas?
Par contre il y a toujours plus d'indications que le problème est
vraiment dû aux OpLocks et que vous n'avez pas de solution.
Après mon expérience désastreuse avec WD7/7.5 je n'utiliserai plus
aucun nouveau produit PC Soft jusqu'il a été commercialisé pendant un
certain temps et qu'on entend plus parler de problèmes apparents. En
plus, un plus en vitesse n'est pas une assurance qu'il n'y aura pas le
même problème après modification de données.
en cause: nous parlons du fait que des requêtes en lecture seule ne se
comportent pas comme des requêtes en lecture seule.
dégradent de nouveau. PLUS PERSONNE EST EN MODIFICATION! mais le
comportement comme si quelqu'un était en modification persiste.
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur. De
ce fait le terme "fichier temporaire" sur le serveur.
Si vous dites que ce comportement est normal sous Windows Server, je
ne suis pas d'accord. Après les tests fait à ce jour, je pense je peux
dire tranquillement que c'est faux et si vous insistez sur ce point
sans fournir des preuves au contraire, je classe cetted declaration
comme mensonge.
J'espère bien que vous connaissez mieux votre produit que moi.
J'aurais pourtant préféré des points plus concrèts de votre part.
P.ex. impossible de reproduire le comportement chez nous, etc.
Il n'y a pourtant pas de réponse aux que
- Pourquoi ces ralentissements si d'autres produits ne les montrent
pas? - Pourquoi parler d'un problème générale de Windows si d'autres
produits ne le connaissent pas?
Par contre il y a toujours plus d'indications que le problème est
vraiment dû aux OpLocks et que vous n'avez pas de solution.
Après mon expérience désastreuse avec WD7/7.5 je n'utiliserai plus
aucun nouveau produit PC Soft jusqu'il a été commercialisé pendant un
certain temps et qu'on entend plus parler de problèmes apparents. En
plus, un plus en vitesse n'est pas une assurance qu'il n'y aura pas le
même problème après modification de données.
en cause: nous parlons du fait que des requêtes en lecture seule ne se
comportent pas comme des requêtes en lecture seule.
dégradent de nouveau. PLUS PERSONNE EST EN MODIFICATION! mais le
comportement comme si quelqu'un était en modification persiste.
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur. De
ce fait le terme "fichier temporaire" sur le serveur.
Si vous dites que ce comportement est normal sous Windows Server, je
ne suis pas d'accord. Après les tests fait à ce jour, je pense je peux
dire tranquillement que c'est faux et si vous insistez sur ce point
sans fournir des preuves au contraire, je classe cetted declaration
comme mensonge.
J'espère bien que vous connaissez mieux votre produit que moi.
J'aurais pourtant préféré des points plus concrèts de votre part.
P.ex. impossible de reproduire le comportement chez nous, etc.
Il n'y a pourtant pas de réponse aux que
- Pourquoi ces ralentissements si d'autres produits ne les montrent
pas? - Pourquoi parler d'un problème générale de Windows si d'autres
produits ne le connaissent pas?
Par contre il y a toujours plus d'indications que le problème est
vraiment dû aux OpLocks et que vous n'avez pas de solution.
Après mon expérience désastreuse avec WD7/7.5 je n'utiliserai plus
aucun nouveau produit PC Soft jusqu'il a été commercialisé pendant un
certain temps et qu'on entend plus parler de problèmes apparents. En
plus, un plus en vitesse n'est pas une assurance qu'il n'y aura pas le
même problème après modification de données.
en cause: nous parlons du fait que des requêtes en lecture seule ne se
comportent pas comme des requêtes en lecture seule.
dégradent de nouveau. PLUS PERSONNE EST EN MODIFICATION! mais le
comportement comme si quelqu'un était en modification persiste.
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur. De
ce fait le terme "fichier temporaire" sur le serveur.
Si vous dites que ce comportement est normal sous Windows Server, je
ne suis pas d'accord. Après les tests fait à ce jour, je pense je peux
dire tranquillement que c'est faux et si vous insistez sur ce point
sans fournir des preuves au contraire, je classe cetted declaration
comme mensonge.
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur.
De ce fait le terme "fichier temporaire" sur le serveur.
Non, pour rétablir la vitesse lié au mécanisme OpsLock, il faut que
tous les processus qui ont ouvert le fichier le referme. C'est ce que
j'ai constaté et ce que Microsoft docummente :
Si vous dites que ce comportement est normal sous Windows Server,
je ne suis pas d'accord. Après les tests fait à ce jour, je pense
je peux dire tranquillement que c'est faux et si vous insistez sur
ce point sans fournir des preuves au contraire, je classe cetted
declaration comme mensonge.
Et pourtant je le prouve. Je ne sais pas ce qui est utilisé dans
Hyper File. Mais ci-dessous je donne un code W-Langag qui utilise les
fonctions de base de l'API pour la gestions des fichiers. Ce code
permet de reproduire le phénomène. Ceux qui veulent le convertir dans
un autre lanage peuvent le faire, c'est sans rapport avec le langage.
Ce code permet au chois de faire une lecture sur un fichier ou de
faire un petit blocage sur un fichier. Pour utiliser ce code et
mettre le phénomène en évidence, il faut l'exécuter comme suit : -
Test mono-utilisation Sur un poste faire une lecture en étant seul
sur le fichier
- Test multi-utilisation Sur un poste faire un blocage d'un octet du
fichier Sur l'autre poste faire une lecture du même fichier.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur.
De ce fait le terme "fichier temporaire" sur le serveur.
Non, pour rétablir la vitesse lié au mécanisme OpsLock, il faut que
tous les processus qui ont ouvert le fichier le referme. C'est ce que
j'ai constaté et ce que Microsoft docummente :
Si vous dites que ce comportement est normal sous Windows Server,
je ne suis pas d'accord. Après les tests fait à ce jour, je pense
je peux dire tranquillement que c'est faux et si vous insistez sur
ce point sans fournir des preuves au contraire, je classe cetted
declaration comme mensonge.
Et pourtant je le prouve. Je ne sais pas ce qui est utilisé dans
Hyper File. Mais ci-dessous je donne un code W-Langag qui utilise les
fonctions de base de l'API pour la gestions des fichiers. Ce code
permet de reproduire le phénomène. Ceux qui veulent le convertir dans
un autre lanage peuvent le faire, c'est sans rapport avec le langage.
Ce code permet au chois de faire une lecture sur un fichier ou de
faire un petit blocage sur un fichier. Pour utiliser ce code et
mettre le phénomène en évidence, il faut l'exécuter comme suit : -
Test mono-utilisation Sur un poste faire une lecture en étant seul
sur le fichier
- Test multi-utilisation Sur un poste faire un blocage d'un octet du
fichier Sur l'autre poste faire une lecture du même fichier.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
La seule façon de rétablir la vitesse initiale de l'accès
multi-utilisateur en "lecture seule" est de redémarrer le serveur.
De ce fait le terme "fichier temporaire" sur le serveur.
Non, pour rétablir la vitesse lié au mécanisme OpsLock, il faut que
tous les processus qui ont ouvert le fichier le referme. C'est ce que
j'ai constaté et ce que Microsoft docummente :
Si vous dites que ce comportement est normal sous Windows Server,
je ne suis pas d'accord. Après les tests fait à ce jour, je pense
je peux dire tranquillement que c'est faux et si vous insistez sur
ce point sans fournir des preuves au contraire, je classe cetted
declaration comme mensonge.
Et pourtant je le prouve. Je ne sais pas ce qui est utilisé dans
Hyper File. Mais ci-dessous je donne un code W-Langag qui utilise les
fonctions de base de l'API pour la gestions des fichiers. Ce code
permet de reproduire le phénomène. Ceux qui veulent le convertir dans
un autre lanage peuvent le faire, c'est sans rapport avec le langage.
Ce code permet au chois de faire une lecture sur un fichier ou de
faire un petit blocage sur un fichier. Pour utiliser ce code et
mettre le phénomène en évidence, il faut l'exécuter comme suit : -
Test mono-utilisation Sur un poste faire une lecture en étant seul
sur le fichier
- Test multi-utilisation Sur un poste faire un blocage d'un octet du
fichier Sur l'autre poste faire une lecture du même fichier.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
2) J'ai souvent compilé le projet et tout à coup il m'a donné un
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
est déclaré, mais pas utilisé dans le code en question. Si j'ai
compris correctement la doc de Microsoft, l'usage de OpLocks ne
devrait alors pas être possible.
D'autre part//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
Comme j'ai dit, j'y comprends rien, ais j'aurais pensé qu'une
ouverture de fichier pour une requête sans paramètre hModifieFichier
utiliserait quelque chose comme:
eTypeOuverture = GENERIC_READ
eAttributsCache = FILE_ATTRIBUTE_READONLY + FILE_FLAG_RANDOM_ACCESS
Et si le code ne correspondait pas à l'ouverture des fichiers d'une
requête SELECT, utilisé p.ex. par Windev, alors quel est le but de ce
test, stp?
2) J'ai souvent compilé le projet et tout à coup il m'a donné un
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
est déclaré, mais pas utilisé dans le code en question. Si j'ai
compris correctement la doc de Microsoft, l'usage de OpLocks ne
devrait alors pas être possible.
D'autre part
//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
Comme j'ai dit, j'y comprends rien, ais j'aurais pensé qu'une
ouverture de fichier pour une requête sans paramètre hModifieFichier
utiliserait quelque chose comme:
eTypeOuverture = GENERIC_READ
eAttributsCache = FILE_ATTRIBUTE_READONLY + FILE_FLAG_RANDOM_ACCESS
Et si le code ne correspondait pas à l'ouverture des fichiers d'une
requête SELECT, utilisé p.ex. par Windev, alors quel est le but de ce
test, stp?
2) J'ai souvent compilé le projet et tout à coup il m'a donné un
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
FILE_FLAG_OVERLAPPED est un entier=0x40000000
//traitement asynchrone de L/E
est déclaré, mais pas utilisé dans le code en question. Si j'ai
compris correctement la doc de Microsoft, l'usage de OpLocks ne
devrait alors pas être possible.
D'autre part//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
Comme j'ai dit, j'y comprends rien, ais j'aurais pensé qu'une
ouverture de fichier pour une requête sans paramètre hModifieFichier
utiliserait quelque chose comme:
eTypeOuverture = GENERIC_READ
eAttributsCache = FILE_ATTRIBUTE_READONLY + FILE_FLAG_RANDOM_ACCESS
Et si le code ne correspondait pas à l'ouverture des fichiers d'une
requête SELECT, utilisé p.ex. par Windev, alors quel est le but de ce
test, stp?
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
Effectivement pour rétablir lee Opslocks il faudrait que tous les postes
ferme le/les fichiers sur lesqueles il y a eu modif ou blocage.
D'autre part//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
J'ai utilisé ces paramètre car dans mes appli en général je fit des
modif, et le pense que les requêtes ne re-ouvre pas les fichiers.
Maintenant tu peux mettre : eTypeOuverture=GENERIC_READ dans le cas de la
lecture (mais laisse eTypeOuverture=GENERIC_READ+GENERIC_WRITE pour le
lancement sur le poste qui bloque). A priori cela ne provoque pas de
différence.
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
Effectivement pour rétablir lee Opslocks il faudrait que tous les postes
ferme le/les fichiers sur lesqueles il y a eu modif ou blocage.
D'autre part
//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
J'ai utilisé ces paramètre car dans mes appli en général je fit des
modif, et le pense que les requêtes ne re-ouvre pas les fichiers.
Maintenant tu peux mettre : eTypeOuverture=GENERIC_READ dans le cas de la
lecture (mais laisse eTypeOuverture=GENERIC_READ+GENERIC_WRITE pour le
lancement sur le poste qui bloque). A priori cela ne provoque pas de
différence.
Je précise que notre application ne ferme jamais exlicitement les
fichiers. Selon la doc de Windev, les fichiers sont géres
automatiquement. Si la fermeture explicite puisse aider, merci de m'en
informer. Les tests fait rapidement n'ont pas montré de différence.
Effectivement pour rétablir lee Opslocks il faudrait que tous les postes
ferme le/les fichiers sur lesqueles il y a eu modif ou blocage.
D'autre part//Ouverture en L/E
eTypeOuverture=GENERIC_READ+GENERIC_WRITE
me surprend. Depuis longtemps je dis que les requêtes "en lecture
seule" ne se comporte pas comme des "requêtes en lecture seul".
J'ai utilisé ces paramètre car dans mes appli en général je fit des
modif, et le pense que les requêtes ne re-ouvre pas les fichiers.
Maintenant tu peux mettre : eTypeOuverture=GENERIC_READ dans le cas de la
lecture (mais laisse eTypeOuverture=GENERIC_READ+GENERIC_WRITE pour le
lancement sur le poste qui bloque). A priori cela ne provoque pas de
différence.
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
Le comportement d‚crit dans ton test correspond justement … quelque
chose que tu disait n'existait pas dans le cas d'une requˆte Windev sur
HF: l'usage d'un fichier sur le serveur.
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
Le comportement d‚crit dans ton test correspond justement … quelque
chose que tu disait n'existait pas dans le cas d'une requˆte Windev sur
HF: l'usage d'un fichier sur le serveur.
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
Le comportement d‚crit dans ton test correspond justement … quelque
chose que tu disait n'existait pas dans le cas d'une requˆte Windev sur
HF: l'usage d'un fichier sur le serveur.
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
J'espère bien que le fichier n'est pas récupéré en local sur le poste de
chaque client pour l'exécution de chaque requête !
Imagine une requête qui porte sur 3 fichiers, avec chacun 200.000
enregistrements. Avec cette technique il faudrait avoir des postes
clients avec +++ mémoire et +++ de place disque.
De plus durant le temps de 'copie' des fichiers en local des modif
pourraient être faites sur les fichiers...
Image aussi une requête dont le résultat est 1 enreg. Selon toi, dans ce
cas là aussi, il faudrait récupérer tout les fichiers en local ?
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
J'espère bien que le fichier n'est pas récupéré en local sur le poste de
chaque client pour l'exécution de chaque requête !
Imagine une requête qui porte sur 3 fichiers, avec chacun 200.000
enregistrements. Avec cette technique il faudrait avoir des postes
clients avec +++ mémoire et +++ de place disque.
De plus durant le temps de 'copie' des fichiers en local des modif
pourraient être faites sur les fichiers...
Image aussi une requête dont le résultat est 1 enreg. Selon toi, dans ce
cas là aussi, il faudrait récupérer tout les fichiers en local ?
Revenant sur le principe de base: Pour autant que je sache, une requˆte
traditionelle ex‚cut‚ sur un poste demande le fichier du serveur et
ensuite le traite en local. Ce type de conflit n'existe alors pas,
puisque la lecture est en local.
J'espère bien que le fichier n'est pas récupéré en local sur le poste de
chaque client pour l'exécution de chaque requête !
Imagine une requête qui porte sur 3 fichiers, avec chacun 200.000
enregistrements. Avec cette technique il faudrait avoir des postes
clients avec +++ mémoire et +++ de place disque.
De plus durant le temps de 'copie' des fichiers en local des modif
pourraient être faites sur les fichiers...
Image aussi une requête dont le résultat est 1 enreg. Selon toi, dans ce
cas là aussi, il faudrait récupérer tout les fichiers en local ?
Que tu trouves ça génial ou pas, les requêtes Paradox sont moyennement
bien plus vite que Windev sur HF, sans exécution en arrière plan. De la
situation après modification des fichiers des données on parle même pas.
Mais puisqu'on y est déjà: avec Paradox on peut également: définir le
nom du fichier temporaire contenant le résultat, définir le répertoire
où se trouve ce fichier, renommer le fichier par défaut "Answer.db" et
on a un fichier physique réutilisable, pour des listes, requêtes
enchaînées, archives, etc. Des choses dont un utilisateur Windev ne peut
que rêver pour l'instant. Et tout cela dans un temps époustouflant.
Que tu trouves ça génial ou pas, les requêtes Paradox sont moyennement
bien plus vite que Windev sur HF, sans exécution en arrière plan. De la
situation après modification des fichiers des données on parle même pas.
Mais puisqu'on y est déjà: avec Paradox on peut également: définir le
nom du fichier temporaire contenant le résultat, définir le répertoire
où se trouve ce fichier, renommer le fichier par défaut "Answer.db" et
on a un fichier physique réutilisable, pour des listes, requêtes
enchaînées, archives, etc. Des choses dont un utilisateur Windev ne peut
que rêver pour l'instant. Et tout cela dans un temps époustouflant.
Que tu trouves ça génial ou pas, les requêtes Paradox sont moyennement
bien plus vite que Windev sur HF, sans exécution en arrière plan. De la
situation après modification des fichiers des données on parle même pas.
Mais puisqu'on y est déjà: avec Paradox on peut également: définir le
nom du fichier temporaire contenant le résultat, définir le répertoire
où se trouve ce fichier, renommer le fichier par défaut "Answer.db" et
on a un fichier physique réutilisable, pour des listes, requêtes
enchaînées, archives, etc. Des choses dont un utilisateur Windev ne peut
que rêver pour l'instant. Et tout cela dans un temps époustouflant.