Dernier point technique, il est plutôt conseiller d'utiliser les Callable et le Future du Framework EXECUTOR plutôt que les Threads.

Idéalement, il faudrait un EJB Timer, car en JEE "on a pas le droit" de créer des Thread comme ça comme on veut (anti-spec), car le serveur d'applications doit avoir entièrement la main sur l'ensemble de ses Threads.

Enfin, je rejoins DevServlet, ça sera très très difficile de déceler des modification de l'état des enregistrements existants sans plomber les perfs de la base (faire des SELECT qui font des MD5 de l'ensemble de champs ... autant dire que c'est pas une bonne idée)

A ta place je chercherai du côté de Trigger : ça ne modifie pas ta base, ni le code de l'application qui utilise la base ... il faut voir ça comme une "fonction" qui est déclenchée par un événement sur la base de données. Cette fonction pourrait "avertir" ton application JEE.

Dans ton cas, avec ta problématique, AJAX ne sert à rien (en tout cas pour le moment)

Bon courage.