views:

163

answers:

2

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 performing 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?

A: 

Did you ever figure this out? I'm running into the same issue, except I'm on a dedicate server.

Paul Alkema
I've not found an answer for this issue, however I've managed to work around it by bundling all my collections into one big one (using the custom field to distinguish between them) and queuing all my updates into a single query that runs as a scheduled task. It means my results can be a little out of date, but it's better than nothing.
Gary
A: 

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>
Bart B