java mail: set
Problem: email thread is hanging at socket read
Today we found a email problem in production, all of the mail threads (3 threads) are hanging/sitting/blocking at same point
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x9698d6c0> (a java.io.BufferedInputStream)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:56)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:757)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:673)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:168)
at javax.mail.Service.connect(Service.java:227)
at javax.mail.Service.connect(Service.java:131)
at javax.mail.Service.connect(Service.java:87)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:105)
- locked <0x9698d6e0> (a com.sun.mail.smtp.SMTPTransport)
at javax.mail.Transport.send0(Transport.java:162)
at javax.mail.Transport.send(Transport.java:80)
I search the "javax.mail.Transport.send" and "com.sun.mail.smtp.SMTPTransport.readServerResponse", got no hits.
while my colleague get answer from internet.
http://jira.sakaiproject.org/browse/KNL-96
http://forums.sun.com/thread.jspa?forumID=43&threadID=474662
"I have a servlet which uses JavaMail to send out emails to a smtp server. During our peak access hours, we have many requests to send out emails, after a while my application went into CLOSE WAIT accumulation and finally my application server stops processing."
"ExecuteThread: '11' for queue: 'default'" daemon prio=5 tid=0x39fb28 nid=0x18 runnable [0xbf980000..0xbf981a38]
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:85)
at java.io.BufferedInputStream.
Ïà¹ØÎĵµ£º
¹ØÓÚJava
µÄµ×²ãÒ»Ö±Ïëдµãʲô£¬µ«ÊǺÃÏñºÜ¶àÎÊÌâÔÚÍøÉÏ»¹ÊÇ¿ÉÒÔÕҵõ½´ð°¸£¬×îºó»¹ÊǾö¶¨Ð´³öÀ´£¬Ò»À´¿ÉÒÔÈÃ×Ô¼ºÖØÎÂһϣ¬¶þÀ´¿ÉÒԺʹó¼ÒÒ»ÆðÉîÈë̽ÌֵײãµÄ֪ʶ¡£ÕâÀïÃ滹ÓÐһЩ³£¼ûµÄСÎÊÌ⣬Ҳ¸½´øÔÚÀïÃæµÄÔÒò£¬framework
ÆäʵҲÊǹ¹½¨ÔÚÕâЩ֪ʶµÄ»ù´¡Éϵġ£
ÂÛÒ»£ºÊýÖµÂÛ
ÎÊÌâÒ ......
ʲôÊÇsocket
³¤Á¬½ÓÓë¶ÌÁ¬½Ó
Ëùν³¤Á¬½Ó£¬Ö¸ÔÚÒ»¸öTCPÁ¬½ÓÉÏ¿ÉÒÔÁ¬Ðø·¢ËͶà¸öÊý¾Ý°ü£¬ÔÚTCPÁ¬½Ó±£³ÖÆڼ䣬Èç¹ûûÓÐÊý¾Ý°ü·¢ËÍ£¬ÐèҪ˫·½·¢¼ì²â°üÒÔά³Ö´ËÁ¬½Ó£¬Ò»°ãÐèÒª×Ô¼º×öÔÚÏßά³Ö¡£
¶ÌÁ¬½ÓÊÇָͨÐÅË«·½ÓÐÊý¾Ý½»»¥Ê±£¬¾Í½¨Á¢Ò»¸öTCPÁ¬½Ó£¬Êý¾Ý·¢ËÍÍê³Éºó£¬Ôò¶Ï¿ª´ËTCPÁ¬½Ó£¬Ò»°ãÒøÐж¼Ê¹ÓöÌÁ¬½Ó¡£
±ÈÈçht ......
1. Ó¦Ó÷¶Î§
±¾¹æ·¶Ó¦ÓÃÓÚ²ÉÓÃJ2EE¹æ·¶µÄÏîÄ¿ÖУ¬ËùÓÐÏîÄ¿ÖеÄJAVA´úÂ루º¬JSP£¬SERVLET£¬JAVABEAN£¬EJB£©¾ùÓ¦×ñÊØÕâ¸ö¹æ·¶¡£Í¬Ê±£¬Ò²¿É×÷ΪÆäËüÏîÄ¿µÄ²Î¿¼¡£
2. Éè¼ÆÀàºÍ·½·¨
2.1 ´´½¨¾ßÓкÜÇ¿ÄÚ¾ÛÁ¦µÄÀà
·½·¨µÄÖØÒªÐÔÍùÍù±ÈÀàµÄÖØÒªÐÔ¸üÈÝÒ×Àí½â£¬·½·¨ÊÇÖ¸Ö´ÐÐÒ»¸öͳһº¯ÊýµÄÒ»¶Î´úÂë¡£Àà³£± ......
δÍê³É ´ýÍêÉÆ
public class MagicCube {
/**
* Áù¸öÃæµÄϱêÖµ
* ¡õ5
* ¡õ¡õ¡õ¡õ 1234 ÕâËĸöÁ¬ÌåÕý·½ÐÎÏòºó˳ʱÕë°üΧ ÐγÉͲ״ È»ºó °Ñ5ºÍ6¿ÛÉÏ ¾ÍÐγÉÕý·½Ìå
* ¡õ6
*/
public static void main(String[] args) {
MagicCube mb = new MagicCube();
int i = 0;
for (Face f : mb.faces ......