Fondamentalement, ils ne sont pas possibles! , les chances sont astronomiquement faibles .
Mais ... je suis la seule personne que je connaisse dans le monde, qui a eu une colision GUID une fois (oui!).
Et j'en suis sûr, et que ce n'était pas une erreur.
Comment cela s'est-il passé, dans une petite application qui fonctionnait sur Pocket PC, à la fin d'une opération, une commande avec un GUID généré doit être émise. La commande après son exécution sur le serveur, elle a été stockée dans une table de commandes sur le serveur avec la date d'exécution. Un jour, alors que je déboguais, j'ai émis la commande de module (avec le GUID nouvellement généré) et rien ne s'est passé. Je l'ai fait à nouveau (avec le même guid, car le guid n'a été généré qu'une seule fois au début de l'opération), et encore une fois, et rien, essayant enfin de savoir pourquoi la commande ne s'exécute pas, j'ai vérifié la table des commandes, et le même GUID que l'actuel a été inséré il y a 3 semaines. Ne croyant pas cela, j'ai restauré une base de données à partir de 2 semaines de sauvegarde, et le guid était là. Vérifié le code, le nouveau GUID a été fraîchement généré sans aucun doute à ce sujet.
Edit: certains facteurs auraient pu augmenter considérablement les chances que cela se produise, l'application fonctionnait sur l'émulateur PocketPC et l'émulateur dispose d'une fonction de sauvegarde de l'état, ce qui signifie que chaque fois que l'état est restauré, l'heure locale est également restaurée et le guid est basé sur le temporisateur interne .... aussi l'algorithme de génération de guid pour le framework compact pourrait être moins complet que par exemple celui COM ...