MAXEXTENTS 0 – ORA-02221

I was working on a maintenance pack application to a finance environment the other day and ran into a problem when doing the alter builds.  When building a table I received the ORA-02221 error: invalid maxtents storage option value.  It would appear that at some time in the past an upgrade occurred where the setindex and settable SQR’s ran.  These SQR’s will set the maxextents override incorrectly in a specific situation. The situation is if the USER_INDEXES.MAX_EXTENTS is null in the database.

The end result is  an override of zero being stored in PSIDXDDLPARM and PSRECDDLPARM.  The DDL later generated by Application Designer, to create tables and indexes,  will include a “MAXEXTENTS 0” clause for the index.  This is an illegal clause for the Oracle database platform.  The MAXEXTENTS parameter should be unlimited and not set to zero.

Fix 1:

Delete from PSRECDDLPARM where PARMNAME = ‘MAXEXT’ AND PARMVALUE = 0;
Delete from PSIDXDDLPARM where PARMNAME = ‘MAXEXT’ AND PARMVALUE = 0;

Fix 2: Alternately, run the following sql:

UPDATE PSRECDDLPARM SET PARMVALUE = 2135468 WHERE PARMVALUE = 0;
UPDATE PSIDXDDLPARM SET PARMVALUE = 2135468 WHERE PARMVALUE = 0;

UBBGEN error: mfc100u.dll missing

When working on a new server, I have encountered this error a couple of times.

UBBGEN.exe is missing the mfc100u.dll. This is because it can’t find it in the system32 folder. In order to fix it you need to run the Visual Studio Retail Assemblies in the server.

In 8.51, go to the %PS_HOME%\setup\vcredist\ run the 64 bit executable. If it prompts you select to repair, otherwise just follow the prompts.

In 8.53, go to the %PS_HOME\setup\psvccrt\ run the program psvccrt_retail_x64.msi.

Restart your psadmin session and you should now be able to build your application server and process scheduler domains without an issue.

IBRK-13 System Audit Issue

During Upgrades of the Toolset and various maintenance, I have ran into issues with the SYSAUDIT showing IBRK-13 issues.

This is caused by the Service Operation Table missing entries. PeopleSoft has a little workaround that nicely solves the problem:

/** Step 1: Verify Data: Store/backup data***/
select * from PSSERVICEOPR order by 1;

/*** Step 2: Delete data ***/
delete from PSSERVICEOPR;

/*** Step 3: Verify Delete ***/
select * from PSSERVICEOPR order by 1;

/*** Step 4: Insert data ***/
insert into PSSERVICEOPR (
select A.IB_SERVICENAME, B.IB_OPERATIONNAME
from PSSERVICE A, PSOPERATION B
where A.IB_SERVICENAME=B.IB_SERVICENAME);

/*** Step 5: Verify Insert ***/
select * from PSSERVICEOPR order by 1;