Hello,
I have searched the forums for topics related to the OQL query parameter "Ignore Uncommitted", unfortunately to no avail. Here is my scenario:
In two recent projects I make rather extensive use of "iquery.IgnoreUncommitted = False". Rather late in the process I realized that both applications scale rather badly (frequent "lock request time out" exceptions in spite of using "Optimistic Concurrency Control"). A more thorough dive in the OpenAccess documentation revealed the negative side-effect of "IgnoreUncommitted = False": the loss of the loose coupling between database and objectscope. Before beginning redesigning these rather complex (released) applications to work without "IgnoreUncommitted = False" I'd like to ask if there are other methods to improve scalability without sacrificing the benefits of "IgnoreUncommitted = False".
Thanks in advance,
Martin Gschleiner
EVN, Austria
Below a typical example for object retrieval:
public static List<SubsidaryCompany> GetAllSubsidaryCompaniesList(IObjectScope objectscope) |
{ |
const string query = "Select * from SubsidaryCompanyExtent as s order by s._subsidaryCompanyId"; |
IQuery iquery = objectscope.GetOqlQuery(query); |
iquery.IgnoreUncommitted = false; |
IQueryResult result = iquery.Execute(); |
List<SubsidaryCompany> m = new List<SubsidaryCompany>(); |
foreach (SubsidaryCompany med in result) |
m.Add(med); |
result.Dispose(); |
return m; |
} |