Repos_copy 是一個指令行介面,可與整合元件及 InterChange Server 儲存庫搭配使用。 它可讓您 將套件 (整合元件的集合) 部署至伺服器儲存庫,或從儲存庫將元件匯出到套件。
Repos_copy 也可以用來從舊版移轉到現行版本。 如果您使用舊格式的元件,請先移轉元件。 如需詳細資訊,請參閱 Windows 版、Linux 版或 OS/400 版的 WebSphere Business Integration Server Express 安裝手冊。Repos_copy 使用舊格式的元件時,不支援 『-ar、-arp、-vr、-vp -xCompilePackage』, 且有 『-o』 及所有 -xCompile 選項的限制。
若要執行 repos_copy,請在 MS-DOS 命令提示模式視窗 (Windows) 中, 或在 Shell 提示 (Linux) 中輸入指令。若為 OS/400,從指令行輸入 QSH 指令, 然後從 QSHELL 執行 repos_copy.sh Script。在安裝之後,公用程式所在的 ProductDir/bin 目錄會出現在您的路徑中。 若為 OS/400,依預設 Script 常駐在 /QIBM/ProdData/WBIServer43/bin 目錄。
本章包含下列各節:
如需備份系統的詳細資訊,請參閱 系統管理手冊。
表 13 說明 repos_copy 及其引數的選項,並顯示正確的選項用法,且在選項及其引數間沒有空格。語法顯示,大括弧 ({}) 之間的選項代表一組選項,而其中至少有一個是必要的。 若您沒有在指令行上指定 -u、-p、-i、-o 或 -s 選項,則 repos_copy 會提示您指定它們。提示您指定時,若您不指定它們,則 repos_copy 不會執行。在方括弧 ([]) 間括住的選項是選用的。
用法:repos_copy [-sserverName][-uusername][-ppassword] | [-ifilename [-ai| -ar| -arp] [-k] [-ncENCODING] [-xcompilepackage] [-xdi] [-xdn][-r[[relationshipName1[:relationshipName2]: ...]|*] ]| [-oJARfilename [-xnoclasses]] | [-eentityType:entityname1[+entityType:entityname2]+... [-deep] [-oJARfilename] ] [-fentityfilename [-deep] [-oJARfilename] ] | [-xCompileAll [-wi] ] | [-xCompileAllCollabs [-wi]] | [-xCompileAllMaps [-wi] ] | [-xCompileCollab:templateName1[+templateName2]+...[-wi] ] | [-xCompileMap:mapName1[+mapName2]+... [-wi] ] | [-mode] | [-d] | [-doentityType:entityname1[+entityType:entityname2]+... [-deep] ] | [-dfoentityType:entityname1[+entityType:entityname2] -deep] | [-summary [-oXML_filename] ] | [-vp [-iJARfilename] ] | [-vr]
選項 | 說明 |
---|---|
-ai |
在部署套件時,忽略且不載入已找到的重複物件
(商業物件、對映、關係、協同作業範本及物件與連接器)。
|
-ar |
在部署套件時,取代已找到的重複物件
(商業物件、對映、關係、協同作業範本及物件與連接器)。
|
-arp |
取代重複的元件。這是 -ar
選項的互動式版本。若套件中要部署的元件已存在於儲存庫中,則系統會詢問您要忽略或是取代元件。
|
-d |
刪除儲存庫中的元件,但狀態資料除外。 使用此選項,可從儲存庫中刪除所有元件。
|
-deep |
與 -e 選項一起使用,以包括所有相依元件。 若省略 -deep
選項,則只會併入 -e 選項所指定的元件。
|
-dfoEntityType:Entity[+EntityType:Entity2] |
強迫刪除元件,即使該元件有相依的參照也一樣。
此選項只能與在設計模式中執行的伺服器儲存庫一起使用。在正式作業模式中執行的伺服器不允許未解析的相依關係和參照。另請參閱
-do 選項。
|
-doEntityType:Entity[+EntityType:Entity2] |
指定要從儲存庫刪除的實體。如需實體類型和關鍵字的清單,請參閱表 14。若物件沒有參照--與它相依的其他元件--則會進行刪除。若物件有參照,則刪除失敗,並顯示訊息。
此行為在設計模式和生產模式都一樣。
如需在設計模式或生產模式中啟動伺服器的詳細資訊,請參閱 System
Implementation Guide。
|
-eEntityType:Entity1[+EntityType:Entity2...] |
匯出一或多個被參照的第一類別實體。 第一類別實體是指商業物件、協同作業物件、協同作業範本、連接器、資料庫連線儲存池、對映或關係。 您可以指定表 14 中的其中一個關鍵字,以識別要載入或卸載的實體: 在 EntityType 關鍵字之後加冒號 (:) 及實體名稱。
使用 『+』 來指定多個實體。 當與 -o
選項一起使用時,-e 選項會卸載資料至輸出檔。
|
-fentityFile |
類似 -e 選項,但是使用檔案 EntityFile 中的實體名稱。 此檔案應該包含實體的參照,以及下列條件:
與
|
-ifilename |
將指定的套件檔部署至儲存庫。若您省略輸入檔名稱值,則該指令會以互動方式提示您輸入此輸入檔的名稱。此檔案可能是包含 XML 格式之物件的 .jar 檔案,或包含文字格式之物件的 .in 檔案。 由 repos_copy 或「系統管理程式」建立的 .jar
檔具有特定的結構,此結構必須加以維護,以後匯入這類檔案才能成功。因此,您不應改以手動方式修改輸入檔。
|
-k |
當 repos_copy 在正在載入的套件檔中找到 Mercator
對映時,會置換其預設行為。依預設,epos_copy 會在發現 Mercator
對映時結束。若您使用 -k 選項,repos_copy 會跳過套件檔中的任何
Mercator 對映,並繼續執行部署程序。
|
-mode |
傳回伺服器的模式。如需 InterChange Server Express 模式的詳細資訊,請參閱
Implementation Guide for WebSphere InterChange Server。
|
-ncencoding |
如需有效字元編碼的清單,請參閱關於 String 類別的 Java 文件。 部署以 WICS 4.1.1 版所建立的儲存庫時,請指定用於
4.1.1 環境的字元編碼。
|
-ooutfilename |
將儲存庫中的元件匯出至指定的套件檔。您必須指定套件檔的名稱。若檔案已存在,則
repos_copy 會提示您是否改寫它。輸出檔是 .jar 格式,且包含
XML 格式的元件定義,以及含有它們之元件的 .java
原始檔。這個選項無法與 -i 或 -d
選項結合,也不能像在舊版中一樣匯出文字格式的元件。Repos_copy 沒有附加
.jar 副檔名,因此您在指定輸出檔的名稱時,必須指定它。
|
-ppassword |
指定以 -u
選項提供之使用者名稱的密碼。密碼有區分大小寫。若您沒有指定此選項,則
repos_copy 會提示您指定密碼。
|
-r* |
匯入關係定義,而不為任一關係定義建立執行時期綱目。 另請參閱 -r
選項。
|
-rrelationshipName1[:relationshipName2] |
將已命名的關係定義載入儲存庫,而不建立它的執行時期綱目。
|
-sserverName |
指定 repos_copy 應與之連結的 InterChange Server Express
實例名稱。名稱有區分大小寫。
若未指定伺服器名稱,則工具會提示您輸入伺服器名稱。
|
-summary |
列出一份清單,其中包含伺服器儲存庫中的元件
(它們會被識別成「成品」,而非輸出中的元件)。 輸出是 XML
格式。您可以結合此選項與-o 選項,以將輸出列印至檔案,而非主控台。
|
-uusername |
指定要登入 InterChange Server Express 的使用者名稱。若未指定使用者名稱,則
repos_copy 會提示您指定使用者名稱。
|
-v |
列印 repos_copy 公用程式執行的程式版本號碼。
|
-vp |
驗證套件檔。伺服器會驗證儲存庫的套件,並確定套件中所有元件之間的相依關係均已解析。若驗證不成功,則
repos_copy
會列印一份遺漏相依關係的清單。這個選項不會對儲存庫進行任何變更;它只會驗證套件檔。
使用 -vp 選項時,您必須也使用 -i
選項來指定要驗證的套件檔。
|
-vr |
驗證儲存庫。輸出訊息指出驗證是否成功。 若驗證不成功,則 repos_copy
會列印一份遺漏相依關係的清單。
|
-wi |
不顯示協同作業範本或對映編譯期間所發生的警告訊息。
只會顯示在編譯期間發生的錯誤。如此讓使用者可以忽略諸如方法即將作廢等警告。
|
-xCompileAll |
編譯儲存庫中的所有協同作業範本及對映。
|
-xCompileAllCollabs |
編譯儲存庫中的所有協同作業範本。
|
-xCompileAllMaps |
編譯儲存庫中的所有對映。
|
-xCompileCollab:collabTemplateName[+collabTemplateName] |
編譯儲存庫中指定的協同作業範本。
|
-xCompileMap:nativeMapName[+nativeMapName] |
編譯儲存庫中指定的對映。
|
-xCompilePackage |
告訴伺服器編譯對映及協同作業範本 Java 檔案。
如果套件包含經過前置編譯的類別檔,請不要使用這個選項。
在正式作業模式中,除非所有類別檔都在套件中,不然將依預設選取這個選項。 如需
InterChange Server Express 模式的完整說明,請參閱 System Implementation
Guide。
|
-xnoclasses | 識別從伺服器匯出元件時是否包括併入類別檔。 |
實體類型 | 關鍵字 |
---|---|
商業物件 | BusObj |
協同作業物件 | Collaboration |
協同作業範本 | CollabTemplate |
資料庫連線儲存池 | ConnectionPool |
連接器 | Connector |
對映 | Map |
關係 | Relationship |
此節說明使用 repos_copy 的許多常見狀況。它包含下列各節:
您可以執行 repos_copy 但不需任何引數,就能列印指令及其引數。下列範例顯示在不使用引數下執行 repos_copy,以及所產生的輸出:
沒有指定「指令行」引數給 ReposCopy Usage:repos_copy [ [-sServerName] [-uUserName] [-pPassword] ] | [-iFileName [-ai| -ar| -arp] [-k] [-ncEncoding] [-xcompilepackage] [-xdi] [-xdn] [-r[[RelationshipName1[:RelationshipName2]: ...] |
*] ] | [-oJARfileName [-xnoclasses]] | [-eentityType:EntityName1[+entityType:EntityName2]+... [-deep] [-oJARfileName] ] | [-fENTITYFILENAME [-deep] [-oJARfileName] ] | [-xCompileAll [-wi] ] | [-xCompileAllCollabs [-wi]] | [-xCompileAllMaps [-wi] ] | [-xCompileCollab:TemplateName1[+TemplateName2]+... [-wi] ] | [-xCompileMap:MapName1[+MapName2]+... [-wi] ] | [-mode] | [-d] | [-doentityType:EntityName1[+entityType:EntityName2]+... [-deep] ] | [-dfoentityType:EntityName1[+entityType:EntityName2] -deep] | [-summary [-oXML_FileName] ] | [-vp [-iJARfileName] ] | [-vr]
將套件部署至伺服器之前,您可以先驗證元件套件。這是非常有用的, 因為若您將套件部署至正式作業模式的伺服器,必須解析所有相依關係,否則部署會失敗。您無法在「系統管理程式」中驗證使用者 專案或整合元件程式庫,以確定已滿足相依關係,因此,在使用「系統管理程式」部署時, 要瞭解套件是否有效的唯一方法是嘗試部署,然後使用當它無法解析相依關係時出現的錯誤資訊。若套件中有許多元件,則這個程序會花費許多時間。
雖然您無法驗證整合元件程式庫,但是您可以將它匯入至套件檔,然後使用 repos_copy 來驗證該套件檔。
若要使用 repos_copy 來驗證套件檔,請使用 -i 選項來指定要驗證的套件檔名稱,並使用 -vp 引數來驗證它,而非部署它。
例如:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar -vp
Repos_copy 會驗證套件的內容,並顯示訊息,指出相依關係是否已經解析。
-i 選項讓您能將元件套件部署至儲存庫。若您沒有指定套件檔的名稱,則會提示您輸入它。
下列範例顯示一個要部署至儲存庫的檔案,它稱為 WebSphereICS420DEVServer.jar:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar
正常情況下,如果套件包含一些協同作業範本或對映實作 Java 檔案, 但沒有相關的類別檔,請在部署套件至儲存庫時使用 -xcompilepackage 選項。 這是因為在這些對映或範本執行時,類別檔必須存在。(請參閱編譯及建立綱目的範例。)
如果經過前置編譯的類別檔也在套件中,則您可以在部署後直接使用它們,而不需在伺服器上編譯 Java 檔案。這會增加效能 (因為沒有額外的編譯時間),但是行為同於一般部署。
下列範例顯示一個名為 WebSphereICS420DEVServer.jar 的檔案,其中具有正要部署至儲存庫且經過前置編譯的類別檔:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar
在套件檔及儲存庫中通常會有同名的元件。在此情況下,您必須決定是否要將套件檔中的元件 取代儲存庫中的元件。-ai 選項會指定不應將重複元件載入儲存庫:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar
若您想要取代儲存庫中的所有重複元件,請使用 -ar 選項,如下列範例所示:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iCustomerSyncInterface.jar -ar
您可以使用 -arp 選項,以互動式地取代儲存庫中的重複元件。這能讓您決定每一個個別的重複元件是否應被取代。
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iCustomerSyncInterface.jar -arp
若要讓對映及協同作業在執行時期執行,必須編譯定義在儲存庫中的對映及協同作業範本。若要讓關係在執行時期適當地運作,必須建立它們的綱目。
當您將元件部署至在正式作業模式中執行的伺服器時,會自動編譯所有範本,並建立所有關係綱目。 若要讓部署成功,對映及協同作業範本的程式碼必須是有效的,而且 InterChange Server Express 必須能夠與在關係定義設定中指定的資料庫通訊。
當您將元件部署至在設計模式中執行的伺服器時,不會自動編譯範本;但會自動建立關係綱目。 有您可以用來編譯範本的選項,但是,也有不要建立關係綱目的選項。
下列範例使用 -xCompilePackage 選項,但不使用 -r 選項的任何格式。結果是在部署由 -i 選項指定的套件時,會編譯對映及協同作業範本,也會建立關係綱目:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar -xCompilePackage
當您在部署時,可能不想建立關係綱目。例如, 若您是將套件從一個環境部署至另一個環境,但不變更關係的內容, 以在新環境中使用資料庫資源,則可以在建立綱目之前變更相關內容。 下列範例使用 -r* 選項, 不為部署的套件中的所有關係建立綱目:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -iWebSphereICS420DEVServer.jar -xCompilePackage -r*
儲存庫必須有效,伺服器才能順利處理流程。 請使用 -vr 選項來驗證伺服器儲存庫,如下列範例所示:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -vr
若伺服器有效,則 repos_copy 會將下列輸出寫入主控台:
Validation Succeeded.All Dependencies Resolved.
若儲存庫無效,則 repos_copy 會列印一份必須解析的相依關係清單。
如您將對映或協同作業範本部署至儲存庫,但沒有在部署期間編譯它們,則之後可以使用 repos_copy 來編譯它們。在要部署許多元件的情況下,這項功能十分好用,因為部署很費時,而且編譯會使這項作業花費更多時間。 若發生錯誤,則等待部署成功之後再執行編譯作業,可以降低比移轉環境花費更多時間的風險。
下列範例顯示使用 -xCompileAll 選項來編譯儲存庫中的所有對映及協同作業範本:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -xCompileAll
也有選項可以編譯每一種類型的所有元件。使用
-xCompileAllCollabs 可以編譯所有協同作業範本,而使用
-xCompileAllMaps 可以編譯所有對映。下列範例顯示
-xCompileAllMaps 的使用:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -xCompileAllMaps
就像您可以編譯一種類型的所有元件一樣,您也可以編譯個別元件。使用 -xCompileCollab 或 -xCompileMap 選項, 後面接著一個冒號及協同作業範本或對映的名稱,即可編譯單一元件。下列範本會編譯一個稱 為 CustomerSync 的協同作業範本:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -xCompileCollab:CustomerSync
repos_copy 提供多個選項用於刪除儲存庫中的元件。您可以刪除整個儲存庫、個別元件,以及參照個別元件的任何元件。
使用 -d 選項,可以刪除儲存庫中的所有元件。 下列範例顯示其語法:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -d
Repos_copy 代表一個提示,詢問您是否要刪除整個儲存庫。
若元件沒有任何參照對象 (亦即參照此元件的其他元件,這些元件需要它存在才能在系統中執行它們的功能),則您可以刪除此個別元件。
使用 -do 選項,後面接著實體類型、一個冒號,以及元件的名稱。實體類型列在表 14中。下列範例會刪除稱為 Customer 的關係:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -doRelationship:Customer
若元件有任何參照對象 (亦即參照此元件的其他元件,而這些元件需要它存在才能在系統中執行它們的功能),則除非伺服器是在設計模式中執行,而且您使用了特定的選項,您才可以刪除此元件。
若元件有參照對象,則 repos_copy 不會讓您使用 -do 選項將它刪除。您必須使用 -dfo 選項才能強制刪除有參照對象的元件。強制刪除有參照對象的元件會使儲存庫變成不一致的狀態,而在正式作業模式中執行的伺服器不會允許這樣,因此這個選項僅能與設計模式的伺服器一起使用。下列範例顯示使用-dfo 選項來刪除 Order 商業物件,儘管系統中有其他元件 (例如對映及關係) 要參照它也一樣:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -dfoBusObj:Order
刪除有參照對象的元件有另一個方法,那就是使用 -deep 選項一併刪除參照對象。這會刪除元件以及參照該元件的所有元件。下列範例顯示在使用 -do 選項時一起使用 -deep 選項來刪除 Customer 商業物件:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -doBusObj:Customer -deep
不像 -dfo 選項,這個選項可以與在正式作業模式中執行的伺服器一起使用,因為一併刪除參照對象及元件可以保證儲存庫仍能維持有效。但是請記住,它會導致許多元件被刪除;在採取這個行動之前,請留意這項動作的隱含意義。
-o 選項讓您能將元件從儲存庫匯出至套件。您必須指定套件檔的名稱。單獨使用 -o 選項時,整個儲存庫會被匯出至檔案,如下列範例所示:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -oWebSphereICS420DEVServer.jar
使用 -e 選項,可以指定要匯出的個別元件。您必須將 -e 選項與適當的 EntityType 關鍵字 (列在表 14中) 一起使用,且必須在關鍵字後面加上元件的名稱。您可以用加號 (+) 來連結元件,以指定多個元件。 在下列範例中,Customer 商業物件及 CustomerSync 協同作業範本會被匯出至一個稱為 CustomerSyncInterface.jar 的套件。
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -eBusObj:Customer+CollabTemplate:CustomerSync -oCustomerSyncInterface.jar
正常情況下,對映與協同作業範本 (如果它們存在的話) 的類別檔也會隨著其 Java 檔案一起匯出並放入套件檔。如果您不需要它們,請使用 -xnoclasses 選項來忽略這些類別檔,例如:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -oWebSphereICS420DEVServer.jar -xnoclasses
您可以使用 -deep 選項一併匯出元件的相依關係。在以上範例中,匯出了 Customer 商業物件,但沒有匯出它的子項商業物件。下列範例使用 -deep 選項來匯出 CustomerSync_ClarifyToSAP 協同作業物件及其所有相依關係。
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -eCollaboration:CustomerSync_ClarifyToSAP -oCustomerSyncInterface.jar -deep
若您想要匯出特定的元件,但不想要輸入實體類型關鍵字及元件名稱,您可以將它們儲存在文字檔,並使用 -f 選項。這對於您要經常匯出相同的元件時十分方便。下列範例使用 -f 選項來載入列在稱為 Components.txt 的文字檔中的元件:
C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -fComponents.txt -oCustomerSyncInterface.jar -deep
下列顯示檔案 Components.txt 的內容;在段落折返記號後面會跟著每一個實體類型關鍵字與名稱的組合:
BusObj:Customer Relationship:Customer CollabTemplate:CustomerSync
在執行 repos_copy 時,您可以使用 -summary 引數來列印一份儲存庫中的元件清單。輸出會以 XML 格式呈現。雖然這對於在指令行上檢視不是特別有用,但是您可以結合 -summary 引數與 -o 引數,將輸出重新導向一個檔案,然後在瀏覽器或 XML 編輯器中檢視這個檔案。在此情況下,這個指令的用法如下:
C:\>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -summary -oRepository.xml
repos_copy 公用程式會從儲存庫中讀取 meta 資料, 然後以 Unicode (UTF-8 格式) 將資料寫到檔案中。它也會讀取這類檔案, 然後以 Unicode (UTF-8 或 UCS-2,依照基礎儲存庫資料庫的指定) 將檔案載入儲存庫。
只有當元件排程的日期與時間都是完整的 US 格式時, 才能將以 4.1.1 之前的 InterChange Server Express 版本層次所建立的 Repos_copy 檔案正確地載入儲存庫中。 (這通常不是問題。Repos_copy 只會以完整的美國格式儲存所有排程日期。 不相容的發生原因,可能是因為曾經以手動方式編輯 repos_copy 檔案。)