Page 1 of 1

Version 4.55.44 not backward compatible

Posted: Mon 28 Sep 2009 12:01
by Zoran
After installing 4.55.44, my production application crashed. After reinstalling 4.55.39, the problem disappeared.

Here is the code that works with .39 (okSQL == true and okLINQ == true) and doesn't with .44 (okSQL == true but okLINQ == false). Here we use our framework but I think the code is understandable.

cn.executeNonQuery("INSERT INTO APFOB(Fob) VALUES ('Z')");

bool okSQL = false;
cn.CommandTextClearParameters = "SELECT * FROM APFOB WHERE Fob='Z'";
if (cn.readAndReturnSet().Count == 1)
okSQL = true;

bool okLINQ = false;
var cnt = (from q in new DevartDataContext(ctx).GetTable()
where q.Key == "Z"
select q).Count();
if (cnt == 1) okLINQ = true;

It seems that LINQ data context uses a new connection so it doesn't see the changes that happen in current transaction. I reported a similar problem before and it was solved.

Posted: Tue 29 Sep 2009 10:41
by AndreyR
This behaviour was changed beacuse it was causing some problems on large amounts of data.
We plan to add a parameter to allow the previous kind of behaviour.

Posted: Wed 30 Sep 2009 23:58
by Zoran
I am always afraid to install a new version because of such problems. This change caused data loss in our production database and interrupted operation for hours.

Posted: Tue 06 Oct 2009 13:23
by AndreyR
We have added the new DataContext.MaxUsedConnections property.
When set to 1, it provides the previous functionality.
Also, the new LINQ to Oracle-specific "maximum used connections" connection string parameter
will be available in the upcoming build of dotConnects.