Running DDUPDATE to update datadictionary getting error message
DDPST10001 SQL REQUIRES LOGGING AND RECOVERY
This can happen running DDUPDATE with member SDCTRNS or when upgrading from release 12.0 to 14.0 in job BDUPG07 or to 15.0/15.1 in job BDUPG06.
For any table that has the SQL-INTENT = Y attribute defined, the LOGGING and RECOVERY attributes must also be Y.
To correct the table getting the error, run DDUPDATE with:
-UPD TABLE,table_name(PROD,DD,PRIV) 1500 LOGGING,Y 1500 RECOVERY,Y -END
There may be more tables that need to be corrected than the one that got the error.
To find out if other table entities have the same problem run the following DQL query via DQRY in CICS (or via DQBATCH ):
FIND ALL AGGREGATE WITH SQL-INTENT = 'Y' AND STATUS = 'P' AND (LOGGING = 'N' OR RECOVERY = 'N' ) PRINT ENTITY-NAME ENTITY-VER DATABASE-ID LOGGING RECOVERY
The ENTITY-NAME is the name of the table which needs to be changed .
Since for any table that has SQL-INTENT = Y the LOGGING and RECOVERY attributes must also be Y, the query can be modified to do a mass update:
UPDATE ALL AGGREGATE WITH SQL-INTENT = 'Y' AND STATUS = 'P' SET LOGGING = 'Y' SET RECOVERY = 'Y'
Run these two requests once for STATUS = 'P' and then also for STATUS = 'T'
CA Datadictionary tables can only be updated via Dataquery online and in DQL mode, not SQL and the proper security authorizations are needed in order to update the tables in database DATA-DICT, DBID 2.
If CA Dataquery is not available, the update needs to be performed for each table via DDUPDATE and the 1500 transactions mentioned above.
After this recatalog the user database structure so that the CXX is in sync with the table definition in Datadictionary.
Then rerun the job from the DDUPDATE step that was getting the error.