Troubleshooting: auth.product pipeline causes Oracle PGA limit error
Problem
When using Oracle database Versions 12c and up and the eSite indexing model, the
auth.product pipeline can cause an
ORA-04036:exceeds PGA_AGGREGATE_LIMIT
after an otherwise
successful full reindexing. In a common scenario you - Update the attribute dictionary Management Center, changing the
SwatColor
property tofacetable
.
in - Execute a Near Real Time update.
- Poll the auth.product pipeline, with for
instance:
https://server:30801/connectors/auth.product/runs?size=1000&orderDate=desc
This scenario can return an error message such as
{
"run": "n-e3031ee8-a11c-4dad-901e-da6e366f2689",
"date": "2023-11-01T20:57:13.089Z",
"changeHistoryEventId": "Not exists"
You can find further details by
making a query based on the runId returned above:
https://server:30801/connectors/auth.product/runs/n-e3031ee8-a11c-4dad-901e-da6e366f2689?size=1000&type=summary&type=trace&type=log&logSeverity=I&logSeverity=E&logSeverity=T&orderDate=asc
The
returned details include the following error
message:"message": "ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT"
Solution
This error occurs for Oracle databases when update attribute is used in a large number of catalog entries. The solution is to revert it back to the behavior expected in versions prior to Oracle 12c.
- Login in to database using DBA rights user.
- Update pga_aggregate_limit value to
0
using the following SQL command:alter system set pga_aggregate_limit = 0;
- Restart the Database container.
There is an optional parameter, scope that you can add to this
system command. The scope parameter can have these values:
- MEMORY
- The present change is retained in memory only for the current session or at the system level for the current run of the system (if used with the ALTER SYSTEM command). The change will be lost upon restart of the database instance.
- SPFILE
- The change is saved in the server parameter file but not retained in memory for this session. It will take affect on subsequent database restarts.
- BOTH
- Performs both of the above actions. The change is added to this session's memory, and saved to the server parameter file so that it also takes effect in subsequent sessions.
Result
Errors are no longer generated when large numbers of update attribute events occur in the Oracle database.