Problemas com session do TomCat

Pessoal tenho uma aplicação em JSF usando o Tomcat, está definido em meu Web.xml o timeout para 30 minutos, mas ao acessar o manager do TomCat tem session com tempo de inatividade de mais de 22 horas que não foi removida. Mesmo fazendo o comando FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); a sessão não está sendo removida.

Posta ai o seu web.xml …
Nunca aconteceu comigo…

Segue abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
  <error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/index.xhtml</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/index.xhtml</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/index.xhtml</location>
  </error-page>
  <context-param>
    <param-name>primefaces.CLIENT_SIDE_VALIDATION</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
    <param-value>0</param-value>
  </context-param>
  <listener>
    <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
  </listener>
  <resource-env-ref>
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
  </resource-env-ref>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Push Servlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>Push Servlet</servlet-name>
    <url-pattern>/primepush/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/index.xhtml</location>
  </error-page>
</web-app>

Aparentemente ta certo…30 minutos por sessão.
Baseado em que vc ta dizendo que não esta expirando?

Quando eu verifico as seções no manager do Tomcat (imagem abaixo) tem casos de inativas superior a tempo limite de timeout e algumas vezes por dias.

Pior que eu não uso esse manager…uso probe…não sei te dizer que isso indica que a sessão é e esta na forma que vc afirma…

ok, sem problemas. Desde já agradeço.

Para ter certeza certeza mesmo…faz um listener servlet container de sessão, faz um logg la simples de veja se depois do tempo configurado ele realmente não esta destruindo

ok, vou fazer o teste para entender melhor se está ficando em aberto ou não.
Obrigado.

Problema resolvido conforme abaixo:
session.setMaxInactiveInterval(26060);
Com essa instrução após o final do tempo da seção em estado de inativa o Tomcat remove ela da lista de seções.