ArcGIS Server 10 Migration and WFS Services

December 20, 2011
Jeremy

Jeremy Monn

As readers of Ashley Buzzeo’s latest blog post already know, Towson University’s Center for GIS (CGIS) has migrated its hosted ArcGIS Servers from ArcGIS Server 9.3 to ArcGIS Server 10.  As the migration took place all GIS services were reviewed to make sure they were functioning properly.  While most services were converted without issue a handful would not start post-migration.  After several hours of troubleshooting, the problem was identified as being related to a unique subset of WFS-enabled map services.

What was interesting about this problem was that several WFS-enabled map services worked properly after the migration while a few did not.  Knowing this, I knew that the problem’s solution existed in understanding how the functioning and malfunctioning WFS-enabled map services differed.   By comparing the information contained in the REST endpoints for a functioning and malfunctioning WFS-enabled map service I noticed one difference: the functioning WFS-enabled map service had unique field aliases while the malfunctioning WFS-enabled map service had two fields that had the same alias.  Making the malfunctioning map service’s field aliases unique solved the problem as I was able to start the service and confirm it worked properly.   All the other malfunctioning WFS-enabled map services were also explained by duplicate field aliases.

While this blog touched on only one issue related to ArcGIS Server 10 migration, there are many other issues that one may experience.  Visit ESRI’s Migration to ArcGIS Server 10 page as a starting point for answers to other migration-related questions you may have.


Guest Blog: A Time to Give – ArcGIS Online Research Leads to Volunteerism Mapping Application

December 13, 2011

Michael Bentivegna

Doesn’t it seem like the pace of life is getting faster and faster, and that technology is at least supporting this change, if not causing it? With every time-saving productivity gain that technology provides, the expectations for the speed and the amount of work to be completed in any time frame seem to just increase.  Within the field of GIS (Geographic Information Systems), this expectation is being driven by consumers that want to search for and view information in a spatial context (a map). In the world of media mashups, the publishing of new GIS data and applications is expected in a few weeks, if not days, and updates are expected to be nearly instantaneous.

For GIS professionals, Esri’s ArcGIS Online comes to the rescue or further enables this trend (depending upon your perspective). This platform enables the discovery, sharing, and display of GIS data in a free cloud-based software-as-a-service, social GIS ecosystem. In plain speak, it allows you to create map data mashups with great Esri hosted/developed basemaps and lots of national and global scale GIS data. In the past few months, Esri has added the capability to upload basic spreadsheets with address information and other data in GIS formats that are processed and made available through the site. They even offer templates to provide simple applications with functions like search, measure, identify, and social media integration. All of this can be shared within a group of your choosing or out to the greater public, embedded in your website. Exciting stuff!

A few weeks ago I had the opportunity to dig into ArcGIS Online so I could share the new capabilities to CGIS’s staff in a brown bag lunch, and I am glad I did. Later the very same day, I was in a meeting with the Maryland State Geographic Information Officer (GIO), Barney Krucoff, where we were asked to assist with a hurry-up effort to push information about volunteer locations out to the public for the holidays. After listening to the requirements of rapid and ongoing development of volunteer location data by interns and the need for a simple application to find the sites, I mentioned that this was a perfect project for ArcGIS Online. With the go-ahead given to investigate, I took a draft cut of the volunteer locations that the interns had compiled in Google Docs and within a few hours had the data set up on ArcGIS Online for review. Within a week of data refinement by the interns, investigation of the data update workflow process, and tweaking of the template application, we had the end product mapping application ready to be embedded in Governor O’Malley’s Maryland Stronger Together website. With the site up and running, the interns were trained to edit and update the data using ArcGIS Online tools, and the site was released to the public a few days later. You can see the map under the locate charitable organizations near you link in the website above. This is a great example of success in meeting the new accelerated expectations, and in this case, with free hosting.

I happily followed an interoffice email thread a few weeks after the Maryland Stronger Together site was launched, wherein team members were looking for an organization for DECO to donate food to this year (as we have done for the past several years). Without any prompting on my part, the site was used to find the nearest location to donate. I hope that in this time of need and giving, this tool might make it that much easier for you to find a place to donate to or to volunteer for during this busy holiday season.

