closing connection while cancelling - Mailing list pgsql-interfaces

From Chitta Barik
Subject closing connection while cancelling
Date
Msg-id AB209393C95AD411961600D0B7819F6C03D02CE1@gbexc.genband.com
Whole thread Raw
List pgsql-interfaces
hi all,

I am first time using PostgreSQL with Java and having some problem while
cancelling the executing query.

I am using JDBC Driver 7.0-1.2 . And i am accessing database from a GUI [
Swing based application ]. The problem is

" When an end user executes a query i am showing a wait dialog till the
query returns results. If the user clicks on "Cancel" in between then I am
getting following exception after that connection dies to the database. I
don't have any other option than closing the application and restarting it
again "

Here is the exception.
"The backend has broken the connection. Possibly the action you have
attempted has caused it to close.at org.postgresql.PG_Stream.ReceiveChar(PG_Stream.java:178)at
org.postgresql.Connection.ExecSQL(Connection.java:340)atorg.postgresql.jdbc2.Statement.execute(Statement.java:273)at
org.postgresql.jdbc2.Statement.executeQuery(Statement.java:54)...........
"

I have some debugging statement which prints the connection object itself.
But the object is not null that means the connection has not broken but i
could see the above exception. 


Hope you understood my problem. and reply at the earliest will be
appreciated.

Environment :-

GUI                 :- Swing Based Application
OS                  :- Solaris
JDBC Driver version     :- 7.0-1.2

Below you can have a look at my client code. If you want i can send my
ConnectionManager code too.
// This is the starting point for where execution starts
// Query -> SQL Queryprivate void executeQuery(String query){     ExecuteThread execThread = new ExecuteThread(query);
  try{         execThread.start();    // This shows a wait dialog         VmGuiWaitDialog dialog = new
VmGuiWaitDialog("Executingquery
 
......???", new JFrame(),true);         dialog.show();    // checks if cancel clicked or by any chance Thread
interrupted.         if(dialog.isInterrupted() || execThread.isInterrupted()){              execThread.interrupt();
    }     }catch(Exception e){     } }
 

   class ExecuteThread extends Thread{       String query = null;       public ExecuteThread(String query){
this.query= query;       }       public void run(){           try{        // This is the class from where user gets a
Connection
to the database.               VmGuiCtQueryResults resultObj =
VmGuiCtQueryResults.getInstance();
        // This method executes the query using Statement object               Vector result =
resultObj.getQueryResultsList(query);              if(result != null && result.size() > 0){               }else {
           dialog.setVisible(false);                   VmGuiInfoDialog dlg = new
 
VmGuiInfoDialog(NO_RESULTS_FOUND,new JFrame());                   dlg.show();               }
}catch(Exceptione){           }       }   }
 



thanks,
-chitta barik





pgsql-interfaces by date:

Previous
From: lee
Date:
Subject: thanksgiving prayer
Next
From: "Darko Prenosil"
Date:
Subject: TTY debug