End Queue

I have an application with the Windows C # 3.5 framework that works with Oracle DB located on the server.

One form of the application has eight tabs on top. Within the tab content area of ​​each tab is a combo box. The mapping displays the same information in each form. When the user changes the combobox value using the drop-down menu or keyboard arrow, then eight tabbed areas are populated with data pulled from Oracle.

Based on the structure of the existing program, each time the combo box changes, about 20 individual database connections are opened. First, about 8 is called to save data from different tabs to their correct table. The contents of each tab are passed to the DB class to save the data for that tab. Secondly, about 8 database calls are made to load tabs from tables based on a drop-down list.

To clarify, this would be like picking combobox on any tab that changes the model of the car. Each tab would be such as “interior options,” “engine options,” etc.

Then, several DB calls are made to lock the high-level record based on the identifier, so no one else can edit this particular record at the same time.

The process is generally quite robust. Save / load time is growing rapidly. I can switch between two combobox values ​​with almost instant data, saving / loading.

AFTER THE PROBLEM

If I quickly and quickly turn back (which was also done by several users), the whole program freezes. No glitches, just freezes.

Repeating this in a debug environment, I found that it always stops in one line of code (simple assignment of a set of records (for example, CarModelInterior.Notes = Convert.ToString (myReader [6]);)

Then I discovered that the garbage collector (GC) thread was running in the background, but stopped at the same place each time.

Enter the installation of the RED-Gate memory / performance monitors.

, combobox, GC Finalizer. , , SQL .

.

, , , - .

, , , ( ) "", . , ( , ), . , 20 -, combobox, . , , , .

? googling, . , ? ?

+3
1

OracleCommand , . DbCommand, Command, IDisposable. , System.Data.SqlClient.SqlCommand, , , , DbCommand . , , Finalize ( Oracle Client OracleCommand . ).

+1

All Articles