Select to view content in your preferred language

Best Practices for working with Utility Network: Publishing Utility Network Service

8745
16
02-15-2022 06:40 AM
Saranya-Kesavan
Esri Contributor
5 16 8,745

Authors: @MichaelHirschheimer , @Saranya-Kesavan 


Over the past few years, Mike and I have published multiple Utility Network services in an ArcGIS Enterprise environment. Over the course, we have made silly mistakes as we relied too much on muscle memory and felt the pain of having to redo work We’ve also learned about some simple tweaks to the publishing map that resulted in overall performance improvements. In this blog we will share our wisdom gained from those experiences and provide you with some preventative strategies to publish a Utility Network service quickly. 

 

Utility Network Foundational solutions 

One of the key benefits of Utility Network is the industry standard data model that comes with it. Starting with Esri’s Utility Network Foundation solution, organizations do not have to spend their time and implementation budget on building custom data models and information products for their network management in GIS (but are welcome to configure the data model as needed, to fit their specific needs). 

Industry specific Utility Network Foundations can be readily downloaded from the ArcGIS Solutions website 

These foundation solutions include a data model that configures ArcGIS Enterprise and the ArcGIS Utility Network to represent <Industry> networks. It deploys foundational services, simplifying the creation of additional web and mobile apps and provides a desktop data editing environment.  A collection of tasks, with step-by-step directions, are also provided to help deploy the solution to an Enterprise environment. 

Pertaining to those tasks, we will be sharing our wisdom in the following topics  

  • Importance of the publishing map 
  • Feature layers in the publishing map 
  • Optimal visible scale considerations for feature layers 
  • Linked Web Maps
  • Maximum number of coded domains 
  • Max Heap Size
  • Troubleshooting version management related issues 
  • Troubleshooting register data source issues 
  • Backing up ArcGIS Pro project

 

Importance of the publishing map 

Update: Please read this related article for a more comprehensive discussion of the best practices for managing the typical set of maps and services used to support a Utility Network implementation.