View the Maryland Stronger Together map in mobile device.


What is the Center for GIS Doing for GIS Day 2011?

November 14, 2011
Jeremy

Jeremy Monn

The Center for GIS (CGIS) will be taking part in GIS Day this Wednesday, November 16, 2011.  CGIS employees, along with Community College of Baltimore County students, will travel to Lutherville Laboratory Elementary School this year for GIS Day.  The event, organized by Eric Cromwell (Coordinator of Elementary Science for Baltimore County Public Schools), will involve approximately 120 fourth grade students.  The students will be divided into groups and each group will complete a Global Positioning System (GPS) quiz consisting of multiple choice questions that have numerical answers (e.g. Abraham Lincoln was the [fill in the blank] President of the United States.).  All of the possible answers will correspond to marked locations on a field at the school.  Once the groups have completed the quiz, each will be provided with a Garmin e-Trex GPS unit and asked to walk to the locations marked with their answers while the GPS unit tracks their route.  Each group will then map the routes using Google Earth and if the group answered the questions correctly their route will appear as a star.

In addition to the event at the Elementary School, CGIS staff will also attend two events. For the past several years, CGIS has attended the Maryland State Highway Administration’s (SHA) GIS Day event located at the SHA building in Baltimore.  At this event, CGIS staff will manage a booth and provide information on current projects and initiatives that CGIS is involved in.  If you will be attending SHA’s GIS Day event stop by CGIS’ booth and see what we are up to! Also, CGIS will attend Central Pennsylvania’s GIS Day celebration that will feature an exhibit hall, geo-challenge, genius bar, workshop, demonstrations and plenty of networking.


Migrating MD iMap to ArcGIS Server 10 – Testing Results

October 24, 2011

Ashley

The past few weeks have been devoted to testing the migration of MD iMap to ArcGIS Server 10.  It is important to limit potential issues and ensure all services and applications function appropriately after the upgrade. If you have ever successfully done an upgrade, you know how important it is to test, test, and do more testing.

Because ArcGIS Desktop, ArcSDE and ArcGIS Server are spread out among multiple machines within the MD iMap infrastructure, we can upgrade the different components at different times.  So, we are only upgrading ArcGIS Server at this time.  And, MD iMap has seven instances of ArcGIS Server:  2 staging, 1 pre-release and 4 production servers.  We upgraded one of the two staging instances to ArcGIS Server 10 so we could test away.  The Center for GIS’ goal is have all instances upgraded by the end of November.

Please note that ArcSDE is still at 9.3.1 until we do a domain migration at the end of November.  Once the migration is complete, we will upgrade ArcSDE to 10.0 as well.

While I understand that every environment is different, I wanted to share two problems we have discovered in our upgrade testing.

No special characters in WMS-enabled services

Issue:  Several map services would not draw in ArcCatalog and we received the following error when adding them to ArcMap: “Could not add the specified data object to the map.”

Workaround:  After speaking with Esri Technical support, they confirmed this is a known bug – #NIM066837 Need to support additional special characters when using WMS.  The bug states that a WMS enabled map service that contains a comma (,), tilde (~), parenthesis (()), ² , ° , ? , and ` in the layer name won’t start.

At this point the only workaround is to either disable the WMS capability in the affected map services, or to rename the layers in the MXD.

Address Locators in 9.3.X ArcSDE Database do not work with a Geocode Service at 10.0

Issue: When trying to create or start a geocode service at ArcGIS Server 10 that utilizes an address locater in a 9.3.1 ArcSDE database, the following error appears: “Configuration GeocodeServices/MD.State.MDStatewideTest.GeocodeServer can not be started. Server Object instance creation failed on machine mdimap-XXX-X.  The connection property set was missing a required property or the property value was unrecognized.”

