アーティクル - CS339405

Windchill PDMLink で REST API「/search/objects」を呼び出すと、ワイルドカード検索が実行され続けます。

修正日: 21-Jun-2024   


注記:ここに記載されている情報は、お客様の利便性向上のため機械翻訳ソフトを使用しています。PTCは、ここに記載されている情報の翻訳の正確性について、一切の責任を負いませんので、ご了承ください。英語の原文を参照するには、こちら。この機械翻訳に関する詳細は、こちら。
お知らせいただき、ありがとうございます。この機械翻訳をレビューします。

適用対象

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

説明

  • REST API /search/objectsを呼び出すとワイルドカード検索が実行され続ける
    • 例えば
      • Windchill Advanced Searchで*test*を検索すると、数百のオブジェクトが返されます。
テスト_WTPart_EPMDocument2.jpg
  • 以下の条件で/search/objectsを呼び出すと完了しません
"$filter": ((substringof(number,'test')) or (substringof(name,'test')))
 "$select": last_updated,objName,objNumber,PrimaryContentExtension,state,twodthumbnail,Id 
"typeId": wt.part.WTPart 
"queryLimit": 503
  • Windchill パフォーマンス テーブルには、次のスタック トレースが実行を継続する MethodContext が表示されます。
"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 ....
  • 次のSQLクエリは、上記の長時間実行されるMethodContextに関連しています。
SELECT COLUMN_EXPRESSION FROM dba_ind_expressions WHERE INDEX_OWNER = ? AND TABLE_NAME = ?[xxx, WTPARTMASTER]
  • Windchill クラスターから Thingworx への検索リクエストの送信に時間がかかる
最新バージョンはこちらを参照ください CS339405