Question

I'm looking to move small files (at unknown times and in unknown quantities) from one server to another using JSch - unfortunately, I tried to open up a sessions for each transfer which quickly bombed out (as MaxSessions was I guess 10?).

Then I opened one session (per host) with JSch, and simply created a channel for each action (a single send would create a channel, put the file, closed the channel), but I encountered the same thing (when trying to do it 10 or more at a time, I would get connections refused as some channels were still closing when another request came through).

So I've looked at sshd_config and figured out that they have a MaxSessions property which would come in quite useful here - but it got me wondering, is there not a MaxChannelsPerSession property, or am I getting confused with regard to what JSch calls a "channel" and what is an actual SSH channel.

I am using the most recent version of JSch as of 20120316.

(And most importantly, should I post this in a different place on the site? It's kind of programming related, but I guess is part sysadmin as well...)

Was it helpful?

Solution

I'm the author of JSch.

"MaxSessions" property on sshd_config will be recognized as "MaxChannelsPerSession" on OpenSSH's sshd.

OTHER TIPS

Just for another alternative:

For transfering files, JSch offers the ChannelSftp class. With it you can transfer multiple files one after another (or even in parallel) using only one channel (for each server).

I don't know if this offers any performance benefits, though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top