Workaround:  Publish the address locator from a file geodatabase.  We did this and the ArcGIS Server 10 geocode service now starts and works appropriately. I posed my question to Esri’s technical support and they said that they have seen other cases where a new address locator was needed to work past the error.  They also said that sometimes a locator built with 9.3.1 will publish to server 10, but practically speaking is finding that more often than not, they don’t. This is especially the case with customized address locator.

Tech support concluded that there are 2 options.

1. Publish the locator from a file geodatabase.  There has been some unusual behavior with older address locators stored in SDE geodatabases. **Honestly, at ArcGIS 10, you’ll get better performance with file-based locators anyway.

2. Create a brand new address locator in ArcGIS 10For best practices, it is recommended that you re-create the address locators using the current version of ArcGIS.

This brings me to my last point. I inquired again to the Esri technical support person to expand on his comment “…at ArcGIS 10, you’ll get better performance with file-based locators” so I could fully understand what he meant. His response indicated that prior to 9.3.1, ArcSDE would be faster, however, at 9.3.1 and later, benchmark testing has indicated that file geodatabases are actually faster for not just geocoding services, but also for serving vector data! He said that Oracle CAN be faster with Vector data, but only if the database is tuned very well.  This has more to do with I/O against the database – and I/O is relatively limited with a file geodatabase.  He stated he would use ArcSDE when editing, with versions, etc. and he suggested a presentation on ArcGIS Server Performance and Scalability–Performance Factors and Optimization.

For those of you like me, who don’t understand what I/O is, here is how the Esri technical support person explained – “Basically, it has to do with how the bus (the part of the computer that connects the motherboard to the hard drive) sends and receives data back and forth to the database software. Fewer paging operations have to be performed against a file geodatabase because pages can be cached ‘in memory’ as opposed to accessing the database. Fewer resources are being used to achieve the same goal.”  Very cool!

While we did run in to these two issues during our testing, there are workarounds that we will put into place.  These two issues will not hinder us from pushing forward with the migration of the remaining six instances to ArcGIS Server 10.  Next steps you may ask? More testing, more research and more fun!


VIDEO: Education Meets the Workforce – Student Interns Get Hands-on GIS Experience

October 11, 2011

Jenn

Our newest Education Meets the Workforce video features student interns from Towson University’s Center for GIS. The interns, Justin Mannion, James Parmeter, and Alex Stapleton, work closely together on data collection processes in connection with the Maryland Broadband Map project. The Maryland Broadband Map allows residential and business consumers to discover the high-speed Internet services and providers in their neighborhood, anywhere in Maryland.

Watch the video to learn more about how the interns are contributing to the Maryland Broadband Map Project and to other projects at CGIS.


“Mapping Out” Towson University’s Community Engagement

September 29, 2011

Kelsey

This is my first blog post and it is coming at a pretty great time. I have been in this new position for about a month and a half and finally feel like I know my way around TU in the Community. I have begun meeting with faculty and staff members and have even been working on a new feature that will be debuting soon!

One of the most useful features that I’ve found on TU in the Community is the Community Project Map.

With this map, you can enter an address to find community engagement projects close to you. You can click on the markers to learn about each opportunity. You can also be taken to the project listing within the TU in the Community database to find information about the project, contact information, and more.

It is a simple way to see what opportunities are available where you live or work and it’s a great way to see how you can get involved. As more faculty, staff, students and community members realize how great of a resource the TU in the Community website is, they can start collaborating with others on community engagement projects. It’s a win for everybody involved! Look at the map and get connected today.

For more information about the map or anything related to TU in the Community, contact  TUintheCommunity@towson.edu or 410-704-2678.


Lessons Learned III: Creating a KML-Enabled ArcGIS Server Map Service

September 6, 2011
Jeremy

Jeremy Monn

Apparently my favorite topic to blog about is creating a KML-enabled ArcGIS Server (AGS) map service, because I find myself writing about the same topic even though I have written about this topic in two previous blog posts.  The impetus for writing about this topic a third (and hopefully final) time is that I found myself troubleshooting a KML-related issue that I am sure other GIS practitioners have or will come across.   Provided below is a description of each issue and its solution.

