Conexión fallida desde Java pero funciona desde psql o pgadmin

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Conexión fallida desde Java pero funciona desde psql o pgadmin
Date: 2016-12-18 22:55:32
Message-ID: CAHMuS04nmOAu+7Ly5=zO+g2P+f3wCdY+0btFbXFPGCD-zqCDLw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Que tal buenas tardes,

Estoy teniendo un problema que no logro decifrar, desde hoy (cuando
prendieron la computadora para empezar a trabajar) una aplicación hecha en
java que se conecta a postgresql comenzó a tener problemas de conexión. La
aplicación java simplemente no se puede conectar al servidor, inclusive con
una sola clase de prueba para la conexión, esta es la excepcion que genera:

Exception in thread "main" org.postgresql.util.PSQLException: The
connection attempt failed.
at
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:233)
at
org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at
org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:144)
at
org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
at
org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
at
org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:416)
at org.postgresql.Driver.connect(Driver.java:286)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.aipisoft.cofac.Test.main(Test.java:87)
Caused by: java.io.EOFException
at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:284)
at
org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:386)
at
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:181)
... 11 more

He intentado buscar si alguien mas ha tenido esta misma excepción pero casi
siempre es algun problema de que no arranca el servidor, lo cual no es mi
caso por que esta aplicación llevaba más de 1 año funcionando y hoy
simplemente dejo de hacerlo. Sin embargo cuando me conecto a postgres
utilizando pgadmin o psql lo hace sin ningun problema. Habilité el debug5
para el servidor, y esto es lo que me arroja para cuando hago una conexión
desde psql y otra desde la clase de prueba java:

2016-12-18 16:35:32.150 CST DEBUG: forked new backend, pid=2692 socket=1328
2016-12-18 16:35:32.197 CST LOG: conexión recibida: host=127.0.0.1
port=50212
2016-12-18 16:35:32.290 CST DEBUG: postgres child[2692]: starting with (
2016-12-18 16:35:32.290 CST DEBUG: postgres
2016-12-18 16:35:32.290 CST DEBUG: )
2016-12-18 16:35:32.290 CST DEBUG: InitPostgres
2016-12-18 16:35:32.290 CST DEBUG: my backend ID is 1
2016-12-18 16:35:32.290 CST DEBUG: mapped win32 error code 2 to 2
2016-12-18 16:35:32.290 CST DEBUG: StartTransaction
2016-12-18 16:35:32.290 CST DEBUG: name: unnamed; blockState:
DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2016-12-18 16:35:32.399 CST DEBUG: shmem_exit(0): 7 callbacks to make
2016-12-18 16:35:32.399 CST DEBUG: proc_exit(0): 3 callbacks to make
2016-12-18 16:35:32.399 CST DEBUG: exit(0)
2016-12-18 16:35:32.399 CST DEBUG: shmem_exit(-1): 0 callbacks to make
2016-12-18 16:35:32.399 CST DEBUG: proc_exit(-1): 0 callbacks to make
2016-12-18 16:35:32.711 CST DEBUG: reaping dead processes
2016-12-18 16:35:32.711 CST DEBUG: proceso de servidor (PID 2692) terminó
con código de salida 0
2016-12-18 16:35:34.521 CST DEBUG: forked new backend, pid=6824 socket=1324
2016-12-18 16:35:34.568 CST LOG: conexión recibida: host=127.0.0.1
port=50213
2016-12-18 16:35:34.677 CST DEBUG: postgres child[6824]: starting with (
2016-12-18 16:35:34.677 CST DEBUG: postgres
2016-12-18 16:35:34.677 CST DEBUG: )
2016-12-18 16:35:34.677 CST DEBUG: InitPostgres
2016-12-18 16:35:34.677 CST DEBUG: my backend ID is 1
2016-12-18 16:35:34.677 CST DEBUG: mapped win32 error code 2 to 2
2016-12-18 16:35:34.677 CST DEBUG: StartTransaction
2016-12-18 16:35:34.677 CST DEBUG: name: unnamed; blockState:
DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2016-12-18 16:35:34.817 CST DEBUG: se recibió un paquete de clave
2016-12-18 16:35:34.817 CST LOG: conexión autorizada: usuario=postgres
database=postgres
2016-12-18 16:35:34.817 CST DEBUG: mapped win32 error code 2 to 2
2016-12-18 16:35:34.817 CST DEBUG: CommitTransaction
2016-12-18 16:35:34.817 CST DEBUG: name: unnamed; blockState:
STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2016-12-18 16:35:36.346 CST DEBUG: shmem_exit(0): 7 callbacks to make
2016-12-18 16:35:36.346 CST DEBUG: proc_exit(0): 4 callbacks to make
2016-12-18 16:35:36.346 CST LOG: desconexión: duración de sesión:
0:00:01.794 usuario=postgres base=postgres host=127.0.0.1 port=50213
2016-12-18 16:35:36.346 CST DEBUG: exit(0)
2016-12-18 16:35:36.346 CST DEBUG: shmem_exit(-1): 0 callbacks to make
2016-12-18 16:35:36.346 CST DEBUG: proc_exit(-1): 0 callbacks to make
2016-12-18 16:35:36.643 CST DEBUG: reaping dead processes
2016-12-18 16:35:36.643 CST DEBUG: proceso de servidor (PID 6824) terminó
con código de salida 0

