Hi,
Environment: ArcGIS Enterprise 10.9.1 (sde/postgres) and ArcGIS Enterprise 11.0 (sde/postgres),
Indoors Viewer, 3D mode
Recently in the Indoors Viewer for both our Enterprise v10.9.1 and v11 environments we noticed Floor Aware functionality stopped working in 3D mode (Only 3D mode). The only change was we added additional Facilities (from 600 to just over 1000).
Using the debugging tools in our favorite browser, we see the following errors:
(Screenshots also attached)
"Couldn't retrieve sites, facilities, and levels" (Screenshot 1.jpg)
"Error: Timeout exceeded at https://[maps.domain.com]/portal/jsapi/jsapi4/:405:448 at Generator.throw (<anonymous>)" (Screenshot 2.jpg)
Well, that's strange ... it was able to retrieve Facilities and Levels perfectly fine for 2D but not 3D.
(We didn't implement the Sites feature class).
We can confirm this issue only appears when changing to 3D mode in the Indoor Viewer (or waiting for the Indoor Viewer to preload 3D feature layers). There were no other errors in the browser console
(... i promise!).
My resident Web expert and i did a bit of digging and here's our observations ...
- We think there's a timeout somewhere in the FloorAware (FloorFilterViewModel.js?) javascript code (duh?)
- We curl'ed the identical query against the hosted feature service (Facilities) and it came back around 18MB (yes, we have a lot of Facilities). We didn't thoroughly really check the json, but with >1000 facilities, 18MB looks legit to me?
- We've added a lot more (compute) resources to the feature service but same result.
- We increased the timeouts for the specific service (in Server Manager) but same result ...
- We've confirmed the map and feature layers are all in the same coordinate system. We didn't configure clipping in (any of) the published maps. Should we?
- We thought it might be bad geometry, so we loaded the entire dataset into a file geodatabase and ran check geometry (both esri and ogc methods). Both came back clean.
- Yes, we've performed enterprise geodatabase maintenance tasks. We've looked at the database performance and added attribute indexes where needed. We've rebuilt the spatial index. And kept the schema as close to factory as possible. No evidence (yet) to indicate database performance issues, but we've moved up a machine class (despite very low utilization stats) "just in case".
- We've done some simplification to a few complicated Facilities polygons; a more large-scale generalization isn't desirable due to the side of the dataset unless Esri Support says we must -- At which point I have a lot more questions.
- Is it possible for the FloorAware javascript code trying to do too much in too limited a time space for a large dataset? Perhaps some of these tasks can be moved out of the main timer? We are guessing this timeout is about 60 seconds which from a UI/UX perspective is perfectly reasonable.
- Is this a bug?
Any thoughts?
Many thanks,
Derek