Thread: jdbc connection
Please can you help me
I try to connect a java application from a windows W2K to a Linux postgresql with a very simple query, which is "select * from table".
The error message is "connection is closed, operation is not permitted"
here is the class definition
import java.sql.*;
public class JdbcQuery {
private Connection con = null;
public int recordnb = 0;
private Statement stmt = null;
private ResultSet result = null;
private Connection con = null;
public int recordnb = 0;
private Statement stmt = null;
private ResultSet result = null;
private String driver = "org.postgresql.Driver";
private String url = "jdbc:postgresql://COMPUTERNAME:5432/DATABASE";
private String username = "michels";
private String password = "";
private String url = "jdbc:postgresql://COMPUTERNAME:5432/DATABASE";
private String username = "michels";
private String password = "";
boolean ConnectPostgresql(String Valquery) {
try // Attempt to load the JDBC driver
{
Class.forName(driver);
}
catch( Exception e ) // error
{
JOptionPane.showMessageDialog(null, "Failed to load the following JDBC driver : " + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
try
{
con = DriverManager.getConnection ( url, username, password);
stmt = con.createStatement();
}
catch ( Exception e)
{
JOptionPane.showMessageDialog(null, "Problems connecting to " + url + ":" + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
if( con != null)
{
try { con.close(); }
catch( Exception e2 ) {}
}
try
{
result = stmt.executeQuery(Valquery); IT's HERE THAT I GET THE PROBLEM !!!!!!!
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Problems with resultset : " + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
return true;
}
try // Attempt to load the JDBC driver
{
Class.forName(driver);
}
catch( Exception e ) // error
{
JOptionPane.showMessageDialog(null, "Failed to load the following JDBC driver : " + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
try
{
con = DriverManager.getConnection ( url, username, password);
stmt = con.createStatement();
}
catch ( Exception e)
{
JOptionPane.showMessageDialog(null, "Problems connecting to " + url + ":" + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
if( con != null)
{
try { con.close(); }
catch( Exception e2 ) {}
}
try
{
result = stmt.executeQuery(Valquery); IT's HERE THAT I GET THE PROBLEM !!!!!!!
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "Problems with resultset : " + e.getMessage(), "Error ! ", JOptionPane.PLAIN_MESSAGE);
return false;
}
return true;
}
int GetRecordnb()
{
try
{
result.last();
recordnb = result.getRow();
result.beforeFirst();
{
try
{
result.last();
recordnb = result.getRow();
result.beforeFirst();
} // end try
catch ( Exception e)
{
System.err.println( "problems in GetRecordnb managing resultset" );
System.err.println( e.getMessage() );
if( con != null)
{
try { con.close(); }
catch( Exception e2 ) {}
}
} // end catch
return recordnb;
}
catch ( Exception e)
{
System.err.println( "problems in GetRecordnb managing resultset" );
System.err.println( e.getMessage() );
if( con != null)
{
try { con.close(); }
catch( Exception e2 ) {}
}
} // end catch
return recordnb;
}
// alternative (donne le même résultat que la manière précédente)
// System.out.println(result.getFetchSize());
ResultSet GetRecordData()
{
return result;
}
{
return result;
}
void CloseConnection()
{
try { stmt.close(); }
catch( Exception e ) {}
try { con.close(); }
catch( Exception e ) {}
}
{
try { stmt.close(); }
catch( Exception e ) {}
try { con.close(); }
catch( Exception e ) {}
}
} // end class
If I try the same query from the Cygwin psql it works !!
Does somebody have an idea ?
Thanks
Just a real quick look, but it seems to me that you're closing your connection before you use it....
if( con != null)
{
try { con.close(); } You're closing it here
catch( Exception e2 ) {}
}
try
{
result = stmt.executeQuery(Valquery); IT's HERE THAT I GET THE PROBLEM !!!!!!!
}
{
try { con.close(); } You're closing it here
catch( Exception e2 ) {}
}
try
{
result = stmt.executeQuery(Valquery); IT's HERE THAT I GET THE PROBLEM !!!!!!!
}
El dom, 19-01-2003 a las 20:46, michel verplancke escribió: > > The error message is "connection is closed, operation is not > permitted" > Most linux distributions ship PostgreSQL with remote access disabled. Some even disable TCP/IP communication with the server. This is documented on the postgreSQL documentation. Check your /etc/postgresql/postgresql.conf (see if TCP/IP is enabled) and /etc/postgresql/pg_hba.conf to see if access from your host is allowed. -- Abel Muiño Vizcaino