Having BadTableMappingException after updating to 7.2.2
Hi all
My company has just updated the PRPC from 7.1.7 to 7.2.2.
After that, we are facing an issue in which an agent is not able to insert a record in database due to a BadTableMappingException
I will paste the logs below.
Any thoughts?
Thanks!
Hi all
My company has just updated the PRPC from 7.1.7 to 7.2.2.
After that, we are facing an issue in which an agent is not able to insert a record in database due to a BadTableMappingException
I will paste the logs below.
Any thoughts?
Thanks!
2017-06-09 15:21:25,880 [fault (self-tuning)'] [ STANDARD] [ ] [ GCCFW:01.01.03] (aveAndCommit._baseclass.Action) ERROR JMS|MQEventPkg|Event|ProcessEventAMER|A732B6EB866C05A8922CFFB0DFC8BBCE5 - Error in commit()
com.pega.pegarules.pub.database.BadTableMappingException: Database-BadTableMapping-UnsupportedColumnType MessageTimeStamp pegadata DATA.EVENT_STG JDBC Type 1111 DATA TIMESTAMP(3)
From: (A732B6EB866C05A8922CFFB0DFC8BBCE5:MQEventPkg)
at com.pega.pegarules.pub.database.BadTableMappingException.createBadColumnTypeException(BadTableMappingException.java:204)
at com.pega.pegarules.data.internal.access.PageDatabaseMapperImpl.setStmtInsert(PageDatabaseMapperImpl.java:2123)
at com.pega.pegarules.data.internal.access.PageDatabaseMapperImpl.fillInStatementFromPageWithStream(PageDatabaseMapperImpl.java:1383)
at com.pega.pegarules.data.internal.access.Saver.getStatementWithPrepValues(Saver.java:1608)
at com.pega.pegarules.data.internal.access.Saver.addBatch(Saver.java:993)
at com.pega.pegarules.data.internal.access.Saver.saveInstance(Saver.java:859)
at com.pega.pegarules.data.internal.access.Saver.saveInstance(Saver.java:803)
at com.pega.pegarules.data.internal.access.UpdateProcessor.performOps(UpdateProcessor.java:1391)
at com.pega.pegarules.data.internal.access.UpdateProcessor.action(UpdateProcessor.java:245)
at com.pega.pegarules.data.internal.access.UpdateProcessor.action(UpdateProcessor.java:82)
at com.pega.pegarules.data.internal.store.DataStoreManager.doInTransaction(DataStoreManager.java:235)
at com.pega.pegarules.data.internal.access.UpdateProcessor.processUpdates(UpdateProcessor.java:178)
at com.pega.pegarules.data.internal.access.DatabaseImpl.commit(DatabaseImpl.java:2066)
at com.pegarules.generated.activity.ra_action_saveandcommit_e53c4c5122b5da246614e2d7d588f57d.step2_circum0(ra_action_saveandcommit_e53c4c5122b5da246614e2d7d588f57d.java:301)
at com.pegarules.generated.activity.ra_action_saveandcommit_e53c4c5122b5da246614e2d7d588f57d.perform(ra_action_saveandcommit_e53c4c5122b5da246614e2d7d588f57d.java:87)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3553)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10711)
at com.pegarules.generated.activity.ra_action_processdeltadatamessage_68d8537f4c89d6c2da941fb2120e1ffd.step17_circum0(ra_action_processdeltadatamessage_68d8537f4c89d6c2da941fb2120e1ffd.java:1690)
at com.pegarules.generated.activity.ra_action_processappdatamessage_68d8537f4c89d6c2da941fb2120e1ffd.perform(ra_action_processappdatamessage_6
The issue was related with data type TIMESTAMP in Oracle.
Apparently, the previous version of PEGA was compatible with TIMESTAMP (3). But the current, was not.
Solution was to alter the column to TIMESTAMP(6), which I did like:
ALTER TABLE table_name MODIFY column_name TIMESTAMP
(yes, the default timestamp is '6', don't know why my table had '3' before)
Thanks!