ISSUE ONE

When panning to a new location in Google Earth, the data that the KML-enabled AGS map service references disappears.

Explanation

The problem here likely stems from how the KML file was configured when it was created from an AGS map service.   There are specific configuration settings that deal with when or how a refresh of the KML file occurs.  In this case, one should configure the KML file so that it refreshes once the user stops panning.

Solution

Open the KML file with a text editor and search for the <viewRefreshMode> tag.  Make sure the value inside this tag is set to “onStop”.  Additionally, if any <refreshMode> and <refreshInterval> tags exist remove them if you want the refresh to be solely triggered by a user panning.

ISSUE TWO

The KML-enabled AGS map service used returns a URL when a feature is identified in Google Earth, but the URL does not work.

Explanation

An obvious reason why this might occur is because the URL provided in the dataset’s attribute  table was entered incorrectly.  Another less obvious reason is that special characters in the URL are being replaced by other characters.  For example, the “&” character may be replaced by the “&amp” string.

Solution

Obviously if the data was entered incorrectly in the source data’s attribute table then one has to correct the mistake.  However, when one has an issue where the “&” character is being replaced    by the “&amp” string then one should find out what MXD is being used for the AGS service,      save it as a MSD file, and re-point the AGS service to the newly created MSD file.  Once the AGS service is refreshed, the URLs should be correct in the service’s KML file.


Guest Blogger: Geographic Information Systems (GIS) technology is great in Maryland, and it just got better!

August 15, 2011
Kenny Miller Headshot

Kenny Miller

GIS is a strategic, core business enabler, and a valuable analysis and communications tool state agencies use in their work with other state resources and the public. GIS mapping products are increasingly integrated in the state’s accountability and business processes, as well as in publicly available applications. Scores of live, dynamic maps–AgPrint, GreenPrint, GrowthPrint, Stream Health, Recovery, Budget, Energy, Broadband, PlanMaryland, and VisitMaryland, to name just a few–are readily accessible through www.maryland.gov.


Virtually all of Maryland’s GIS applications are built on Esri technology platforms and products. Esri is the GIS software leader and has become the state’s de facto GIS standard. Standardizing on Esri GIS enables the state’s agencies and business partners to keep the geospatial train on the same gauge of track, thereby securing the benefits of consolidation, interoperability, and cost efficiency. But this is only part of Maryland’s Esri GIS story. We’ve been working with Esri to forge an Enterprise License Agreement (ELA) that covers widespread GIS software use and support across state agencies and are pleased to announce that on August 10, 2011, the Maryland Board of Public Works approved the contract.

The ELA offers numerous advantages: lower unit cost of Esri software; fixed predictable overall costs over the life of the agreement; flexibility to deploy Esri software products when and where needed; streamlined procurement processes; increased leverage for achieving statewide GIS standards and interoperability; offer of GIS to agencies that otherwise could not afford GIS; and continuous support of the geospatial data and mapping requirements driven by agency and administration initiatives.

The major cost benefit of the ELA is its offer of unlimited use of Esri mainstream software products, upgrades, maintenance, and support for a fixed price. These items are unique and proprietary to Esri and are not available from an alternate source. Besides economizing the anticipated uptick in GIS use by the primary GIS agencies, the ELA encourages smaller or current non-GIS user agencies to start deploying GIS. The increase in deployment of Esri technology throughout state government will lower the unit cost.

The final price of the ELA was negotiated to a level approximately equivalent to current spending for Esri products and support. A nominal annual price escalation is permitted during the life of the contract. There are 56 state agencies and entities named in the ELA, with the option to add others. The fixed contract cost will be distributed to each agency in a proportion to its level of license consumption.

The ELA will become effective September 1, 2011. The Department of Information Technology will be responsible for Esri ELA contract administration, management and oversight, and is currently developing processes and a web presence for requesting and delivering products covered by the ELA.

Kenny Miller has held many leadership positions in Maryland at the Departments of Natural Resources and Information Technology, as well as professional organizations promoting the adoption of GIS technology in the state.


