The background map image for a geo map in a SAS® Visual Analytics report does not appear in SAS® Viya® 3.5 or on the SAS® Viya® platform


Problem

When you work with a geo map in SAS Visual Analytics, you should see the background map image on which your data is populated, as shown in this example:

However, if the background map image does not load, you see your data on a gray background rather than on the map image, as shown here:

The cross-domain proxy service makes requests for geo-map image tiles in real time as you interact with the map. The default mapping servers that are used in this process are OpenStreetMap servers that are hosted at SAS. Therefore, when the cross-domain proxy service does not have external internet access to interact with these servers, you do not see the background map images.

Solution

To resolve this problem, you can configure the cross-domain proxy service to request the map images through a forward proxy server. There are different methods for doing this depending on the release of SAS Viya you are using. 

The SAS® Viya® Platform

To resolve this problem in a SAS Viya platform environment, you can use the outboundHttpProxyUrl and/or outboundHttpsProxyUrl configuration properties to add a forward proxy that the cross-domain proxy will use to request the map images through. Those properties are available in the sas.crossdomainproxy.system configuration definition. See Cross-domain Proxy Service in the Service Configuration Properties: Reference section of the SAS® Viya® Platform Administration Guide

You can edit those options in SAS® Environment Manager: 

  1. Log on to SAS Environment Manager as an administrator and select Configuration ► All services ► Cross-domain Proxy service.
  2. Click the New Configuration button and add the sas.crossdomainproxy.system configuration definition if it doesn't already exist. If you have already defined a sas.crossdomainproxy.system configuration definition, you can edit the existing one. 
  3. Modify the outboundHttpProxyUrl and/or outboundHttpsProxyUrl properties accordingly. Refer to the documentation link above for more information about these properties. 

SAS® Viya® 3.5 

To resolve this problem in a SAS Viya 3.5 environment, you can configure JVM options, as shown below, so that the cross-domain proxy service can request for the map images through a forward proxy server. There are two methods that you can use to add these options. 

Method 1 - SAS® Environment Manager

  1. Log on to SAS Environment Manager as an administrator and select Configuration ► All services ► Cross-domain Proxy service.

2. Click the New icon, shown below, in the top right of the window to add a new configuration instance.

3. In the Select Definition dialog box that is displayed, select jvm. This action displays the New jvm Configuration dialog box that is shown below.

4. Click the Add property button to open the Add Property dialog box.

5. In the dialog box, add the proxyHost JVM option by filling in the Name and Value text boxes with the values shown in the dialog box below:

Click Save to add that property after filling in the Name and Value text boxes.

6. Repeat steps 4-5 to add the proxyPort option, and use the following values for the Name and Value text boxes:

Name: JAVA_OPTION_HTTPPROXYPORT

Value: -Dhttp.proxyPort=http-proxy-port-number

7. In order for the cross-domain proxy service to make HTTPS requests through the forward proxy, you need to add the following HTTPS proxyHost and proxyPort options:

8. Repeat steps 4-5 to add the nonProxyHosts option and use the following values. Add the host name and IP address of the server(s) where the SAS Configuration Server (consul) and SAS Logon Manager are running to the nonProxyHosts option:

9. If your forward proxy server requires authentication, then you also need to repeat steps 4-5 to add the following options:

10. Click Save to save all of the new JVM options to the cross-domain proxy service.

11. Restart the cross-domain proxy service by submitting the following command on the machine or machines where the cross-domain proxy service is deployed:

sudo service sas-viya-crossdomainproxy-default restart

After you perform the steps above, the cross-domain proxy service can make external requests to the mapping server through a forward proxy.

Method 2 - The crossdomainproxy.conf file 

As an alternative to adding the JVM options in SAS Environment Manager, you can put them in a file. Consider this option when your proxy server requires authentication and you do not want the proxy server password to be visible in SAS Environment Manager. 

  1. Navigate to the /opt/sas/viya/config/etc/sysconfig/ directory on the server where the cross-domain proxy service is running. 

2. In that directory, create a file that is named crossdomainproxy.conf. The file needs to be visible only to the sas account. 

3. Add the following contents to that file:

export JAVA_OPTION_HTTPPROXYHOST=-Dhttp.proxyHost=http-proxy-server-name
export JAVA_OPTION_HTTPPROXYPORT=-Dhttp.proxyPort=http-proxy-port-number
export JAVA_OPTION_HTTPSPROXYHOST=-Dhttps.proxyHost=https-proxy-server-name
export JAVA_OPTION_HTTPSPROXYPORT=-Dhttps.proxyPort=https-proxy-port-number
export JAVA_OPTION_HTTPNONPROXY=-Dhttp.nonProxyHosts="host-name|ip-address|host-name|ip-address"
export JAVA_OPTION_HTTPPROXYUSER=-Dhttp.proxyUser=proxy-username
export JAVA_OPTION_HTTPPROXYPASSWORD=-Dhttp.proxyPassword=proxy-password

4. Save the file and then restart the cross-domain proxy service by submitting the following command on the machine where the cross-domain proxy service runs: sudo service sas-viya-crossdomainproxy-default restart

5. If the cross-domain proxy service is running on multiple machines, repeat steps 1-4 above on each machine.