[jcifs] Re: Re: Disconnect from a share
Alexander Saupp
asaupp at web.de
Fri Oct 14 12:16:08 GMT 2005
Hi,
i saw two patch proposals on the mailing list - and wanted to ask kindly for a chance
to get them into one of the following versions.
>From: Michael B Allen <mba2000 <at> ioplex.com>
>Subject: Re: Disconnect from a share
>Newsgroups: gmane.network.samba.java
>Date: 2005-08-12 20:21:22 GMT (8 weeks, 6 days, 15 hours and 22 minutes ago)
>On Fri, 12 Aug 2005 14:23:41 +0200
>Mathias Dietz <MDIETZ <at> de.ibm.com> wrote:
>> After some debugging (comparing tcp packages from smbclient with jcifs), I
>> found two causes for the "Broken Pipe" error.
>>
>> 1) doDisconnect() sends a LogoffAndX packet and doesn't wait for the
>> response.
>> This causes a server error message (Error writing xx bytes to client).
>> Solution: In SMBSession.logoff(boolean) replace
>> transport.send( request, null );
>> with
>> transport.send( request, new SmbComLogoffAndX(null));
>Ok, I think I see what's happening. But first, note that second
>parameter to SmbTransport.send() is actually a response object so
>passing an SmbComLogoffAndX is invalid. You got lucky because the
>SmbComLogoffAndXResponse decodes no data. A more appropriate object
>would be SmbComBlankResponse.
>But passing null to the transport indicates that it should not to wait
>for the response. This is slightly faster since we can move on to other
>things rather than sit there collecting a logging off response which
>has no useful information in it.
>The problem is that first of "other things" is to close the socket but
>apparently Samba hasn't written it's response yet so when it tries to
>do so it get's an error (albeit a harmless one).
I would be very interessted to have the Patch Michael proposed inside - putting
a 'new SmbComBlankResponse()' instead of null avoids that nasty errors Mathias mentioned.
Any chance to get that fix into one of the next versions?
...
>> I'm still very interessted in a disconnect() method , because I use jcifs
>> to monitor multiple samba servers (up to 100).
>> And I must create a new connection each 10-15 seconds.A disconnect() method
>> would help to save a lot of
>> resources (# of threads) und would make life easier.
>Again, the proper solution here is to add refcounting to the
>transport. That way you can leave soTimeout at 15 seconds (actually in
>your case you would probably want to make it 5 seconds) but when a request
>is outstanding on the transport it cannot be closed. That change is too
>invasive for me to add to mainline while we're in a stable period so
>you might elect to simply extend SmbFile to add your disconnect() method.
...
Is there a JCIFS roadmap showing in which version / around what time its planned to have the
refcounting feature? Is that something you are working on allready?
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
More information about the jcifs
mailing list