使用 repos_copy

Repos_copy 是使用集成组件和 InterChange Server 资源库的命令行接口。 它允许您将包(集成组件的集合)部署到服务器资源库中,或将组件从资源库中导出至包。

Repos_copy 还用于将组件从先前版本迁移至当前发行版。如果您在使用旧格式的组件,则首先迁移您的组件。有关更多信息,请参阅《WebSphere Business Integration Server Express 安装指南 Windows 版》、《WebSphere Business Integration Server Express 安装指南 Linux 版》或《WebSphere Business Integration Server Express 安装指南 OS/400 版》。Repos_copy 不支持 -ar、-arp、-vr、-vp 和 -xCompilePackage,且当使用旧格式的组件时,对“-o”和所有 -xCompile 选项都有限制。

要运行 repos_copy,在 MS-DOS 命令提示符窗口中(Windows)或在 shell 提示符下输入命令。对于 OS/400,从命令行输入 QSH 命令,并从 QSHELL 运行 repos_copy.sh 脚本。实用程序所驻留的 ProductDir/bin 目录应该在安装产生的路径中。对于 OS/400,缺省情况下,该脚本位于 /QIBM/ProdData/WBIServer43/bin 目录中。

注:
repos_copy 输出文件包含关系和连接器应用程序的已加密密码。如果尝试编辑该输出文件和更改这些密码,则 repos_copy 不会工作。
重要提示:
repos_copy 将组件部署到资源库时,它将它们部署至资源库。它不会将这些组件部署至任何业务对象定义的内存中的表。例如,连接器在启动时将业务对象定义从资源库装入其内存空间。如果您将业务对象定义部署到资源库以更新它,则您必须重新启动连接器代理程序,以便它将修改的业务对象定义装入内存中。您必须停止并重新启动 InterChange Server Express 和将其定义装入内存中的组件,以装入新部署的组件。

本章具有以下各节:

有关备份系统的更多信息,请参阅《系统管理指南》

Repos_copy 语法

表 13 描述 repos_copy 的选项及其自变量,并显示选项的正确大小写用法(选项及其自变量之间没有空格)。该语法显示,波形括号({})之间的选项表示一组选项,至少需要其中一个选项。如果您未在命令行上指定 -u-p-i-o-s 选项,则 repos_copy 提示您指定它们。如果提示时您未指定它们,则 repos_copy 不会执行。括在方括号([])中的选项是可选的。

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]
 


表 13. Repos_copy 命令选项
选项 描述
-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 的实体名称。该文件应包含对实体的引用,且具有以下条件:

  • 实体名必须跟在适当的实体类型关键字后面。实体类型及其关键字列示在表 14 中。
  • 必须用冒号将实体类型与实体名分开。
  • 必须有新行可用来分隔每个实体引用。

当与
-o 选项组合时,此选项将组件导出至包。

-ifilename

将指定的包文件部署至资源库中。如果您省略输入文件名值,则命令以交互方式提示您输入该输入文件的名称。该文件可以是包含 XML 格式对象的 .jar 文件或包含文本格式对象的 .in 文件。

由 repos_copy 或系统管理器创建的 .jar 文件具有特定的结构,必须维护该结构以便这种文件的任何后续导入成功。因此,您永远都不应该手工修改输入文件。

-k

覆盖 repos_copy 在它要装入的包文件中找到 Mercator 映射时的缺省行为。缺省情况下,repos_copy 在遇到 Mercator 映射时将退出。如果您使用 -k 选项,则 repos_copy 跳过包文件中的任何 Mercator 映射并继续执行部署过程。

-mode

返回服务器的方式。有关 InterChange Server Express 方式的更多信息,请参阅 Implementation Guide for WebSphere InterChange Server

-ncencoding

有关有效字符编码的列表,请参阅关于 String 类的 Java 文档。

当部署用 WICS V4.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 标识当从服务器导出组件时是否要包括类文件。

表 14. 不同实体类型的关键字
实体类型 关键字
业务对象 BusObj
协作对象 Collaboration
协作模板 CollabTemplate
数据库连接池 ConnectionPool
连接器 Connector
映射 Map
关系 Relationship

Repos_copy 使用方案

