Enterprise Manager log reporting "ORA-02291: integrity constraint (APMDB.APPMAP_TRANSACTIONS_FK3) violated - parent key not found" errors after running configimport

book

Article ID: 36091

calendar_today

Updated On:

Products

APP PERF MANAGEMENT CA Application Performance Management Agent (APM / Wily / Introscope) CUSTOMER EXPERIENCE MANAGER INTROSCOPE

Issue/Introduction

Issue: 

After importing an exported APM database configuration into a new schema using the configimport script the following errors are observed in the Enterprise Manger log file:

1/11/16 10:01:40.083 AM CET [ERROR] [Thread-ModelSynchronization] [Manager.AppMap] Unable to complete model synchronization with storage!
org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO appmap_edges(source_id, target_id, transaction_id, start_time, end_time) VALUES (?, ?, ?, ?, ?)]; ORA-02291: integrity constraint (APMDB.APPMAP_TRANSACTIONS_FK3) violated - parent key not found ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (APMDB.APPMAP_TRANSACTIONS_FK3) violated - parent key not found

 

Environment:  

This problem occurs when using APM 10.1 configimport script against an Oracle APM Database on either Windows or Linux

 

Cause: 

The configimport script does not insert the required rows in tables APPMAP_ID_MAPPINGS and APPMAP_VERTICES when initialising the tables.

 

Workaround:

1.    Using SQLPlus or similar tool logon to the Oracle system as the schema owner

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

2. Verify that both tables are empty using the following SQL

SQL> SELECT * FROM APPMAP_ID_MAPPINGS;

no rows selected

SQL> SELECT * FROM APPMAP_VERTICES;

no rows selected.

 

3. Create the missing rows using the following SQL and commit the change

SQL> INSERT INTO appmap_id_mappings (vertex_id, external_id, type)

SELECT 0, 'CA_APM_INTERNAL', 'V' FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM appmap_id_mappings WHERE vertex_id = 0) ;

1 row created.

SQL> INSERT INTO appmap_vertices (vertex_id, start_time, end_time, business_service)

SELECT 0, TIMESTAMP '1979-1-1 0:0:0', TIMESTAMP '1979-1-1 0:0:0', 'CA_APM_INTERNAL' FROM DUAL WHERE NOT EXISTS(SELECT 1 FROM appmap_vertices WHERE vertex_id = 0);

1 row created.

SQL> COMMIT;

Commit complete.

The error messages will now stop.

 

Additional Information:

This has been raised as a bug with engineering to be addressed in a future release.

 

Environment

Release: CEMUGD00200-10.1-Introscope to CA Application-Performance Management-Upgrade Mai
Component: