arcserver常見問題處理

arcserver是GIS應用服務器的一種,可以提供地圖服務發佈、緩存地圖生產、要素服務查詢、地圖服務分析等多種GP服務。arcserver在提供服務的同時,其本身也是一種服務(相對於操作系統而言)。arcserver發佈的站點服務使用tomcat發佈(常見的如:http://localhost:6080/arcgis/)。我們可以在 server10.x\Server\framework\runtime\tomcat\bin(windows操作系統中)下找到tomcat 的痕跡。在配置多機負載均衡的時候,安裝Web Adaptor會用到Web Server IIS。

作爲一種網絡服務,別的網絡服務具有的要素,arcserver它都具有。如服務協議、IP、端口、所屬用戶、數據的共享讀寫等等。同樣,由於它又是通過tomcat發佈,tomcat具有的缺點,它也都具有。相比較而言,它又比其他的一些GIS服務器(如GeoServer、Mapserver、TileCache等)使用簡單、易操作,基於這些優點,我們常常忽略它的缺點,它幾乎成了webgis 中GIS服務器的標配,但是一旦發生問題,又是我們這些喜歡簡單、易操作的選手們不願看到的,甚至是一件非常棘手的問題。

1、賬戶問題

arcserver賬戶分爲系統賬戶和站點賬戶。

系統賬戶是相對於操作系統而言的,它規定了arcserver對操作系統的共享、控制、讀寫、修改、特殊等權限。很多關於文件操作方面的問題都發生在這個層面。比如:不能註冊數據集、arcserver集羣不能共享訪問、前後系統賬戶不一致遺留的配置文件,arcserver服務不能正常啓動等等。倘若不能註冊數據集,你必須確保你遠程存儲的操作系統具有與本地arcserver一樣的賬戶和密碼,也就是說,你的本機賬戶是arcgis ,密碼是123456,那麼你的遠程操作系統也應該有類似的系統賬戶arcgis ,然後密碼是123456,而且遠程文件應該是可以供本機共享訪問的,arcserver集羣不能共享訪問的解決方式也如以上。前後系統賬戶不一致遺留的配置文件問題,可以是單方面更改arcserver系統賬戶造成的,也可以是多次重裝arcserver造成的,這時就需要更改現有配置文件,相應的系統用戶配置文件既有在安裝文件夾server下的,也有在config-store文件夾mathine下的,應當同時修改爲一致,以上過程過於繁瑣,另一種解決方式是在arcserver中的Configure ArcGIS Server Account配置引導程序中重新新建系統賬戶。如果是重新安裝arcserver,那麼須確保遺留的配置文件被清除乾淨,之後從新創建arcserver系統賬戶。

站點賬戶

在安裝arcserver後,瀏覽器會跳出一個創建主站點的界面,這個頁面的賬戶就是站點賬戶。很多時候我們其實是在跟這個賬戶打交道,比如發佈地圖服務,調用地圖服務等等。相應的配置文件在 tomcat下和 config-store下面。在使用的過程中,我們常常會忘記該賬戶,可以在server\ArcGIS\Server\tools\下找到passwordreset命令。cmd窗口調用passwordreset命令:

鍵入:PasswordReset -l (查看主站點賬戶)

鍵入:PasswordReset -p 主站點賬戶(修改密碼)

也或者打開config-store\security\super\super.json,查看當前主站點的賬戶和密碼。

2、服務站點不能啓動

arcserver站點服務就是我們上面提到的主站點,它以服務運行。倘若服務站點不能啓動,我們不僅僅要考慮服務是否啓動、其IP地址、端口是否正確,還需考慮apache、tomcat 等是否啓動。應該說站點服務牽涉面是非常多的,需要一個一個排查。確認在瀏覽器輸入了正確的網絡地址,站點服務沒有反應後,進入操作系統的服務策略裏,找到arcserver服務項是開啓狀態的,此時arcserver站點服務有可能能夠進入。如果arcserver服務項開啓後,刷新或者過了幾分鐘後該服務又停了,則需要查看端口號是否被佔用或者阻擋了,netstat命令查看是否有其他程序在使用6080端口(arcserver站點服務默認端口),有則停掉,再重啓arcserver服務項,再回瀏覽器查看arcserver站點服務是否起來。確保防火牆開放了6080端口,再重啓arcserver服務項,再回瀏覽器查看arcserver站點服務是否起來。如果以上arcserver站點服務還是沒有起來,則重啓apache服務項,順帶進入server10.x\Server\framework\runtime\tomcat\bin文件夾下,點擊shutdown關閉tomcat,再點擊startup啓動tomcat,瀏覽器頁面即可進入arcserver站點服務。當然不排除其他方面的原因,倘若你的瀏覽器不兼容,也可能進入不了站點服務;arcserver服務項並沒有使用arcsrver系統賬戶,也可能啓動不了。

3、不能發佈服務

我們將做好的msd工程文件發佈的時候有時候會出現服務發佈失敗的問題,進入calog或者站點服務器發現publishing工具是停止狀態的。這種問題的出現常常是軟件不兼容造成的。如果你的destop和server版本不一致也很容易造成這個問題,更多的是操作系統的版本與你當前的server版本不一致問題。此時可以在esri官網下載相應的補丁包,用以安裝新的publishing工具確保服務能夠發佈。當然,publishing工具是一個GP服務工具,我們也可以自己將publishing寫進GP工具集中。

重新構建publishing工具即可。

4、切圖中斷、切片不全

倘若你的數據量比較大,少則5t,多則10t,20t,arcserver切圖是一件非常費時的任務,其io吞吐量是非常巨大的,較低IO的硬盤、網絡傳輸、CPU都有可能造成切圖中斷。這時需要重新啓動你的切片工具,選擇recreate empty tiles即可。由於矢量範圍過碎,切片會有黑塊現象,這時你需要將status.gdb文件拷貝出來,找出切圖失敗的區域,重新切圖,並將切後的瓦片重新導入原有切片數據集中。

5、修改arcserver web站點端口號

arcserver web站點服務使用tomcat發佈,tomcat放置在C:\Program Files\ArcGIS\Server\framework\runtime\tomcat下,打開tomcat\conf \erver.xml配置文件,找到port字樣,arcserver web站點服務默認爲6080,你可改爲常見的80 端口,同時在\arcgisserver\config-store\machines\GENUINE.MICROSOFT.COM.json文件中一併修改端口爲80端口。以上也可以修改http://localhost:6080/arcgis/中的主機名,localhost改爲gisserver,變成http://gisserver:80/arcgis/。當然,也可以使用Web Adaptor修改。

6、集羣部署反向代理、負載均衡

地理信息服務的調度量一般是比較大的,當前單個計算機IO吞吐、運算能力等性能指標並沒有達到相應的水平,通常的考慮是做集羣處理。而地理信息服務包含了地圖服務、地圖切片服務、要素服務、覆蓋服務等多種服務,集羣又做了進一步地劃分,使用多機多服務集羣方式滿足客戶端多樣化的請求。同時,處於安全考慮,我們不希望服務器集羣直接暴露在客戶端,於是又產生了反向代理服務器中間層,使客戶端的請求轉發到集羣服務器上(相反,正向代理:客戶端不希望暴露在網絡中,使用正向代理轉發通信)。利用Nginx做反向代理可以完成這一要求,此時出現的問題是,客戶端的請求並沒有到達內部的服務器中,而是直接跳至反向代理服務器的頁面上,此時就需要關閉反向代理服務器與內部集羣服務器衝突的端口。

打開nginx.conf文件

server {
        listen       <span style="color:#ff0000;">80</span>;
        server_name  <span style="color:#ff0000;">localhost</span>;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location <span style="color:#ff0000;">/</span> {
            root   <span style="color:#ff0000;">html</span>;
            index  <span style="color:#ff0000;">index.html</span> index.htm;
        }
}

1、 window中直接在本地文件中添加域名映射,繞過DNS域名解析服務器,Nginx是可以訪問虛擬主機的。在文件C:\Windows\System32\drivers\etc\hosts中添加兩個域名映射關係:     

<span style="color:#ff0000;">#這是新增部分</span>
127.0.0.1     com.zhangsan.test
127.0.0.1     test.zhangsan.com
 

2.在本地分別安裝tomcat7和tomcat8,端口分別爲8081、8082,啓動兩個空的tomcat。

 3.在nginx.conf中配置反向代理的信息,如下


    upstream mytomcat7{
       server 127.0.0.1:8081;
    }

     upstream mytomcat8{
    server 127.0.0.1:8082;
      }
    
    server {
        listen       8080;
        server_name  com.zhangsan.test  ;
        location / {
            proxy_pass http://mytomcat7;
        }
    }
    
     server {
        listen       8080;
        server_name  test.zhangsan.com  ;

        location / {
            proxy_pass http://mytomcat8;
        }
    }
    
      重啓Nginx後,在瀏覽器分別輸入http://com.zhangsan.test:8080/和http://test.zhangsan.com:8080/,可以看到,請求的頁面分別是tomcat7和tomcat8的主頁。
   4.負載均衡

     在上面的配置基礎上,在nginx.conf中配置負責均衡的信息,如下

 #gzip  on;
    
    upstream mytomcat{
       server 127.0.0.1:8081 weight=1;
       server 127.0.0.1:8082 weight=2;

    }
    
    server {
        listen       8080;
        server_name  com.zhangsan.test  ;

        location / {
            proxy_pass http://mytomcat;
        }
    }
    
     server {
        listen       8080;
        server_name  com.zhangsan.test  ;

        location / {
            proxy_pass http://mytomcat;
        }
    }
重啓Nginx後,在瀏覽器中多次嘗試請求http://com.zhangsan.test:8080地址,可以看到是也ACCACCACC的方式顯示tomcat7和tomcat8的主頁,其中原因在於我們對8081端口配置了weight=1,對8082端口配置了weight=2,如果取掉weight的配置,這以ACACAC的方式顯示tomcat7和tomcat8的主頁。
 

 

附:

一 服務發佈:

  1. 在目錄樹中,瀏覽到地理數據庫。
  2. 右鍵單擊想要發佈的地理數據庫,然後單擊共享爲地理數據服務。

    將顯示共享爲服務 窗口。

  3. 選擇發佈服務,然後單擊下一步。
  4. 從選擇連接下拉列表中選擇要使用的 ArcGIS Server 連接。如果要使用的服務器連接並未列出,可單擊連接到 ArcGIS Server 添加 ArcGIS Server 以創建與服務器的新連接。
  5. 還可以在發佈服務窗口中輸入新的服務名稱。名稱長度不能超過 120 個字符,並且只能包含字母數字字符和下劃線。

    單擊下一步。

  6. 默認情況下,服務會發布到 ArcGIS Server 的根文件夾下。可以將服務組織到根目錄下的子文件夾中。選擇要將地理數據服務發佈到其中的目標文件夾,或創建一個新文件夾用來存儲地理數據服務。
  7. 單擊繼續。將打開服務編輯器對話框。
  8. 爲地理數據服務設置所需屬性。此處,您可以選擇用戶可對服務執行的操作,還可精細控制服務器顯示服務的方式。
  9. 單擊分析 分析。此操作將檢查地理數據庫是否能夠發佈到服務器。
  10. 對準備 窗口中列出的所有錯誤 (錯誤) 一一進行修復,以便能夠將地理數據庫發佈爲服務。另外,您還可以修復警告和通知消息,以進一步改善地理數據服務的性能和外觀。
  11. 修復錯誤以及警告和消息(可選)後,單擊發布 發佈

二、切圖工具箱

1、Convert map server cache storage format(轉換服務緩存的存儲格式)

利用該工具可以快速的切換地圖緩存的格式,實現緊湊(compact)格式和鬆散(explode)格式之間的切換。其原理是對cache目錄下,重新生成新的格式切片並且刪除舊格式切片。該工具的輸入參數是切圖服務,但是在實際業務需求中存在只有緩存文件爲沒有服務的情況,如何實現切片間直接轉換呢?目前AGS 不存在這樣的工具,那麼可以發一個空的切片服務,確保該切片服務的切片的schema和切片一樣,然後將需要轉換的切片導入到該服務下,然後在運用該工具實現格式間的轉換。

2、Create Map Server Cache

該工具可以對動態地圖服務創建切片

3、export map server cache

可以將指定的緩存服務的切片到處到指定的目錄,其中可以指定導出的切片格式,是緊湊還是鬆散;指定到處級別和導出範圍(通過感興趣和加入要素的形式)

4、Generate Map Server Cache Tiling Schema

 該工具用來生成地圖緩存切片schema,該工具的應用場景一般是要對多個地圖文檔,採用相同的切圖方案,故先使用該工具將切片方案到處。

5、Import Map Server Cache(導入地圖切片緩存)

將切片或者切片包導入到服務緩存中,該工具可以用來對已有切片進行更新,可以指定更新的切片級別,更新切片的範圍等。該工具默認的是在原有切片的上,疊加新的切片,以混合切片展現,如果勾選了overwrite tiles 就會覆蓋現有切片。注意導入的切片和地圖緩存必須使用相同的切片方案和存儲格式。

6、Manage map server scales

可以對已有的地圖或者影像服務中添加和刪除比例級別

7、Manage Map Server Cache Tiles(管理地圖緩存切片)

此工具用於創建新切片、恢復缺失切片、覆蓋過時切片以及刪除切片。

8、Manage Map Server Tiles Status(管理地圖緩存狀態)

每個切片服務都有個status.gdb 的文件,該文件用來記錄切片的狀態

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章