Bug 6502

DBTrace on MSSQL 29 April, 2021

Roland Plessing
29 April, 2021
Product: PowerBuilder Category: Other
Version: 2019 Build: 2328
Classification: Publishing: Public
Priority: P3
Status: Analyzing Reason:
Communication Status: Waiting for Customer
Chris Pollach @Appeon 29 April, 2021
#1
Hi Roland;

  I cannot say that I have seen that before. The DBTrace though is just capturing all the DBMS's DB Client activity as the PB DB Interface driver sees it. My only explanation is that the SS version you have is sending out the DBCancel command for some reason. I just did a DBTrace on my SS test system as follows ...

---------------------------------------------------------------
033E7F9C): FETCH NEXT:(DBI_FETCHNEXT) (0.108 MS / 7631.994 MS)
(033E7F9C): 	COLUMN=2	COLUMN=Fred	COLUMN=National Preserve NPS	COLUMN=NULL	COLUMN=Appeon PowerServer Mobile - Develop native mobile applications with PowerBuilder that runs on iOS (iPad and iPhone) and Android (tablets and phones) with support for the mobile device APIs and Apache Cordova plugins.[22]  Appeon PowerServer Web - Deploys existing or new PowerBuilder projects as Web applications that runs natively on either .NET or Java servers with support for most PowerBuilder features.[23]  Visual Expert for PowerBuilder - Visual Expert helps in sharing the knowledge of your applications. It also automates impact analysis and checks code quality.[24] Enable Multilingual - Enable makes PowerBuilder applications multilingual quickly and easily. Using Enable, developers can only need to make a few small changes to the original PowerBuilder code to go from monolingual to multilingual.[25]  ProDiff for PowerBuilder - ProDiff is designed to highlight the differences between versions of PowerBuilder development source code.[26]  Visual Guard for PowerBuilder - Visual Guard is an access control an
(033E7F9C): FETCH NEXT:(DBI_FETCHNEXT) (0.103 MS / 7632.097 MS)
(033E7F9C): *** DBI_FETCHEND *** (rc 100)
(033E7F9C): BEGIN TRANSACTION:(DBI_START_TRAN) (9.429 MS / 7641.526 MS)
(033E7F9C): (DBI_DATETIME_INVALID_IN_SEARCH) (0.001 MS / 7641.527 MS)
(033E7F9C): (DBI_SPECIAL_DECIMAL) (0.000 MS / 7641.527 MS)
(033E7F9C): (DBI_SUPPORT_REUSABLE_INPUT_PARM_BIND) (0.001 MS / 7641.528 MS)
(033E7F9C): PREPARE:
(033E7F9C): INSERT INTO Chris ( id, Name, Description, Notes, big_text ) VALUES ( 3, 'Sam', 'Test Data #3', 'Notes #2', 'application-level permissions tool. It helps you centralize view and control of users and their rights in PowerBuilder applications.[27]  STD Framework for PowerBuilder - A Free object oriented development framework for PowerBuilder Classic, Web Services, Appeon PowerServer Web and Mobile.[28]    Ultimate Suite for PB - A suite of controls, written in PowerScript, that modernizes the GUI of PowerBuilder applications; Ultimate Suite for PB gives applications a contemporary look and makes them more user-friendly.[29]     AscentialTest - Automated testing for PowerBuilder, web, and others. Deep integration with the PowerBuilder VM api''s allow AT to see and understand PB objects.     PowerGen - Automated build and regeneration of PowerBuilder applications. Supports building directly from Source Control.[30] References' )(DBI_PREPARE) (152.567 MS / 7794.095 MS)
(033E7F9C): EXECUTE:(DBI_DW_EXECUTE) (0.002 MS / 7794.097 MS)
(033E7F9C): COMMIT:(DBI_COMMIT) (28.207 MS / 7822.304 MS)
(033E7F9C): DISCONNECT:(DBI_DISCONNECT) (0.096 MS / 7822.400 MS)
(033E7F9C): SHUTDOWN DATABASE INTERFACE:(DBI_SHUTDOWN_INTERFACE) (0.001 MS / 7822.401 MS)
-------------------------------------------------------------

   As you can see from my test above, there are no DBCancel commands issued in my SS trace and the expected COMMIT command is seen after a successful Update / Insert command is processed.

   AFAIK, the DBCancel could be a side effect of using the SetTrans() command vs the SetTransObject() command. In the case of the SetTrans() command, the use would be to start a SS session and the KILL it after any DML activity. So the KILL might be the DBCancel ( my guess at the moment ). My Apps only use the SetTransObject() command. ** Could this be your App's issue **

   Also, my SS testing is being done against SS2019 but, still using the SNC DB Client driver.

Regards ... Chris
Roland Plessing 29 April, 2021
*Phenomenon:

Inserts not in Database after COMMIT .... Check with DBTrace shows a Command 
(03DEEC10): CANCEL: (0.019 MS / 734.417 MS)

What is CANCEL???

*Reproduce Steps:


Remarks:

(03DEEC10): EXECUTE:
(03DEEC10): update pes_menu_2019 set mn_active = mn_active * -1 where mn_active < 0 (250.044 MS / 734.398 MS)
(03DEEC10): GET AFFECTED ROWS: (0.000 MS / 734.398 MS)
(03DEEC10): ^ 93 Rows Affected 
(03DEEC10): CANCEL: (0.019 MS / 734.417 MS)
(03DEEC10): EXECUTE:
(03DEEC10): update pes_menu_2019 set mn_active=0 where id=701 and ((lfdnr between 530 and 539) or (lfdnr between 630 and 639) or (lfdnr between 730 and 739)) (179.429 MS / 913.846 MS)
(03DEEC10): GET AFFECTED ROWS: (0.000 MS / 913.846 MS)
(03DEEC10): ^ 30 Rows Affected 
(03DEEC10): CANCEL: (0.017 MS / 913.863 MS)
(03DEEC10): EXECUTE:
(03DEEC10): update pes_menu_2019 set mn_active=1, mn_text2='Artikelgruppe', mn_tip='Artikelgruppe erfassen' where id=701 and lfdnr=630 (2.226 MS / 916.089 MS)
(03DEEC10): GET AFFECTED ROWS: (0.000 MS / 916.089 MS)
(03DEEC10): ^ 1 Rows Affected 
(03DEEC10): CANCEL: (0.008 MS / 916.097 MS)
(03DEEC10): EXECUTE:
(03DEEC10): update pes_menu_2019 set mn_active=1, mn_text2='Artikelgruppe', mn_tip='Artikelgruppe pflegen' where id=701 and lfdnr=530 (0.701 MS / 916.798 MS)
(03DEEC10): GET AFFECTED ROWS: (0.000 MS / 916.798 MS)
(03DEEC10): ^ 1 Rows Affected 
(03DEEC10): CANCEL: (0.006 MS / 916.804 MS)
OS:
Windows 10
Platform:
32-bit
Database Type:
Microsoft SQL Server
Database Version:
2011