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
Hi @dky
I assume that you have scene containing polygon feature layer for facilities and scene layer for units and details.
Increasing facilities from 600 to 1000 means that there are a lot more increase on levels, units and details.
Did you try rebuilding spatial indexes after adding new records?
You may also try scene layer package if you are using scene layer from associated multipatch feature layer which might provide better performance.
Best,
Suleyman.
I assume that you have scene containing polygon feature layer for facilities and scene layer for units and details.
Yes, this is correct.
Did you try rebuilding spatial indexes after adding new records?
Yes, we performed the enterprise geodatabase maintenance trifecta: update db stats, compress, rebuild indexes (indicies?) and rebuilt the spatial index. Even recalculated extents.
Didn't resolve the issue.
You may also try scene layer package if you are using scene layer from associated multipatch feature layer which might provide better performance.
Interesting -- We didn't try this. I'll add this to the list of things to try!
(But how might this help us resolve our problem at hand?)
Thanks again
Derek
Hi Derek,
I don't think that slpk will solve your problem but it might improve the performance.
In the other hand you may try to republish your floor-aware scene. And also you may try using copy all data option.