Troubleshooting
Problem
IGC Rest API /search for Database Columns is slow.
Sample requests:
-
POST /ibm/iis/igc-rest/v1/search{ "begin":11,"pageSize":200 ,"properties":["name","short_description", "long_description"] ,"types":["database_column"] }
-
POST /ibm/iis/igc-rest/v1/search{ "pageSize":100 ,"properties":["name","short_description", "long_description"] ,"types":["database_column"] ,"where": {"conditions":[{"property": "name","operator": "containsWords","value": "SAMPLE"}],"operator": "and"} } -
GET /ibm/iis/igc-rest/v1/search/?types=database_column&properties=name&properties=short_description&properties=long_description&begin=11&pageSize=200
Symptom
- Long running SQL queries with inner join between metatables ASCLModel_DataField and ASCLModel_DataCollection in Repository database
Signature SQL queries for Repository database on IBM® Db2®
SELECT COUNT(A0.xmeta_repos_object_id_xmeta) FROM XMETA.ASCLModel_DataField A0 INNER JOIN XMETA.ASCLModel_DataCollection A1 ON A0.of_DataCollection_xmeta = A1.xmeta_repos_object_id_xmeta WHERE ( A0.subtype_xmeta IS NULL OR A0.subtype_xmeta NOT IN (?, ?) ) AND A1.of_DataSchema_xmeta IS NOT NULL
;
SELECT X.c0, X.c1, X.c2, X.c3, X.c4 FROM (SELECT A0.xmeta_repos_object_id_xmeta, A0.name_xmeta, A0.name_xmeta, A0.typeCode_xmeta, A0.subtype_xmeta, row_number() over(ORDER BY upper(A0.name_xmeta), A0.xmeta_repos_object_id_xmeta) FROM XMETA.ASCLModel_DataField A0 INNER JOIN XMETA.ASCLModel_DataCollection A1 ON A0.of_DataCollection_xmeta = A1.xmeta_repos_object_id_xmeta WHERE ( A0.subtype_xmeta IS NULL OR A0.subtype_xmeta NOT IN (?, ?) ) AND A1.of_DataSchema_xmeta IS NOT NULL) X(c0, c1, c2, c3, c4, rn) WHERE X.rn >= 12 AND X.rn <= 200 ORDER BY X.rn
;
SELECT A1.xmeta_repos_object_id_xmeta, A1.isView_xmeta, A1.subtype_xmeta, A1.name_xmeta, A0.xmeta_repos_object_id_xmeta FROM XMETA.ASCLModel_DataField A0 INNER JOIN XMETA.ASCLModel_DataCollection A1 ON A0.of_DataCollection_xmeta = A1.xmeta_repos_object_id_xmeta WHERE A0.xmeta_repos_object_id_xmeta IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
;
SELECT COUNT(A0.xmeta_repos_object_id_xmeta) FROM XMETA.ASCLModel_DataField A0 INNER JOIN XMETA.ASCLModel_DataCollection A1 ON A0.of_DataCollection_xmeta = A1.xmeta_repos_object_id_xmeta WHERE ( A0.subtype_xmeta IS NULL OR A0.subtype_xmeta NOT IN (?, ?) ) AND upper(A0.name_xmeta) LIKE '%SAMPLE%' ESCAPE '\' AND A1.of_DataSchema_xmeta IS NOT NULL
;
SELECT X.c0, X.c1, X.c2, X.c3, X.c4 FROM (SELECT A0.xmeta_repos_object_id_xmeta, A0.name_xmeta, A0.name_xmeta, A0.typeCode_xmeta, A0.subtype_xmeta, row_number() over(ORDER BY upper(A0.name_xmeta), A0.xmeta_repos_object_id_xmeta) FROM XMETA.ASCLModel_DataField A0 INNER JOIN XMETA.ASCLModel_DataCollection A1 ON A0.of_DataCollection_xmeta = A1.xmeta_repos_object_id_xmeta WHERE ( A0.subtype_xmeta IS NULL OR A0.subtype_xmeta NOT IN (?, ?) ) AND upper(A0.name_xmeta) LIKE '%SAMPLE%' ESCAPE '\' AND A1.of_DataSchema_xmeta IS NOT NULL) X(c0, c1, c2, c3, c4, rn) WHERE X.rn <= 100 ORDER BY X.rn
;
- IGC thread waiting on Repository database to respond
Example of a key information for a problematic thread. The information available in Javacore (thread dump).
3XMTHREADINFO "WebContainer : 9" J9VMThread:0x0000000005FD8D00, omrthread_t:0x00007FDB1009E1C8, java/lang/Thread:0x0000000604A50F50, state:R, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x8D8, isDaemon:true)
3XMTHREADINFO1 (native thread ID:0xC15, native priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread flags:0x00000000)
3XMTHREADINFO2 (native stack address range from:0x00007FDACF726000, to:0x00007FDACF766000, size:0x40000)
3XMCPUTIME CPU usage total: 9.230114820 secs, current category="Application"
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/net/SocketInputStream.socketRead0(Native Method)
4XESTACKTRACE at java/net/SocketInputStream.socketRead(SocketInputStream.java:127(Compiled Code))
4XESTACKTRACE at java/net/SocketInputStream.read(SocketInputStream.java:182(Compiled Code))
4XESTACKTRACE at java/net/SocketInputStream.read(SocketInputStream.java:152(Compiled Code))
4XESTACKTRACE at com/ibm/db2/jcc/t4/y.b(y.java:222(Compiled Code))
(...)
4XESTACKTRACE at com/ibm/db2/jcc/am/hp.executeQuery(hp.java:718(Compiled Code))
( ... )
4XESTACKTRACE at com/ibm/is/bg/services/SearchResource.search(SearchResource.java:581)
4XESTACKTRACE at com/ibm/is/igc/rest/v1/services/APISearchService.getSearchResultsInternal(APISearchService.java:108)
4XESTACKTRACE at com/ibm/is/igc/rest/v1/resources/APISearchResource.getSearchResults(APISearchResource.java:158)
Document Location
Worldwide
[{"Line of Business":{"code":"LOB76","label":"Data Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m500000008g94AAA","label":"Governance Catalog - IGC-\u003EIGC REST API"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]
Log InLog in to view more of this document
This document has the abstract of a technical article that is available to authorized users once you have logged on. Please use Log in button above to access the full document. After log in, if you do not have the right authorization for this document, there will be instructions on what to do next.
Was this topic helpful?
Document Information
Modified date:
25 April 2025
UID
ibm16421483