To prevent excessive Bonsai Tree growth, make sure that every database connection commits every transaction. Even read-only transactions and transactions that contain only SELECT statements must be committed explicitly. (In autocommit mode, solidDB® ODBC Driver version 3.50 and solidDB® JDBC Driver version 2.0 perform an implicit commit after the last open cursor has been closed or dropped. In previous versions, the implicit commit is not available.)
Even in autocommit mode, SELECT statements are not automatically committed after the data is read. solidDB® cannot immediately commit SELECTs since the rows need to be retrieved by the client application first. Even in autocommit mode, you must either explicitly commit work, or you must explicitly close the cursor for the SELECT statement. Otherwise, the SELECT transaction is left open until the connect timeout expires.
In order to ensure that every transaction is committed, you can:
▪Determine what connections currently exist
▪Determine when the connections have a committed transaction
▪In the application code, ensure that every database operation gets committed
▪Check for commit problems when using solidDB® APIs
Each of these topics is described in the following sections.