It will take multiple maps to support your Utility Network implementation.  There will be a map specific to publishing the Utility Network (called Electric Utility Network in the Foundation project.  See #1 in screenshot below).  Each layer’s data source in the publishing map will come from a database connection and there are specific requirements that must be metOnce published, you can create editing and viewing maps using subtype group layers (see #2 and #3 in the screenshot below).  Their data source will be from a featureservice which will allow you to access the Utility Network in mobile and web applications.  More information to come on editing and viewing maps in future blogs. 

SaranyaKesavan_0-1644008801817.png

 

Feature layers in the publishing map 

At Esri, we recognized that the number of visible layers with visible content can have an impact on performance.  Querying each layer in the map resulted in multiple requests being sent and responses being received from the database or service. In the case of Utility Network feature dataset, the dilemma of whether to add all the objects to a publishing map is understandable, considering the sheer number of it. But our experts vouch for better performance if all the objects in the Utility Network feature dataset are added to the publishing map.  

Here’s why -- When a user is editing data from an ArcGIS Server published service, each update is a separate edit operation.  This means when you change the attribute of a single feature, that update is a single edit transaction, which requires locking all the objects associated with the object being edited. So, if you update a single attribute on 10 different features, one at the time, that is 10 edit transactions. On top of it, if an object in the feature dataset is not in the map, then additional database queries need to be made. This will result in a performance hit in ArcGIS Pro. 

Another tip here -- if a feature class participates in a relationship class, add the related object to the map. Because, when the feature class is queried/edited, ArcGIS Pro will try to open the related object. If it is not on the map, then additional database queries need to be made.  To simplify this querying process and thereby to optimize performance it is advised to add the related object to the publishing map. 

While adding multiple layers in the map helps to optimize overall performance with feature edits, one might experience slowness when the map is being rendered with all the layers.  This slowness can be minimized by turning off the visibility for those layers that need not be seen on the map. This will come in handy when you pan and zoom in your publishing map. You can also choose to pause map rendering altogether if you do not want to visualize your data in the publishing map. 

Finally, if you use landbase along with Utility Network, think about end-user workflows. If landbase edits need to be seen in the same version where facilities are being edited (for example, in a new Underground Residential Development, new roads are being added), then the landbase layers should be in the same service. So, add the landbase to your Utility Network feature service publishing map. On the other hand, if landbase and Utility Network are in separate feature services, landbase edits would be in its own version and the facility edits would be in a different version.  

 

Linked Web Maps

In ArcGIS Pro, there are no capabilities to overwrite an existing Web Map in Portal.  However, when you add a map to your project from Portal it becomes a linked web map which you can then use to overwrite the existing web map.

This is an important workflow for when you have built applications that reference that web map, since this saves you from having to reconfigure any downstream applications to point at the new map. However, you should exercise caution when making changes to existing web maps, especially adding or removing layers, since they may impact configurations in downstream applications.

To add a linked web map to your project, use the following steps:

  • In ArcGIS Pro, open the Catalog pane
  • Navigate to the Portal tab on the Catalog pane
  • Select the Web Map in your portal
  • Right click on Web Map > and select Add and Open

RobertKrisher_0-1728659345951.png

 

  • Once the map is loaded, notice the “link” icon on the web map.  This indicates it’s linked from your Portal

RobertKrisher_1-1728659345957.png

 

  • Make your desired changes
  • Go to the Share tab on the Ribbon
  • Click the Save Web Map button in the Manage group
RobertKrisher_2-1728659345986.png

Note:  The Save Web Map button is only enabled when a "linked" Web Map is the active map

The Web Map in your portal will now reflect the changes you made in ArcGIS Pro.

If you save this project you can continue to make and republish changes using this linked Web Map

Note: Your local copy will not reflect changes made by other users, and they will be lost if you overwrite the Web Map with your local copy. The Save Web Map has an option to create a backup of the web map before overwriting, you can refer back to this copy if you need to revert changes.

Optimal visible scale range considerations for feature layers 

It is a best practice to determine the scale range at which individual feature layers will be rendered. Failing to do so will result in performance issues when the map is being rendered.  

For example, if the Line feature layer is set to be visible at the county level, there could be millions of objects that   are rendered and that takes a considerable amount of processing and time. Despite that time and effort, end users cannot perceive any meaningful information. Similarly, a point layer that is visible at all scales will not mean anything when the map is zoomed in at the city level. So, pay attention to your workflows and determine the appropriate rendering scales for each layer. This will dramatically reduce the load when the map is rendering. 

SaranyaKesavan_7-1644008801822.png

Setting a visible scale range at the feature layer level will ensure that these visibility scale ranges are passed to all the maps downstream that will be using the feature service. Depending on the feature service clients, you could fine tune the scale ranges as needed. 

 

Maximum number of coded domains 

Another setting that is sometimes forgotten is the maximum number of coded domains.  The default value of 25,000 may not be large enough for a Utility Network. Change the value to 1 million: 1000000 

But why? Let’s do the math. There are at least 12 database objects in your Utility Network. As an example, the Electric Utility Network model contains an average of 38 fields and 13 subtypes in each object. Suddenly the number creeps to a range closer to 25,000. If you choose to enhance the data model, the number of coded domains can exceed more than the default. 

Remember, with the default setting, 25,000 is the maximum number of domain codes that can be returned from all fields, subtypes, layers & tables. When the number of domain codes returned by the MaxDomainCodeCount property exceeds the default value, the service may continue to run normally, but you will see the domain descriptions not displaying as expected for some attributes. In addition, errors will be captured in your ArcGIS Server logs. 

So, remember to increase the maximum number of coded domains in the configuration tab while sharing the web layer.  Share Tab > Web Layer > Publish Web Layer > Configuration tab > Click the Feature’s pencil icon > Configuration Parameters tab > tip open Advanced 

SaranyaKesavan_4-1644008801820.png


You can also edit it with the ArcGIS Server manager, as shown below. 

SaranyaKesavan_5-1644008801820.png

 

Max Heap Size

Customers who have very large subnetworks may encounter errors when trying to trace or update them. If you encounter one of the following errors when running Trace or Update Subnetwork: “Error 160213 or Error 003642: A networking error occurred,” you should consider adjusting the max heap size of your utility network feature service (for synchronous operations) and the utility network tools geoprocessing service (for asynchronous operations).

Please refer to this KB article: Determine the proper heap size setting for large trace results in an enterprise deployment of the ut.... While it is possible to set the Max Heap Size at a server level, this will increase the memory usage of all services in that size. Because of this, it is recommended that you take a more targeted approach and only increase the Max Heap Size for service that need it, and that you only make it as large as it needs to be. Increasing the Max Heap Size increases the memory consumption of each SOC used by the server, so setting the Max Heap Size to be 512mb will cause each SOC to consume an additional 512mb of memory even when idle.

When updating a feature service, you must place the javaHeapSize in the properties element of the Feature Service's service properties. This property is not exposed by default in the service, so if this is your first time adjusting this value you will need to add a new property.

Adjusting the javaheapSize property of a Feature ServiceAdjusting the javaheapSize property of a Feature Service

When updating the UtilityNetworkTools GP service you must place this javaHeapSize in the frameworkProperties element of the GP Service's service properties. This property is not exposed by default in the service, so if this is your first time adjusting this value you will need to add a new property.

Adjusting the javaHeapSize on the Utility Network Tools geoprocessing serviceAdjusting the javaHeapSize on the Utility Network Tools geoprocessing service

 

Troubleshooting version management related issues 

To publish a Utility Network Service, all feature layers and tables that are added to the publishing map must be registered as a branched version.  An efficient way to find out the publishing map’s conformance to this is by inspecting the Configuration tab: Share Tab > Web Layer > Publish Web Layer > Configuration tab

SaranyaKesavan_1-1644008801818.png

If you see an option to enable “Version Management” capability in the Share As Web Layer pane, you are all set. This confirms that all the feature layers are registered as branched versions in your publishing map. 

CAUTION: Do not spend any time changing symbology, renaming layer names or other map changes, before checking that version management capability is present in the configuration tab.  This could be all for nothing if you can’t enable Version Management. 

Sometimes, things do not go as planned/expected.  Without the Version Management capability, Utility Network functionality won’t be available upon publishing.  Troubleshooting steps include: 

  • Make sure the layers added to the map come from a Geodatabase connection file whose versioning type is Branch. You can check it here: Catalog > Right click on Geodatabase connection file > Geodatabase Connection Properties 

SaranyaKesavan_2-1644008801819.png

  • Inspect each layer in the map and confirm its versioning type is Branch. (Right click on a feature layer > Properties > Source) 

SaranyaKesavan_3-1644008801819.png

  • If the layer is not flagged as branched in the properties dialog, remove it from the map and add it again using the branched geodatabase connection file. 

 

Troubleshooting register data source issues 

When you analyze the map to publish your Utility Network Service for the first time, you are most likely to encounter an error indicating that the “Layer’s data source must be registered with the server.”  

An effortless way to navigate this error is to right click on error message for one of those layers and choose to register data source with server. You will be prompted to add your data store to your server. 

SaranyaKesavan_6-1644008801821.png

Upon successfully resolving the error for one layer, the other layers will be automatically updated. Click Analyze in the Share as Web Layer pane to make sure all the errors are cleared out.

 

Backing up ArcGIS Pro project 

Upon successful publishing of the Utility Network service, it is always a good idea to back up the ArcGIS Pro project so that you have a copy of all the configurations & the database connection files. This will come in handy when you need to make changes to the existing service, have multiple administrators managing the Utility Network environment, when upgrading the enterprise version or when gearing up for creating another service. 

There are different ways you could back up your ArcGIS Pro project: saving the project from your local machine to a network drive or uploading it to your portal. If you choose to upload to portal, you can share it with others for collaboration. Also, you can use groups to ensure that only a certain member of staff can access it. There is also an option to mark that project as Authoritative which indicates it’s a trustworthy project to use. 

SaranyaKesavan_8-1644008801823.png

 

 

 

Conclusion 

The purpose of this blog is to share the knowledge we’ve gained from our firsthand experiences on publishing a performance optimized Utility Network service. We hope our insights save you time by avoiding common pitfalls. The items discussed can be considered as best practices to follow along with the tasks you will receive as part of Utility Network Foundation solution.  

We look forward to sharing more of our findings in our upcoming blogs. Stay tuned! 

 

About the Authors

Mike & Saranya are Solution Engineers on the Esri Infrastructure Team with a focus on the Utility Network.  Between the two of us, we have 10+ years of applying ArcGIS to utilities, and we are continuously excited to work with customers to improve their experience. 

While building a 10.8.1 environment and exercising Utility Network workflows, we’ve accumulated a wealth of knowledge that will aid in maintaining your System of Record. We look forward to sharing what we’ve learned with you in a series of blog posts. These blogs could be considered as best practices for Utility Network.

 


 

SaranyaKesavan_1-1644866620531.jpegMike Hirschheimer 

 Mike Hirschheimer is a solution engineer on the Utilities Team with a focus on the Utility Network.   He is a big sports fan who enjoys watching NFL & NBA games and playing disc golf.

 

Saranya KesavanSaranyaKesavan_0-1644866620530.jpeg

Saranya Kesavan is a solution engineer on the Utilities Team with a focus on the Utility Network. Outside of work, she is an avid reader and a big-time motorcycle enthusiast.

 

 

16 Comments
Lorne
by
Occasional Contributor

You mention publishing all entire UN feature dataset for better performance when editing. Does this also mean when adding the service to ArcGIS Pro for editing, all the layers of the service need to be added to get the performance gain, or can the map just include the objects and relationships the users are interested in editing?


JeffBlake
Occasional Explorer

@MichaelHirschheimer I was wondering if i could get a little more insight on the section Importance of the publishing map. On the actual utility network service do you not want subtype group layers? Just all your utility network dataset features, then you can use subtype group layers in your viewer/editing maps?

RobertKrisher
Esri Regular Contributor

@JeffBlake the map used to publish the feature service should not have subtype group layers. The subtype group layers should be used when you are consuming the feature service in your desktop maps or web maps.

JeffBlake
Occasional Explorer

Wow thanks @RobertKrisher that info helped me out a lot! What would be the best practice for the editing and viewing maps, share them as a map package or as another feature service?

RobertKrisher
Esri Regular Contributor

@JeffBlake The best practice depends on what kind of user you're sharing your map with. For a collection of best practices for creating maps referencing utility network data, I recommend you refer to the following tutorial. This tutorial demonstrates the importance of configuring things like subtype group layers and display filters.

For desktop users, you should create a map using ArcGIS Pro that references those feature services and either share the individual map with them as a map file or if you have a collection of items (multiple maps, page layouts, etc) you may choose to share an entire project with your users.

For web users, you will likely still use ArcGIS Pro to author your map, but you will share the resulting map as a Web Map. This web map should be very similar to your desktop map, especially with regard to the use of subtype group layers. The only catch is that you must be using at least ArcGIS Enterprise 10.9.1 for subtype group layers to appear in your field maps and at least ArcGIS Enterprise 11.1 for subtype group layers to appear in the Web Map Viewer in ArcGIS Enterprise.

friendde
New Contributor

Thanks for the post. In the ArcGIS Solution for Water, the Task indicates to check "Validation" along with Version Management when publishing. Although Version Management was visible, the Validation option was not available. I verified the database connection was set to Branch version for all layers and tables.

As a comparison, when publishing the Electric UN solution, the Validation check box was available. Additionally, the Validation Service is listed under /server/rest/services for Electric but not for Water.

I reviewed all of the the Tasks in the Water UN Solution several times, and I am still missing something for the Water UN during publishing to activate the Validation Service. 

What triggers the Validation option in the Water UN Solution to become available?

@Saranya-Kesavan @MichaelHirschheimer @RobertKrisher 

omar-marji
Occasional Contributor

@friendde I believe the validation option becomes visible depending on the attribute rules defined (not sure if it is just validation rules that trigger it, it could be validation & batch calculation/validation rules). But maybe someone else can correct me if I am wrong.

RobertKrisher
Esri Regular Contributor

@friendde I believe Omar is correct. If any of the layers in the service you are publishing contain batch calculation or validation rules, then you will see the option to include a validation service. I believe the latest version of the water model only includes immediate calculation rules, but I'm going to tag @mmiller to confirm this and whether the steps in the solution are correct.

lorenzoz
Occasional Contributor

Hi,

Thanks for the precious informations about how to set up a correct Utility Network.

I've some doubts on the section Importance of the publishing map.

I've published the service of the map Utility Network (#1 in your image) and now I have created in Pro a map referencing the service.

What do I have to do with the maps Network Editor and Network Viewer (#2 and #3)?
You said that "their data source will be from a featureservice which will allow you to access the Utility Network in mobile and web applications".
Can I reference these maps with the feature service? I see that it's not possible to do it with the Update Data Source tool, since asks me for FGDB or EDGB data. Do I do something wrong?

I need the symbology and the group layers of the Editor map also in the web environment (I have Enterprise 11.1).
What should I do? Reference the Editor map layers with the EDGB data and publish a new service? This is the opposite of what it's said in your best practices.

Any advice?

Thanks for the help,

Lorenzo

 

MichaelHirschheimer
Esri Contributor

Hi @lorenzoz,

There is a python toolbox, Utility Data Management Support tools, that contains a GP Tool called:  Update Data Sources.  I've been using that GP Tool to resource the Electric Network Editor map and others to a Featureservice.  

MichaelHirschheimer_0-1692880482906.png

The Utility Data Management Support tools toolbox is part of the latest Electric Utility Network Foundation package (v2.2).  

MichaelHirschheimer_2-1692880779032.png

If you aren't using the foundational package, the toolbox can be downloaded from here

help doc for this GP tool.

Also, there is a Pro 2.9 and Pro 3.1 version of this python toolbox. 

 

Hope this helps!

Mike

lorenzoz
Occasional Contributor

Thank you @MichaelHirschheimer!

Using the GP tool in the pyt toolbox actually worked! I correctly referenced the Editor and Viewer Maps with the service already published, then I published the Editor and Viewer Web Maps in order to see them in a web environment.

I only have a doubt.. I published the Viewer Map, but the service is still editable, I think because it references the same service as the Editor map.

Do I have to reference the Map Image Layer on the Viewer Map? Or there's a possibility to limiti editing of the Feature Service only in that web map?

Thank you for your help!

Lorenzo

MichaelHirschheimer
Esri Contributor

Hi @lorenzoz,

You can toggle the "editability" of each layer in the web map.  This could be in done in ArcGIS Pro 

MichaelHirschheimer_0-1692886181627.png

 

or in the ArcGIS Enterprise Portal's Map Viewer.

MichaelHirschheimer_1-1692886322185.png

 

 

 

JSchroeder
Esri Contributor

@lorenzoz I would like to add that the UN Foundation solutions have incorporated tasks that guide through how to reset the maps using the toolbox that @MichaelHirschheimer mentions.

I mention this because referencing the tasks may help other users to avoid some of these pitfalls. It seems that the task framework is relatively unknown to a lot of users - hoping to get a slight bump here to promote awareness that may save time and effort to some of the more straightforward workflows to deploy.

Here is a picture that shows a typical task framework that you would find in any of the UN foundation solutions as well as the location in the 'Tasks' folder:

Gas and Pipeline UN Task Framework.jpg

Gas and Pipeline Referencing Utility Network Foundation's 'Use' help doc: 

MikeMillerGIS
Esri Frequent Contributor

RE: @friendde I believe Omar is correct. If any of the layers in the service you are publishing contain batch calculation or validation rules, then you will see the option to include a validation service. I believe the latest version of the water model only includes immediate calculation rules, but I'm going to tag @mmiller to confirm this and whether the steps in the solution are correct.

 

You need to include the validation layers in the feature service to support the validation service.  There are in the root of the GDB:

MikeMillerGIS_0-1692966824321.png

 

lorenzoz
Occasional Contributor

Hi,

I'm trying to create more web maps in Portal based on the lifecyclestatus field (for example a map filtered on "Proposed" features and a map filtered on "In Service" features.)

What are the best practices for this goal?

  • Set two different definition queries > publish two different feature services?
  • Publish a single UN feature service > reference the service in two maps in Pro > set different definition queries > publish two web maps?

I am concerned about the portal user's permissions: some users need to see and edit only one of the two web maps (the editors and viewers of the "Proposed" status should not edit or view the "In Service" map)

Thank you in advance for your help,

Lorenzo

ShamsMoaied
Occasional Contributor

Hello

Thanks for the information

I have a question about the tool update date source, when trying to update the source of the Editor map, a warning appeared that the " Communications Device not found in service" for almost all layer in the map. However, the Viewer map shows the same wringing, but the source updated correctly in the content>properties>source for the same feature service..

Any advice?

Thanks for the help

About the Author
Product Engineer in Esri Mobile apps team