Hello there.I use the GetChildren endpoint to fetch the content of a folder but after a few calls the service becomes very slow to respond and eventually it will crash.The soap stubs are generated with the java lib apache axis and below is what a request/response looks like.2021-05-18 07:23:59,242 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Enter: HTTPSender::invoke2021-05-18 07:23:59,261 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - XML sent:2021-05-18 07:23:59,261 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - ---------------------------------------------------2021-05-18 07:23:59,262 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - POST /services/Assets HTTP/1.0Content-Type: text/xml; charset=utf-8Accept: application/soap+xml, application/dime, multipart/related, text/*User-Agent: Axis/1.4Host: xxx:80Cache-Control: no-cachePragma: no-cacheSOAPAction: ""Content-Length: 702<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <ns1:UserCredentials xmlns:ns1="http://avid.com/interplay/ws/assets/types"> <ns1:Username>******</ns1:Username> <ns1:Password>******</ns1:Password> </ns1:UserCredentials> </soapenv:Header> <soapenv:Body> <GetChildren xmlns="http://avid.com/interplay/ws/assets/types"> <InterplayURI>interplay://Projects/</InterplayURI> <IncludeFolders>true</IncludeFolders> <IncludeFiles>true</IncludeFiles> <IncludeMOBs>true</IncludeMOBs> </GetChildren> </soapenv:Body></soapenv:Envelope>2021-05-18 07:23:59,620 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - HTTP/1.1 200 OK2021-05-18 07:23:59,620 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Server Apache-Coyote/1.12021-05-18 07:23:59,620 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Content-Type text/xml;charset=UTF-82021-05-18 07:23:59,620 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Date Tue, 18 May 2021 07:23:59 GMT2021-05-18 07:23:59,620 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Connection close2021-05-18 07:23:59,621 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - no Content-Length2021-05-18 07:23:59,621 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - XML received:2021-05-18 07:23:59,621 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - -----------------------------------------------2021-05-18 07:23:59,650 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - <?xml version="1.0"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetChildrenResponse xmlns="http://avid.com/interplay/ws/assets/types"> <Results> <AssetDescription>...</AssetDescription> <AssetDescription>...</AssetDescription> </Results> </GetChildrenResponse> </soap:Body></soap:Envelope>2021-05-18 07:23:59,650 [39mDEBUG[0;39m o.a.a.t.h.HTTPSender - Exit: HTTPDispatchHandler::invokeWhat could explain this behavior?Thanks in advance for your help.
Hi Bogee,
Could you please review and fix your request following the example in documentation you can find installed with your IPWS service?
http://<IPWS_HOSTNAME>/docs/Interplay_WS_Reference_Guide.html#ref_assetsService_getChildren
I can see missing namespace definition on the body elements as well as missing workgroup name on the InterplayURI value. e.g. fixed URI line could look like the following if the ns1 namespace is declared before for the asset types.
<ns1:InterplayURI>interplay://AVIDWKGP/Projects/</ns1:InterplayURI>
Another issue with this request could be that IPWS does not support results pagination and requesting children on a high level folder can produce tens of thousands of results. This is expected to cause slowness/crash based on the number of actual results.
As a remedy you can see if it is possible to limit scope of the request to return a minimal possible amount of results or if not an option you can migrate to CTMS API which supports pagination. A collection resource would have similar functionality to get children request:
http://developer.avid.com/ctms/api/loc/resources/collection.html
© Copyright 2011 Avid Technology, Inc. Terms of Use | Privacy Policy | Site Map | Find a Reseller