2011-09-14 19 views
0

응용 프로그램에서 세션 크기를 최적화하고 싶습니다. 이 크기를 찾으려면 힙 덤프를 수행하고 분석하는 매트를 사용합니다.Seam의 세션 크기는 얼마입니까?

Seam은 세션 및 대화 콩을 어디에서 저장합니까?

비록 org.apache.catalina.session.StandardSession에 있었지만 눈에 띄게 아니오 (이 콩에는 2 옥텟 만 있습니다).

답변

0

Seam은 모든 것을 HttpSession에 저장합니다.

Name("someFilter") 
@Filter(around = { "org.jboss.seam.web.ajax4jsfFilter" }) 
@Scope(ScopeType.APPLICATION) 
@Startup 
@BypassInterceptors 
public class SomeFilter extends AbstractFilter { 

private static final LogProvider log = Logging.getLogProvider(SomeFilter.class); 

@SuppressWarnings("unchecked") 
public void doFilter(ServletRequest request, ServletResponse resp, FilterChain arg2) throws IOException, ServletException { 
    if (HttpServletRequest.class.isAssignableFrom(request.getClass())) { 
     HttpServletRequest req = (HttpServletRequest) request; 
     HttpServletResponse response = (HttpServletResponse) resp; 
     HttpSession session = req.getSession(); 
       if (log.isInfoEnabled()) { 
        List<String> attrNames = Collections.list(session.getAttributeNames()); 
        for (String o : attrNames) { 
         log.info("objects in session " + o); 
        } 
       } 
    } 
} 
+0

예 그 사실도 발견되었습니다. 사실, 매트는 힙 덤프를 직접 얻는 데 약간의 문제가 있습니다. jmap을 사용하면 좋은 크기를 발견했습니다. – Kiva

관련 문제