Version 4.55.44 not backward compatible

Version 4.55.44 not backward compatible

Postby Zoran » Mon 28 Sep 2009 12:01

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.
Zoran
 
Posts: 44
Joined: Thu 28 Apr 2005 21:55
Location: Zagreb, Croatia

Postby AndreyR » Tue 29 Sep 2009 10:41

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.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Postby Zoran » Wed 30 Sep 2009 23:58

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.
Zoran
 
Posts: 44
Joined: Thu 28 Apr 2005 21:55
Location: Zagreb, Croatia

Postby AndreyR » Tue 06 Oct 2009 13:23

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.
AndreyR
Devart Team
 
Posts: 2919
Joined: Mon 07 Jul 2008 13:16


Return to dotConnect for PostgreSQL