Threadsafety in Javamail
Ich bin recherchieren, ob Javamail threadsicher ist, insbesondere in einer situation mit vielen Sitzungen mit den dementsprechenden Benutzer mehrere SMTP-Server und die Verwendung von erstellen von MIME-Nachrichten und verwenden von transport.sendMessage
Methode. Ich weiß, Javamail orientiert sich an desktop-Nutzung, die mich vermuten lässt, kann es nicht gewesen gebaut mit threading im Hinterkopf und Frage mich, ob jemand so Erfahrung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwar den thread über die Regeln der Sicherheit für die JavaMail sind nicht gut dokumentiert, aber hoffentlich werden Sie meistens mit dem übereinstimmen, was man erwarten würde.
Mehrere threads können eine Sitzung.
Da ein Transport stellt eine Verbindung zu einem mail-server, und nur einen einzigen thread kann die Verbindung verwenden, wird ein Transport synchronisiert den Zugriff von mehreren threads zu pflegen, thread-Sicherheit, aber Sie werden nur wirklich wollen, es zu benutzen, die aus einem einzigen thread.
Ähnlich, ein Geschäft verwendet werden können, indem mehrere threads, aber der Zugriff auf die zugrunde liegende Verbindung synchronisiert werden und single threaded.
Einer Nachricht sollte nur geändert werden durch einen einzigen thread zu einem Zeitpunkt, sondern mehrere threads sollten in der Lage sein zu Lesen, eine Nachricht sicher (obwohl es ist nicht klar, warum Sie würde wollen, das zu tun).
Hoffe, das hilft...
Die javamail-dispatcher-threads scheint nicht zu timeout wenn der server nicht rechtzeitig antwortet. dies führt zu sperren, die auf allen verfügbaren threads.
Getestet, dieses Verhalten mit beiden 1.4.3 & 1.4.5.