2012-03-16 30 views
3

JSchを使用して小さなファイル(不明な時間と未知数のファイル)をあるサーバーから別のサーバーに移動しようとしています - 残念ながら、すぐに爆撃された(MaxSessionsは私が10と推測したように)「セッション」vs「チャンネル」(JSchとsshd)

JSchで1セッション(1ホストあたり)を開き、各アクションのチャンネルを作成しました(1回の送信でチャンネルが作成され、ファイルが置かれ、チャンネルが閉じられました)が、同じことに遭遇しました一度に10回以上それをやろうとすると、別のリクエストが届いたときにいくつかのチャンネルが閉鎖されているため、接続が拒否されます)。

私はsshd_configを見て、ここでは非常に便利なMaxSessionsプロパティを持っていることを理解しました。しかし、MaxChannelsPerSessionプロパティがないのですか、それとも私は混乱していますか? JSchは「チャネル」を呼び出し、実際のSSHチャネルは何ですか。

私は20120316.

のようJSCHの最新バージョンを使用しています(そして、最も重要なのは、私はそれは、関連するプログラミングのようなものだ?サイト上の別の場所でこれを投稿しますが、私は推測する必要がありますパートシステム管理者など)

答えて

5

私はJSchの著者です。

sshd_configの "MaxSessions"プロパティは、OpenSSHのsshdの "MaxChannelsPerSession"として認識されます。

+0

ありがとうございます! – SubSevn

+7

少しのフォローアップ:セッション/チャンネルのスレッドセーフですか?グローバルに保持するセッション(または参照を渡したセッション)を作成し、別のスレッドでそれを使用して心配することなくチャネルを作成することができますか、それともすべてを同期化されたブロックに入れるべきですか? – SubSevn

+0

@ymnkあなたはこれをチェックしてください:http://stackoverflow.com/questions/23692643/jsch-sftp-channel-state-impact-by-previous-channel-state-of-the-same-session –

1

ちょうど別の代替のために:

ファイルを転送するため、JSCHはChannelSftpクラスを提供しています。複数のファイルを1つのチャネル(サーバーごとに)を使用して次々に(または並行して)転送することができます。

ただし、パフォーマンス上のメリットがあるのか​​どうかはわかりませんが、

+1

Have単一のChannelSftpインスタンスを使用してファイルを並行して転送する例を見たことがありますか?私は1つを掘ることを試みている。 – Nicholas

+0

いいえ、私のChannelSftpに関する知識は、そのコードとSFTP pre-RFCを読むことによって、ほとんど理論的なものです。 –

+0

トピックはありませんが、 'Apache Mina SSHD'のクライアントに相当するものはありますか?私は 'JSCH'よりむしろこれを使用し、私のアプリケーションは再利用可能なチャンネルの恩恵を受けるでしょう。現在、私は大規模なオーバーヘッドを持つすべての単一のファイルを接続して切断しています。 –