Problema de conexão: "connection is closed", Tomcat (server.xml)

4 respostas
rbamartins

Bom dia, pessoal.

Estou com um problema em minha aplicação.
Trabalho com desenvolvimento web a um certo tempo, mas meu conhecimento em servidores de aplição é superficial. Tenho me voltado mais para trabalhos com webservices e análise de banco.

Meu problema é o seguinte:

Tenho um método que faz uma inserção no banco e estava funcionando normalmente até que fizeram alterações nas configurações de meu server.xml de meu Tomcat (5.5.17).

Sempre que uma chamada a esse método ocorre a primeira vez funciona e a segunda cai numa excessão (mostra abaixo), pois pelo que vi ele fecha a conexão que estava ativa. E para funcionar novamente precisa-se reiniciar a aplicação que faz a chamada a meu Werbservice que por sua vez chama esse método de minha classe.

[b]java.sql.SQLException: Connection is closed.[/b]
        at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrap
per.checkOpen(PoolingDataSource.java:174)
        at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrap
per.rollback(PoolingDataSource.java:287)
        at netra.util.DBBean$ManConnection.rollback(DBBean.java:535)
        at WSforCallCenter.agendar(WSforCallCenter.java:118)
        at sun.reflect.GeneratedMethodAccessor472.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.j
ava:397)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:186)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
323)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454
)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:69
9)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at netra.util.FiltroConexao.doFilter(FiltroConexao.java:71)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:619)

Meu server.xml se encontra dessa forma:

<Server port="8096" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector port="80" maxHttpHeaderSize="8192"
               maxThreads="600" minSpareThreads="25" maxSpareThreads="450"
               enableLookups="false" redirectPort="8443" acceptCount="200"
                disableUploadTimeout="true" />
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8010"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
 <Engine name="Catalina" defaultHost="localhost">
   <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
 <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">


                <Context crossContext="true" debug="0" docBase="d:/genhio/web" path="" reloadable="false">
		  <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_genhio_log." suffix=".txt" timestamp="true"/>
		  <!--  DATASOURCE DE DESENVOLVIMENTO DA APLICACAO -->

			 <Resource name="jdbc/OraDB"
				       auth="Container"
					   type="javax.sql.DataSource"
				       maxActive="200"
					   maxIdle="50"
					   maxWait="-1"
					   removeAbandoned="true"
					   logAbandoned="false"
					   username="scmba_prod"
					   password="scmba"
					   driverClassName="oracle.jdbc.driver.OracleDriver"
				       url="jdbc:oracle:thin:@10.30.5.8:1523:prod01"/>

		</Context>
       </Host>

       </Engine>

    </Service>

    </Server>

O que poderia estar ocorrendo?

Não sei se vale a informação, mas essa aplicação é acessada por muitos usuários simultâneamente.

Desde já agradeço a atenção.

Abraços.

4 Respostas

rbamartins

alguém saberia me ajudar?

T

Você sabe como é que estava a configuração antiga? Comparar uma com a outra ajuda bastante.

rbamartins

thingol:

Tenho um método que faz uma inserção no banco e estava funcionando normalmente até que fizeram alterações nas configurações de meu server.xml de meu Tomcat (5.5.17).

Você sabe como é que estava a configuração antiga? Comparar uma com a outra ajuda bastante.

Sei sim. Fizeram uma classe FiltroConexao para gerenciar as conexões. Mas não tenho acesso, pois foi inserida dentro da lib do framework que encomendaram de uma empresa aqui.

T

rbamartins:
thingol:

Tenho um método que faz uma inserção no banco e estava funcionando normalmente até que fizeram alterações nas configurações de meu server.xml de meu Tomcat (5.5.17).

Você sabe como é que estava a configuração antiga? Comparar uma com a outra ajuda bastante.

Sei sim. Fizeram uma classe FiltroConexao para gerenciar as conexões. Mas não tenho acesso, pois foi inserida dentro da lib do framework que encomendaram de uma empresa aqui.

Hum, provavelmente você vai ter de fazer uma de duas coisas, ou talvez as duas (pela minha experiência, você vai ter de fazer a segunda para poder apresentar evidências para poder acionar a primeira, mas obviamente isso é uma carta que você esconde na manga, para evitar problemas do tipo “vocês descompilaram nosso código e isso é ilegal”).

  • Ver se a tal empresa dá suporte a essa coisa que puseram para gerenciar as conexões (FiltroConexão? Argh :frowning: )
  • Descompilar a tal classe para entender mais ou menos o que pode estar ocorrendo.
Criado 22 de dezembro de 2008
Ultima resposta 5 de jan. de 2009
Respostas 4
Participantes 2