Joined: 06 Sep 2007 Posts: 792 Location: Chennai, India
From QW..,
DSNU180I csect-name UTILITY IS NOT COMPATIBLE WITH THE utility-name UTILITY UTILID = uid OBJECT = spacename.object-name
Explanation: Certain utilities cannot process the same table or index space at the same time. The message identifies the objects for which the
incompatibility occurred.
These objects, or their related log entries, might be target objects of
the utilities, a mapping table, or they might be catalog or directory
table spaces that are updated by the utilities. For example,
DSNDB06.SYSCOPY is updated by LOAD.
Severity: 8 (error)
System Action: The starting utility is not initiated, and further utility
processing in that utility job step is terminated.
User Response: Use -DISPLAY UTILITY with the provided 'uid' to determine when the utility that caused your utility to be rejected is completed.
Refer to DB2 Performance Monitoring and Tuning Guide for a discussion of which utilities are mutually compatible.
To avoid this error when running concurrent REBUILD INDEX with SHRLEVEL CHANGE, specify multiple indexes on a single utility execution instead of invoking multiple utilities.
Hi,
Thanks for the info.
The last two days I have been researching on this and all that I could understand is, if my job returns a maxcc 8 due to this incompatible UTILID all that I need to do is terminate the stopped utilid and then resubmit the job.Yes,this time the job ran successfully. But the problem is I have this error happenning in an automated load process.I have around 20 load jobs each having about 75 steps each referring to one table running at a time and if this error occurs I dont have all the tables loaded and I cant keep rerunning the jobs individually after terminating the stopped utilids.
So can someone tell me how we can avoid this incompatible utilid issue.I am using the following step in my load job for this but still this error is persistent in some of the steps
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
Hello,
You may have a "scheduling" problem. Currently, processes that cannot run at the same time are running at the same time. You need to change the way these processes execute so that there are no conflicts.
One thought might be to use the system scheduling software and define jobs that cannot execute concurrently as a predecessor/successor combination and they will be scheduled to run serially.
One load job ran and failed. As you know all utility job associated with one "util-id". This job never resarted or get purged by the user without terminating the "utility-id".
The availability of the table/tablesapce depends on the phase of the load utility, when it failed. Assume the abend didn't change the status of the tablespace. So the application can access the data but the incompatible utilities cannot run on the table.
The clean up jcl looks fine. But how will you clean an util-id without knowing its name.
Loading of the table can be controlled by granting LOAD privilege to selected users on database level so that it will be easier to detect contentention. Once contention detected you can do scheduling change as suggested by Dick.
As suggested by Dick I did a regrouping of all the tables with respect to their tablespace.As in, I now have all the tables belonging to one tablespace coming in a sequence followed by the tables in next tablespace.I have the utilid names as the tablespace name itself so that I can now have one utilid for one tablespace.I have also taken care not to submit jobs pertaining to same utilid parallely.So I dont have issues like duplicate utilid or mismatch of utilids now.The following are the steps that I have for loading a table:
Above jcl will work fine for LOAD REPLACE jobs provided you tablesapce is not having any index. Otherwise you have to FORCE start associated indices as well.
For LOAD RESUME jobs, I would suggest to add one FORCED abend step after load step so that the job will abend if the RC > 04 for the load step.
This can be corrected and the utility can be restarted in proper phase.
It is not a very good idea to terminate the utility id and froce start the tablespace for LOAD RESUME jobs. This may leads to data inconsistency and index corruption.
Joined: 28 Jun 2007 Posts: 11 Location: Los Angeles
Hi,
I just got this same problem but I'm not sure what to do, my first question how will I terminate my "UTILID" any command or jcl? I tried to cancel my job and resubmit my job as a new job but still the same problem occurs still SRMRL.SZ0$LOD6 appears as my UTILID.
DSNU180I : DSNUGUCC - UTILITY IS NOT COMPATIBLE WITH THE RUNSTATS TABLESPACE UTILITY UTILID = SRMRL.SZ0$LOD6, OBJECT = SZ0DBU.AUDT00IX