本节描述您可以使用 repos_copy 的许多常见情况。它包含以下各节:

打印 repos_copy 命令的示例

您可以不带任何自变量运行 repos_copy 以打印该命令及其自变量。以下示例显示当不带任何自变量运行时的 repos_copy 和结果输出:

No Command line arguments to ReposCopy were specified
 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*
 

注:
您可以使用不带星号的 -r 选项以指定不应该创建其模式的单独关系的名称。例如:
-rCustomer:Order 将不为 CustomerOrder 关系创建模式,但仍将为正在部署的包中的任何其它关系创建模式。
重要提示:
尽管存在部署之后编译映射和协作模板的选项,但仍没有通过 repos_copy 或系统管理器在部署期间之外为关系创建模式的方法。因此,如果您因为需要更改数据库设置而选择在部署期间不为关系创建模式,则以后您需要重新部署关系并允许 repos_copy 为关系创建模式。

验证资源库的示例

资源库必须有效,服务器才能成功处理流。使用 -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 提供了几个用于删除资源库中的组件的选项。您可以删除整个资源库、单独组件以及任何引用它们的组件。

注:
组件必须是不活动的您才能删除它们。如果删除单一组件,则必须首先取消激活它,否则删除操作将失败。如果您要删除某个组件和引用它的所有组件,则您不仅必须取消激活单一组件,还必须取消激活引用它的所有组件。可以在组件处于活动状态时删除整个资源库。使用系统监视器或基于 Web 的系统监视器来管理组件的状态。《系统管理指南》中描述了系统监视器和基于 Web 的系统监视器。

删除整个资源库的示例

使用 -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 选项来删除 Customer 业务对象时如何使用 -deep 选项:

C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull 
 -doBusObj:Customer -deep
 

此选项与 -dfo 选项不同,由于删除引用目标以及组件将保证资源库保持有效,因此以生产方式运行的服务器支持此选项。但请记住,它可以导致删除许多组件;在执行它之前,您应知道此操作的后果。

将组件导出至包的示例

-o 选项允许您将组件从资源库中导出到包。必须指定包文件的名称。当单独使用 -o 选项时,会将整个资源库导出到文件,如以下示例所示:

C:\WebSphereICS420DEV>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull 
 -oWebSphereICS420DEVServer.jar
 

通过使用 -e 选项,可以指定要导出的单独组件。您必须将 -e 选项与列示在表 14 中适当的 EntityType 关键字配合使用,且必须在关键字后面加上组件的名称。通过用加号(+)并置组件,可以指定多个组件。在以下示例中,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 和系统管理器在它们标识为“相关性”的内容方面是不一致的。如果您尝试使用 repos_copy 来删除组件,但存在依赖于它的组件,则 repos_copy 将这些引用组件列示为相关性。然而,如果您在系统管理器中右键单击该组件,并单击显示相关性,则工具会列示所选组件所依赖的组件。

打印资源库中组件的列表的示例

当执行 repos_copy 来打印资源库中组件的列表时,可以使用 -summary 自变量。将以 XML 格式显示输出。尽管在命令行上查看不是特别有用,但您可以将 -summary 自变量与 -o 自变量组合在一起来将输出重定向至文件,然后在浏览器中或 XML 编辑器中查看文件。在这种情况下,命令的用法如下:

C:\>repos_copy -sWebSphereICS420DEVServer -uadmin -pnull -summary -oRepository.xml
 

repos_copy 文件的语言环境

repos_copy 实用程序从资源库读取元数据并将数据以 Unicode(UTF-8 格式)的形式写出至文件。它还读取这样的文件并将它们以 Unicode(UTF-8 或 UCS-2,由底层资源库数据库指示)的形式装入资源库。

仅当组件调度的日期和时间是完全美国格式时,才可以将使用比 4.1.1 更低的 InterChange Server Express 版本级别创建的 Repos_copy 文件正确装入资源库。(这通常不是问题。Repos_copy 仅以完全美国格式保存所有调度日期。如果已手工编辑 repos_copy 文件,可能会引起不兼容问题。)

另外,当部署 4.1.1 资源库时,确保指定用“-nc”选项编码的字符。

Copyright IBM Corp. 2004