Improvements to Network Client driver - analyze/improve use of java collection 
classes in the code
--------------------------------------------------------------------------------------------------

         Key: DERBY-817
         URL: http://issues.apache.org/jira/browse/DERBY-817
     Project: Derby
        Type: Improvement
  Components: Network Client  
    Versions: 10.1.1.0, 10.1.2.0, 10.2.0.0    
    Reporter: Deepa Remesh
    Priority: Minor


When working on DERBY-210, following came up as cases for possible 
improvements/optimizations:

* Bryan pointed out that synchronization is missing when accessing 
openStatements_ and CommitAndRollbackListeners_ , which are members of 
org.apache.derby.client.am.Connection class.

* Bryan suggested adding convenience methods to access these lists.

* Do we need to add Lobs to CommitAndRollbackListeners_? In case of Lobs, I 
cannot see anything else being done with it other than adding and removing from 
this list. Is there any other purpose for adding Lobs to this list? 

* Do we need to add PreparedStatements to CommitAndRollbackListeners_? A 
comment in the code mentions they are added to the list because prepared 
statements need to be re-prepared after commit/rollback. As I understand, this 
is not required. Also, in the code, only internal statements like statements 
used for auto-generated keys etc are being re-prepared. Maybe, this can be 
avoided. 

* Do we need to add all result sets to the HashTable 
'positionedUpdateCursorNameToResultSet_' in SectionManager? All ResultSets get 
added to this Hashtable though only ResultSets from positioned update 
statements are retrieved and used from this table. There seems to be some extra 
work going on in client driver in just adding and removing "all" result sets to 
this hashtable. I think this can be avoided. Can we avoid adding result sets 
from positioned update statements to this hashtable? Some analysis can be done 
to see if this hashtable itself can be removed. 

The items listed above are independent and sub-tasks may be opened to work on 
them individually. Some of them are questions and depending on findings, they 
may not need further work. 

These issues were discussed in the following threads:
http://www.nabble.com/-jira-Updated%3A-%28DERBY-210%29-Network-Server-will-leak-prepared-statements-if-not-explicitly-closed-by-the-user-until-the-connection-is-closed-t914229.html#a2371474
http://www.nabble.com/-jira-Commented%3A-%28DERBY-210%29-Network-Server-will-leak-prepared-statements-if-not-explicitly-closed-by-the-user-until-the-connection-is-closed-t915113.html#a2373800

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to