POST
|
Ha! Seems like we are on similar paths. Schema changes is actually what got me into the current situation I'm in... all because we needed to add a value to a coded value domain, which is a schema change (but that, I think, is for a different thread). I ended up migrating all of the domains into a separate table (instead of using Esri domains) so that I could update them with just a sync instead of a new replica. I like the idea of breaking it into multiple databases, we do have reference data that we are downloading that doesn't update as often so using that in a separate database makes lots of sense. I have actually been considering using one replica "per layer" where a layer is the main table and its immediate related tables, although this would help a lot with downloading replicas when there are schema changes, it makes querying related records a bit harder. Have you had any issues with many to many relationships in replicas? I ended up deploying that as two 1 to many relationships. I have also been considering taking a very different route for syncing. In another application we rolled our own sync engine, and while it was not as comprehensive as Esri's is we were able to handle schema changes and only download those deltas. We were also able to handle partial uploads so if part of a sync worked, we knew what worked and what didn't which helped a lot with spotty connectivity. For this application, I have been considering switching to our own sync engine so that we could do peer-to-peer syncing in the field. For us, the most important thing is that the team in the field can get each other's data, and right now that takes a minimum of 2 syncs per person each evening over what is normally a 2G connection, and ends up being more than that when people don't pay attention or coordinate. I have another project coming up that is only uploading data and I think we are going to just store that locally and push it as edits to the feature service instead of using a replica.
... View more
11-15-2018
09:42 AM
|
0
|
1
|
35
|
POST
|
I have been considering doing that as well. I have already had to manually download replicas for users in the field. I normally connect to the tablet in the field via some support software and try to download the replica, after it starts I kill that app and download the replica in a browser and then just copy it to the correctly location and start the app up. That process seems to cut the download time in about half for me (and that's with the bandwidth taken up by the remote session as well it would probably be better if I wasn't connected). I'm glad to hear that you have had success with this, I think I will change over to calling the endpoint myself as well. I'm also toying with compressing the geodatabase file before transfer, have you tried experimenting with that at all? I see about a 20% size decrease for our production replicas when I zip them.
... View more
11-15-2018
08:46 AM
|
0
|
3
|
35
|
POST
|
Thanks Preeti, that was the setting I was looking for! This seems to have mitigated the problem for now. The strange thing is that it looks like the default is 10 minutes, but the file was staying much longer than that. And it still strikes me as strange that Server would delete a file that was still being accessed by the client. Thanks for the help!
... View more
11-14-2018
01:31 PM
|
0
|
0
|
35
|
POST
|
I have an application that generates replicas, allows editing and syncs those edits back to the server. The quantity of data is relatively large in that the initial replica generation is around 1.2 GB. ArcGIS Server (10.6.1) takes about 15 minutes to generate the replica according to the GP logs. After that, it takes more than an hour to download the file. The download time is due to the slow connection (mostly caused by the remote nature of the app). The problem occurs at about an hour after generation, it appears that ArcGIS Server is deleting the ".geodatabase" file while it is still being downloaded. This causes a "Job error 22 User defined failure." to be present in the logs in runtime. I know this because immediately after the error, the URL that was being access to download the replica starts returning a 404 message and if I browse to the folder on the server, the file is gone. Does anyone know how to adjust this setting so that the replica can finish downloading? For reference, this is a UWP app using Runtime 100.4.
... View more
11-12-2018
01:37 PM
|
0
|
7
|
318
|
POST
|
I am also seeing intermittent sync (and initial download) issues. I am not able to duplicate it reliably as it happens maybe 1 in 10 times when syncing. I have noticed several observations (these were all tested using UWP 100.3): I did not initially get any download or sync errors while working on the app, but as the database grew to about 15 tables, and about 1000-2000 records (with attachments making the replica about 32MB) I have started seeing these errors. I see the errors on all types of edits: edits on the client only, edits on the server only, edits in both places. Download and Sync success depends significantly on the version of server. One of my clients is using 10.4.1 and the sync fails pretty regularly, while my testing in 10.6.1 shows that it only fails about 1 in 10 times. Sync with ArcGIS Online Hosted Feature Services has never failed for me (although I have not tested it with the same data model I am using with Server) I get different errors with different versions of server. With 10.4/10.5 I would get an "Error 500" frequently, which appears to come from the server sometimes and other times the server has no errors in the log and it looks more like runtime just didn't download the database. With 10.6.1 I have not gotten any server errors, but runtime throws an error that appears to be related to reading/writing to disk. With 10.6.1, the download error always occurs after (while?) the file is being downloaded, as I am left with a partial database on disk that is far too small and provides a "No Data" error when trying to open it. When the sync fails, it doesn't usually throw an exception, just has a failed status and some generic error code like 500 or 22. I am using the Geodatabase Sync task directly, but I have used the Map sync task as well for debugging as it seems to provide more details about specific issues while syncing, if there are any. It would be great if the Geodatabase sync task returned as detailed a log as the map sync task. The stack trace I get on a failed download is this: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.IO.WinRtToNetFxStreamAdapter.<ReadAsyncInternal>d__43.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.BufferedStream.<ReadFromUnderlyingStreamAsync>d__47.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Esri.ArcGISRuntime.Internal.FileRequestHelper.<DownloadAsync>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Esri.ArcGISRuntime.Internal.FileRequestHelper.<DownloadAsync>d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Esri.ArcGISRuntime.Internal.RequestRequiredHandler.<IssueRequestAndRespond>d__14.MoveNext() I have added some code to my app to catch/store these exceptions and the download/sync log entries so that I can begin collecting more data about what is happening during user testing.
... View more
09-11-2018
12:06 PM
|
0
|
0
|
47
|
POST
|
I have not done any CI with the runtime, but I have gotten my unit tests to work, I had the same problem you did. The main thing I added was this, within my [TestClass]: [ TestInitialize ] public void ConfigureEsriRuntime ( ) { if ( ! Esri . ArcGISRuntime . ArcGISRuntimeEnvironment . IsInitialized ) { Esri . ArcGISRuntime . ArcGISRuntimeEnvironment . InstallPath = Directory . GetCurrentDirectory ( ) ; } } I think I also had to set the Platform target in the properties for the Test Project, but I'm not sure. In my case, the output directory contained the right ArcGISRuntime100.0 folder, but the InstallPath wasn't set correctly.
... View more
04-24-2017
03:31 PM
|
0
|
1
|
12
|
POST
|
David, I ran into a maybe-related issue when building polygons. I found that if there is a donut the inner ring must always be counter-clockwise. You can use the Simplify command to fix them, at least I think it can always fix them. I found the note at the bottom of the polygon builder docs: Note: Interior rings to make donut polygons should be counter-clockwise in direction to be topology correct. If there is ever a doubt about the topological correctness of a polygon, call the Simplify(Geometry) method to correct any issues. This is especially true if you pass a polygon to ArcGIS Server for a geoprocessing task to avoid any ArcGIS Server errors being thrown. PolygonBuilder Class Here is the reference for Simplify as well: GeometryEngine.Simplify Method Hope that helps! Christopher
... View more
02-01-2017
09:40 AM
|
2
|
0
|
9
|
POST
|
Hey Andy, In my case, the data in the tables was correct, it was just the metadata that was all messed up. If the data in the fields is messed up, it may be really hard to fix. I don't have 10.4.1 right now, so I can't build a test database and look. I would try making a really simple one with maybe a couple of feature classes and a couple of tables, and then start poking around that GDB_Items table and see what things look like. You may have to actually pull out that XML string and look at it and see if there are any issues there. I seem to remember that I had to pull out the XML and make a few changes, and then put it back in a different row (the one that actually matched the table). If you make a database and want to send it over I'm happy to look at it and see what I can see, I just can't build one right now. Christopher
... View more
01-28-2017
06:38 PM
|
1
|
0
|
17
|
POST
|
I have had this problem before. I have found that when exporting to a .geodatabase, the tables get kind of "crossed" in the process. I tried testing an export in 10.5 and I don't see the issue at the moment. The way I got around it was to edit the configuration tables in the .geodatabase. I believe the issue was in GDB_Items, the Name, Path and Description columns didn't all match, they were crossed. I fixed it by updating that table so that the records all matched for the appropriate table. I wrote a Python script to just alter the rows in the database via SQLite. My experience was similar to yours in that the FeatureClasses always came out right, but the tables had the wrong schema, seems to only happen when there are multiple tables. Does that help? I have done a fair bit of digging around in those system tables, so let me know if I can be of more assistance.
... View more
01-24-2017
11:33 AM
|
1
|
5
|
17
|
DOC
|
Everyone talks about how tests help prevent bugs, defects, issues, etc. but many people don’t focus on the real value of writing software tests, saving time, and making our lives (the developers’ lives) better. Software tests can be boring, they can be mandated by managers, and they can seem like they take more time than they are worth! Instead of focusing on why others want us to build tests, let’s focus on how writing tests can make things better for us, and if tests don’t help us, why do we make them. We we will cover everything from basic tests for toolbox tools to deciding what tests to make, and lots in between.
... View more
01-04-2017
01:44 PM
|
9
|
0
|
774
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|