|
POST
|
I have an application that was upgraded to the 100.4 version of the API. In testing this application I see huge difference in the overall performance of the identify. What is odd is that not all layers perform worse, some actually seem to perform better. However, the ones that perform worse are significant (4 seconds in one case, 1.5 in another). While I have not done an exhaustive evaluation of the layers themselves, it would seem that layers with more data a decrease in performance of the largest amounts. What is going on here? Because of the magnitude of the increase with specific layers I have an identify operation go from 0.6 seconds to 7.5 seconds. It should go without saying that having a user wait 7 seconds for identify results is not acceptable I also observe a noticeable difference in the performance of a polygon search on a large offline database although I have not logged the actual performance. These tests are using the same offline replicas, identifying the same layers. The only difference being, I changed the API from 100.4 to 100.2 (and fixed the breaking changes) Layer Name Time Seconds (API = 100.4) Time Seconds (API = 100.2) Increase (ms) Identify Time Change Gas Leaks 0.0709587 0.0839489 -1.29902 Decrease Repaired Gas Leaks 0.256843 0.0079967 24.88463 Increase Change Request 0.0069962 0.0179866 -1.09904 Decrease Meters 1.5430591 0.0169923 152.60668 Increase Regulator Station 0.0189887 0.0169907 0.1998 Increase Compressor Station 0.0119933 0.0171815 -0.51882 Decrease Critical Valves 0.063961 0.0179909 4.59701 Increase Non Critical Valves 0.1778903 0.0189875 15.89028 Increase Test Stations 0.0089948 0.0149901 -0.59953 Decrease Coupon 0.0149913 0.0169892 -0.19979 Decrease Relief Valve 0.0159903 0.0169946 -0.10043 Decrease Pressure Monitoring Device 0.0199876 0.0179843 0.20033 Increase Rectifier 0.025984 0.0159899 0.99941 Increase Odorizer 0.0149906 0.0159895 -0.09989 Decrease Pig Structure 0.0199865 0.015991 0.39955 Increase Sniff Test Location 0.0259856 0.0189887 0.69969 Increase Locator Device 0.0669575 0.1082403 -4.12828 Decrease Exposed Pipe 0.0109939 0.0109939 0 Decrease Encroachment 0.0169904 0.0169896 8E-05 Increase WOF 0.0159894 0.0169907 -0.10013 Decrease TFIR 0.0149906 0.01699 -0.19994 Decrease Drip 0.0349796 0.0169884 1.79912 Increase Crossing 0.026985 0.0169895 0.99955 Increase Fittings 0.8374883 0.0279835 80.95048 Increase Rectified Pipe 4.190445 0.0079933 418.24517 Increase Gas Pipe Casing 0.0169889 0.0169911 -0.00022 Decrease Customer Service Zones 0.0169903 0.0189886 -0.19983 Decrease Shop Location 0.0159899 0.0189872 -0.29973 Decrease Total 7.5633898 0.6271185 Thanks -Joe
... View more
03-26-2019
11:26 AM
|
0
|
11
|
4345
|
|
POST
|
Just thinking if it was a Portal issue you would also have a problem logging in directly, so scratching my head a bit on what would be wrong
... View more
03-21-2019
09:53 AM
|
0
|
3
|
4583
|
|
POST
|
I use a brute force approach loop through the layers, get the geodatabase and call Close on the Geodatabase objects. Not sure what your issue is with locking, I have found even after calling close there still seems to be some lock on the files
... View more
03-21-2019
09:50 AM
|
1
|
0
|
2092
|
|
POST
|
Have you tried to log in from the device directly to the sharing web site using Windows credentials?
... View more
03-20-2019
06:52 AM
|
0
|
5
|
4583
|
|
POST
|
You need to add the Esri.ArcGISRuntime.Toolkit.Preview Nuget package.
... View more
03-19-2019
01:09 PM
|
0
|
1
|
1864
|
|
POST
|
I am seeing another issue I think related but not the same. Although the workaround is the same. We have a background sync service that runs outside the map application. When a change comes to the client through the service the map does not refresh to show that change. I found in this case also that toggling the DefinitionExpression will get the new feature to draw. What would be really nice is if the API provided some method to force a full redraw of an area as must be getting done by the reset of the definition expression Jennifer Nery
... View more
03-15-2019
08:51 AM
|
0
|
0
|
1523
|
|
POST
|
I am using the default parameters when generating the package. Also sometimes the feature that has an issue will be in between two features that do sync. So I do not think they would not meet that condition. They are definitely well within the area of the offline tiles
... View more
03-15-2019
07:37 AM
|
0
|
0
|
2542
|
|
POST
|
This is using the OfflineMap API (that's why I had Offline Map in the title ). In this case we are using an on demand workflow. The edits that are failing seem to be adds. Thanks
... View more
03-15-2019
06:37 AM
|
0
|
0
|
2542
|
|
POST
|
Certainly a lot more involved than what I have ever done. This is the very basic approach when I save a User/Password in configuration so things work on machines not attached to the domain (mainly because my test environment is often not on the domain of the Portal but the Portal uses Windows Auth) private async Task<TokenCredential> GetWindowsCredential()
{
Uri sharingUri = new Uri($"{Settings.PortalUrl}/sharing/rest");
TokenCredential credential;
try
{
//Assume that IWA is turned on on machine
credential = await AuthenticationManager.Current.GenerateCredentialAsync(sharingUri, "", "");
}
catch (Exception)
{
//if failed then use provided user and password - testing also requires
// user name muust be in form: user@DOMAINNAME
credential = await AuthenticationManager.Current.GenerateCredentialAsync(sharingUri, Settings.WindowsUser, Settings.WindowsPwd);
}
return credential;
} I do the same in another app (it is WPF not Xamarin though) that uses a form to get user input. All done basically the same except for a little ditty to get the password: // _securePassword is SecureString
string password = new NetworkCredential(string.Empty, _securePassword).Password; In WPF when the user enters into a password text box it gives you a SecureString type. I don't know if Xamarin is the same, but that's a way I figured to get a plain text string from the SecureString object. Also there are some things that don't directly ask for Credential or have as a parameter but it is required. The following does the trick for me in those cases AuthenticationManager.Current.AddCredential(await GetWindowsCredential()); I have never had issue with this. As a general rule I will call into GetWindowsCredential anytime I need a credential unless there is a significant performance concern and I am sure that I am using the saved Credential over a short time. But the token does expire and so if cached too long will no longer be valid Hope that helps
... View more
03-14-2019
06:44 PM
|
0
|
7
|
4583
|
|
POST
|
We have had ongoing issues with sync using on offline map approach. The errors do seem to be isolated to specific services but we have redone these services and the issues still seem to persist with the new services so I don't think it is an issue with the service. I changed to use the JobProgress handler so we could get all the posted messages and here is what we see (does not seem very informative) Message is in the form: $"{jobMessage.Severity}: {jobMessage.Source}: {jobMessage.Message}" 2019-03-14 15:53:30,501 Warning: Client: Sync geodatabase: Failed: "Job error 22 User defined failure. Error while handling get server sync job status. Job error 500 Unable to synchronize replica. Sync replica internal error - 426a7c13-bddf-4079-8f82-d9918c71c5dc."
2019-03-14 15:53:30,501 Warning: Client: Sync geodatabase: Failed: "Job error 22 User defined failure. Error while handling get server sync job status. Job error 500 Unable to synchronize replica. Sync replica internal error - 65c341b6-2e76-4757-960f-6ff0ddbcc5ab."
2019-03-14 15:53:30,501 Warning: Client: Layer result: Sync failed. Name: Reference Line LayerID: 1 TableName: Reference_Line URL: https://services3.arcgis.com/S8sRvG5IBCRdqu9T/arcgis/rest/services/Reference_Line/FeatureServer/1 Job error 22 User defined failure. Error while handling get server sync job status. Job error 500 Unable to synchronize replica. Sync replica internal error - 65c341b6-2e76-4757-960f-6ff0ddbcc5ab.
2019-03-14 15:53:30,501 Warning: Client: Layer result: Sync failed. Name: Service Pipe LayerID: 0 TableName: Pipeline_Line URL: https://services3.arcgis.com/S8sRvG5IBCRdqu9T/arcgis/rest/services/Pipeline_Line/FeatureServer/0 Job error 22 User defined failure. Error while handling get server sync job status. Job error 500 Unable to synchronize replica. Sync replica internal error - 426a7c13-bddf-4079-8f82-d9918c71c5dc. I have confirmed that the replicas does exist in AGOL and there is nothing that would seem incorrect about the replica definition: Replica Info
Replica Name: MyReplica_485
Replica Id: 65c341b6-2e76-4757-960f-6ff0ddbcc5ab
Replica Owner: rwallace_atw
Target Type: client
LayerServerGens: [{"id":1,"serverGen":128010}]
Creation Date: 3/8/2019 3:11:38 PM
Last Sync Date: 3/8/2019 3:11:38 PM
Sync Model: perLayer
Return Attachments: True
Attachments Sync Direction: bidirectional
Spatial Relation: Intersects
geometry Polygon:
Ring0:[2019084.28533725,14707684.8862801],[2019084.28533725,14708059.7287062],[2019085.35587563,14708092.4302709]...98 more...
Layers: 1
Id: 1
Query Option: useFilter
Use Geometry: True
Include Related: True
Where:
Spatial Reference:102100
Any Ideas? Michael Branscomb
... View more
03-14-2019
01:34 PM
|
0
|
4
|
2837
|
|
POST
|
I'd be curious how you get the Windows user name from an iOS device, but that is another question. When you use the Windows user name I have found that the user name needs to be in the form: user@DOMAIN where domain is in all caps. If using Windows authentication and the domain is not in CAPS it fails
... View more
03-14-2019
01:19 PM
|
0
|
2
|
4583
|
|
IDEA
|
Currently the OfflineMap implementation does not allow one to simply unregister the replicas associated to an Offline Web Map. Currently to do this one must loop through the offline geodatabase files and unregister individually as part of a cleanup process, or do through direct rest calls or in the Rest API Web UI. All of which are quite inconvenient. In a large implementation managing the replicas to keep track of what is deployed is important and so unregistering replicas as they are removed from the field is necessary. The API should provide a high level way to do this to go with the high level methods to do the other operations Thanks -Joe
... View more
03-10-2019
10:59 AM
|
1
|
0
|
604
|
|
IDEA
|
Currently the OfflineMap implementation does not allow one to simply unregister the replicas associated to an Offline Web Map. Currently to do this one must loop through the offline geodatabase files and unregister individually as part of a cleanup process, or do through direct rest calls or in the Rest API Web UI. All of which are quite inconvenient. In a large implementation managing the replicas to keep track of what is deployed is important and so unregistering replicas as they are removed from the field is necessary. The API should provide a high level way to do this to go with the high level methods to do the other operations Thanks -Joe
... View more
03-10-2019
10:59 AM
|
1
|
0
|
830
|
|
POST
|
IForwardStar has a Network property of type INetwork. INetwork casts to IDataset. IDataset has a Workspace property and from there you can get to any FeatureTable you want and Query. INetElements on Network object can get you the class id associated to an EID. The thing is, as soon as you go off to get the Feeder ID you have lost the performance gains of using the ForwardStar. Caching what you need and going off in the end to get the feature information will perform better. Also if you are using ArcFM, I would look into trying to use one of their traces, this will perform better and I think give easier access to Feeder ID
... View more
03-10-2019
10:48 AM
|
1
|
1
|
2177
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-11-2026 09:07 AM | |
| 1 | 10-23-2025 12:16 PM | |
| 1 | 10-19-2022 01:08 PM | |
| 1 | 09-03-2025 09:25 AM | |
| 1 | 04-16-2025 12:37 PM |
| Online Status |
Offline
|
| Date Last Visited |
06-23-2026
12:26 PM
|