Select to view content in your preferred language

Portal blank page after moving content directory to file share

210
5
a month ago
PhilippeVDV
Regular Contributor

Hello

I'm changing the setup of Portal to a HA setup.

The Portal was installed many years ago (10.5.1?) and was upgraded several times. Today the version is 11.2

We want to join now a standby Portal. Before doing so we migrated the arcgis portal content to a fileshare

First we manually copied the local content folder to the fileshare, next we edited the directory location through portaladmin ( System > Directories > content > Edit Directory)

After doing so & restarting the service & the whole portal machine, we saw a blank page when navigating to https://localhost:7443/arcgis/home  although the java processes and Portal service were running.

In the DEV tools of the browser we saw a 404 error for arcgis/sharing/rest/portals/self?f=json

Nothing to see in the Portal logs

In the catalina tomcat logs however:  

10-Feb-2025 13:58:47.586 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
10-Feb-2025 13:58:47.586 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/arcgis/sharing] startup failed due to previous errors

And in the localhost tomcat logs for the same timestamp:

10-Feb-2025 13:58:47.586 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountsRequestHandler' defined in class path resource [spring/gw-dispatcher.xml]: Cannot resolve reference to bean 'gwAccounts' while setting bean property 'accounts'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwAccounts' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'gwCommunity' while setting bean property 'community'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwCommunity' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'securityPermissions' while setting bean property 'securityPermissions'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityPermissions' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'gwContent' while setting bean property 'content'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwContent' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'gwSearch' while setting bean property 'search'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwSearch' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'cloudServiceManager' while setting bean property 'cloudServiceManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cloudServiceManager' defined in class path resource [spring/gw-cloudservice.xml]: Cannot resolve reference to bean 'agsServicePublisher' while setting bean property 'agsServicePublisher'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'agsServicePublisher' defined in class path resource [spring/gw-cloudservice.xml]: Cannot resolve reference to bean 'hostedServiceItemManager' while setting bean property 'hostedServiceItemManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hostedServiceItemManager' defined in class path resource [spring/gw-config.xml]: Cannot resolve reference to bean 'serverFederation' while setting bean property 'serverFederation'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverFederation' defined in class path resource [spring/gw-security.xml]: Cannot resolve reference to bean 'environment' while setting bean property 'environment'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'environment' defined in class path resource [spring/gw-config-beans-portal.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException

 

Not sure whether related, but I noticed afterwards that the initial local path to the content folder had a parameter isConnectionStringEncrypted :

{"type":"fileStore","provider":"FileSystem","connectionString":"D:\\arcgisportal\\content","isConnectionStringEncrypted":false}

When switching to the fileshare we kept this parameter, but during troubleshooting we removed it (Change the portal content directory—Portal for ArcGIS | Documentation for ArcGIS Enterprise seems to suggest that this is only relevant for Azure Blob or Amazon S3)

Long story short: after removing this parameter and rebooting the machine, Portal became available. And when creating new items new folders were created on the fileshare indeed (not in the local folder anymore)

 

However, 2 days later we needed to add a property through portaladmin (home > system > properties). After doing so, the Portal reboots automatically. But we ran into the same issue: blank page and the same tomcat logs. This time, I can't get it working anymore

 

Any ideas on this?

 

Best regards

Phil

 

@JonathanQuinn 

 

0 Kudos
5 Replies
CodyPatterson
MVP Regular Contributor

Hey @PhilippeVDV 

With such a severe reaction after this small change, it seems to me that a configuration file has not been updated automatically, and it is causing this cascading effect when the Portal reboots its services.

With something this impactful, ESRI Support would be the recommendation in my opinion. If you would like to look at the configuration files, I'd check out the config.json files that are in the portal directory, and then the specific mention of the "arcgis/sharing/rest/portals/self?f=json" location, this could also be a culprit. Just be sure to take VM or Machine backups along with webgisdr prior to interacting with ESRI Support in case anything breaks

Cody

0 Kudos
PhilippeVDV
Regular Contributor

We've opened a case with Esri support, but no fix yet

0 Kudos
MichaelVolz
Esteemed Contributor

Could this be a permissions issue where the new file share does not allow account used to run Portal service access to that location?

0 Kudos
PhilippeVDV
Regular Contributor

We run the Portal service through a group managed services account (gmsa) that has full control on the content folder in the fileshare

0 Kudos
PhilippeVDV
Regular Contributor

I'm wondering whether the UNC path to the content folder on the fileshare can have only 3 'levels' (e.g. \\ourfileshare\arcgisportal\content) or whether more levels are allowed (e.g. \\ourfileshare\Application_Data\gis\ArcGIS_Portal\Test\arcgisportal\content)

According to the doc: "When entering a shared network location, the connection string syntax is formatted in this way: "connectionString":"\\\\<machinename>\\arcgisportal\\content"

For multimachine ArcGIS Server sites we use UNC paths that go several levels 'deep'.

But is Portal indeed more restrictive?

Does anyone successfully configured a UNC path for the Portal content folder that goes more than 3 levels 'deep' ?

Thanks,

Phil

 

0 Kudos