Log cuando se intenta conectar desde java:
2016-12-18 16:35:36.643 CST DEBUG: proceso de servidor (PID 6824) terminó
con código de salida 0
2016-12-18 16:36:03.145 CST DEBUG: forked new backend, pid=4796 socket=1328
2016-12-18 16:36:03.161 CST LOG: conexión recibida: host=127.0.0.1
port=50214
2016-12-18 16:37:03.173 CST DEBUG: shmem_exit(1): 0 callbacks to make
2016-12-18 16:37:03.173 CST DEBUG: proc_exit(1): 1 callbacks to make
2016-12-18 16:37:03.173 CST DEBUG: exit(1)
2016-12-18 16:37:03.173 CST DEBUG: shmem_exit(-1): 0 callbacks to make
2016-12-18 16:37:03.173 CST DEBUG: proc_exit(-1): 0 callbacks to make
2016-12-18 16:37:03.641 CST DEBUG: reaping dead processes
2016-12-18 16:37:03.641 CST DEBUG: proceso de servidor (PID 4796) terminó
con código de salida 1

Como verán, postgres no arroja mucha información con la cual trabajar.
La clase de prueba se conecta correctamente a otros servidores postgres,
solamente en ese equipo no lo hace. Estaba manejando la version de postgres
9.3.8, tambien la actualizé a la mas reciente que es la 9.3.15 y el
problema no se corrigió. La salida que da postgres cuando la clase java se
conecta a un servidor que si funciona es:

DEBUG: forked new backend, pid=5176 socket=5124
LOG: conexi?n recibida: host=127.0.0.1 port=60656
DEBUG: postgres child[5176]: starting with (
DEBUG: postgres
DEBUG: )
DEBUG: InitPostgres
DEBUG: my backend ID is 1
DEBUG: StartTransaction
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
LOG: conexi?n autorizada: usuario=postgres database=postgres
DEBUG: CommitTransaction
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
DEBUG: parse <unnamed>: SET extra_float_digits = 3
DEBUG: StartTransactionCommand
DEBUG: StartTransaction
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
DEBUG: bind <unnamed> a <unnamed>
DEBUG: ProcessUtility
DEBUG: CommitTransactionCommand
DEBUG: CommitTransaction
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
DEBUG: parse <unnamed>: select count(*) from pg_attribute
DEBUG: StartTransactionCommand
DEBUG: StartTransaction
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
DEBUG: bind <unnamed> a <unnamed>
DEBUG: CommitTransactionCommand
DEBUG: CommitTransaction
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR,
xid/subid/cid: 0/1/0, nestlvl: 1, children:
DEBUG: shmem_exit(0): 7 callbacks to make
DEBUG: proc_exit(0): 4 callbacks to make
LOG: desconexión: duración de sesión: 0:00:19.346 usuario=postgres
base=postgres host=127.0.0.1 port=60656
DEBUG: exit(0)
DEBUG: shmem_exit(-1): 0 callbacks to make
DEBUG: proc_exit(-1): 0 callbacks to make
DEBUG: reaping dead processes
DEBUG: proceso de servidor (PID 5176) termin? con c?digo de salida 0

Cuando postgres realiza una conexión exitosa, inicia una transaccion
supongo que para validar la información, y en el caso de cuando la rechaza
no lo hace, pero no puedo ver cual es la información que postgres recibe.
Además ya consideré antivirus y firewalls, los cual estan desactivados.

¿Alguna idea de lo que pueda estar ocurriendo?

Saludos y gracias por su tiempo.

--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Lazaro Garcia 2016-12-19 22:45:19 Test a PostgreSQL con Sysbench
Previous Message Edwin Quijada 2016-12-16 19:01:49 Re: Conexion MS SQL Server a Postgresql