Service Registry 3.1 管理指南

第 1 章 配置和设置 Service Registry

本章介绍了如何在安装后配置 Service Registry 以及如何执行其他管理任务。

本章包括以下内容:

配置 Service Registry

《Sun Java Enterprise System 5 Installation Guide for UNIX》介绍了如何使用 Registry 的默认属性设置来执行 Service Registry 的安装后配置。要使用自定义属性设置,请复制文件 ServiceRegistry-base/install/install.propertiesServiceRegistry-base/install/install.properties.template 并进行编辑,然后再执行配置。

要配置 Registry,您可以用 root 身份登录或成为超级用户,也可以用非 root 用户身份登录。

为了安全起见,建议您以非 root 用户身份配置 Registry。有关说明,请参见在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry

ServiceRegistry-base 的位置为 /opt/SUNWsrvc-registry(在 Solaris 操作系统上)或 /opt/sun/srvc-registry(在 Linux 和 HP-UX 系统上)。


注 –

在配置 Service Registry 之前,您必须先安装和配置 Sun Java System Application Server ("Application Server")。Service Registry 的配置过程将 Registry 安装到 Application Server 域中。

建议您将 Application Server 安装到默认位置。如果将 Application Server 安装到了非默认位置,请在配置 Service Registry 之前按照为非默认 Application Server 安装配置 Service Registry中的说明进行操作。


install.properties 文件包含了一组可修改的属性设置。表 1–1 中列出了配置过程使用的属性。每个属性名都有 registry.install. 前缀(以句点结尾)。其中某些属性针对为 Registry 创建的 Application Server 域设置了非默认端口。其他属性设置了本手册其他章节中所述的配置属性。

您可以用 root 或非 root 用户身份配置多个 Service Registry 实例。要执行此操作,必须将 registry.install.dataHome 属性更改为针对每个 Registry 实例都具有唯一性。如果希望能够在服务器上一次运行多个实例,还必须将八个端口属性更改为针对每个实例都具有唯一性。对于多个非根实例,可能需要将 registry.install.CACertDir 的值更改为针对每个实例都具有唯一性。

表 1–1 Service Registry 配置属性

属性名 

描述 

默认属性值 

DomainName

Application Server 域名 

registry

ServerInstanceHost

可以在其中访问 Service Registry 的默认主机名 

localhost

ServerInstancePort

Service Registry 的 Application Server HTTP 端口 

6480

ServerInstanceSecurePort

Service Registry 的 Application Server HTTPS 端口 

6443

ServerJMSPort

Service Registry 的 Application Server Message Queue 端口 

6484

ServerIIOPPort

Service Registry 的 Application Server IIOP 端口 

6485

ServerIIOPSecurePort

Service Registry 的 Application Server IIOP 安全端口 

6486

ServerIIOPMutualAuthPort

Service Registry 的 Application Server IIOP 相互验证端口 

6487

AdministrationJMXPort

Service Registry 的 Application Server JMX 端口 

6488

AdministrationPort

Service Registry 的 Application Server 管理服务器端口 

6489

AdministratorUserID

用于访问 Application Server 管理服务器的用户名 

admin

AdministratorPassword

用于访问 Application Server 管理服务器的密码 

当您以 root 身份配置时,为 12345678

当您以非 root 用户身份配置时,无密码 

ApplicationServerKeystorePassword

用于访问 Application Server 密钥库的密码 

当您以 root 身份配置时,为 12345678

当您以非 root 用户身份配置时,无密码 

RegistryServerKeystorePassword

用于访问 Service Registry 密钥库的密码 

当您以 root 身份配置时,为 12345678

当您以非 root 用户身份配置时,无密码 

clientDatabase

