クライアントドライブ機能を使い,サーバ側からクライアント側へファイルをコピーするとセッションが切れることがある.また,セッションが切れない場合でも,クライアント側でファイルがロックされ削除が出来ない等の現象が発生することもある.
技術ノート
2009/10/20
[番号]
技術ノート KGTN 2009092001
[現象]
クライアントドライブ機能を使い,サーバ側からクライアント側へファイルをコピーするとセッションが切れることがある.また,セッションが切れない場合でも,クライアント側でファイルがロックされ削除が出来ない等の現象が発生することもある.
[説明]
クライアントドライブ機能を使い,サーバ側からクライアント側へファイルをコピーする場合,ファイルサイズが19MBを越えると以下の現象が発生することがあります.
・ セッションが切断される (SessionVerification = 0 の場合は発生しません).
・ クライアント側にファイルサイズが0バイトのファイルが作成される.
・ クライアント側にコピーされたファイルがロックされた状態になる.
・ クライアント側にコピーされたファイルの正しいファイルサイズが得られない.
この問題は,回線速度やファイルの内容 (テキスト・バイナリ) に依存せず,ファイルサイズのみに依存して発生します.ファイルがロックされた場合は,ActiveXクライアントではIEを閉じることで,Windowsクライアントはggw.exeを終了させることでロックが解除されます.
クライアントドライブ機能でファイルをコピーする場合,FTPのような専用のファイル転送プロトコルでコピーが行われる訳ではなく,Windows内部の低レベルのファイルコピー処理をフックして,サーバとクライアント間でファイルのコピー処理が行われます.このような仕組みにより, Windowsの遅延書き込み機能等の極めて低レベルな処理もGGのセッションの中で行われ,サーバとクライアント間でエラー等のイベントが正常に伝わらず,それぞれが相手方からのイベントを待ち続けて,タイムアウトによるセッション断や継続的なファイルのロックが発生したものと推測されます.