Rompa o pool de conexões JNDI (configure o pool de conexões por meio da interface de gerenciamento no Tomcat5.5)
Autor:Eve Cole
Data da Última Atualização:2009-07-03 16:56:20
Quebrando o conjunto de conexões JNDI - -
Depois de vários dias de trabalho duro, posso finalmente me conectar ao pool de conexões. Referi-me a muitas postagens de heróis a esse respeito. Agora vou anotar aqui vários problemas que surgiram nos últimos dias:
1. Coloque os três drivers jdbc (obrigatórios) em tomcat_homecommon, que pode ser baixado do site da Microsoft. O nome de usuário padrão do SQLSERVER2k instalado é sa e a senha está vazia, mas não importa se a senha está vazia. . Isso significa que não há senha, então você deve definir nome de usuário e senha em seu URL. Se houver um erro que não possa ser citado, geralmente é porque o caminho não está escrito corretamente. o caminho do tomcat é tomcat_homewebapps, mas use 5.5 .x, basta seguir o método abaixo. Não há necessidade de configurar o caminho e não há necessidade de configurar a referência no youwebappWEB-INFweb.xml. A configuração server.xml da versão tomcat5.5.x é diferente da configuração do tomcat5.0, a seguir estão três métodos de configuração no tomcat5.5.x. Se a configuração estiver incorreta, javax.naming.NameNotFoundException: Nome. não está vinculado a este método de erro de contexto 1. Conjunto de conexões de banco de dados global
1. Configure o pool de conexões por meio da interface de gerenciamento ou adicione-o diretamente ao GlobalNamingResources em tomcatconfserver.xml
<Nome do recurso = "jdbc/mydb" type = "javax.sql.DataSource" senha = "mypwd" driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle = "2" maxWait = "5000" validaçãoQuery = "selecionar 1" nomedeusuário="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=meudb" maxActive="4"/>
2. Adicione o seguinte ao contexto de tomcatwebappsmyappMETA-INFcontext.xml:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
É isso.
Método 2. Conjunto global de conexões de banco de dados
1. Igual ao acima
2. Adicione o seguinte ao contexto do tomcatconfcontext.xml:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
Método 3: O pool de conexão do banco de dados local só precisa ser adicionado ao contexto de tomcatwebappsmyappsMETA-INFcontext.xml:
<Nome do recurso = "jdbc/mydb" type = "javax.sql.DataSource" senha = "mypwd" driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle = "2" maxWait = "5000" validaçãoQuery = "selecionar 1" nomedeusuário="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=meudb" maxActive="4"/>
Descrição do parâmetro:
driveClassName: O nome completo da classe do driver JDBC;
maxActive: O número máximo de instâncias disponíveis que podem ser alocadas do pool de conexões ao mesmo tempo;
maxIdle: O número máximo de conexões que podem ficar ociosas no pool de conexões ao mesmo tempo;
maxWait: tempo limite máximo, em milissegundos;
senha: senha do usuário;
url: URL de conexão com JDBC;
usuário: nome de usuário;
validaçãoQuery: usado para consultar conexões ociosas no pool.
Os três métodos acima estão disponíveis no Tomcat 5.5.4. Além disso, o driver jdbc do sql server é o sql server jdbc (sp3) baixado do site da Microsoft.
4. Erro org.apache.tomcat.dbcp.dbcp.SQLNestedException: Não é possível criar PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Erro ao estabelecer soquete.) Este é um pequeno problema porque meu serviço SQLSERVER2K foi alterado para manual, então você deve iniciar o SQLSERVER2K manualmente após cada inicialização. Como ele foi iniciado sem lembrar, alguns erros são relatados, portanto, se você usa o SQLSERVER2K com frequência, é melhor não alterá-lo para inicialização manual.