确定 Service Registry 数据库是以嵌入模式还是网络服务器模式运行(如果为网络服务器模式,则值为 true

false

RequireDatabaseAuthentication

确定访问 Service Registry 数据库时是否需要用户验证 

false

DatabaseUserID

用于访问 Service Registry 数据库的用户 ID(如果需要用户验证) 

APP

DatabasePassword

用于访问 Service Registry 数据库的密码(如果需要用户验证) 

当您以 root 身份配置时,为 app123

当您以非 root 用户身份配置时,无密码 

backupDir

用于 Service Registry 备份的目录。通常被注释掉;删除注释可以指定备用位置。 

当您以 root 身份配置时,为 RegistryDomain-base/3.0/backup

当您以非 root 用户身份配置时,为 $HOME/srvc-registry/3.0/backup

dataHome

存储 Service Registry 数据的目录 

当您以 root 身份配置时,为 RegistryDomain-base

当您以非 root 用户身份配置时,为 $HOME/srvc-registry

CACertDir

Application Server 域应该信任的已添加证书的所在目录 

当您以 root 身份配置时,为 ServiceRegistry-base/install/cacerts

当您以非 root 身份配置时,为 $HOME/srvc-registry/cacerts

Procedure在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry

开始之前

以下说明假设您以 root 身份登录或已成为超级用户。

  1. 转至 ServiceRegistry-base/install 目录。

  2. 将文件 install.properties 复制到安全位置。

    使用如下所示命令:


    cp install.properties $HOME/hidden_dir/sr.properties
    
  3. 更改属性文件的权限使其成为可写入文件。

    使用如下所示命令:


    chmod 600 $HOME/hidden_dir/sr.properties
    
  4. 编辑此文件中的可修改属性。

    例如,建议您更改所有密码的默认值。

  5. 将权限更改回原来的只读值。

    使用如下所示命令:


    chmod 400 $HOME/hidden_dir/sr.properties
    
  6. ServiceRegistry-base/install 目录中,运行以下命令(全都在一行),指定已修改的 install.properties 文件的位置。

    使用如下所示命令:

    Ant-base /ant -f build-install.xml -Dinstall.properties=$HOME/hidden_dir/sr.properties configure

    ant 命令要求设置 JAVA_HOME 环境变量。通常,将此变量设置为以下值:

    /usr/jdk/entsys-j2se

    Registry 配置过程将在 RegistryDomain-base/domains/${registry.install.DomainName} 中创建一个 Application Server 域。默认域名为 registry。然后,配置过程将启动该域,部署 Registry 并使该域一直运行。

    Registry 配置过程将在 RegistryDomain-base/3.0 目录中安装 Registry 数据库和服务器密钥库。卸载 Registry 时不会删除此目录,这样可以保存数据库以供将来的版本使用。管理员具有何时及是否删除此目录的控制权。

    RegistryDomain-base 的位置为 /var/opt/SUNWsrvc-registry(在 Solaris 操作系统上)或 /var/opt/sun/srvc-registry(在 Linux 和 HP-UX 系统上)。

    Registry 配置过程将创建一个名为 ServiceRegistry-base/install/cacerts 的目录,用于放置 Application Server 域应该信任的已添加证书。

  7. 查看 ant configure 命令的输出以确定有无任何错误。

    如果没有错误,您现在就可以开始使用 Web 控制台或管理工具。

Procedure在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry

开始之前

以下说明假设您以普通用户身份而不是以 root 身份登录,并且以 root 身份登录的用户已安装了 Service Registry。

  1. 转至 ServiceRegistry-base/install 目录。

  2. 将文件 install.properties.template 复制到主目录中的某个位置并重命名。

    使用如下所示命令:


    cp install.properties.template $HOME/sr.properties
    
  3. 在文本编辑器中打开文件副本,并根据需要修改属性。

    您必须为以下属性提供密码值,这些密码值在模板文件中保留为空:

    registry.install.AdministratorPassword=
    registry.install.ApplicationServerKeystorePassword=
    registry.install.RegistryServerKeystorePassword=
  4. 更改文件的权限以便只能读取该文件。

    使用如下所示命令:


    chmod 400 $HOME/sr.properties
    
  5. ServiceRegistry-base/install 目录中,运行如下所示命令(全都在一行),指定已修改文件的位置。

    Ant-base/ant -f build-install.xml -Dinstall.properties=$HOME/sr.properties configure

    使用类似命令以运行所需的其他任何配置目标。

    Registry 配置过程将在 $HOME/srvc-registry/domains/${registry.install.DomainName} 中创建一个 Application Server 域。默认域名为 registry

    Registry 配置过程将在 $HOME/srvc-registry/3.0 目录中安装 Registry 数据库和服务器密钥库。

    Registry 配置过程将创建一个名为 $HOME/srvc-registry/cacerts 的目录,用于放置 Application Server 域应该信任的已添加证书。

  6. 查看 ant configure 命令的输出以确定有无任何错误。

    如果没有错误,您现在就可以开始使用 Web 控制台或管理工具。

管理 Service Registry 的 Application Server 域

默认情况下,Service Registry 的配置过程将创建一个名为 registry 的 Application Server 域,Service Registry Web 应用程序将部署到此域中。此域位于 RegistryDomain-base/domains/registry 目录中。

此位置不同于 Application Server 域的默认位置 /var/opt/SUNWappserver/domains (Solaris OS) 或 /var/opt/sun/appserver/domains(Linux 和 HP-UX 系统)。


注 –

建议您不要运行 registry 域中除 Service Registry 以外的任何应用程序。


要管理 registry 域,您可以使用 Application Server 管理控制台(简称“管理控制台”)。您可以使用管理控制台来启动和停止域、查看服务器日志和执行其他管理任务。有关详细信息,请参见使用 Application Server 管理控制台

您还可以直接查看服务器日志。此日志位于文件 RegistryDomain-base/domains/registry/logs/server.log 中。

除了使用管理控制台以外,您还可以使用 asadmin 命令来管理 registry 域。由于域不在默认位置,您在使用提供 --domaindir 选项的 asadmin 命令时必须指定该选项。--domaindir 选项的参数为 RegistryDomain-base/domains

如果要使用 asadmin 命令的 --passwordfile 选项,需要一个包含 Registry 域管理员密码副本的文件。要创建此类文件,请使用 build-install.xml 文件的 generate.password.file 目标。此文件为 RegistryDomain-base/3.0/data/security/pw.txt

registry 域使用一组非默认端口,以免与默认的 Application Server 域 domain1 发生冲突。这些 Service Registry 端口值已在互联网号码分配机构 (Internet Assigned Numbers Authority, IANA) 中注册。表 1–2 列出了这些端口并对其进行了说明。有关更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Ports in the Application Server”

表 1–2 Service Registry 域默认端口

端口值 

描述 

6480 

HTTP 端口 

6443 

基于 SSL 的 HTTPS 

6484 

Message Queue 端口 

6485 

IIOP 端口 

6486 

IIOP SSL 端口 

6487 

IIOP 相互验证端口 

6488 

JMX 端口 

6489 

Application Server 域管理端口 

Procedure使用 Application Server 管理控制台

  1. 在 Web 浏览器中,转至 URL https://hostname:6489/

    hostname 是运行 Application Server 和 Service Registry 的系统。

  2. 接受提供的证书。

    将显示登录页面。

  3. 在登录页面的“用户名”字段中键入 admin

    如果在配置 Registry 时更改了 registry.install.AdministratorUserID 属性的默认值,请键入您指定的值。

  4. 在“密码”字段中键入 Application Server 管理员密码。请使用在配置 Registry 时为 registry.install.AdministratorPassword 属性指定的值。默认值为 12345678

  5. 单击“登录”。

另请参见

有关使用管理控制台的详细信息,请参阅管理控制台的联机帮助或《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》

更改 Service Registry 日志记录级别

要更改 Service Registry 的日志记录级别,请按照管理控制台联机帮助中的说明进行操作。要在“其他属性”区域中指定的属性为 org.freebxml.omar

要更改特定 Service Registry 子组件的日志记录,请参阅以下文件:RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/ WEB-INF/classes/log4j.properties。您可以指定此文件中列出的任何子组件名称。请勿包括字符串 log4j.logger。例如,您可以通过指定 org.freebxml.omar.server 来记录服务器调用。

Procedure停止并重新启动 Registry 的 Application Server 域

Registry 的配置过程将启动注册表部署在其中的 Application Server 域。当您执行了某些管理任务后,需要停止并重新启动域。此类任务示例包括为 Registry 域配置 Java 虚拟机 (Java Virtual Machine, JVM)创建管理员

管理控制台将通知您是否需要重新启动域。您可以使用管理控制台来执行此任务。如果使用的是 asadmin 命令,您可以使用 Ant 任务停止和启动域。

  1. 转至 Service Registry 安装目录。

    cd ServiceRegistry-base/install

  2. 运行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml -Dinstall.properties= props-file appserver.domain.bounce

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

    appserver.domain.bounce 目标将停止域然后再重新启动它。

    build-install.xml 文件还包含用于停止和启动 Registry 域的单独的 Ant 目标。要停止域,请使用 Ant 目标 appserver.domain.stop。要启动域,请使用 Ant 目标 appserver.domain.start

Procedure将根证书添加到 Registry 域的信任证书中

此任务扩展了 Application Server registry 域中的信任证书列表。

仅当使用第三方证书并且第三方的根证书授权机构 (Certificate Authority, CA) 没有位于 Application Server 信任存储中时执行此任务。如果仅使用注册表颁发的证书,请不要执行此任务。

要确定所需的 CA 证书是否已存在,您可以使用 build-install.xml 文件的 list.cacerts 目标:

Ant-base/ant -f build-install.xml -Dinstall.properties=props-file list.cacerts

其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

  1. 下载您希望支持的所有根证书。

    以下站点提供根证书:

  2. 如果有必要,请使用 unzip 命令从下载的归档文件中解压缩 .cer 文件。


    注 –

    一些文件具有 .der 后缀。


  3. .cer 文件复制到由 install.properties 文件副本中 registry.install.CACertDir 属性所指定的目录。

    此值通常为 ServiceRegistry-base/install/cacerts(如果您以 root 身份配置)或 $HOME/srvc-registry/cacerts(如果您以非 root 用户身份配置)。

  4. 转至目录 ServiceRegistry-base/install

  5. 运行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml -Dinstall.properties= props-file install.cacerts

    此命令将由 registry.install.CACertDir 属性所指定的目录中出现的所有证书安装到 Application Server 域信任存储中。

    您可以再次使用 list.cacerts 目标以确保证书已正确安装。

  6. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

为非默认 Application Server 安装配置 Service Registry

安装 Application Server 的默认位置为 /opt/SUNWappserver/appserver(在 Solaris 操作系统上)或 /opt/sun/appserver(在 Linux 和 HP-UX 系统上)。如果您在其他位置安装了 Application Server,则必须在配置 Service Registry 之前编辑文件 install.properties 的副本。

Procedure编辑 install.properties 文件的副本

  1. 转至 ServiceRegistry-base/install 目录。

  2. 将文件 install.properties 复制到安全位置并重命名。

    使用如下所示命令:


    cp install.properties $HOME/hidden_dir/sr.properties
    
  3. 更改属性文件的权限使其成为可写入文件。

    使用如下所示命令:


    chmod 600 $HOME/hidden_dir/sr.properties
    
  4. 在文本编辑器中打开此文件。

  5. 查找被注释掉的 appserver.root.dir 属性的定义。

  6. 删除注释字符 (#) 并用 Application Server 的实际位置替换属性定义。

  7. 保存并关闭此文件。

接下来的操作

按照配置 Service Registry中的说明继续进行操作。

为 Registry 域配置 Java 虚拟机 (Java Virtual Machine, JVM)

要使 Service Registry 正常工作,需要具备以下条件:

任何注册表 (Registry) 对象都可以有一个外部链接 (ExternalLink) 对象,该对象用于指定与该注册表 (Registry) 对象相关的外部 URL。任何服务 (Service) 对象都可以有一个服务绑定 (ServiceBinding) 对象,该对象也可以指向外部 URL。为了使用户创建外部链接 (ExternalLink) 服务绑定 (ServiceBinding) 对象,Service Registry 必须能够验证 URL,而此任务需要访问外部 Web 站点。如果 Registry 被部署到防火墙之后,则需要设置允许此类访问的代理配置。

代理配置要求指定 Web 代理主机和端口作为部署了 Service Registry 的 Application Server 域的 Java 虚拟机 (Java Virtual Machine, JVM) 选项。

用于 Registry 的内存也可能会用完。为了防止出现此问题,请配置 JVM 选项以增加可用于 Registry 的 Application Server 域的内存。

请执行以下任务为 Registry 配置 JVM 选项。

Procedure为 Registry 域配置 JVM 选项

  1. 按照使用 Application Server 管理控制台中的说明登录到 Application Server 管理控制台。

  2. 展开“配置”节点。

  3. 展开服务器节点 server-config (Admin Config)

  4. 单击“JVM 设置”。

  5. 单击“JVM 选项”选项卡。

  6. 单击“添加 JVM 选项”。

  7. 在文本字段中,键入以下内容(全都在一行):


    -Dhttp.proxyHost=hostname.domainname -Dhttp.proxyPort=8080 -Dhttp.nonProxyHosts=localhost
    

    通常,端口值为 8080。如果使用不同的端口,请指定正确的值。

  8. 再次单击“添加 JVM 选项”。

  9. 在文本字段中,键入以下内容(全都在一行):


    -XX:MaxPermSize=128m
    
  10. 单击“保存”。

  11. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

创建管理员

只有注册为管理员的用户才能使用 Service Registry 管理工具执行某些任务。此外,可能需要管理员对其他用户提交的对象执行生命周期更改(例如,批准)。

管理员还可以更改默认的访问控制策略 (Access Control Policy, ACP)。不过,撰写 ACP 目前还是一个手动过程,需要具备 OASIS 可扩展访问控制标记语言 (eXtensible Access Control Markup Language, XACML) 的知识。有关详细信息,请参阅 ebXML RIM 3.0 的第 9 章“访问控制信息模型”,尤其是 9.7.6 节至 9.7.8 节中的示例。有关如何查找 ebXML RIM 3.0 规范的信息,请参见阅读本书之前

Procedure创建管理员

要注册为管理员,请执行以下步骤:

  1. 按照《Service Registry 3.1 用户指南》中的“创建用户帐户”中的说明执行用户注册,或使用add user中所述的 add user 管理工具将自己添加为用户。

  2. 如果使用 Web 控制台进行注册,请获取用户 (User) 对象的唯一标识符,如下所示:

    1. 使用 Web 控制台执行基本查询,将“对象类型”设置为“用户 (User)”。

    2. 单击“详细信息”链接以查看 Registry 为您创建的用户 (User) 对象。

    3. 记下“唯一标识符”字段值,或将其复制并粘贴到文件中。

    如果使用 add user 命令,请使用 users 命令获取用户列表,然后复制您用户名的标识符值。

  3. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  4. 在文本编辑器中打开文件 omar.properties

  5. 查找 omar.security.authorization.registryAdministrators 属性的定义。

  6. 通过添加竖线 (|) 并在其后跟有您在步骤 2 中复制的唯一标识符字符串,来编辑属性定义。

    属性定义必须全都在一行并且不能包含空格。完成之后,属性定义类似于以下内容(全都在一行):

    omar.security.authorization.registryAdministrators=
    urn:freebxml:registry:predefinedusers:registryoperator|
    urn:uuid:77f5c196-79de-4286-8483-8d80def3583b
  7. 保存并关闭 omar.properties 文件。

  8. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

接下来的操作

要创建其他管理员,您无需编辑 omar.properties 文件。您可以使用管理工具或 Web 控制台来添加用户,并可以使用 Web 控制台将用户分类为管理员。

指定何人可以执行用户注册

默认情况下,允许任何可以访问 Service Registry URL 的用户使用“用户注册向导”来执行用户注册。任何已注册的用户都可以向 Registry 中发布内容。

您可以通过在文件 omar.properties 中定义属性 omar.security.selfRegistration.acl 来限制此功能,以便只有指定的用户才能执行用户注册。

完成此任务之后,只有那些具有属性定义所指定的名字和姓氏的用户才能使用此向导进行注册。其他尝试注册的用户在填写完“用户注册向导”步骤 3 中的“用户验证详细信息”表单之后,当单击“下一步”按钮时,将看到一条错误消息。错误消息显示用户注册失败。此消息之后的一行将报告 UserNotFoundException

如果 omar.properties 中没有 omar.security.selfRegistration.acl 属性,或将此属性定义为空字符串,则任何已注册的用户都可以向注册表中发布内容。

Procedure限制用户注册

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 omar.properties

  3. 添加以下属性的定义:

    omar.security.selfRegistration.acl

    您可以将此属性定义放在文件中的任何位置。此属性定义的逻辑位置是定义其他带有前缀 omar.security 的属性的区域。

    将属性值定义为以逗号分隔的列表(其中包含被授权执行用户注册的用户的名字和姓氏),如以下示例中所示:

    omar.security.selfRegistration.acl=Vijay Patel, Jane Doe,
  4. 保存并关闭 omar.properties 文件。

  5. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

启用注册表 (Registry) 对象的版本化

默认情况下,注册表 (Registry) 对象的版本化被禁用。如果启用版本化,则只要更改了任何对象的属性,就会创建对象的新版本。启用版本化是一项管理任务。

Procedure启用注册表 (Registry) 对象的版本化

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 omar.properties

  3. 查找 omar.server.lcm.VersionManager.versionableClassList 属性的定义。

    默认情况下,此属性没有值:

    omar.server.lcm.VersionManager.versionableClassList=
  4. 指定一些对象,当修改这些对象时,您希望 Registry 为其创建新版本。用竖线 (|) 隔开这些对象。

    例如:

    omar.server.lcm.VersionManager.versionableClassList=Service|Organization

    使用此文件中被注释掉的属性设置副本作为一个示例。

  5. 保存并关闭 omar.properties 文件。

  6. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

禁用 WSDL 编目程序

默认情况下,将 WSDL 文件作为外部对象 (ExtrinsicObject) 对象发布到 Registry 时,Registry 将使用ebXML Registry Profile for Web Services所定义的功能为此对象创建元数据。可以禁用此功能。

Procedure禁用 WSDL 编目程序

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 omar.properties

  3. 查找 omar.server.cms.classMap.urn\:oasis\:names\:tc\:ebxml-regrep\:profiles\:ws\: wsdl\:cataloging\:Service\:default 属性的定义。

  4. 通过在此属性定义之前添加井号 (#) 来注释掉此定义。

  5. 保存并关闭 omar.properties 文件。

  6. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

配置 Web 控制台

作为管理员,您可以通过编辑配置文件来自定义 Web 控制台显示的某些方面。

本节介绍了以下任务:

有关使用 Web 控制台的信息,请参见《Service Registry 3.1 用户指南》

添加预定义的查询

Service Registry 包括若干个预定义的查询,这些预定义的查询显示在“ Web 控制台搜索”表单的“选择预定义的查询”下拉式列表中。作为管理员,您可以根据具体的 Registry 安装向下拉式列表中添加新的查询。

Procedure添加预定义的查询

  1. 使用 Web 控制台将特殊查询 (AdhocQuery) 对象发布到 Registry 中。

    您为查询指定的名称和描述将显示在预定义查询的下拉式列表中。在 SQL 查询语句中,通过将用户提供的数据括在成对单引号中为这些数据指定占位符,如下所示:

    select * from registryobject where id = ''$lid''
  2. 记下特殊查询 (AdhocQuery) 对象以及 SQL 语句中任何占位符的唯一标识符,或将其复制并粘贴到文件中。

  3. 转至目录 RegistryDomain-base/3.0/jaxr-ebxml

  4. 在文本编辑器中打开文件 registry-browser-config.xml

    请复制原始文件,这样可以在需要时回退更改。

  5. 使用以下格式向 registry-browser-config.xml 文件中添加条目。为 SQL 语句中的每个占位符指定 Parameter 元素。

    <Query>
      <AdhocQueryRef id="unique-identifier"/>
      <Parameter parameterName="$placeholder-name" datatype="string">
        <rim:Name>
          <rim:LocalizedString xml:lang="en" charset="UTF-8" 
            value="parameter-name-in-en-locale"/>
          <rim:LocalizedString xml:lang="fr" charset="UTF-8" 
            value="parameter-name-in-fr-locale"/>
        </rim:Name>
        <rim:Description>
          <rim:LocalizedString xml:lang="en" charset="UTF-8" 
            value="parameter-description-in-en-locale"/>
          <rim:LocalizedString xml:lang="fr" charset="UTF-8" 
            value="parameter-description-in-fr-locale"/>
        </rim:Description>
      </Parameter>
      ...
    </Query>

    unique-identifier特殊查询 (AdhocQuery) 对象的唯一标识符。

    每个参数的 parameterName 属性值必须来自 SQL 查询语句中的占位符。

    datatype 属性可以具有以下任何一个值:

    • string:参数显示为“搜索”表单中的文本字段。

    • taxonomyElement:参数显示为“搜索”表单中的下拉式列表。如果指定 taxonomyElement 数据类型,则 "Name" 和 "Description" 元素必须后跟 SlotList 元素,如下所示:

      <rim:SlotList>
        <rim:Slot name="domain">
          <rim:ValueList>
            <rim:Value>
            classification-scheme-or-concept-id
            </rim:Value>
          </rim:ValueList>
        </rim:Slot>
      </rim:SlotList>

      classification-scheme-or-concept-id 是分类方案或概念(其概念(或子概念)必须显示在下拉式列表中)的唯一标识符。如果分类方案尚未存在于 Registry 中,您必须发布此方案。

      插槽名称必须为 "domain"

    • boolean:参数显示为“搜索”表单中的复选框。

    如果 datatypestringboolean,您还可以将 defaultValue 属性添加到 Parameter 元素中,以指定要在“搜索”表单中显示的默认值。

    针对支持的所有语言环境,为每个参数名称和描述指定本地化字符串值。当前语言环境中的 parameter-name 显示为“搜索”表单中的参数标签。

    使用 registry-browser-config.xml 文件中的现有条目作为参考。

  6. 保存并关闭 registry-browser-config.xml 文件。

  7. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

更改默认查询

显示为“选择预定义的查询”下拉式列表中默认值的查询为“基本查询”,用户可以使用此查询按名称、描述和分类来搜索注册表 (Registry) 对象。

作为管理员,您可以将此默认值更改为适用于您的安装的查询。例如,您可能希望默认查询为添加到 Registry 中的新预定义查询(如添加预定义的查询中所述)。要进行此更改,请在配置文件中编辑属性。

Procedure更改默认查询

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 jaxr-ebxml.properties

  3. 查找 jaxr-ebxml.thin.defaultQueryPanel 属性的定义。默认情况下,此属性被注释掉:

    #jaxr-ebxml.thin.defaultQueryPanel=
  4. 删除注释字符 (#)。

  5. 通过指定将作为默认值的查询的逻辑标识符来设置此属性的值,如以下示例中所示:

    jaxr-ebxml.thin.defaultQueryPanel=urn:oasis:names:tc:ebxml-regrep:query:MyQuery
  6. 保存并关闭 jaxr-ebxml.properties 文件。

  7. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

隐藏分类方案

分类方案的树结构将显示在 Web 控制台的以下区域中:

作为管理员,如果不希望 Service Registry 用户使用分类方案,您可以隐藏这些分类方案的显示。要隐藏分类方案,请在配置文件中定义属性。

Procedure隐藏分类方案

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 jaxr-ebxml.properties

  3. 使用以下语法选择属性 jaxr-ebxml.registryBrowser.ConceptsTreeModel.hiddenSchemesList。所有属性定义必须都在一行并且不能包含空格。

    jaxr-ebxml.registryBrowser.ConceptsTreeModel.hiddenSchemesList=
    class-scheme-id1|class-scheme-id2|...

    为每个要隐藏的分类方案指定逻辑标识符。如果指定多个标识符,请使用竖线 (|) 隔开这些标识符,如以下示例中所示:

    jaxr-ebxml.registryBrowser.ConceptsTreeModel.hiddenSchemesList=
    urn:oasis:names:tc:ebxml-regrep:classificationScheme:StatusType|
    urn:oasis:names:tc:ebxml-regrep:profile:ws:classificationScheme:BindingType
  4. 保存并关闭 jaxr-ebxml.properties 文件。

  5. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

配置搜索结果显示

默认情况下,Web 控制台针对每个查询每次显示 25 个搜索结果。如果搜索返回的结果超过 25 个,则用户可以显示多个结果页面。作为管理员,您可以修改每个页面中显示的搜索结果数。

默认情况下,Web 控制台在搜索结果区域中显示一些列。对于每个对象,它将显示对象类型、名称、描述、版本和版本注释。对于某些对象类型,将配置非默认显示。例如,对于服务绑定 (ServiceBinding) 对象,显示包括端点而不是版本信息。作为管理员,您可以添加配置信息,从而显示所选对象类型的非默认数据。

要执行其中每项任务,您可以编辑一个配置文件。

Procedure配置搜索结果显示中的行数

  1. 转至目录 RegistryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/classes

  2. 在文本编辑器中打开文件 jaxr-ebxml.properties

  3. 查找 omar.client.thinbrowser.numSearchResults 属性的定义:

    omar.client.thinbrowser.numSearchResults=25
  4. 将值 25 更改为所需的值。

  5. 保存并关闭 jaxr-ebxml.properties 文件。

  6. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

Procedure配置搜索结果区域中的列

您可以在搜索结果区域中为对象类型配置列。这些列将显示对象的属性。

  1. 转至目录 RegistryDomain-base/3.0/jaxr-ebxml

  2. 在文本编辑器中打开文件 registry-browser-config.xml

  3. registry-browser-config.xml 文件中添加条目,或编辑现有条目。请使用以下格式。

    此示例配置了服务 (Service) 对象的非默认显示。

    <ObjectTypeConfig 
        className="org.freebxml.omar.client.xml.registry.infomodel.ServiceImpl" 
        id="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Service">
      <SearchResultsConfig>
        <SearchResultsColumn columnClass="java.lang.Object" 
          columnHeader="Object Type" columnWidth="25" editable="false" 
          method="getObjectType"/>
        <SearchResultsColumn columnClass="java.lang.Object" 
          columnHeader="Name" columnWidth="25" editable="true" method="getName"/>
        <SearchResultsColumn columnClass="java.lang.Object" 
          columnHeader="Description" columnWidth="30" editable="true" 
          method="getDescription"/>
        <SearchResultsColumn columnClass="java.lang.Object" 
          columnHeader="Status" columnWidth="15" method="getStatusAsString"/>
        <SearchResultsColumn columnClass="java.lang.Object" 
          columnHeader="Version" columnWidth="5" method="getVersionName"/>
      </SearchResultsConfig>
    </ObjectTypeConfig>

    registry-browser-config.xml 文件提供了 ObjectTypeConfig 元素的语法。使用文件中已存在的元素作为示例。这些元素配置了注册表 (Registry) 对象的默认显示以及外部链接 (ExternalLink)外部对象 (ExtrinsicObject)服务绑定 (ServiceBinding) 对象的非默认显示。

    可以配置的最大列数为 30。

    对于 SearchResultsColumn 元素:

    • columnClass 属性值始终为 java.lang.Object

    • columnHeader 属性值为 Web 控制台资源包文件中某消息的键。这些文件包含在目录 registryDomain-base/domains/registry/applications/j2ee-modules/soar/WEB-INF/ classes/org/freebxml/omar/client/ui/thin/ 中。例如,如果键入 Object Type 作为 columnHeader 值,则 Web 控制台的底层 Bean 将使用 WebResourceBundle 类来查找具有此键的消息。如果 WebResourceBundle 找不到此类消息,它会将此键转换为小写体并再次尝试查找。如果查找再次失败,它会将消息值设置为 "???"+key+"???" 并记录有关缺少资源包条目的警告消息。因此,要添加新的本地化 columnHeader 值,必须向此目录包含的 ResourceBundle 文件中输入新的消息键。

    • Web 控制台不使用 columnWidth 属性。

    • Web 控制台不使用 editable 属性。

    • 在极大程度上,您可以根据 ebXML Registry Information Model Version 3.0 规范(有关详细信息,请参见阅读本书之前)中的类属性推论出 method 属性的方法名称。可以在 RegistryObjectImpl 实现类中找到 getStatusAsString 方法。(但是,此版本的 Service Registry 中不包括 API 文档。)

    对于每个 omar.client.xml.registry.infomodel 类名,最多只能具有一个 ObjectTypeConfig 元素。

  4. 保存并关闭 registry-browser-config.xml 文件。

  5. 按照停止并重新启动 Registry 的 Application Server 域中的说明进行操作。

  6. 要检验重新配置,请使用 Web 控制台的“搜索”或“资源管理器”菜单来显示更改了列的对象。

重新安装 Service Registry

如果需要卸载并重新安装 Service Registry,请在重新安装之前执行以下任务:

如果需要重新安装 Service Registry 数据库(例如,在数据库毁损情况下),请按照重新安装 Service Registry 数据库中的说明进行操作。在重新安装该数据库之前,不需要卸载它。

Procedure停止和删除 Registry 的 Application Server 域

  1. 转至 ServiceRegistry-base/install 目录。

  2. 运行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.domain.delete

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

    此目标将停止域,然后将其删除。

Procedure重新安装 Service Registry 数据库

此任务将删除现有数据库内容(包括已注册的用户)并重新创建默认数据库。

  1. 转至 ServiceRegistry-base/install 目录。

  2. 运行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file install.db

  3. 运行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.domain.stop export.registryOperatorCert install.cacerts appserver.domain.start

管理 Java DB 数据库

Registry 使用 Java DB 数据库。Java DB 是商业版的 Apache Software Foundation 开放源代码关系数据库项目。此 Apache 项目称为 Derby。

默认情况下,此数据库位于目录 RegistryDomain-base/3.0/data/registry/soar/ 中。数据库备份放在目录 RegistryDomain-base/3.0/backup/ 中,并且子目录名称中包含备份日期(例如,20060419-004759)。

默认情况下,Java DB 数据库以嵌入模式运行。这意味着它与 Service Registry 在同一 JVM 中运行,并且只能接受来自一个客户机(即 Service Registry)的连接。无法进行远程连接。当 Java DB 以嵌入模式运行时,您只能在数据库未运行时对其执行备份(脱机备份)。有关说明,请参见对数据库执行脱机备份

如果需要在 Registry 域运行时能够备份数据库(联机备份),则必须在网络服务器模式下运行 Java DB 数据库。有关说明,请参见从嵌入模式切换到网络服务器模式对数据库执行联机备份

在网络服务器模式下运行时,Java DB 可以通过常见的客户机/服务器配置接受多个客户机连接。例如,Service Registry 和 SQL 客户机可以同时与 Java DB 进行通信。当 Java DB 以网络服务器模式运行时,它将使用默认值为 1527 的数据库端口。Service Registry 之类的客户机将使用此端口与数据库进行通信。

当 Java DB 以网络服务器模式运行时,Service Registry 将以网络客户机模式运行。

以网络服务器模式运行的数据库必须受密码保护,这样只有经过验证的客户机才能使用此数据库。当数据库以嵌入模式运行时,您也可以使用这种方法保护数据库,但这样做是不必要的。

默认情况下,将在文件 ServiceRegistry-base/install/install.properties 中设置属性,以使 Java DB 在嵌入模式下运行。表 1–3 显示了这些设置。

表 1–3 Java DB 默认属性设置

属性设置 

描述 

registry.install.clientDatabase=false

启用嵌入模式 

registry.install.RequireDatabaseAuthentication=false

不需要数据库验证 

registry.install.DatabaseUserID=APP

将用户 ID 设置为 APP(未使用)

registry.install.DatabasePassword=app123

将密码设置为 app123(未使用)

有关 Java DB 的更多详细信息,请查阅 Java DB Web 站点上的 Java DB 文档。

Procedure需要数据库验证

默认情况下,不需要数据库验证。当数据库以嵌入模式运行时,可能需要验证;当数据库以网络服务器模式运行时,必须验证。

  1. 转至 Service Registry 安装目录:

    cd ServiceRegistry-base/install

  2. 在文本编辑器中打开 install.properties 文件的副本。

  3. registry.install.RequireDatabaseAuthentication 属性的设置从 false 更改为 true

  4. 编辑 registry.install.DatabaseUserID 属性的设置。

    对于嵌入模式,此值可以为 APP 或为空:

    registry.install.DatabaseUserID=APP
    registry.install.DatabaseUserID=

    对于网络服务器模式,此值必须为 APP

  5. 编辑 registry.install.DatabasePassword 属性的设置。

    密码必须至少包含 6 个字符。默认值为 app123

  6. 保存并关闭此文件。

  7. 停止并重新启动 Registry 的 Application Server 域。为此,请执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.domain.bounce

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

Procedure对数据库执行脱机备份

如果数据库以嵌入模式运行,则必须执行脱机备份。

  1. 转至 Service Registry 安装目录:

    cd ServiceRegistry-base/install

  2. 执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.domain.stop

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

  3. 执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file backup.db

  4. 通过执行以下命令(全都在一行)重新启动域:

    Ant-base/ant -f build-install.xml Dinstall.properties=props-file appserver.domain.start

Procedure从嵌入模式切换到网络服务器模式

要从嵌入模式(默认值)切换到网络服务器模式,请将 registry.install.clientDatabase 属性的设置从 false 更改为 true,并需要数据库验证。

编辑属性之后,重新创建数据库资源,然后停止并重新启动 Application Server。

  1. 转至 Service Registry 安装目录:

    cd ServiceRegistry-base/install

  2. 在文本编辑器中打开 install.properties 文件的副本。

  3. registry.install.clientDatabase 属性的设置从 false 更改为 true

  4. registry.install.RequireDatabaseAuthentication 属性的设置从 false 更改为 true

  5. 如果有必要,请编辑 registry.install.DatabaseUserID 属性的设置。

    对于网络服务器模式,此值必须为 APP

  6. 编辑 registry.install.DatabasePassword 属性的设置。

    任何长度均有效。默认值为 app123

  7. 保存并关闭此文件。

  8. 重新创建数据库连接池及其相关资源。为此,请执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.jdbcResource.update

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。

  9. 停止并重新启动 Registry 的 Application Server 域。为此,请执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file appserver.domain.bounce

  10. 启动 Java DB 数据库。为此,请执行以下命令:

    asadmin start-database --dbhome database-directory

    默认情况下,此命令将数据库及其日志文件放在当前目录中。请使用 --dbhome 选项指定数据库的位置(通常为 RegistryDomain-base/3.0/data/registry/soar)。

接下来的操作

如果数据库以网络服务器模式运行,则可以对数据库执行联机备份。

以后,如果要返回到嵌入模式,请执行相同的步骤,但要进行如下设置:

Procedure对数据库执行联机备份

  1. 转至 Service Registry 安装目录:

    cd ServiceRegistry-base/install

  2. 检验 install.properties 文件副本中的 registry.install.clientDatabase 属性是否设置为 true

  3. 执行以下命令(全都在一行):

    Ant-base/ant -f build-install.xml Dinstall.properties= props-file backup.db

    其中,props-file 是您在在进行了“以后配置”安装后,以 Root 身份使用自定义属性配置 Service Registry在进行了“以后配置”安装后,以非 Root 用户身份使用自定义属性配置 Service Registry中编辑的 install.properties 文件副本的路径名。