[ https://issues.apache.org/jira/browse/TRINIDAD-2293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13420901#comment-13420901 ]
Kentaro Kinebuchi commented on TRINIDAD-2293: --------------------------------------------- Recall that in multi file upload each file upload is a separate request. Ditto for chunked file transfer, each chunk is a separate request. We store the files & chunks in the session until the user submits the form. This fix handles the scenario where lets say we have files A and B. The user add A and uploads it. It's a huge file so it takes 1 hr and the progress bar goes to 100% and finishes. Next, the user decides to add another file B. However, before he starts the upload the server fails and failover puts him on another server where his session is replicated. He adds B, the file is uploaded and then he submits the form. Without this HA fix he will see an upload failure for file A while file B will be ok. This means that not only will he have to spend another 1 hr uploading A again even though it was previously uploaded successfully and is available in the temporary directory on the server, he'll also be confused that the upload came back as Failed even though he saw it upload successfully earlier. We have to call setAttribute instead of getSessionMap().put because WLS only monitors calls to the setAttribute method: http://docs.oracle.com/cd/E15523_01/web.1111/e13709/failover.htm#i1027876 See the section "Use setAttribute to Change Session State" > multi file upload does not get replicated in a High Availability environment > ---------------------------------------------------------------------------- > > Key: TRINIDAD-2293 > URL: https://issues.apache.org/jira/browse/TRINIDAD-2293 > Project: MyFaces Trinidad > Issue Type: Bug > Components: Infrastructure > Affects Versions: 2.0.2-core > Environment: linux x86 > Reporter: Kentaro Kinebuchi > Attachments: Trinidad-2293.patch > > > In multi file upload, the uploaded files are stored in the user's session > before submit. In a HA environment, the session context which is replicated > does not contain this file information so if the server goes down then the > file data is lost in the replicated server. > There are two specific issues which need to be handled in the code: > 1. In WebLogic, unless the setAttribute() method is called on the session > context, that attribute is not automatically replicated. Hence, all > attributes which are updated during multi file upload and we want replicated > have to specifically call that method. > 2. WebLogic does not replicate all File objects stored in the context. Hence, > the path to the temporary file created for each uploaded file needs to be > saved in a String in the context so it is replicated. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira