1. Aquitetura Corporativa Unicred
  2. PowerBuilder
  3. Monday, 26 February 2024 15:05 PM UTC

Hello all,

 

We are using Powerbuilder 2019 with SqlServer 2016 and we noticed that when connect to the database the application is always starting a new transaction (without any insert/delete or update)

if we execute the following select:

select open_transaction_count

from sys.dm_exec_sessions

 

it returns 1, which means there is a transaction open.

 

For us, when verifying opened transactions on the server might result on wrong number pending commits/rollbacks.

So, is this behavior correct?

 

Thanks and regards,

Aquitetura Corporativa Unicred Accepted Answer Pending Moderation
  1. Tuesday, 27 February 2024 22:48 PM UTC
  2. PowerBuilder
  3. # 1

Chris/John,

Thanks for the help.

best regards!

 

Régis

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 26 February 2024 21:07 PM UTC
  2. PowerBuilder
  3. # 2

Hi Aqutura;

  This is normal as PB (even since v1.0) has always automatically performed a "Begin Transaction" db command when your PB app issues a "Connect;" command.

  FYI: PB will also automatically perform an "End Transaction" plus a "Begin Transaction" db command sequence  when a PB app issues a "Commit" command. 

Regards ... Chris 

Comment
There are no comments made yet.
Aquitetura Corporativa Unicred Accepted Answer Pending Moderation
  1. Monday, 26 February 2024 18:02 PM UTC
  2. PowerBuilder
  3. # 3

HI John,

Yes, we use autocommit = False since is default and otherwise we couldnt issue a rollback the whole transaction in case of an error in some point.

 

But the problem seems to, while just connected if the dbas check for pending transaction (open_transaction_count > 0), will show all users connected using the PB app.

 

Funny thing is the connection estabilished by "Database Profile Setup" in PB IDE is set as 0 transaction.

 

Anyway, seems to be the correct powerbuilder application behavior then.

 

thanks!

Comment
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Monday, 26 February 2024 16:56 PM UTC
  2. PowerBuilder
  3. # 4

What is the value of your application's Transaction object's AutoCommit property (SQLCA.AutoCommit)?

I suspect it is set to False.

Check the PB Help sub-topic titled "Microsoft SQL Server" listed in the Index under the main topic named "AutoCommit (database)". Also look at the topic named "AutoCommit (database preference).

When SQLCA.AutoCommit = False, PB keeps a database transaction open in order that all database commands that may be issued are issued within the scope of a transaction.

Best regards, John

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.
We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies.