The collection has become invalid

We have recently moved from notes 6.5 to 8.5.1

In our error logs we are frequently seeing the following error coming form many different agents. NotesException: The collection has become invalid.

The only information I can find about this error is in the following technote

http://www-01.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&dc=DB560&dc=DB520&uid=swg21396849&loc=en_US&cs=UTF-8&lang=en&rss=ct463lotus

In there it states

“After x number of unsuccessful attempts to perform the GetDocumentByKey/GetAllDocumentsByKey call, the error is returned preventing an infinite loop/hang.”

My question is, is X a number we can set somewhere and do we have this too low.

Alternatively is this technote a red herring and is there another explanation. As we never had these errors at 6.5

Thanks in advance

Steve

Subject: Have you reviewed the solutions?

This wasn’t a problem in v6.5, which is why you didn’t encounter the issue at that particular version. The “X number of unsuccessful attempts” could be a loop-count - do you know what line of LotusScript in your Agent is causing the error? (i.e. You could have a command in a looping-construct that is repeatedly executing and generating this error).

Consider either decreasing the loop-count or implementing one of the proposed solutions in the TechNote:

  1. Set the NotesView.AutoUpdate property to False before the GetDocumentByKey/GetAllDocumentsByKey call(s) and back to True afterwards.

  2. If you have an agent (or more than one) that is encountering “Error 4000: %a’s Certification Log”, please contact Lotus Support and request a fix for SPR # OIHZ7UVJ7T.

Subject: Re: Have you reviewed the solutions?

Hi Evan,

Thanks for the response,

On your two points

1.We have tried this and it does appear to help, the problem is we have hundreds if not thousands of areas of the system where we use getDocumentByKey or getAllDocumentsByKey this will be a huge task to change every agent where this occurs

2.If I understand the technote correctly the fix only makes the correct error message display.

So really my questions is in reference to the following part of the technote

“This error can occur when performing a GetDocumentByKey or GetAllDocumentsByKey on a view that is constantly being updated by the server. After x number of unsuccessful attempts to perform the GetDocumentByKey/GetAllDocumentsByKey call, the error is returned preventing an infinite loop/hang.”

In most agents we will be using the GetDocumentByKey/GetAllDocumentsByKey outside of a loop. I read the technote to mean that the server tries to perform the get…ByKey method x number of times before throwing the error.

So my question what has changed between 8.5.1 and 6.5 I understand the error is thrown to prevent code generating an infinite loop but, it appears that this error is too sensitive. We weren’t having a problem previously and we weren’t having infinite loops. So please someone at lotus help me understand.

Is X a server setting we can change.

Subject: X is not configurable

To my knowledge, X is not a configurable item. Since you have tried to adjust any/all areas that could induce this error, I suggest you engage Lotus Support and pursue a Hotfix for SPR: OIHZ7UVJ7T.

Subject: Get Your HotFixes Here…

Contact support to request download links for the following SPRs to receive hotfixes for “the collection has become invalid”:

For iSeries servers: PTF L502868 hotfix for SPR CSCT836HFL

For Windows Servers: Hotfix 851FP1HF154 related to Technote 1396849 and SPR# CSCT836HFL

FOR CLIENT-SIDE:

The currently available hotfixes only address the server-side lookups. Any lookups performed on the client side still potentially have this problem.

NEW SPR # MWID83NSL7 is for the client-side issues. Readers: Please dogpile into this SPR to get it weighted, as the current line from support is that no hotfix will be created, so you won’t have a fix until maybe an 8.5.1FP3 “in a couple months”.

I will cross-post elsewhere.

Subject: Corrected info

SPR MWID83NSL7 has been closed as a duplicate of SPR CSCT836HFL.

Before you open a PMR, be sure that you are experiencing a problem. “Piling on” to anything is not going to help IBM properly address as many of the most important issues that customers are actually hitting.

Accepting any hotfix has risk, and you need to be sure that you have a problem before you do anything. Quality engineered maintenance releases and fixpacks are a much safer way to go.

Subject: We just hit this too… not good.

We need this reverted back to prior behavior, or an INI setting to override. Guess I’ll open a PMR…

Subject: Re: We just hit this too… not good.

Erik,

We too have raised PMR have you had any luck yet?

Subject: That depends on how you define “luck”…

More information is on my blog:

http://www.bleedyellow.com/blogs/erik/entry/8_5_1_fail_your_code_may_just_break19?lang=en_us

Please add a comment there if you could.