java mail 을 이용하여 메일 발송 시
com.sun.mail.smtp.SMTPTransport.close 구문에서 lock 이 걸려
thread hang이 발생하는 경우가 생기는 경우가 있다.
이럴 경우에는 mime 생성 시 timeout 값을 지정 해 주면 된다.
timeout 값이 지정되어 있지 않으면 다음과 같이 무한정 대기 상태에 빠지게 된다.
"webtob1-hth0(localhost:9900)-w06 [container1-26]" prio=1 tid=0x087e1288 nid=0x1ea0 runnable [0x5d1fc000..0x5d1fcea0]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
- locked <0x77cf8170> (a java.io.BufferedInputStream)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:645)
- locked <0x77cf7f78> (a com.sun.mail.smtp.SMTPTransport)
at javax.mail.Transport.send0(Transport.java:171)
at javax.mail.Transport.send(Transport.java:98)
그러므로 다음과 같이 발송하는 부분에서 timeout 값을 지정 해 주어야 한다.
아마 이 문제로 골치썩고 있던 분들은 크게 도움 되리라고 본다.
※ 자바 메일 이용시 참고할 API
https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html
'스킬(skills) > 자바(Java)' 카테고리의 다른 글
Launch4j 를 이용하여 java 파일을 실행파일(exe)로 만들기 (5) | 2014.05.08 |
---|---|
JAVA로 현재 접속한 브라우져 정보 확인 방법 (0) | 2014.04.09 |
log4sql을 이용하여 쿼리 로그를 편하게 확인하는 방법 (2) | 2014.01.16 |
Page directive: illegal to have multiple occurrences of contentType with different values 오류가 날 경우 (2) | 2014.01.14 |
JSP 페이징 처리 예제 (0) | 2014.01.08 |