Mensagens enviadas por: maruero
Índice dos Fóruns » Perfil de maruero » Mensagens enviadas por maruero
Autor Mensagem
Senhores,

Tenho um serviço rodando em um tomcat 6 feito com Spring + CXF.
Meu WS consome um WS de terceiro.

Quando eu inicio o Tomcat tudo ocorre normalmente.
Entretanto, por algum problema obscuro, depois de uns 2 a 3 dias eu começo a receber RemoteException: broken pipe.
Se reinicio o Tomcat, o problema some e volta a aparecer apenas 2 a 3 dias depois.

Já procurei a razão disso em todos os lugares: aplicação, SO, WS do terceiro e nada.

Aparentemente tem algum problema que vai ocorrendo durante o dia e de repente começa a ficar crítico.

Alguém já teve essa experiência e pode me ajudar?

Obrigado,
--
Marcelo
Pessoal,

Estou tendo um problema estranho:
Tenho várias aplicações em um servidor com tomcat acessando um banco de dados Oracle em outro servidor.
Em apenas uma das queries utilizadas por uma das aplicações eu recebo um IOException Connection Reset.

Aguem teria um idéia de aonde eu poderia começar a procurar pelo problema?

Segue a StackTrace:
Caused by: java.sql.SQLException: Io exception: Connection reset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:826)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:64
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)
Bom dia galera,

Estou trabalhando em um site que mantém alguns objetos na sessão relativamente grandes.
E estou comparando algumas alternativas de manter esses objetos na sessão, e notei que se eu serializá-los (todas as classes envolvidas são Serializable) eles ficam menores do que suas versões não serializadas.

E eu tinha convicção de que isso seria exatamente ao contrário.
Existe de fato razão para que a versão serializada de um objeto ser menor que a sua versão em forma de instância?

Talvez a memória gasta com cada um dos fields das classes envolvidas?
Obrigado.
Funcionou!!!
Lucas,

Estou usando o snapshot e estou com um comportamente um pouco estranho.
Tenho 3 interceptors meus:
- Login
- Exceptions
- Initialization

Fiz o seguinte:
Exceptions executa "after" ParametersInstantiationInterceptor
Initialization executa "after" Exceptions
Login executa "after" Initialization

A idéia era deixar a sequencia assim:
ParametersInstantiationInterceptor -> Exceptions -> Initialization -> Login -> Controllers.

A sequencia está sendo respeitada, mas, estranhamente, os Controllers são instanciados antes de ser interceptados.
Ou seja, os construtores dos controllers executam antes dos Interceptors, isso está certo?

Isso está quebrando um pouco a idéia do meu InitializationInterceptor que é recuperar os parâmetros do contexto e colocá-los na sessão, para que os construtores dos controllers possam configurar os controllers durante o processo de inicialização.
Obrigado Lucas.
Consegui reproduzir o erro no black_project e descobrir a fonte do problema, mas tive que fazer várias alterações.

O problema começa ocorrer quando eu implemento uma InterceptorSequence definindo nela o ParametersInstantiatorInterceptor como primeiro Interceptor a ser executado.
Preciso disso, pois tenho um outro Interceptor (responsável por disponibilizar a tela de login ao usuário quando este tenta acessar páginas de acesso restrito, e após o login dá um forward ao controller original requisitado pelo usuário) que necessita conhecer os parâmetros passados da JSP para os Controllers.

Alguem tem uma sugestão de consertar meu problema?
3.2.0

Estranho.

Eu coloquei um Interceptor apenas para verificar se o parâmetro está sendo passado corretamente, e no construtor do interceptor eu recebo um MethodInfo com um Type dentro.
Apenas no controller mesmo que o parâmetro fica nulo. Como se o VRaptor não soubesse interpretá-lo antes de chamar o método paymento do controller.

Vou continuar procurando possiveis erros.
Depois do redirect.

Ou seja, o type na linha 04 do código a baixo está nulo.
Boa tarde senhores,

Tenho um método de um controller que espera receber como parâmetro um enum, assim:


Se eu faço um request no browser, da maneira a baixo, tudo ocorre normal.
http://localhost:8080/meuwar/payment?type=CARTAO

Entretanto, se eu faço um redirect de algum outro método, da maneira a baixo, o type é nulo, e se eu uso-o, naturalmente, eu obtenho um NullPointerException.


O que estou fazendo de errado?
Ou isso é um "bug" do VRaptor?
Valew!!!
Leu minha responsta anterior, com a idéia?
Cara, seu problema não tem nada haver com Java ou TomCat.

Você não está tendo permissão de administrador para iniciar um serviço do Windows.
Dê uma olhada se, quando você clica com o botão direito do mouse em cima do ícone do TomCat, não tem a opção "executar como administrador".
Se não houver essa opção, então, você vai ter que pedir para o administrador da sua máquina te dar privilégios.
Olá Christiano,

Saudações Sul-Matogrossenses para você. Finalmente achei alguem da minha terra aqui no Forum.

Realmente, a solução mais fácil para solucionar o seu problema é convencer o seu cliente de que isso é a coisa mais natural em uma aplicação cliente/servidor com sessão.

Bom fora isso, você pode usar uma idéia de subsessão.
Deixa eu explicar melhor:
1 - Coloque tudo que você precisar manter na sessão em uma Classe, por exemplo MinhaSessão.
2 - Crie um HashMap de MinhaSessão e coloque-o na sessão real de seu ServidorWeb.
3 - Faça todas as suas requisições, originadas de todas as sua páginas exceto da Home, passando como parâmetro um SubSessionId que você pode criar como quiser.
4 - Na Home você não passa esse Id, e durante o processamento do request da Home, você cria esse Id, cria uma instancia do MinhaSessão, usa o id para incluir o MinhaSessão no HashMap, e devolva o id para suas páginas subsequentes sempre reenviá-lo nas próximas requisições.
5 - No processamento das outras páginas você usa o Id passado pelas páginas para obter o MinhaSessão do HashMap.

Pegou a idéia?

Dessa forma, se o usuário abrir uma nova aba e tentar entrar no sistema ele vai receber um novo Id com uma nova Sessão.
Só que se o usuário clicar em um de seus links com o botão direito e mandar abrir em uma nova aba ele irá utilizar o mesmo id e assim vai "roubar" a sessão, pois as duas abas vão usar o mesmo id.

Espero ter ajudado.
O que o yoshikichi disse é que a sua imagem não está sendo exibida.

Você tem certeza de que não é apenas você que está sendo capaz de enxergar a imagem de erro que você disponibilisou para nós?
Você usou os serviços do Google, néh?!

Faz um teste. Entre aqui (na página do seu tópico) estando deslogado dos serviços do Google que você usou para disponibilizar a imagem.

Dica: Para mostrar erros aqui no forum prefira copiar e colar o que aparece nos Logs do tomcat, ao invés de postar uma imagem.

Abraços
 
Índice dos Fóruns » Perfil de maruero » Mensagens enviadas por maruero
Ir para:   
Powered by JForum 2.1.8 © JForum Team