Guest Blogger: The 2011 Esri International User Conference Experience

July 21, 2011

Ken Juengling

In my role as Project Manager for the Center for GIS, I am involved in many interesting efforts that leverage GIS technology to solve critical issues in today’s ever changing world.  Having just gotten back from the premier GIS conference, the Esri International User Conference, I feel a little overwhelmed – as I do every time I get back – and energized by Jack Dangermond’s plenary session that opened the conference.

Here are a few of my thoughts from the conference, which attracted over 15,000 attendees (about 5,000 were there for the first-time!).

Hopefully, you’ll have the opportunity to attend next year’s User Conference, which happens July 23-27, 2012.



Starting and Stopping AGS Services Using a Python Script

July 7, 2011
Jeremy

Jeremy Monn

Updating datasets used by an ArcGIS Server (AGS) service can be tedious and time consuming. The major reason for this is that a dataset stored in a file geodatabase or SDE that is used by an AGS service is locked.  This means that it you want to replace the dataset with an updated dataset you first have to stop any AGS service using the dataset.  The time consumed increases if multiple AGS services use the same dataset or if there are several copies of a single AGS service using the dataset.  The tediousness of the task is apparent when one must navigate throughout ArcCatalog to 1) rename and import the updated dataset into the appropriate file geodatabase or SDE instance and 2) to start and stop the AGS service(s) using the dataset.  This blog entry focuses on a Python script I wrote that addresses the later by reducing the need to navigate throughout ArcCatalog to start, stop, and restart services that need updated.

My search for a solution began by perusing the ESRI ArcScripts page for a script that starts and stops services on an AGS server.  Luckily I came across the AGSSOM script, which not only allows one to start and stop services on one or more AGS instances, but it also allows one to restart and publish services.  If one wants to run the executable from Windows command line, the README documentation provides clear instructions.  However, my goal was to call the AGSSOM.exe from a model I built using Model Builder.  In order to do this, I wrote a Python script that stops, starts, or restarts a user-specified service on two AGS instances and incorporated the script into a model that the user runs from ArcToolbox.  The script is provided below with descriptive comments italicized.

# Import system modules

import sys, string, os, arcgisscripting, re

# Create the Geoprocessor object. 

gp = arcgisscripting.create()

# User of Geoprocessing Tool specifies the name of the service being updated (ServiceName) and whether the service is to be started, stopped, or restarted (OperationGUI)

ServiceName = gp.GetParameterAsText(0)

OperationGUI = gp.GetParameterAsText(1)

#The user’s choice for starting, stopping, or restarting the service is translated to the appropriate string used as an argument to run the AGSSOM.exe 

if OperationGUI == ‘Start’:

Operation = ‘-s ‘

if OperationGUI == ‘Stop’:

Operation = ‘-x ‘

if OperationGUI == ‘Restart’:

Operation = ‘-r ‘

# Execute the AGSSOM.exe in order to start, stop, or restart the user-specified service on two AGS instances (StagingAGS and PreReleaseAGS)

os.system(r”D:\AGS\AGSSOM.exe StagingAGS ” +Operation+MDiMapServiceName)

os.system(r”D: \AGS\AGSSOM.exe PreReleaseAGS ” +Operation+MDiMapServiceName)

It is important to note that the script above will only work properly if the user has administrative rights to the specified AGS instance(s).  Additionally, one must note that only the AGS instance names (StagingAGS and PreReleaseAGS) are specified above.  This means that the script will only work properly if the AGSSOM.exe is stored on a computer than is on the same network as the AGS instances.  Therefore, the script above must be tailored to the specific environment in which it is used.

Excluded from this blog post is a description of a second model I created that simplifies the renaming and importation of newly updated datasets used by an AGS service.  This model, employed with the model that utilizes the Python script described above, significantly reduces the time and tediousness of updating datasets used by an AGS service.  A description of the second model will be provided in a future blog post.


Follow

Get every new post delivered to your Inbox.