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

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.

alguém saberia me ajudar?

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

[quote=thingol][quote]
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).
[/quote]

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

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.

[quote=rbamartins][quote=thingol][quote]
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).
[/quote]

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

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.[/quote]

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.