TIGAPIAB: FATAL ERROR DETECTED IN PROGRAM: TIGWOTSK

In the Asset Suite tiglstn log:

01/27/2010 13:59:27.705238, IFBOWS, Begin PA04, pid 150001
TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 START-TIME: 01/27/2010 13:59:27.90
TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 EXT-REQUEST-ID:

TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 REQUEST-SEGMENTS: 000003
TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 BUSINESS-OBJECT: WorkOrder
TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 BUS-OBJECT-METHOD: Update
TIGAPIBW: INT-REQUEST-ID: 20100127135927636-569937953 EXT-SYSTEM-ID:
TIGAPIBW: INT-REQUEST-ID: 201001271359271682008439883 REPLY-SEGMENTS: 000002
TIGAPIBW: INT-REQUEST-ID: 201001271359271682008439883 MESSAGES: Y
TIGAPIBW: INT-REQUEST-ID: 201001271359271682008439883 RETURN-CODE: 0000
TIGAPIBW: INT-REQUEST-ID: 201001271359271682008439883 END-TIME: 01/27/2010 13:59:29.45
01/27/2010 13:59:29.615342, IFBOWS, End PA04 Txntime 2.379796 sec, pid 149801
TIGAPIAB: FATAL ERROR DETECTED IN PROGRAM: TIGWOTSK, PARAGRAPH: ????- , RETURN CODE: 8010

TIGAPIAB: LINK STACK: TIGSERV TIGAPIBW AFGWORDR AFGWOUPD TIGCURS TIGWOTSK

TIGAPIAB: WHERE CLAUSE DOES NOT MATCH ANY EXISTING ROW

TIGAPIAB: PROBABLE SECURITY VIOLATION ON TIMESTAMP

TIGAPIAB: 4005-GET-COMPLEX-CODES.

TIGAPIAB: INT-REQUEST-ID: 20100127135927636-569937953 REPLY-SEGMENTS: 000000
TIGAPIAB: INT-REQUEST-ID: 20100127135927636-569937953 MESSAGES: Y
TIGAPIAB: INT-REQUEST-ID: 20100127135927636-569937953 RETURN-CODE: 8010
TIGAPIAB: INT-REQUEST-ID: 20100127135927636-569937953 END-TIME: 01/27/2010 13:59:29.65
01/27/2010 13:59:29.806681, IFBOWS, End PA04 Txntime 2.101443 sec, pid 150001

Each process reads the timestamp of the data in the table row and then updates the row with the update SQL having a WHERE clause of timestamp=(previously read timestamp). If another process has updated the timestamp in the meanwhile, the application abends with a database rollback. It's crude, but maintains data integrity. Gracefully handling the concurrent update is not even attempted because it would be necessary to track the before data throughout everything that has been updated (a WO can have hundreds of fields in several tables) so the application depends on the database tracking all changes and having the ability to roll them back. Asset Suite accomplishes this by using the idea of a Trans ID (from IBM CICS). All data updates performed by programs under a Trans ID are committed or rolled back when the Trans ID completes. Other enterprise applications like PeopleSoft have the same idea.