[jcifs] Multiple Threads Causes Server Timeout

Michael B Allen mba2000 at ioplex.com
Thu Apr 14 23:41:43 GMT 2005


tim_wiffen at westlb.co.uk said:
> jcifs version: 1.1.9
>
> I have some code that runs a pool of 3 threads that pick file requests off
> a list and fetch them. As a unit test I am using this to copy 300 files
> (total size of files 500MB)  in a directory on a remote server. However
> after copying about 50 files I start to get SmbExceptions but other files
> are copied successfully after these errors:
>
> jcifs.smb.SmbException: Timeout waiting for response from server:
> someserver.myserver.net/123.45.67.89
>         at jcifs.smb.SmbTransport.send(SmbTransport.java:671)

I can't reproduce this. Your example runs ok for me. I had to change the
path a little to point to a directory with files.

I have to wonder if maybe your network has a problem. For example, one
thing that could cause this kind of trouble is if your NIC is set to
half-duplex but the router wants full-duplex. Or visa-versa. Check it out.

Otherwise I ran your example several times on a large directory of files
and it worked 100%. I ran it with 20 threads a couple times and it worked
fine.

Note there is a known concurrency error that someone reported but at this
point I do not think your problem is related. Also, note the
jcifs-1.1.9trans.jar I pointed you to *does* fail your test in a very
similar way (timeout) but for entirely different reasons (bad mid
rollover).

Try your test on a different network.

Also, note your Iterator is not synchronized. I don't think that's a
problem but thought I would mention it.

Mike

PS: I realize you're just testing but for a variety of reasons any file
copying you do should always be done using SmbFile.copyTo().


More information about the jcifs mailing list