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.