Timeout reading verity collection - CF8
For a long time now I've been having a problem with using the verity search service bundled with ColdFusion 8. The issue is with timeout errors occurring when perfoming any operation on a collection. It's intermittent, and usually occurs after a few operations have been successfully performed.
For instance: If I'm adding records to a collection the first, say 15 records, will go through with no problems, but all subsequent records will timeout until the service is rebooted.
I'm on a shared server, Windows 2008, 64bit as far as I know. The error I receive is: "An error occurred while pe开发者_如何学编程rforming an operation in the Search Engine library. Error reading collection information.: com.verity.api.administration.ConfigurationException: java.io.IOException: Read timed out"
Having spoken to my hosting company, and after doing some research, it's been suggested that the number of collections on a server may cause this issue. I've reduced the amount of collections I use, and there are currently 39 collections on the server. As I'm on a shared server, I have no control over how many collections other customers use, however I've read that the limit is 128 collections, so I don't see why 39 should cause it to become unusable. The collections aren't big, there's maybe around 5,000 records between all of them.
Any ideas?
Verity seems to be quite vulnerable to corrupted indexes etc. Regular optimization will help a bit. I used to have all kinds of Verity-problems and errors like the above.
I implemented a cflock around all my read- and write-actions to the collection and no more errors have occured. (i guess it cant hurt in most situations, specially if you schedule large updates off-peak)
So maybe this can be a good additional solution for you too (or others ofcourse). Below short example of cflock around delete action.
<cflock name="SearchLock_#veritycollection#" type="exclusive" timeout="5">
<cfindex
collection = "#veritycollection#"
action = "delete"
type = "file"
key ="#toScheduleKey#">
<cffile action="delete"
file="#toScheduleKey#">
</cflock>
精彩评论