Je me demande si il existe un moyen de faire appel asynchrone à une base de données?
Par exemple, imaginons que j'ai une grosse demande de prendre un temps très long processus, je veux envoyer la demande et recevoir une notification lorsque la demande va retourner une valeur (par le passage d'un Auditeur/rappel ou quelque chose). Je ne veux pas bloquer en attente pour la base de données de réponse.
Je ne considère pas que l'utilisation d'un pool de threads est une solution, car il n'a pas d'échelle, dans le cas de fortes demandes simultanées cela va lancer un très grand nombre de threads.
Nous sommes confrontés à ce genre de problème avec le serveur de réseau et nous avons trouvé des solutions à l'aide de select/poll/epoll appel système pour éviter d'avoir un thread par connexion. Je me demande juste comment faire pour avoir une fonctionnalité similaire avec demande de base de données?
Mise à jour:
Je suis conscient que l'utilisation d'un FixedThreadPool peut être un bon travail, mais je suis surpris que personne ne l'avons développé un système asynchrone (sans l'utilisation de fil supplémentaire).
Mise À Jour 2 (Décembre 2010):
Autant que je sache, il n'y a pas de solution pour faire de réel asynchrone jdbc appel, la meilleure solution de contournement consiste à encapsuler l'appel avec quelque chose comme un Acteur ou une Promesse.