Subject Transaction handling changes (2360 to 2411)

I just updated a project to build 2411. One thing broke and i'll try to describe it here.

I'm doing the following; in a TIB_Query's OnPrepareSQL i execute a TIB_DSQL repeatedly. This stored proc inserts a reference into a GTT that has the type DELETE ROWS.

After some more processing and extensive use of SQLWehereItems the query is opened. There are (exists ( ... )) in the where clause then JOINs on the GTT. I'm doing it this way because of several factors, primarily performance, but also a very detailed requirement of these joins.

After going from 2360 to 2411 whenever the GTT is used i do not get the expected result anymore. It seems the TIB_Transaction (carefully guaranteed to be shared amongst all components in this routine) is committed server side*.

To confirm that i am not 100% confused (because putting a breakpoint on a BeforeCommit does not reveal erroneous commit behaviour) i replaced the TIB_Statement.SysPrepare function in IB_Components with the exact code from 2360 and the behaviour is back to the expected.

These are server services so putting a TIB_Monitor on the thing is not trivial.

Any insights are welcome,


* It is the idea that the GTT should empty when the transaction is committed or rolled back.