Leo Yeh's Blog

SAS 系統管理 (55)

教學目標

初步了解如何解決 SAS Workflow Studio 工具無法登入伺服器的問題,請注意此篇不包括 HTTPS 連線的問題。

重點概念

首先在 SAS 9 平台 SAS Management Console 工具和 SAS Enterprise Guide 工具主要是採用連線設定檔的方式連接 8561 中繼資料伺服器就能夠進行操作,但是也有些工具是必須正確載入 sas-environment.xml 環境設定檔才能夠進行登入,像是 SAS Workflow Studio 工具。

接著 sas-environment.xml 環境設定檔主要是定義 SAS 客戶端應用程式可用的 SAS 環境集,並且產生 SAS Web Infrastructure Platform 的設定。此外 SAS Logon Manager 中有個 Servlet 主要是提供預設資訊和初始化部署,此時 sas-environment.xml 檔案會自動部署至 SAS 網站伺服器中,我們可以透過 「 http://hostname.example.com/sas/sas-environment.xml 」 網址取得。

再來「sas-environment.xml」設定檔主要是放置於「SAS-configuration-directory\Lev1\Web\WebServer\htdocs\sas 」目錄中,我們可能會要求應用程式客戶端與開發、測試和正式環境進行互動,此時我們就能夠透過 sas-environment.xml 設定多個環境定義。

設定檔內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0"  encoding="UTF-8">
<environments xmlns="http://www.sas.com/xml/schema/sas-environments-9.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sas.com/xml/schema/sas-environments-9.4
http://www.sas.com/xml/schema/sas-environments-9.4/sas-environments-9.4.xsd"

version="2.0">
<environment name="DEV" default="false">
<desc>Devolpement for SAS Workflow Studio</desc>
<service-registry>http://dev.example.com:80/SASWIPClientAccess/
remote/ServiceRegistry</service-registry>
<service-registry interface-type="soap">http://dev.example.com:
80/SASWIPSoapServices/services/ServiceRegistry</service-registry>
<service-registry interface-type="rest">http://dev.example.com:
80/SASWIPClientAccess/rest</service-registry>
</environment>
<environment name="UAT" default="false">
<desc>User Acceptance Test for SAS Workflow Studio</desc>
<service-registry>http://uat.example.com:80/SASWIPClientAccess/
remote/ServiceRegistry</service-registry>
<service-registry interface-type="soap">http://uat.example.com:
80/SASWIPSoapServices/services/ServiceRegistry</service-registry>
<service-registry interface-type="rest">http://uat.example.com:
80/SASWIPClientAccess/rest</service-registry>
</environment>
<environment name="PROD" default="false">
<desc>Production for SAS Workflow Studio</desc>
<service-registry>http://prod.example.com:80/SASWIPClientAccess/
remote/ServiceRegistry</service-registry>
<service-registry interface-type="soap">http://prod.example.com:
80/SASWIPSoapServices/services/ServiceRegistry</service-registry>
<service-registry interface-type="rest">http://prod.example.com:
80/SASWIPClientAccess/rest</service-registry>
</environment>
</environment>

元素描述說明

environment

此元素主要由 SAS 軟體內部使用,主要識別部署中可用的每個環境,這個元素皆有一個名為 default 的屬性,主要是用於標識客戶端應用程式的預設環境,若是多個環境設定為 true ,則屬性設定為 true 的最後一個環境將被設為預設環境。

desc

此元素主要是應用於客戶端應用程式中提供一個環境選擇清單中的項目名稱。

service-registry

此元素主要是包括環境的服務註冊表的網址,透過 SAS Web Server 的協定、主機名稱和連接埠的設定與 SAS Web Infrastructure Platform 進行存取。

其中設定檔中的服務註冊主要能夠允許桌面客戶端應用程式能夠確定中間層上所需要服務的位置,同時它還能夠使應用程式獲得環境中可用的服務列表,請注意,設定檔中的設定是指 SAS Web Server 的主機名稱和連接埠。此外若是我們修改 sas-environment.xml 設定檔的位置,則必須要修改 SASHome 目錄下的「sassw.config」設定檔中的 SASENVIRONMENTSURL 值,以利桌面端應用程式正常使用,像是 SAS Workflow Studio 工具。

最後當我們開啟客戶端應用程式,像是 SAS Workflow Studio 工具,若是出現「應用程式對於選取的 SAS 環境發生未預期的問題,請連絡您的系統管理員取得協助」錯誤訊息時,請先嘗試修改 sas-environment.xml 設定檔的內容中的項目名稱,若是無法載入正確的項目名稱則請透過 SAS Management Console 工具確認 「SAS Application Infrastructure」中與 SAS Web Infrastructure Platform 相關應用程式之內部連線和外部連線是否設定正常,以利載入正確的 SAS 環境設定檔。下一步則是測試是否能夠正常驗證使用者帳號密碼,並且進行登入,若是使用者帳號密碼能夠正常驗證帳號密碼,但是卻還是出現錯誤訊息,則請確認「sassw.config」設定檔中的 SASENVIRONMENTSURL 值是否為正確的完整網域名稱,避免發生「400 (Bad Request)」的錯誤訊息,以及確認「SAS-configuration-directory\Lev1\Web\WebAppServer\SASServer1_1\conf\server.xml
」設定檔修改 Connector 的 schema 屬性和 proxyName 屬性,發生「401 (Unauthorized)」的錯誤訊息,請注意,需要重新啟動 SAS Metadata Server 和 SASServer1_1 伺服器服務。但若是還有錯誤則就要開啟伺服器和客戶端工具對應的記錄檔查看原因,根據原因嘗試解決問題,請注意,若是錯誤訊息中顯示「handshake_failure」則與 HTTPS 連線有關,這部份又會使得問題更加複雜,所以建議先改回 HTTP 連線。

總結若我們要解決 SAS Workflow Studio 工具無法登入伺服器的問題時,可以先透過下述三個步驟進行問題解決。

  1. 確認 SAS 環境相關設定檔是否能夠正常讀取。
  2. 確認 SAS Web Infrastructure Platform 相關應用程式的設定檔。
  3. 確認 Server1_1 伺服器的設定檔,重新啟動 SAS Metadata Server 和 SASServer1_1 伺服器服務。

但請注意上述方式無法解決「handshake_failure」錯誤訊息,建議先改為 HTTP 連線,但於 SAS 環境相關設定檔是否支援 HTTPS 連線,根據官方文件的內容是有支援,但是要如何設定與網路環境和安全憑證非常有關,設定將會非常複雜,因此不在本篇進行說明。

相關資源

⬅️ Go back