2008-12-10 8 views
1

J'utilise JavaMail pour envoyer des demandes de courrier électronique à un serveur SMTP. Je mets les propriétés "mail.smtp.connectiontimeout" et "mail.smtp.timeout" respectivement à 5 et 30 secondes et les passe à Session.getDefaultInstance(). Cependant, quand je vais faire le Transport.send(), les délais d'attente que je définis semblent être ignorés et il faut environ 3:45 pour expirer sur une machine Solaris. Le délai d'attente prend environ 1h30 sur un Mac. Est-ce un bug dans JavaMail ou dois-je définir d'autres propriétés?Les délais d'attente ne fonctionnent pas avec JavaMail 1.4

Répondre

1

Je pense que les paramètres de délai d'attente étaient spécifiques à la JVM Sun - il peut donc ne pas fonctionner sur le mac exactement pareil.

J'ai eu ce problème dans le passé - éventuellement consommer les threads Web. Ce que j'ai fait, c'était ajouter un peu de JMS pour que le code du palier envoie la demande par e-mail - et qu'un écouteur de message (qui était son propre thread) écoute et fasse l'email - dans le cas occasionnel quand il est bloqué t effectuez le reste de l'application (juste les emails ont pris un peu plus de temps pour un petit moment). Ne résout pas vraiment le problème de racine mais j'ai fini avec un meilleur design.

Questions connexes