My Oracle Support Banner

EAI Siebel Adapter and Siebel UI may crash or syntax error when search expression contains excessive number of "OR" / "AND" conditions (Doc ID 1311972.1)

Last updated on MARCH 01, 2018

Applies to:

Siebel CRM - Version 7.5.2 [16008] and later
Information in this document applies to any platform.

Symptoms

In Siebel  CRM: If an integration solution, invokes the "Query" method of the "EAI Siebel Adapter" Business Service and provide the "SearchSpec" parameter with expression that includes many (for example example of 192+) "or/and" conditions, then the expression syntax error will be thrown by Business Component API:

TEST-CASE-1(EAI Query): This can be reproduced in BS-Simulator View of Siebel Client, invoking the EAI Siebel Adapter Query with the following input parameters:
  OutputIntObjectName=Internal Account Interface
  SearchSpec= [Account.Id]="1-001"  or [Account.Id]="1-002" ... or [Account.Id]="1-192"
The error will be seen in the popup window and the Siebel Application log will contain following details:

...
ObjMgrBusServiceLog InvokeMethod 4 ... Begin: Business Service 'EAI Siebel Adapter' invoke method: 'Query' ....
...
ObjMgrBusServiceLog InvokeMethod 4 ... Business Service 'EAI Query Spec Service' invoke method 'QuerySpecToSiebelMsg' Execute Time: ...
ObjMgrBusServiceLog InvokeMethod 4 ... End: Business Service 'EAI Query Spec Service' invoke method: 'QuerySpecToSiebelMsg' ...
...
ObjMgrSqlObjLog Search 5 0 ... Begin: SetSearchSpec for SqlObj 'Account' at 1275ef98, Search Spec: '((( ... ([Id] = '1-001') OR ([Id] = '1-002')) OR  ... ([Id] = '1-192'))'

ObjMgrQueryLog Warning 2 0 ... (query.cpp (2486)) SBL-DAT-00501: Invalid search specification '((( ... ([Id] = '1-001') OR ([Id] = '1-002')) OR ... OR ([Id] = '1-192')).
Please continue or ask your systems administrator to check your application configuration if the problem persists.
...
ObjMgrLog Error 1 0 ... (adptutils.cpp (5573)) SBL-EAI-04376: Method 'SetSearchSpec' of business component 'Account' (integration component 'Account') returned the following error:
"Invalid search specification
'((((( ... ([Id] = '1-001') OR ([Id] = '1-002')) OR ... OR ([Id] = '1-192'))'.
...



TEST-CASE-2 (UI Query): Similar error could be reproduced in Siebel UI, when one makes following query in any list applet (example: Account List Applet):

(((... ([Id] = '1-001') OR ([Id] = '1-002')) OR ... OR  ([Id] = '1-192'))


The error in this case will be:

SBL-DAT-00403: ... an invalid character in the field 'Id'. Missing quotes around search criteria or unnecessary punctuation will often cause an error.




TEST-CASE-3 (UI/EAI CRASH): The following Application process CRASH because of stack corruption can be expected, if  the excessive query is provided without nested "(", ")" braces.

.[Id] = '1-001'  OR  [Id] = '1-002'  OR ... OR [Id] = '1-192'


The sample call stack entries will be (examples of "pstack" output from OS Solaris):

 ----------------- lwp# ... / thread# ... --------------------
... __1cMCSSBinOpNodeODoBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
... __1cMCSSQdDueryNodeMBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
... __1cMCSSBinOpNodeODoBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
... __1cMCSSQdDueryNodeMBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
...
... __1cMCSSQdDueryNodeMBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
... __1cMCSSBinOpNodeODoBldQdDueryText6MrnISSstring_rpnPCSSBindVarArray_iiHiipk1_I_ ...
... __1cICSSQdDueryLGetPhysText6MrnISSstring_rpnPCSSBindVarArray_ipnLCSSSqlField__I_ ...
... __1cJCSSSqlObjRAddSqlWhereClause6MrnISSstring_rpnPCSSBindVarArray__I_ ...
... __1cJCSSSqlObjLAddSqlParts6MirnISSstring_2222rpnPCSSBindVarArray_555_I_ ...
... __1cJCSSSqlObjHExecute6Miii_I_ ...
... __1cKCSSBusCompKSqlExecute6Miii_I_ ...
... __1cJCSSBCBaseKSqlExecute6Miii_I_ ...
... __1cTCSSBCServiceRequestKSqlExecute6Miii_I_ ...
... __1cKCSSBusCompHExecute6Miii_I_ ...
...





Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.