1. 簡(jiǎn)介
ArcGIS for Sever 從10.1 推出了一個(gè)非常實(shí)用的功能,就是注冊(cè)數(shù)據(jù)源(register data store)。注冊(cè)數(shù)據(jù)源,就是將當(dāng)前是數(shù)據(jù)路徑賦予arcgis for server的賬戶(hù)(安裝的時(shí)候,默認(rèn)為arcgis)的相關(guān)的操作權(quán)限,通過(guò)注冊(cè)數(shù)據(jù)源,發(fā)布服務(wù)時(shí)候,數(shù)據(jù)將不會(huì)拷貝到服務(wù)器端,而任然停留在當(dāng)前位置。服務(wù)器端服務(wù)使用的數(shù)據(jù)和客戶(hù)端端發(fā)布服務(wù)使用的數(shù)據(jù)是同一份數(shù)據(jù)。
如果不注冊(cè)數(shù)據(jù)源將會(huì)出現(xiàn)編號(hào)24011的高級(jí)警告, “data source is not register with the server and data will be copied to the server”。此如忽略該警告,發(fā)布服務(wù)時(shí)數(shù)據(jù)將拷貝到服務(wù)器上,默認(rèn)存放于 C:\arcgisserver\directories\arcgissystem\arcgisinput\服務(wù)名\extracted\v101下。根據(jù)mxd數(shù)據(jù)本身的存儲(chǔ)形式不同,在服務(wù)器端存放的形式也不同。如數(shù)據(jù)來(lái)自文件夾的shapefile文件,則以shapefile的形式在服務(wù)器端存儲(chǔ)。如果來(lái)自與filegeodatabase 或者sde中的數(shù)據(jù),則在服務(wù)器端以filegeodatabase的形式存在。
通過(guò)上面的描述可知,不注冊(cè)數(shù)據(jù)源服務(wù)器端服務(wù)使用的數(shù)據(jù)和客戶(hù)端發(fā)布服務(wù)的數(shù)據(jù)是兩份數(shù)據(jù)。且將客戶(hù)端的數(shù)據(jù)拷貝到服務(wù)器端,需要時(shí)間消耗和網(wǎng)絡(luò)傳輸帶寬,當(dāng)數(shù)據(jù)量特別大的時(shí)候,拷貝的過(guò)程就更不可取了。更新客戶(hù)端的數(shù)據(jù),服務(wù)器端的數(shù)據(jù)并不會(huì)更新,則服務(wù)也無(wú)法更新。
2. 注冊(cè)數(shù)據(jù)源的方式:
[通過(guò)ArcCatalog]http://resources.arcgis.com/en/help/main/10.2/index.html#/Registering_your_data_with_ArcGIS_Server_using_ArcGIS_for_Desktop/015400000504000000/
[通過(guò)manager 頁(yè)面]http://resources.arcgis.com/en/help/main/10.2/index.html#/Registering_your_data_with_ArcGIS_Server_using_Manager/01540000056s000000/
在服務(wù)屬性編輯對(duì)話(huà)框中
通過(guò)雙擊分析結(jié)果對(duì)話(huà)框,在彈出的對(duì)話(huà)中,輸入data store的名字。
3. 常見(jiàn)失敗的場(chǎng)景:
注冊(cè)data store 失敗的所有的場(chǎng)景歸根結(jié)底都是由于arcgis for server的賬戶(hù)對(duì)當(dāng)前發(fā)布服務(wù)的mxd文檔的數(shù)據(jù)路徑不具有讀寫(xiě)權(quán)限。
注冊(cè)文件夾失敗
當(dāng)注冊(cè)的文件夾與arcgis for server在同一臺(tái)機(jī)器上的時(shí)候,通常不會(huì)出現(xiàn)失敗。通常容易失敗的是,文件夾和arcgis for server不在同一臺(tái)機(jī)器上。,在這樣的場(chǎng)景下,需要:
在文件夾所在的機(jī)器上如果沒(méi)有arcgis for server的賬戶(hù),新將一個(gè)arcgis for server 賬戶(hù),且需要賬戶(hù)和密碼與安裝arcgis for server 的機(jī)器上的賬戶(hù)密碼一致。
將數(shù)據(jù)文件夾,共享給步驟一創(chuàng)建的賬戶(hù)
將共享路徑中的數(shù)據(jù)加載到arcmap中發(fā)布服務(wù)。
NB:上面的三個(gè)步驟中,最容易出現(xiàn)錯(cuò)誤的是步驟三。這個(gè)時(shí)候,容易使用絕對(duì)物理路徑而不是共享的UNC路徑。如數(shù)據(jù)文件存放在d:\folder\test.shp,且folder共享了,通過(guò)\server\folder的UNC路徑,arcgis for server的機(jī)器可以訪(fǎng)問(wèn)到。但是發(fā)布服務(wù)或者注冊(cè)數(shù)據(jù)源的時(shí)候注冊(cè)的是d:\folder 這就導(dǎo)致注冊(cè)成功,但是數(shù)據(jù)還是要拷貝到服務(wù)器上的現(xiàn)象的出現(xiàn)。
注冊(cè)數(shù)據(jù)庫(kù)
arcgis for server,可以注冊(cè)多種數(shù)據(jù)庫(kù)。使用比較多的是oracle和sqlserver。注冊(cè)數(shù)據(jù)庫(kù)通常失敗的原因通常是由于客戶(hù)端安裝的問(wèn)題。
從10.1后,arcgis 連接數(shù)據(jù)庫(kù)默認(rèn)的方式采用直接連接,這就需要通過(guò)數(shù)據(jù)庫(kù)客戶(hù)端去連接數(shù)據(jù)。由于desktop 是32的應(yīng)用程序,arcgis for server是64位的應(yīng)用程序,這就導(dǎo)致,如果desktop連接數(shù)據(jù)需要安裝32位客戶(hù)端,server連接數(shù)據(jù)庫(kù)需要64位客戶(hù)端
1.? 當(dāng)server和數(shù)據(jù)庫(kù)在同一臺(tái)機(jī)器上,而desktop在另一臺(tái)機(jī)器上
只需要在desktop是機(jī)器上安裝32位客戶(hù)端。server的機(jī)器上,無(wú)需安裝客戶(hù)端,因?yàn)閿?shù)據(jù)庫(kù)文件中包含連接數(shù)據(jù)的相關(guān)文件。如果是oracle需要確保Path設(shè)置了oracle home 目錄,而sqlserver安裝64或者32位客戶(hù)端都可(本人測(cè)試是可以的,但是官方要求是32位)
NB:當(dāng)server和數(shù)據(jù)庫(kù)在同一臺(tái)機(jī)器上的時(shí)候,如果先安裝server,再安裝數(shù)據(jù)庫(kù),則會(huì)出現(xiàn)注冊(cè)失敗,通常重啟arcgis for server的服務(wù)即可。(該問(wèn)題曾經(jīng)坑死我了)
2.? server,desktop和數(shù)據(jù)庫(kù)三種在不同的服務(wù)器上
desktop采用32位客戶(hù)端,server 64位數(shù)據(jù)庫(kù)客戶(hù)端段,如是oralce需要path路徑中配置各自配置oralce client home。而sqlserver無(wú)需配置路徑,且發(fā)現(xiàn)都安裝64位客戶(hù)端都可。
3.? server,desktop和數(shù)據(jù)庫(kù)都在同一臺(tái)機(jī)器上
只需要安裝32為客戶(hù)端用desktop連接數(shù)據(jù),而64位客戶(hù)端文件在數(shù)據(jù)庫(kù)安裝文件中包含,oralce只需要在Path中配置oralce home。而sqlserver無(wú)需安裝客戶(hù)端,數(shù)據(jù)庫(kù)文件中包含。
oracle 注冊(cè)數(shù)據(jù)源http://resources.arcgis.com/en/help/main/10.2/index.html#/Registering_an_Oracle_database_with_the_server/015400000617000000/
sqlserver注冊(cè)數(shù)據(jù)源?http://resources.arcgis.com/en/help/main/10.2/index.html#/Registering_a_SQL_Server_database_with_the_server/015400000613000000/
總結(jié)
總結(jié)還是一句話(huà),注冊(cè)數(shù)據(jù)源失敗,絕大部分是數(shù)據(jù)讀寫(xiě)權(quán)限的問(wèn)題