By Paul Tinker – Covenco
I had a customer send out the “Bat Signal” late on a Sunday night, their application had completely stopping working but when it came to error messages, there was nothing much showing anywhere on the system.
They tried to restart their application services, but to no avail. They had even tried the all-knowing Google and that didn’t help 😉
There were no errors showing in SST Problem Action Log, or on IBM i WRKPRB and in essence the server appeared healthy, for example it was only 24% full on ASP1 and there were loads of free processor and main storage resources, I could freely move around the server and the performance for me was great.
Here is where I got my first clue, was when I looked at the jobs logs that were produced when they tried to restart their application, they seemed to be failing when they tried to write to the IFS but the error being given wasn’t helpful at all.
As part of the diagnostic, I logged on as the application user and I tried to manually add an object to the application directory in the IFS, and this time got an error message with a return code that made sense. BINGO!
Did you know there is a limit of number of objects owned by a user profile? Who knew that if it owned 50,000,000 you would have problems? Yes that’s 50 million and my finger didn’t slip on the 0’s. If you hit this hard stop then IBM i stops you doing things, in this case writing a new object to the IFS.
I know that does seem a lot of objects but computers are great at creating news objects and with some of the newer workloads this is doubly true.
I would urge you to run this command that takes 1 second to run the PRTPRFINT have a look at the spool file it creates and look for any profiles that are having it large with the object ownership thing.
If you want to add this to your regular system health check, then use a command like the following, it should return an empty list, if it does not then you need to take action: PRTPRFINT SELECT(*PCTFULL) PCTFULL(90)
I also found another article that says SAVSECDTA may take a while to save if you exceed 30% but that’s different story.
Just in case you are wondering, an IPL does NOT fix this and if you save and restore on to a new system then you carry the problem with you.
Now if you are wondering if this limit has always been here, well yes it has and at IBM I 7.1 and older, this limit was 10 million.
If you would like to know more about other system limits, check out this handy page from IBM: https://www.ibm.com/docs/en/i/7.4?topic=capacities-security-limits