java socket not closing

2005-03-22 Thread Joseph Shraibman
I have a connection to a mail server that was closed from the other end, 
but my local jvm is still hanging on to the socket (for like 6 or 7 hours):

Proto Recv-Q Send-Q Local Address   Foreign Address State
tcp1  11796 p5b.selectacast.n:45221 213.38.169.138:smtp 
CLOSE_WAIT

"MsgSender sending via mail.leebaron.com [213.38.169.138]" prio=1 
tid=0x79f74000 nid=0x3ab0 runnable [825b1000..825b1cd8]
at java.net.SocketOutputStream.socketWrite0(Native Method)
at 
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at 
com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:83)
at 
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:79)
- locked <0x4b188b20> (a java.io.BufferedOutputStream)
at 
com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:41)
at 
com.sun.mail.smtp.SMTPOutputStream.write(SMTPOutputStream.java:36)
at 
com.sun.mail.util.QPEncoderStream.output(QPEncoderStream.java:162)
at 
com.sun.mail.util.QPEncoderStream.write(QPEncoderStream.java:109)
at com.sun.mail.util.QPEncoderStream.write(QPEncoderStream.java:64)
at 
sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)
at 
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:395)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
- locked <0x4b18abd8> (a java.io.OutputStreamWriter)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)
at com.sun.mail.handlers.text_plain.writeTo(text_plain.java:126)
at 
javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:839)
at javax.activation.DataHandler.writeTo(DataHandler.java:295)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1201)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1611)
at 
com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:493)
- locked <0x4b18abf0> (a com.sun.mail.smtp.SMTPTransport)

So how do I get around this problem?
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]


Re: java socket not closing

2005-03-22 Thread Nathan Bryant
Remember that a socket isn't closed until both stream directions are 
shut down. It kinda looks like the remote end has either become 
unreachable or isn't implementing TCP active close properly. You're 
sending data which it is not ACKing, and it's not sending an RST either. 
It may be stuck for some reason, and not calling read().

Does JavaMail provide a way to enable keepalive on its sockets? That 
might help.

Joseph Shraibman wrote:
I have a connection to a mail server that was closed from the other 
end, but my local jvm is still hanging on to the socket (for like 6 or 
7 hours):

Proto Recv-Q Send-Q Local Address   Foreign Address State
tcp1  11796 p5b.selectacast.n:45221 213.38.169.138:smtp 
CLOSE_WAIT

"MsgSender sending via mail.leebaron.com [213.38.169.138]" prio=1 
tid=0x79f74000 nid=0x3ab0 runnable [825b1000..825b1cd8]
at java.net.SocketOutputStream.socketWrite0(Native Method)
at 
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at 
com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:83)
at 
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at 
java.io.BufferedOutputStream.write(BufferedOutputStream.java:79)
- locked <0x4b188b20> (a java.io.BufferedOutputStream)
at 
com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:41)
at 
com.sun.mail.smtp.SMTPOutputStream.write(SMTPOutputStream.java:36)
at 
com.sun.mail.util.QPEncoderStream.output(QPEncoderStream.java:162)
at 
com.sun.mail.util.QPEncoderStream.write(QPEncoderStream.java:109)
at 
com.sun.mail.util.QPEncoderStream.write(QPEncoderStream.java:64)
at 
sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)
at 
sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:395)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
- locked <0x4b18abd8> (a java.io.OutputStreamWriter)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)
at com.sun.mail.handlers.text_plain.writeTo(text_plain.java:126)
at 
javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:839)
at javax.activation.DataHandler.writeTo(DataHandler.java:295)
at 
javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1201)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1611)
at 
com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:493)
- locked <0x4b18abf0> (a com.sun.mail.smtp.SMTPTransport)

So how do I get around this problem?
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]