odpi / egeria-connector-ibm-information-server

IBM Information Server connectors for Egeria: repository proxy connector for IGC, data engine proxy connector for DataStage.
https://odpi.github.io/egeria-connector-ibm-information-server
Apache License 2.0
27 stars 20 forks source link

RepositoryErrorException from findEntitiesByProperty method #215

Open grahamwallis opened 4 years ago

grahamwallis commented 4 years ago

During entity search tests the following error was seen on the following 3 types (only): Glossary Team DataClass

The error is the same in each case: the attribute being searched is always "description". Other attributes have been successfully searched (including "qualifiedName", "displayName") and returned the expected entity instances. It seems to be just when searching on attribute "description" that things go wrong.

The error is reported as a RepositoryErrorException.

This is always during TypeFiltering tests on the preliminary query in which no filter is specified.

The actual error is wrapped and reported as:

"errorMessage": "CTS test repository-entity-property-search caught exception RepositoryErrorException from method findEntitiesByProperty whilst trying to find entities with no type filter . Exception message was : An unexpected org.odpi.egeria.connectors.ibm.igc.clientlibrary.errors.IGCConnectivityException exception was caught by findEntitiesByProperty; error message was Opening a new session already attempted without success -- giving up.. Method was invoked with parameters: limitResultsByClassification : null, sequencingOrder : null, typeFilter : null, asOfTime : null, matchCriteria : All, limitResultsByStatus : null, matchProperties : InstanceProperties{propertyNames=java.util.HashMap$KeyIterator@2ae4d647, propertyCount=1, instanceProperties={description=PrimitivePropertyValue{primitiveValue=\QThis glossary contains Glossary Terms and Categories that are related to the Coco Pharmaceuticals data\E, primitiveDefCategory=PrimitiveDefCategory{code=11, name='string', javaClassName='java.lang.String', guid='b34a64b9-554a-42b1-8f8a-7d5c2339f9c4'}, instancePropertyCategory=InstancePropertyCategory{typeCode=1, typeName='Primitive', typeDescription='A primitive type.'}, typeGUID='null', typeName='null'}}}, sequencingProperty : null, fromEntityElement : 0, pageSize : 10",

I'm happy to reproduce and capture debug etc.

cmgrote commented 4 years ago

This appears to be related to the version of IGC: with newer releases (I think v11.7 fixpack2 and above) it is no longer possible to include the long_description field in a query-based search (this is the field mapped to the OMRS description property). The result of trying to do so is a 400 "bad request" response with the following message from IGC:

{
  "message": "CLOB property, please use search with 'searchText'",
  "code": 400
}

This significantly complicates supporting various search scenarios for these newer versions of IGC... We may need to accept a release or two of the connector that does not fully support these search scenarios in these newer versions.

cmgrote commented 4 years ago

For now I'll leave this to a fix for a later release of the connector -- since the CTS results are reported on a release-by-release basis for IGC, we should still be able to confirm that earlier versions (v11.5.x) are conformant despite the more recent versions not being conformant when using this connector.

grahamwallis commented 4 years ago

Just an update - same result with latest CTS run on current master