Monday, June 30, 2008

Application Engine Aborts if it has state record that is not present in the Database.

If you have a application engine program that has define a state record and it is not defined in the App designer it causes core dump when trying to run the program. This can happen if you have migrated a app engine program from DEV to other environment and forgot to add the state record to project. Here is a query that can identify all such app engine programs.

 

select * from PSAEAPPLSTATE a where  not exists (select 'x' from psrecdefn b where a.AE_STATE_RECNAME = b.recname).

This was observed in PT 8.48.16 and running the App engine program using command line on HP*UX 11.11 server. Database: Oracle 9.2.0.8 64 bit on HP*UX.

Here is the actual error message.

Executing PS Application Engine XXXX program which will use run control XXXX
aCC runtime: pure virtual function called for class "IPSRecBuf".
24493: 1214837730: PSPAL::Abort: Unrecoverable signal received
24493: 1214837730: PSPAL::Abort: Location: /vob/peopletools/src/pspal/exception_sigaction.cpp:553: UnrecoverableSignalHandler
24493: 1214837730: PSPAL::Abort: Generating process state report to /xxxx/xxxx/xxxx/LOGS/psae.24493/process_state.txt
24493: 1214837730: PSPAL::Abort: Terminating process now.
./xxxx.sh[67]: 24493 Abort(coredump)

 

Keyword: IPSRecBuf