Tomcat

Em uma máquina tenho um banco de dados do postgresql-8.3, em outra máquina um tomcat5.5 com uma aplicação em java. Conversam perfeitamente, com leitura, inclusão e exclusão. Porém quando subo o tomcat dentro da própria máquina onde está o postgresql, coloco a aplicação, essa não consegue acessar. Ou seja, a aplicação só acessa o banco de dados se estiver em outra máquina.

Estou usando o Debian Lenny.

Já configurei o tomcat de várias maneiras diferentes, mas não consigo.

Criei usuário no Linux com o mesmo nome do usuário do banco de dados.

Nada. Mas, ainda da máquina externa, acesso e altero o banco de dados perfeitamente, menos da própria máquina onde está o BD. O incrível é que a aplicação sobe, mas na hora de acessar o BD dá pau.

Acredito que seja um problema de permissão. Mas, não consigo enxergar o que tenho que fazer.

Seria legal vc colocar qual o erro gerado ao tentar acessar a base…olha no log do tomcat.

Achei algo interessante no log do postgresql.

Ao tentar fazer conexão, aparece.

2010-11-04 11:38:11 BRST LOG:  tamanho do pacote de inicialização inválido

O que seria isso?

Olhei também o /var/log/tomcat5.5

Aparecem os seguintes tipos de logs:
admin
catalina
host-manager
localhost
manager

qual seria o log útil para essa situação?

Notei q o erro que aparece no log do postgresql é::


EOF inesperado durante conexão do cliente

E não conecta ao BD.

Olá, você consegue acessar o seu banco de dados através do pgsql de dentro do próprio servidor??? pois pode ser, mas somente uma suposição que seja o seu pg_hba.conf que esteja bloqueando o acesso interno.

caso não seja isso por favor desconsidere.

Att,

GodZilla, tb estou achando isso. Porque consigo acessar de outra máquina, mas pela própria máquina não.

Já olhei o arquivo, mas vou colocar aqui, para ver se vc´s podem me ajudar.

#Database administrative login by UNIX sockets
local      all                 postgres                                            trust

#TYPE  DATABASE     USER             CIDR-ADDRESS             METHOD

#"local" is for Unix domain socket connectiions only
local     all                 all                                                      trust
#IPv4 local connections:
host     all                 all                   127.0.0.1/32                 trust
host     all                 all                   (um outro IP)                trust
#IPv6 local connections:
host     all                 all                    ::1/128                        md5

Onde aparece (um outro IP) é a outra máquina que uso e acesso normalmente.

Olá, você editou o arquivo postgresql.conf dentro dele tem uma linha chamada listen_addresses esta linha para permitir acesso de fora e de dentro precisa estar configurada corretamente, no caso se quiser acesso dos dois lados você tem que colocar assim: listen_addresses = ‘*’ se não me engano você pode separar os endereços por ponto e virgula para mais de um host. Todas estas alterações precisam de restart do servidor.

Att,
André Dalcin

Caro GodZilla_XF,

Obrigado pelo seu retorno.

Mas, já havia editado essa linha. Está listen_addresses = ‘*’

Isso me deixa nervoso, pq não vejo mais o que fazer.

Já que a aplicação e o banco de dados são os mesmos, será que não falta alguma lib no Tomcat?? Preciso instalar alguma?

Pensei que a lib que está na aplicação, quando faço deploy seria a que precisaria, mas será que há outras para que eles se comuniquem?

Consegui.

Faltava mesmo a lib do para o postgresql, instalada no Tomcat.

Instalei no /usr/share/tomcat5.5/common/lib o arquivo postgresql-9.0-801.jdbc

Um abraço e obrigado pela força

Opá, show de bola então, mais uma informação importante para nos lembrarmos quando formos instalar novos servidores, isso acontece muito comigo tbm, são inúmeras configurações e ai acabamos por esquecer alguma, faz parte né, srsrsr. estamos ai qq coisa e só chamar, até +++.

Att,
André Dalcin

Achei outras configurações importantes. Para mim foi um pouco diferente por causa da versão.

Mas, é legal, veja esse link:

http://www.cafe.rnp.br/wiki/Instalação_Java/Tomcat

Sobre as libs eu sempre faço assim, coloco-as junto com meu projeto e adiciono no classpath da app, ai não tem necessidade de colocar dentro de libs no tomcat. Sobre a config do tomcat as mais importantes são as variáveis de ambiente, e claro se usa-se um firewall tem que abrir as portas mesmo, muito lega ai a apostila que vc indicou.

Att,
André Dalcin