| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/09/2006 23:24:46
|
guigouz
Debugger
Membro desde: 19/09/2006 23:08:34
Mensagens: 66
Offline
|
Seguinte, escrevi um servlet que pega um arquivo no servidor e manda para o browser. O código do método é bem trivial:
A idéia é servir o arquivo e saber quando o cliente conseguiu fazer o download, gravando a situação num HashMap "fileStatus", assim, no corpo do método doGet() tenho algo assim
STATUS_DL, STATUS_OK e STATUS_ERROR são constantes definidas por mim. O problema é que quando o cliente cancela a transferência, o arquivo está ficando com STATUS_OK.
Em meus testes locais conectando direto ao tomcat, a Exception era lançada e o arquivo marcado com STATUS_ERROR. Agora as hipóteses:
1) Apache e mod_jk estão obfuscando o que aconteceu com o cliente
2) O tomcat está lendo o arquivo inteiro muito rápido (o servidor é um quad xeon com 4gb ram) e marca o STATUS_OK mesmo sem ele ter recebido o arquivo todo (depois que o cliente desconecta). O estranho é que durante o download ele fica marcado com STATUS_DL.
Agora finalmente: Alguém sabe o que pode ser feito ? Talvez algum método do (pensei algo do tipo out.flush) que me assegure que o cliente recebeu aquele pedaço do arquivo (existe esse tipo de verificação no http?).
Desde já agradeço qualquer comentário
Abraços
gui
|
|
|
 |
|
|
|
|
|
|