I have a batch file that calls two separate sql scripts as follows: ECHO ******| psql -h host_name -p 5432 db_name -f script1.sql user_name ECHO ******| psql -h host_name -p 5432 db_name -f script2.sql user_name EXIT script1.sql contains something like this: BEGIN; TRUNCATE TABLE table2; INSERT INTO table2 SELECT * FROM table1; END; script2.sql contains something like this: BEGIN; TRUNCATE TABLE table1; INSERT INTO table1 (field1) VALUES (1); INSERT INTO table1 (field1) VALUES (2); INSERT INTO table1 (field1) VALUES (3); END; BEGIN; INSERT INTO table1 (field1) VALUES (4); INSERT INTO table1 (field1) VALUES (5); INSERT INTO table1 (field1) VALUES (6); END; The problem is that this batch file seems to be generating two connections to the database and closing only one of them. This can be seen in the connection log: 2006-01-18 04:34:50 [unknown] LOG: connection received: host=client1 port=4982 2006-01-18 04:34:50 [unknown] LOG: connection received: host=client1 port=4983 2006-01-18 04:34:50 user_name LOG: connection authorized: user=user_name database=db_name 2006-01-18 04:34:51 user_name LOG: disconnection: session time: 0:00:00.21 user=user_name database=db_name host=client1 port=4983 So two connections are generated immediately on two different ports. Only the second connection on the second port gets closed. Eventually this generates too many connections and it kills my database. Do I need to explicitly close connections in the scripts somehow? I thought after the psql call and file execution connection would be automatically closed. Is there a way that I can see current connections to the database? I am running PostgreSQL 8.0.6 on Windows 2003.