"Timeout occurred waiting for response" error when adding database resource to Spectrum Technology Platform

Products Affected: Spectrum Technology Platform

 

Issue

When adding or updating a database resource in Spectrum's Management Console for Enterprise Routing Module (ERM) or Enterprise Geocoding Module (EGM), you may see one of two errors occur:

In newer versions of Spectrum (11.0 and newer), this error appears in the wrapper.log:

INFO   | jvm 1    | 2018/06/01 15:28:13 | ERROR [ProductResourceConfigurationJAXRSService] Error updateConfigurations
INFO   | jvm 1    | 2018/06/01 15:28:13 | com.pb.spectrum.platform.server.config.api.resource.ProductResourceConfigurationException: java.lang.Exception: Timeout occurred waiting for response

In older versions (11.0 and older) you may see an error like these:

error occurred in message handler [com.pb.spectrum.platform.server.common.integration.springintegration.hazelcast.HazelcastTopicOutboundEndpoint#50]
------------------
Source: System.Web.Services
 
StackTrace:    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Group1.ESD.WebServiceProxies.ProductResourceConfiguration.ProductResourceConfigurationManagerService.create(productResourceConfiguration configuration)
   at Group1.ESD.EnterpriseServer.PlugInSDK.Support.Context.ProductResourceConfigurationServiceImpl.Create(ProductResourceConfiguration configuration)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.CreateResourceConfiguration(IDatabase database)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.RegisterDBProperties(IDatabase database)
   at Common.Applications.DatabaseResource.DatabaseResources.DatabaseResourcesControl.AddDatabase(IDatabase database)
Error updating DB Resource
------------------
Source: System.Web.Services
 
StackTrace:    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Group1.ESD.WebServiceProxies.ProductResourceConfiguration.ProductResourceConfigurationManagerService.update(productResourceConfiguration configuration)
   at Group1.ESD.EnterpriseServer.PlugInSDK.Support.Context.ProductResourceConfigurationServiceImpl.Update(ProductResourceConfiguration configuration)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.UpdateResourceConfiguration(IDatabase database)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.UpdateDBProperties(IDatabase database)
   at Common.Applications.DatabaseResource.DatabaseResources.DatabaseResourcesControl.ModifyDatabase()
Error creating DB Resource [Java heap space]
------------------
Source: System.Web.Services
 
StackTrace:    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Group1.ESD.WebServiceProxies.ProductResourceConfiguration.ProductResourceConfigurationManagerService.create(productResourceConfiguration configuration)
   at Group1.ESD.EnterpriseServer.PlugInSDK.Support.Context.ProductResourceConfigurationServiceImpl.Create(ProductResourceConfiguration configuration)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.CreateResourceConfiguration(IDatabase database)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.RegisterDBProperties(IDatabase database)
   at Common.Applications.DatabaseResource.DatabaseResources.DatabaseResourcesControl.AddDatabase(IDatabase database



Error occurred in message handler [com.pb.spectrum.platform.server.common.integration.springintegration.hazelcast.HazelcastTopicOutboundEndpoint#52]
------------------
Source: System.Web.Services

StackTrace:    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Group1.ESD.WebServiceProxies.ProductResourceConfiguration.ProductResourceConfigurationManagerService.create(ProductResourceConfiguration configuration)
   at Group1.ESD.EnterpriseServer.PlugInSDK.Support.Context.ProductResourceConfigurationServiceImpl.Create(ProductResourceConfiguration configuration)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.CreateResourceConfiguration(IDatabase database)
   at Common.Applications.DatabaseResource.Databases.DatabaseService.RegisterDBProperties(IDatabase database)
   at Common.Applications.DatabaseResource.DatabaseResources.DatabaseResourcesControl.AddDatabase(IDatabase database) 

Cause

This issue is due to the system running out of the specific set of memory set aside for the module before it is able to finish configuring/saving the database resource.

Resolution

UPDATED: March 9, 2020
Navigate to the server/modules/[ModuleName] directory and increase the -xmx value set within the java.vmargs file.  Once the changes are made to the java.vmargs file, restart the Spectrum server to ensure that the changes are in effect.

For example, for ERM, the file can be found under the Spectrum install directory's server/modules/routing directory
Or, for EGM International, the file can be found in server/modules/igeocode-global

Open the java.vmargs file and increase the number in the -Xmx parameter (in multiples of 1024). Then, restart spectrum so the changes take effect.


*Note - do not set the -Xmx parameter higher than the amount of memory on your machine