Thursday, May 23, 2013

Concurrent Manager holding lock on a report

For some reason, we had a report which was locked up with “Could not reserve record x tries” so you couldn't View Details or Hold Request and even running a script to change the HOLD_FLAG was just hanging out.  Looking at gv$session, the user didn't have any sessions which would've lead me to believe they had this locked up so I ran my handy dandy Exadata lock script to find the session holding my script up.  The session had nothing for MODULE or ACTION, but the CLIENT_INFO "0                                                     0         " looked familiar so I bounced the Conflict Resolution Manager without any changes happening.  I started looking closer, as the report was sitting in the Quick Manager so I issued a Deactivate which took it down to only 1 Actual process and a Target of 0 but it just kept sitting there.  Looking at the log files via Processes showed just one thread Active but when I clicked on Manager Log I received this error message:

APP-FND-01632: Cannot open file <directory>/w<process ID?>.mgr for reading

Cause: [Routine] encountered an error when attempting to open file <directory>/w<process ID?>.mgr for reading.

Action: Verify that the filename is correct, the environment variables controlling that filename are correct, and the file exists.

Action: Verify that protections on that file permit reading by this program.

Knowing that there was a problem with this thread, I then issued a Terminate for the Quick Manager and once it was completed with the Actual/Target both at 0 my script finally finished running as it no longer was encountering the locking condition.  After committing my script, so the report was now Inactive/On Hold rather than Inactive/No Manager, I did an Activate for the Quick Manager and once it was back up I removed the hold on the report.  It ran to completion in 2 seconds.

Now there are obviously some questions I have about this, as to why the manager thread had just locked up when it tried to pick up or start running the request, or if the string of numbers in the file name is actually a process ID which I can then backtrack later and give you more information in a later posting.

No comments:

Post a Comment