yfmoan
Jun 24th, 2005, 09:39 PM
Hi ,
There is another more serious problem l found ( l don't know whether it is serious or not , open for discussion ).
Before describe the problem , l would like to ask some questions ,
Q1. How to do paging in SWF ?
As you can see from my previous posts in SWF forum , l concern about doing paging very much , l have no problem with my SimplePagingTag* with SpringMVC so far , but l do find the difficulty to do paging in SWF.
The Simple Paging Tag are using initProperties() to init all those necessary properties for paging , the most important of the properties are parameters , l have to get all parameters from the request to make my paging work . In SWF , the parameters like _flowExecutionId , _eventId , ... are included too , otherwise l don't know what will happen if l lack one of them ...:) , so now the question :
If l use continuation in my application ( using HttpSessionContinuationFlowExecutionStorage or ClientContinuationFlowExecutionStorage ) , the _flowExecutionId will change every time , then my makePageLink(..) method have to
a. use the old flowExecutionId ? , or
b. use the new flowExecutionId ?
if (b) is the answer , then l have to change the method's implementation to depend on SWF API (because l have to know _flowExecutionId) , and the following behavior are unavoidable :
Changing different tags each time l use different storages ...:) .. , this is strange action for me ...hihi
Q2. Will paging + client continuation hit the limitation for "GET" easily ?
The value of the parameter "_flowExecutionId" are so long for client continuation (Base64), my paging link have to include this _flowExecutionId for completion , what if my value of the other parameters are long too ? will it hit the limitation of http's "GET" ---> 128 easily ?
P1. The "serious" problem...
When l use continuation storages with my home make paging ( l think it can be generalized , just because it is so simple , it help to show all the problems ) , if l first search for a results , and press some of the links (<< 1 2 3 4 5>>) to another page , then keep pressing refresh button F5 , the problem shown - increase of memory . l open an Window Task Manager (Performance) to view the memory usage , it growth fast that l can see it with my eye , althought not fast enough to crash my system immediately , but this is not good~ , because if l want to crash my system , l just need to have something press on F5 button than go to sleep .
l tried SpingMVC controller b4 , the momory won't increase too fast , because the SpringMVC controllers are not storing something , but not for the case of continuation ! ..am l wrong about what l saw ? why there is an increase of memory so fast ? until now , l finished writing the article , the memory still not going down. Although l am not implement the cleanup flow filter in my test application , l guess it won't cause the problem , because it is regarding the expired flows , not an active flow .
* http://forum.springframework.org/showthread.php?t=14458
moon.
There is another more serious problem l found ( l don't know whether it is serious or not , open for discussion ).
Before describe the problem , l would like to ask some questions ,
Q1. How to do paging in SWF ?
As you can see from my previous posts in SWF forum , l concern about doing paging very much , l have no problem with my SimplePagingTag* with SpringMVC so far , but l do find the difficulty to do paging in SWF.
The Simple Paging Tag are using initProperties() to init all those necessary properties for paging , the most important of the properties are parameters , l have to get all parameters from the request to make my paging work . In SWF , the parameters like _flowExecutionId , _eventId , ... are included too , otherwise l don't know what will happen if l lack one of them ...:) , so now the question :
If l use continuation in my application ( using HttpSessionContinuationFlowExecutionStorage or ClientContinuationFlowExecutionStorage ) , the _flowExecutionId will change every time , then my makePageLink(..) method have to
a. use the old flowExecutionId ? , or
b. use the new flowExecutionId ?
if (b) is the answer , then l have to change the method's implementation to depend on SWF API (because l have to know _flowExecutionId) , and the following behavior are unavoidable :
Changing different tags each time l use different storages ...:) .. , this is strange action for me ...hihi
Q2. Will paging + client continuation hit the limitation for "GET" easily ?
The value of the parameter "_flowExecutionId" are so long for client continuation (Base64), my paging link have to include this _flowExecutionId for completion , what if my value of the other parameters are long too ? will it hit the limitation of http's "GET" ---> 128 easily ?
P1. The "serious" problem...
When l use continuation storages with my home make paging ( l think it can be generalized , just because it is so simple , it help to show all the problems ) , if l first search for a results , and press some of the links (<< 1 2 3 4 5>>) to another page , then keep pressing refresh button F5 , the problem shown - increase of memory . l open an Window Task Manager (Performance) to view the memory usage , it growth fast that l can see it with my eye , althought not fast enough to crash my system immediately , but this is not good~ , because if l want to crash my system , l just need to have something press on F5 button than go to sleep .
l tried SpingMVC controller b4 , the momory won't increase too fast , because the SpringMVC controllers are not storing something , but not for the case of continuation ! ..am l wrong about what l saw ? why there is an increase of memory so fast ? until now , l finished writing the article , the memory still not going down. Although l am not implement the cleanup flow filter in my test application , l guess it won't cause the problem , because it is regarding the expired flows , not an active flow .
* http://forum.springframework.org/showthread.php?t=14458
moon.