Article - CS339405

Wildcard search keeps running when invoking REST API "/search/objects" in Windchill PDMLink

Modified: 20-Jun-2024   


Applies To

  • Windchill PDMLink 11.1 M020 to 12.1
  • Windchill Navigate (formerly ThingWorx Navigate) 1.8.0 to 9.3

Description

  • Wildcard search keeps running when invoking REST API /search/objects
    • For example
      • searching *test* in Windchill Advanced Search returns several hundreds objects
Test_WTPart_EPMDocument2.jpg
  • Invoking /search/objects with the following criteria never complete
"$filter": ((substringof(number,'test')) or (substringof(name,'test')))
 "$select": last_updated,objName,objNumber,PrimaryContentExtension,state,twodthumbnail,Id 
"typeId": wt.part.WTPart 
"queryLimit": 503
  • Windchill Performance Table shows the MethodContext with the following stack trace keeps running:
"ajp-nio-127.0.0.1-8010-exec-4" Id=77 RUNNABLE
      Blocked (cnt): 38794; Waited (cnt): 632
  at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
  at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
  at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
  at sun.nio.ch.IOUtil.read(IOUtil.java:197)
  at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
  at oracle.net.nt.TimeoutSocketChannel.read(TimeoutSocketChannel.java:144)
  at oracle.net.ns.NIOHeader.readHeaderBuffer(NIOHeader.java:82)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:139)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:101)
  at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:80)
  at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:98)
  at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)
  at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)
  at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
  at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)
  at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747)
  at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904)
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
  at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)
  at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)
  at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822)
  at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
  at wt.pds.AbstractDatastoreMetaData.getIndexColumnFunctionExpressions(AbstractDatastoreMetaData.java:238)
  at wt.pds.oracle81.OracleMetaData.getIndexColumnFunctionExpressions(OracleMetaData.java:42)
  at wt.pds.AbstractDatastoreMetaData._getIndexColumnFunctionExpressions(AbstractDatastoreMetaData.java:349)
  at wt.pds.AbstractDatastoreMetaData.isIndexColumn(AbstractDatastoreMetaData.java:123)
  at wt.pds.AbstractDatastoreMetaData.getIndexColumnPrefixType(AbstractDatastoreMetaData.java:66)
  at com.ptc.core.query.server.criteria.CriteriaUtil.getPrefixType(CriteriaUtil.java:2314)
  at com.ptc.core.query.server.criteria.CriteriaUtil.getWhereExpression(CriteriaUtil.java:1720)
  at com.ptc.core.query.server.criteria.CriteriaUtil.getWhereExpression(CriteriaUtil.java:985)
  at com.ptc.core.query.server.criteria.ModeledAttributeCriteriaHandler.buildWhere(ModeledAttributeCriteriaHandler.java:112)
  at com.ptc.core.query.server.criteria.LogicalCriteriaHandler.buildWhere(LogicalCriteriaHandler.java:150)
  at com.ptc.core.query.server.criteria.LogicalCriteriaHandler.buildWhere(LogicalCriteriaHandler.java:150)
  at com.ptc.core.query.server.criteria.LogicalCriteriaHandler.buildWhere(LogicalCriteriaHandler.java:150)
  at com.ptc.core.query.server.criteria.CriteriaUtil.appendCriteria(CriteriaUtil.java:197)
  at com.ptc.core.query.server.criteria.CriteriaUtil.appendCriteria(CriteriaUtil.java:181)
  at com.ptc.core.query.server.impl.BasicQueryService.buildQuerySpec(BasicQueryService.java:1763)
  at com.ptc.core.query.server.impl.BasicQueryService.buildStatement(BasicQueryService.java:1465)
  at com.ptc.core.query.server.impl.BasicQueryService.query(BasicQueryService.java:358)
  at com.ptc.core.query.command.server.QueryCommandDelegate.doExecution(QueryCommandDelegate.java:159)
  at com.ptc.core.command.common.delegate.AbstractCommandDelegate.execute(AbstractCommandDelegate.java:216)
  at com.ptc.core.command.common.CommandDelegateForwarder._remoteExecute(CommandDelegateForwarder.java:292)
  at com.ptc.core.command.common.CommandDelegateForwarder.remoteExecute(CommandDelegateForwarder.java:240)
  at com.ptc.core.command.common.CommandDelegateForwarder.execute(CommandDelegateForwarder.java:202)
  at com.ptc.core.command.common.bean.AbstractServerCommand.execute(AbstractServerCommand.java:202)
  at com.ptc.windchill.enterprise.search.mvc.service.DbSearchService.queryDBServer(DbSearchService.java:368)
  at com.ptc.windchill.enterprise.search.mvc.service.DbSearchService.doGetPage(DbSearchService.java:295)
  at com.ptc.windchill.enterprise.search.mvc.service.AbstractQueryService.getPage(AbstractQueryService.java:95)
  at com.ptc.windchill.enterprise.search.mvc.service.WindchillSearchResultInputStream.read(WindchillSearchResultInputStream.java:63)
  at com.ptc.windchill.connected.plm.webservice.SearchUtils.executeSearch(SearchUtils.java:562)
  at com.ptc.windchill.connected.plm.webservice.SearchWebService.searchObjects(SearchWebService.java:187)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
  at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
  at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
  at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)
  at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:377)
  at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:200)
  at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
  at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
  at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
  at ...internalDoFilter()
  at ...doFilter()
  at wt.licenseusage.licensing.LicenseFilter.doFilter(LicenseFilter.java:47)
  at ...internalDoFilter()
  at ...doFilter()
  at com.ptc.jws.servlet.filter.WsdlServletFilter.doFilter(WsdlServletFilter.java:61)
  at ...internalDoFilter()
  at ...doFilter()
  at com.ptc.core.ui.validation.URLValidationFilter.doFilter(URLValidationFilter.java:85)
  at ...internalDoFilter()
  at ...doFilter()
  at wt.httpgw.filter.WTContextBeanFilter.doWithWtContextBeanHandler(WTContextBeanFilter.java:104)
  at wt.httpgw.filter.WTContextBeanFilter.doFilter(WTContextBeanFilter.java:58)
  at ...internalDoFilter()
  at ...doFilter()
  at wt.servlet.CompressionFilter.doFilter(CompressionFilter.java:301)
  at ...internalDoFilter()
  at ...doFilter()
  at wt.servlet.RequestInterrupter.doFilter(RequestInterrupter.java:335)
  at ...internalDoFilter()
  at ...doFilter()
  at wt.servlet.ServletRequestMonitor.doFilter(ServletRequestMonitor.java:1660)
  at wt.servlet.ServletRequestMonitorFilter.doFilter(ServletRequestMonitorFilter.java:56)
  at ...internalDoFilter()
  at ...doFilter()
  at ....
  • The following SQL query is related to the above long running MethodContext
SELECT COLUMN_EXPRESSION FROM dba_ind_expressions WHERE INDEX_OWNER = ? AND TABLE_NAME = ?[xxx, WTPARTMASTER]
  • Search request taking longer time to go from Windchill cluster to Thingworx
This is a printer-friendly version of Article 339405 and may be out of date. For the latest version click CS339405