选择适用于您环境的选项,以便为 () 应用程序生成定制安装指南。
有关在 上安装 应用程序的信息,请参阅安装时的特殊注意事项。
在安装 应用程序之前,请确保复查以下规划核对表中的信息。
| 规划任务 | 更多信息 | |
|---|---|---|
| 验证硬件和软件是否满足最低系统需求。 在此 发行版中,所需的 Java 版本为 8。 |
系统需求 | |
| 获取产品安装介质。 对于本地存储库下载,您大约需要五千兆字节 (5 GB) 的硬盘驱动器空间来下载和解压缩产品安装介质。 | 您可以从 jazz.net 下载服务器安装文件 | |
| 复查安装拓扑。 无论您是在试用 ,还是在生产环境中安装此解决方案,请单击右边的链接以查看并研究不同的安装拓扑示例。 这些示例包括:评估拓扑、部门拓扑和分布式企业拓扑。 | 安装过程和拓扑示例 | |
| 使所有机器上的时钟同步。 在分布式环境中,请确保所有机器上的时钟都已使用网络时间协议 (NTP) 进行同步。 | 有关 NTP 的更多信息,请访问网络时间协议 Web 站点 | |
| 了解许可证发放。 许可证发放方案基于角色。 当您购买基于角色的许可证时,您将具有对应用程序的部分或全部功能的读、写和评论访问权。 | 客户访问许可证管理 | |
| 了解查询和搜索索引管理。 这些 Deployment wiki 文章讨论了不同的 应用程序索引查询信息以及在 部署中实现它的方式。 此外,第二部分讨论了与索引管理和索引存储详细信息相关的不同管理任务。 |
在安装过程中,规划环境很关键,您计划将此安装用于部门或企业开发时尤其如此。 请参阅示例:安装过程和拓扑以了解各种安装过程和拓扑。
部署的常见拓扑是带有 Liberty 和 Derby 的单服务器 () 评估拓扑。 此拓扑对小型部署(例如评估、演示或培训部署)很有用,因为 Derby 数据库被限制为仅供 10 个用户使用。
常见安装拓扑是具有 和企业数据库管理系统(例如,IBM Db2、Db2 for z/OS 和 Db2 for i)的 () 企业拓扑的标准单服务器部署。
常见安装拓扑是具有 和企业数据库管理系统(例如,IBM Db2、Db2 for z/OS 或 Db2 for i)的 () 部门拓扑的分布式部署。
要为应用程序设置集群环境,需要下列服务器:
注: 是缺省安装在 上的 Java 应用程序。 为了提高性能,请考虑在集群中再添加一台服务器,专用于 。
要设置具有 HAProxy 高可用性的系统,需要下列服务器:
环境中的所有服务器都必须已配置它们的标准主机名称。 更新 /etc/hosts 文件时,请使用 IP fully-qualified-host-name alias [,alias] 格式。 请注意,标准主机名必须显示在任何别名前面。 否则,可能不会对多个节点启用集群。
有关 系统需求的列表,请参阅系统需求。
注:不支持在 Windows 平台上安装 HAProxy 负载均衡器。
您必须安装和配置 HAProxy 之后才能激活集群。 有关 HAProxy 的更多信息,请参阅 www.haproxy.org。
注:还可以配置和使用 IHS 而不是 HAProxy,但在集群中仅必须使用这两种方法中的一种方法来进行负载均衡。
HAProxy 是正式的 Red Hat Linux 存储库的一部分,可以使用 yum 命令来安装 HAProxy。 您必须具有 root 用户许可权,否则,请使用 sudo 命令来执行安装。
yum -y install haproxy
注:如果 的前端具有 HAProxy,请参阅此 Depolyment Wiki 文档的 haproxy.cfg 样本文件。
用于 集群的 haproxy.cfg 样本文件
# ---------------------------------------------------------------------
# 可能的 Web 应用程序的示例配置。 请参阅
# 联机完整配置选项。
#
# http://haproxy.1wt.eu/download/1.6/doc/configuration.txt
#
# ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# 全局设置
# ---------------------------------------------------------------------
全局
# 如果不使用 dockerized 版本,那么
# 要使这些消息在 /var/log/haproxy.log 中结束,您将
# 需要:
#
# 1) 配置 syslog 以接受网络日志事件。 具体做法是
# 在'-r' 选项到
# /etc/sysconfig/rsyslog
#
# 2) 配置 local2 事件到 /var/log/haproxy.log
# 文件。 A line like the following can be added to
# /etc/sysconfig/rsyslog
#
# local2.* /var/log/haproxy.log
#
# 3) uncomment the line below and comment the other log line
#log 127.0.0.1 local2
log /dev/log local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 6000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
tune.ssl.default-dh-param 2048
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
option dontlognull
option http-keep-alive
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 2h
timeout server 2h
timeout http-keep-alive 10s
timeout check 10s
maxconn 6000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend lanneluc-proxy
bind *:80
bind *:9443 ssl crt /etc/haproxy/ssl/proxy.pem no-sslv3
log global
option httplog
mode http
capture cookie SERVERID len 32
redirect scheme https if !{ ssl_fc }
maxconn 2000 # The expected number of the users of the system.
# 将套接字限制为此数目的并发连接。 无关的
# 连接将保留在系统的待办事项中,直到连接
# 释放为止。 如果未指定,那么限制将与前端的
# maxconn 相同。
default_backend ccm
backend ccm
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
fullconn 1000 # 如果未指定、HAProxy
balance leastconn
Cookie SERVERID insert indirect nocache secure attr "SameSite=None"
# minconn = 100、服务器将始终接受至少 100 个,
# 但不超过 "maxconn "的连接。 应与 Liberty
# server.xml
中的设置相同。
# 将对超额进行排队。 The total for all nodes should be equal to maxxcon
# on 'frontend'
server ccm1 node1.host.com:9443 minconn 100 maxconn 500 ssl check cookie ccm1 verify none
server ccm2 node2.host.com:9443 minconn 100 maxconn 500 ssl check cookie ccm2 verify none
server ccm3 node3.host.com:9443 minconn 100 maxconn 500 ssl check cookie ccm3 verify none
server ccm4 node5.host.com:9443 minconn 100 maxconn 500 ssl check cookie ccm4 verify none
# Uncomment the following section if your MessageBroker is fronted by HAProxy (for example if in High Availability mode)
#
# # connect MessageBroker cluster in tcp mode (N servers if HA mode, or a single server if IoT MessageBroker just must be fronted by proxy)
# listen MessageBroker
# bind *:1883
# mode tcp
# balance leastconn
# option tcplog
# server MessageBroker1 [MessageBroker server 1 URI]:1883 check
# server MessageBroker2 [MessageBroker server 2 URI]:1883 check
# # connect MessageBroker cluster in HTTP mode to allow gathering of MQTT statistics (6.0.6 and newer only) (N servers if HA mode, or a single server if IoT MessageBroker just must be fronted by proxy)
# listen MessageBroker_REST
# bind *:9089 ssl crt /etc/haproxy/ssl/msigh.pem no-sslv3 # Port (9089) must match that configured in MessageBroker, and the same port needs to be specified in MQTTStatsService advanced property
# mode http
# option tcp-check # Must tell HAProxy to use TCP port to do health checks
# balance leastconn
# # Same number of entries and same servers as in the section above:
# server MessageBroker_REST1 [MessageBroker server 1 URI]:9089 check port 1883 # Same ports (1883 and 9089) as used elsewhere in this file.
# server MessageBroker_REST2 [MessageBroker server 2 URI]:9089 check port 1883 # 与本文件其他地方使用的端口(1883 和 9089)相同。
listen statistics
bind *:1936
stats uri /
stats admin if TRUE
stats enable
stats hide-version
stats auth root:clu8ter8
统计刷新 5s
用于 QM 集群的 haproxy.cfg 样本文件
# ---------------------------------------------------------------------
# 可能的 Web 应用程序的示例配置。 请参阅
# 联机完整配置选项。
#
# http://haproxy.1wt.eu/download/1.6/doc/configuration.txt
#
# ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# 全局设置
# ---------------------------------------------------------------------
全局
# 如果不使用 dockerized 版本,那么
# 要使这些消息在 /var/log/haproxy.log 中结束,您将
# 需要:
#
# 1) 配置 syslog 以接受网络日志事件。 具体做法是
# 在'-r' 选项到
# /etc/sysconfig/rsyslog
#
# 2) 配置 local2 事件到 /var/log/haproxy.log
# 文件。 A line like the following can be added to
# /etc/sysconfig/rsyslog
#
# local2.* /var/log/haproxy.log
#
# 3) uncomment the line below and comment the other log line
#log 127.0.0.1 local2
log /dev/log local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 6000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
tune.ssl.default-dh-param 2048
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
option dontlognull
option http-keep-alive
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 2h
timeout server 2h
timeout http-keep-alive 10s
timeout check 10s
maxconn 6000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend lanneluc-proxy
bind *:80
bind *:9443 ssl crt /etc/haproxy/ssl/proxy.pem no-sslv3
log global
option httplog
mode http
capture cookie SERVERID len 32
redirect scheme https if !{ ssl_fc }
maxconn 2000 # The expected number of the users of the system.
# 将套接字限制为此数目的并发连接。 无关的
# 连接将保留在系统的待办事项中,直到连接
# 释放为止。 如果未指定,那么限制将与前端的
# maxconn 相同。
default_backend qm
backend qm
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
fullconn 1000 # 如果未指定、HAProxy
balance leastconn
cookie SERVERID insert indirect nocache secure attr "SameSite=None"
# minconn = 100、服务器将始终接受至少 100 个,
# 但不超过 "maxconn "的连接。 应与 QM Liberty 相同
# server.xml
# maxconn = 500,即发送到服务器的最大连接数。
# 将对超额进行排队。 The total for all nodes should be equal to maxxcon
# on 'frontend'
server qm1 node1.host.com:9443 minconn 100 maxconn 500 ssl check cookie ccm1 verify none
server qm2 node2.host.com:9443 minconn 100 maxconn 500 ssl check cookie qm2 verify none
server qm3 node3.host.com:9443 minconn 100 maxconn 500 ssl check cookie qm3 verify none
server qm4 node5.host.com:9443 minconn 100 maxconn 500 ssl check cookie qm4 verify none
# Uncomment the following section if your MessageBroker is fronted by HAProxy (for example if in High Availability mode)
#
# # connect MessageBroker cluster in tcp mode (N servers if HA mode, or a single server if IoT MessageBroker just must be fronted by proxy)
# listen MessageBroker
# bind *:1883
# mode tcp
# balance leastconn
# option tcplog
# server MessageBroker1 [MessageBroker server 1 URI]:1883 check
# server MessageBroker2 [MessageBroker server 2 URI]:1883 check
# # connect MessageBroker cluster in HTTP mode to allow gathering of MQTT statistics (6.0.6 and newer only) (N servers if HA mode, or a single server if IoT MessageBroker just must be fronted by proxy)
# listen MessageBroker_REST
# bind *:9089 ssl crt /etc/haproxy/ssl/msigh.pem no-sslv3 # Port (9089) must match that configured in MessageBroker, and the same port needs to be specified in MQTTStatsService advanced property
# mode http
# option tcp-check # Must tell HAProxy to use TCP port to do health checks
# balance leastconn
# # Same number of entries and same servers as in the section above:
# server MessageBroker_REST1 [MessageBroker server 1 URI]:9089 check port 1883 # Same ports (1883 and 9089) as used elsewhere in this file.
# server MessageBroker_REST2 [MessageBroker server 2 URI]:9089 check port 1883 # 与本文件其他地方使用的端口(1883 和 9089)相同。
listen statistics
bind *:1936
stats uri /
stats admin if TRUE
stats enable
stats hide-version
stats auth root:clu8ter8
统计刷新 5s
必须确保已正确输入该配置文件中的若干重要条目:
侦听统计信息
bind *: 1936
stats uri/
stats admin if TRUE
stats enable
stats hide-version
stats auth root:clu8ter8
stats 刷新 5s
后续章节中详细说明了这些条目。
systemctl enable haproxy
service haproxy start
HAProxy 需要证书来解析已加密的流量。 您可以使用自签名证书。 下列命令将为您的测试环境创建自签名证书,但在必要时,您必须获取实际证书。
OpenSSL 将提示您输入证书的详细信息,例如主机名等。 双引号是可选的。 主机名 (CN) 是安装了 HAProxy 的服务器的主机名:
cd /usr/local/haproxy/etc
openssl genrsa -des3 -out ssl/proxy.key 2048
openssl req -new -key "ssl/proxy.key" -out "ssl/proxy.csr"
openssl x509 -req -days 365 in "ssl/proxy.csr" -signkey "ssl/proxy.key" -out "ssl/proxy.crt"
cat ssl/proxy.crt ssl/proxy.csr > ssl/proxy.pem
HAProxy 提供了若干负载均衡算法。 在配置示例中,使用了 balance leastconn 选项。 balance leastconn 选项指示 HAProxy 将流量定向至连接数最少的后端服务器。
后端服务器是配置文件中以 "server" 开头的行。 这些条目指示 HAProxy 将流量重定向至节点。 在配置示例中,有 4 个节点。 请将 nodex.host.com 部分替换为 或 服务器(副本)所安装在的服务器(节点)的实际主机名。
可以对 HAProxy 进行预配置,以使其后端服务器(节点)数与您计划具有的 或 节点数一样多。 对于初始设置阶段,通过注释掉除第一行之外的所有其他服务器行,从一个节点上的一个 或 实例开始进行设置:
示例:
服务器 ccm1 node1.host.com: 9443 minconn 100 maxconn 500 ssl check cookie ccm1 verify none
#server ccm2 node2.host.com: 9443 minconn 100 maxconn 500 ssl check cookie ccm2 verify none
#server ccm3 node3.host.com: 9443 minconn 100 maxconn 500 ssl check cookie ccm3 verify none
#server ccm4 node5.host.com: 9443 minconn 100 maxconn 500 ssl check cookie ccm4 verify none
QM 示例:
服务器 qm1 node1.host.com: 9443 minconn 100 maxconn 500 ssl check cookie qm1 verify none
#server qm2 node2.host.com: 9443 minconn 100 maxconn 500 ssl check cookie qm2 verify none
#server qm3 node3.host.com: 9443 minconn 100 maxconn 500 ssl check cookie qm3 verify none
#server qm4 node5.host.com: 9443 minconn 100 maxconn 500 ssl check cookie qm4 verify none
配置 HAProxy 之后,如果它正在作为服务运行,那么可以通过输入以下命令来启动、停止和重新启动它:
sudo service haproxy start|stop|restart|reload
minconn、maxconn 和 fullconn 参数用来对服务器进行微调以及控制服务器可以处理的同时存在的连接数。 如果建立了更多连接,那么将对超额的连接进行缓存。 可能很难确定这些参数的最佳连接数,因为最佳连接数取决于期望用户数和服务器响应能力,而这可能会受到可用资源量和网络带宽等的影响。 可以根据预期要使用集群应用程序的用户数,对连接数进行微调。
这些数目还与 的配置方式相关。 默认情况下,运行 的 实例配置为 coreThreads="100" ,这是处理传入请求的最低线程数。 最大值受到可用系统资源量的限制。 因此,minconn 参数应设置为 coreThreads 设置的值。 后端部分(即,每个后端服务器都有一个后端部分)中的 maxconn 值应设置为服务器能够处理并且对性能或响应时间不会有任何不良影响的最大用户数。 在先前提供的配置示例中,maxconn 值在每个后端都设置为 500。 所有后端 maxconn 值的总计应该等于配置文件的前端部分中设置的 maxconn 值。 例如,如果有四个节点,每个节点设置为 maxconn=500,那么前端中的 maxconn 值应设置为 2000。
配置文件中的最后部分指定如何访问 HAProxy 监视控制台。 该控制台显示节点数和节点状态以及传入流量和传出流量。 对于运行良好的集群,如果已使所有节点在几乎相同的时间联机,那么会话数(Total 和 lbTotal)应该大致相同,并且不同节点上所传输的字节数应该相差不大。 应当没有错误或警告。
HAProxy 会在以下目录中保留一个日志文件:/var/log/haproxy.log。 此日志文件包含有关哪些请求已重定向至哪些后端服务器的信息以及其他 HAProxy 信息,例如,会话亲缘关系 Cookie 和响应代码。
HAProxy 提供了用于适用和调整其行为的不同参数,其中包括名为 weight 的属性,您可以使用此属性来标识用于负载均衡的服务器。 此属性仅用于第一个会话请求,因为此会话的所有其他请求都将通过会话亲缘关系路由至同一服务器。 权重必须是 1 到 256 之间的值。 如果未设置 weight 属性,那么会使用缺省值 1。
可以将 weight 属性添加至后端中的任何服务器声明,如以下行中所示:
后端 ccm
...
server ccm1 node1.host.com:9443 minconn 100 maxconn 500 ssl check weight 50 cookie ccm1 verify none
后端 qm
...
server qm1 node1.host.com:9443 minconn 100 maxconn 500 ssl check weight 50 cookie qm1 验证无
weight 参数使您可以为服务器定义特定权重。 但是,每当您要变更权重时,都必须编辑 haproxy.cfg 文件。 为了避免打开 haproxy.cfg 文件来变更权重,可以使用套接字接口,以在 HAProxy 服务器处于运行状态时变更权重。 使用以下过程来安装 Socat 程序,该程序允许您将消息发送至 HAProxy TCP 统计信息套接字:
过程
yum -y install socat
stats 套接字 /var/lib/haproxy/stats.sock mode 600 level admin
stats timeout 2m
echo "set weight ccm/<serverName> <newWeight>" | socat unix-connect:/var/lib/haproxy/stats.sock stdio
ex: echo "set weight ccm/ccm1 50" | socat unix- connect:/var/lib/haproxy/stats.sock stdio
echo "set weight qm/<serverName> <newWeight>" | socat unix-connect:/var/lib/haproxy/stats.sock stdio
ex: echo "set weight qm/qm1 50" | socat unix- connect:/var/lib/haproxy/stats.sock stdio
注:不支持在 Windows 平台上安装
为物联网 (IoT) 和移动环境提供快速安全的双向消息传递。 是高性能 MQTT 代理。
过程
要安装非 Dockerized 版本的 ,请完成下列步骤:
注:需要具有 IBM 标识才能访问这些文件。 如果您不具有
IBM 标识,那么系统将提示您创建 IBM 标识,然后才能下载 。
有关完整的指示信息,请参阅 文档。
使用称为集线器的组织配置对象来定义配置策略。
过程
可以使用 Web UI 来查看预订监视统计信息。 要访问监视预订,请转至 "预订" 页面,方法是选择 监视 > 预订。
在“监视”视图中,您可以看到所有 MQTT 客户机(节点)、所预订和发布的主题、活动使用者、消息数以及缓冲区大小。 可以使用各种选项对数据进行过滤。
要实现 高可用性(主节点和备用节点),请参阅 文档中的下列主题:
开始之前
开始安装之前,请完成下列任务:
* hard nofile 65536
* soft nofile 65536
* hard nproc 10000
* soft nproc 10000
ulimit -n 65536
ulimit -u 10000
注:如果使用这些命令,请从同一 shell 中启动 启动板程序或 IBM Installation Manager,以继承修改后的限制。 在应用这些设置之后,请通过运行 Jazz_Install_Dir/server/repotools-jts -reindex repotools 命令对服务器重建索引,以修正所有已损坏的服务器索引。
重要信息: 如果使用系统启动脚本 (例如 /etc/init.d/was 或 /etc/rc.*/SXXWebSphere ) 在系统引导时启动 WebSphere® Application Server , init.d 调用最大文件描述符数设置为 1024 的启动脚本,而不是 /etc/security/limits.conf (65536) 中设置的系统缺省值。 为了避免发生此问题,请在启动脚本开头添加 ulimit -n 65536 命令。 这将确保在采用正确文件描述符限制的情况下启动 。
关于本任务
共有两种下载和安装 应用程序的方法。 第一种安装方法是基于 Web 的安装,此安装方法的下载量较小,并且将在安装期间连接到因特网以获取存储库文件。 如果您必须在无法访问因特网的环境中安装服务器,请使用第二种安装方法:将存储库文件下载到本地计算机并将其解压缩,以便安装服务器。
如果未在服务器上安装“用户界面”库或只是偏好使用命令行安装方法,那么可使用
响应文件来安装 。 此方法也称为 静默安装
。
提供了两个样本响应文件,用于安装 和 应用程序:
要安装 ,可以使用 silent-install-db-server.xml 样本响应文件。
提供了两个样本响应文件,用于安装 :
过程
注:请确保 应用程序已安装在服务器上,或者您正在使用“体系结构管理扩展”进行安装。 如果服务器上不存在相同版本的 应用程序,那么安装将失败。
注:如果要以非 root 用户非管理员用户身份安装产品,请从选择 Installation Manager 的用户方式列表中选择非管理员。 如果选择非管理员,那么这些软件包将安装在用户的目录中,程序包组将名为
My 。 而且,在启用了用户访问控制 (UAC)
的 Windows 操作系统上,要安装这些应用程序的用户必须能够写至安装目录。
如果没有受支持版本的 Installation Manager,那么可从 Jazz.net 获取,也可下载包含 Installation Manager 的 Web 安装程序。
注:如果您打算使用跨域身份管理系统 (SCIM) 标准,那么必须安装和配置
。 “启动板”程序中提供了用于安装 的链接。
注:可以将 与 安装在同一台计算机上,也可以安装在它自己的专用服务器上。 将
安装在您已标识为 的计算机上,并将集群应用程序安装在您已在 HAProxy 配置中启用的节点相对应的计算机上。
.\installc -acceptLicense -showVerboseProgress -input silent-install-server2.xml --launcher.ini silent-install.ini
./installc -acceptLicense -showVerboseProgress -input silent-install-server2.xml --launcher.ini silent-install.ini
.\userinstc -acceptLicense -showVerboseProgress -input silent-install-server2.xml --launcher.ini user-silent-install.ini
./userinstc -acceptLicense -showVerboseProgress -input silent-install-server2.xml --launcher.ini user-silent-install.ini
.\installc -acceptLicense -showVerboseProgress -input silent-install-jas2.xml --launcher.ini silent-install.ini
./installc -acceptLicense -showVerboseProgress -input silent-install-jas2.xml --launcher.ini silent-install.ini
.\userinstc -acceptLicense -showVerboseProgress -input silent-install-jas2.xml --launcher.ini user-silent-install.ini
./userinstc -acceptLicense -showVerboseProgress -input silent-install-jas2.xml --launcher.ini user-silent-install.ini
.\installc -acceptLicense -showVerboseProgress -input silent-install-db-server.xml --launcher.ini silent-install.ini
./installc -acceptLicense -showVerboseProgress -input silent-install-db-server.xml --launcher.ini silent-install.ini
.\userinstc -acceptLicense -showVerboseProgress -input silent-install-db-server.xml --launcher.ini silent-install.ini
./userinstc -acceptLicense -showVerboseProgress -input silent-install-db-server.xml --launcher.ini silent-install.ini
<data key='user.JazzFoundationServer.NoAppServer.WebApps.InstallLocation'
value='C:\tmp\silent-install\JazzTeamServer\server\webapps'/>
<data key='user.JazzFoundationServer.NoAppServer.WebApps.InstallLocation'
value='/tmp/silent-install/JazzTeamServer/server/webapps'/>
<!--
<offering id='com.ibm.team.install.jfs.app.rtc'/>
-->
<offering id='com.ibm.team.install.jfs.app.jrs' features='lqe,dcc'/>
注: 安装后,找到 <installdir>/server/server.startup 文件并编辑定义 JAVA_OPTS 的行,以将缺省 4GB 更改为 8GB。
例如, JAVA_OPTS = "$JAVA_OPTS -Xmx8G"
有关全新安装 的逐步指示信息,请参阅在 IBM i 上安装 和 应用程序。
有关如何安装 Build System Toolkit 和上下文相关搜索引擎的详细指示信息,请参阅以下资源:
在为集群环境创建数据库之前,请确保已对磁盘配置启用读取和写入高速缓存。
打开 /etc/security/limits.conf 文件,设置下列 ulimit 参数:
<dbuser> hard nofile 65536
<dbuser> soft nofile 65536
<dbuser> hard nproc 65536
<dbuser> soft nproc 65536
如果使用的是所包含的 Derby 数据库,那么不必进行任何其他设置。 继续执行下一步。
注:虽然 Derby 数据库包括在缺省配置中且无需进行安装,但是此数据库限制为供 10 个用户使用。 要支持更多用户,请安装受支持的企业数据库(例如 Db2、Oracle 或 SQL Server)。
要创建数据库表,请参阅以远程方式创建 Db2 for z/OS 数据库表。
缺省情况下,在 IBM i 系统上设置和配置了 IBM Db2i 数据库。 不需要其他设置。 继续执行下一步。
产品支持 IBM Db2 Enterprise Server Edition。 对于不支持 Enterprise Server Edition 的平台,可以使用 IBM Db2 Workgroup Server Edition。 您可以从 ibm.com 下载其中一个 Db2 版本的试用版或者免费的 Db2 Express Server 版本(适用于不超过 50 位开发者的部署)。
开始之前
此过程要求满足以下先决条件:
过程
db2 create database JTS using codeset UTF-8 territory en PAGESIZE 16384
db2 create database PUB using codeset UTF-8 territory en PAGESIZE 16384
另请注意,这些值是示例,您应根据自己的使用情况和环境加以变更。 例如,如果 TOKENSTRING 值 2048 太小,您可使用数据类型 TOKENSTRING NVARCHAR(MAX) NOT NULL, 予以增大。
CREATE DATABASE oauth2db USING CODESET UTF8 TERRITORY US;
CONNECT TO oauth2db;
CREATE BUFFERPOOL BUFF16K IMMEDIATE SIZE 2500 AUTOMATIC PAGESIZE 16K;
create tablespace TAB16K pagesize 16K bufferpool BUFF16K dropped table recovery on;
CREATE SYSTEM TEMPORARY TABLESPACE TEMPSYS16K PAGESIZE 16K BUFFERPOOL BUFF16K;
---- CREATE TABLES ----
CREATE TABLE OAuthDBSchema.OAUTH20CACHE
(
LOOKUPKEY VARCHAR(256) NOT NULL,
UNIQUEID VARCHAR(128) NOT NULL,
COMPONENTID VARCHAR(256) NOT NULL,
TYPE VARCHAR(64) NOT NULL,
SUBTYPE VARCHAR(64),
CREATEDAT BIGINT,
LIFETIME INT,
EXPIRES BIGINT,
TOKENSTRING VARCHAR(2048) NOT NULL,
CLIENTID VARCHAR(64) NOT NULL,
USERNAME VARCHAR(64) NOT NULL,
SCOPE VARCHAR(512) NOT NULL,
REDIRECTURI VARCHAR(2048),
STATEID VARCHAR(64) NOT NULL,
EXTENDEDFIELDS CLOB NOT NULL DEFAULT '{}'
);
CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG
(
COMPONENTID VARCHAR(256) NOT NULL,
CLIENTID VARCHAR(256) NOT NULL,
CLIENTSECRET VARCHAR(256),
DISPLAYNAME VARCHAR(256) NOT NULL,
REDIRECTURI VARCHAR(2048),
ENABLED INT,
CLIENTMETADATA CLOB NOT NULL DEFAULT '{}'
);
CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE (
CLIENTID VARCHAR(256) NOT NULL,
USERID VARCHAR(256),
PROVIDERID VARCHAR(256) NOT NULL,
SCOPE VARCHAR(1024) NOT NULL,
EXPIRES BIGINT,
EXTENDEDFIELDS CLOB NOT NULL DEFAULT '{}'
);
---- ADD CONSTRAINTS ----
ALTER TABLE OAuthDBSchema.OAUTH20CACHE
ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY);
ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG
ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID);
---- CREATE INDEXES ----
CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC);
---- GRANT PRIVILEGES ----
---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ----
-- Change dbuser to the account you want to use to access your database
-- GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO USER dbuser;
-- GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO USER dbuser;
---- END OF GRANT PRIVILIGES ----
DISCONNECT CURRENT;
db2 -stvf createOauthTablesDB2.sql
<dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB">
<jdbcDriver libraryRef="DerbyLib" />
<properties.derby.embedded
databaseName="asDB"
createDatabase="create" />
</dataSource>
<library id="DerbyLib">
<fileset dir="${shared.config.dir}/lib/global" includes="derby.jar"。/>
</library>
<jdbcDriver id="db2Universal" libraryRef="DB2JCC4LIB"/>
<library id="DB2JCC4LIB" filesetRef="db2jcc4" apiTypeVisibility="spec,ibm-api,third-party"/>
<fileset dir="${shared.config.dir}/lib/global" id="db2jcc4" includes="db2jcc4.jar db2jcc_license_cu.jar"/>
<dataSource id="OAUTH2DBDS" jndiName="jdbc/oauthProvider" jdbcDriverRef="db2Universal">
<properties.db2.jcc password="*****"databaseName="OAUTH2DB" user="db2inst1"portNumber="50000" serverName="yourDB2.com"driverType="4"/>
</dataSource>
对于下列属性,确保使用正确的值:
<oauthProvider id="JazzOP"
httpsRequired="true"
autoAuthorize="true"
customLoginURL="/jazzop/form/login"
accessTokenLifetime="7201"
authorizationGrantLifetime="604801">
<autoAuthorizeClient>client01</autoAuthorizeClient>
<databaseStore dataSourceRef="OAUTH2DBDS" />
</oauthProvider>
db2 create database using codeset UTF-8 territory en PAGESIZE 16384
db2 create database QM using codeset UTF-8 territory en PAGESIZE 16384
db2 create database RM using codeset UTF-8 territory en PAGESIZE 16384
db2 create database DCC using codeset UTF-8 territory en PAGESIZE 16384
注: 数据库需要 32K 页。
db2 create database LQE using codeset UTF-8 territory en PAGESIZE 32768
如果 MAXAPPLS 未设置为 AUTOMATIC,那么 LQE 数据库必须增大 MAXAPPLS,以支持在 中使用并发连接来处理数据。 请将该值增大到 300:
db2 update db cfg for LQE using maxappls 300
这表示还必须增大锁定列表(如果未设为 AUTOMATIC):
db2 update db cfg FOR LQE using locklist 20000
事务日志大小也将随着数据的并行处理而增大。 请将 LOGFILSIZ 增大到 20000:
db2 update db cfg for LQE using LOGFILSIZ 20000
增大主事务日志文件数和辅助事务日志文件数:
db2 update db cfg for LQE using logprimary 25
db2 update db cfg for LQE using logsecond 100
注: 数据库需要 32K 页。
db2 create database LDX using codeset UTF-8 territory en PAGESIZE 32768
db2 create database GC using codeset UTF-8 territory en PAGESIZE 16384
db2 create database using codeset UTF-8 territory en PAGESIZE 16384
db2 create database DW using codeset UTF-8 territory en PAGESIZE 32768
如果 MAXAPPLS 未设置为 AUTOMATIC,那么数据仓库数据库必须增大 MAXAPPLS,以支持在 中使用并发连接来处理数据。 请将该值增大到 300:
db2 update db cfg for DW using maxappls 300
这表示还必须增大锁定列表(如果未设为 AUTOMATIC):
db2 update db cfg FOR DW using locklist 20000
事务日志大小也将随着数据的并行处理而增大。 请将 LOGFILSIZ 增大到 20000:
db2 update db cfg for DW using LOGFILSIZ 20000
增大主事务日志文件数和辅助事务日志文件数:
db2 update db cfg for DW using logprimary 25
db2 update db cfg for DW using logsecond 200
如果您创建数据库时使用的不是 teamserver.properties 文件中指定的用户,那么必须向该用户授予 DBADM 权限:
db2 连接到 database_name
db2 将数据库上的 dbadm 授予用户 用户名
db2 断开连接 database_name
如果您在同一个数据库服务器上创建了所有 数据库,请验证同时活动的数据库的最大数目是否设置为大于所创建的数据库数目。 如果此值小于活动数据库的数目,那么将发生 SQL 代码 1041 错误。
要验证此值并在必要时增大数目,请完成下列步骤:
db2 get dbm cfg
db2 update dbm cfg using numdb 32
db2stop
db2start
为了创建并设置 Oracle 数据库,假设准备此数据库的用户对此数据库具有数据库管理权限,并假设此数据库、表空间存储器和相应存储配置由具有系统管理权限的用户创建。
开始之前
规划核对表部分中的系统需求链接。
限制:因为 Oracle JDBC 驱动程序 12.1.0.2.0
中的缺陷,所以不能使用该驱动程序的此版本。 有关详细信息,请参阅 IBM 支持门户网站页面上的 repotools -createTables command fails with ORA-01000 on Oracle 12。
此步骤中的示例适用于带有不同表空间和数据库用户(他们对应每个应用程序)的一个 Oracle 数据库。
alter system set open_cursors = 10000 scope=both;
alter system set open_cursors = 10000;
过程
以系统管理员身份创建一个使用 UTF-8 编码的数据库,以用于 和所有应用程序。
注:Oracle 密码复杂性策略要求密码长度应该至少为 12 个字符。 此外,密码必须至少包含一个大写字符、一个小写字符和一个数字。 如果您的密码包含特殊字符、多字节字符,或者以数字或特殊字符开头,那么必须将其括在双引号中。 有关详细信息,请参阅 Oracle 文档。
注:将字符集设置为 Unicode (AL32UTF8) 可允许您存储多个语言组。
CREATE BIGFILE TABLESPACE JTS
DATAFILE 'ORACLE_BASE/oradata/DB/JTS.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE JTS_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/JTS_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE PUB
DATAFILE 'ORACLE_BASE/oradata/DB/PUB.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 PUB_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/PUB_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
请注意,脚本文件中的值是示例,您应根据自己的使用情况和环境加以变更。 例如,如果 TOKENSTRING 值 2048 太小,您可使用数据类型 TOKENSTRING NVARCHAR(MAX) NOT NULL, 予以增大。
createOauthOracle.sql 会创建两个表空间:OAUTH 和 OAUTH_TMP,并且会在 OAUTH 表空间中创建表。 如果您要使用现有的表空间,您可将 CREATE TABLE 语句变更为使用现有表空间。 如果要创建新的表空间,您应编辑 DATAFILE 和 TEMPFILE 子句,使其指向要用于该表空间的目录。
预期找到名为 OAUTHDBSCHEMA 的用户,并预期在名为 OAUTHDBSCHEMA 的模式中找到表。 您必须在 Oracle 中创建 OAUTHDBSCHEMA 用户。 请定制 CREATE USER 语句,以指定 OAUTHDBSCHEMA 用户的密码。 创建 OAUTHDBSCHEMA 用户时,还必须使该用户与您计划用于 OAUTH 表的表空间相关联。
CREATE TABLESPACE OAUTH DATAFILE '/home/oracle/tablespaces/OAUTH.dbf' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE OAUTH_TMP TEMPFILE '/home/oracle/tablespaces/OAUTH_TMP.dbf' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
CREATE USER OAUTHDBSCHEMA IDENTIFIED BY <your password> DEFAULT TABLESPACE OAUTH QUOTA UNLIMITED ON OAUTH TEMPORARY TABLESPACE OAUTH_TMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO OAUTHDBSCHEMA;
---- CREATE TABLES ----
CREATE TABLE OAuthDBSchema.OAUTH20CACHE
(
LOOKUPKEY VARCHAR(256) NOT NULL,
UNIQUEID VARCHAR(128) NOT NULL,
COMPONENTID VARCHAR(256) NOT NULL,
TYPE VARCHAR(64) NOT NULL,
SUBTYPE VARCHAR(64),
CREATEDAT NUMBER(19,0),
LIFETIME INT,
EXPIRES NUMBER(19,0),
TOKENSTRING VARCHAR(2048) NOT NULL,
CLIENTID VARCHAR(64) NOT NULL,
USERNAME VARCHAR(64) NOT NULL,
SCOPE VARCHAR(512) NOT NULL,
REDIRECTURI VARCHAR(2048),
STATEID VARCHAR(64) NOT NULL,
EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL
)
TABLESPACE OAUTH STORAGE(INITIAL 50K);
CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG
(
COMPONENTID VARCHAR(256) NOT NULL,
CLIENTID VARCHAR(256) NOT NULL,
CLIENTSECRET VARCHAR(256),
DISPLAYNAME VARCHAR(256),
REDIRECTURI VARCHAR(2048),
ENABLED INT,
CLIENTMETADATA CLOB DEFAULT '{}' NOT NULL
) TABLESPACE OAUTH STORAGE(INITIAL 50K);
CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE (
CLIENTID VARCHAR(256) NOT NULL,
USERID VARCHAR(256),
PROVIDERID VARCHAR(256) NOT NULL,
SCOPE VARCHAR(1024) NOT NULL,
EXPIRES NUMBER(19,0),
EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL
) TABLESPACE OAUTH STORAGE(INITIAL 50K);
---- ADD CONSTRAINTS ----
ALTER TABLE OAuthDBSchema.OAUTH20CACHE
ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY);
ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG
ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID);
---- CREATE INDEXES ----
CREATE INDEX OAUTH20CACHE_EXPIRES ON OAuthDBSchema.OAUTH20CACHE (EXPIRES ASC);
---- GRANT PRIVILEGES ----
---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ----
-- Change dbuser to the account you want to use to access your database
GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO OAUTHDBSCHEMA;
GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO OAUTHDBSCHEMA;
GRANT ALL ON OAuthDBSchema.OAUTH20CONSENTCACHE TO OAUTHDBSCHEMA;
---- END OF GRANT PRIVILIGES ----
@createOauthOracle.sql
<dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB">
<jdbcDriver libraryRef="DerbyLib" />
<properties.derby.embedded
databaseName="asDB"
createDatabase="create" />
</dataSource>
<library id="DerbyLib">
<fileset dir="${shared.config.dir}/lib/global" includes="derby.jar"。/>
</library>
<jdbcDriver id="oracle" libraryRef="ORAJCC4LIB"/>
<library id="ORAJCC4LIB" filesetRef="orajcc4" apiTypeVisibility="spec,ibm-api,third-party"/>
<fileset dir="${shared.config.dir}/lib/global" id="orajcc4" includes="ojdbc8.jar"/>
<dataSource id="OAUTH2ORA" jndiName="jdbc/oauthProvider" jdbcDriverRef="oracle">
<properties.oracle password="*****"databaseName="ORCL" user="OAUTHDBSCHEMA" portNumber="1521" serverName="yourOracle.com"/>
</dataSource>
对于下列属性,确保使用正确的值:
<oauthProvider id="JazzOP"
httpsRequired="true"
autoAuthorize="true"
customLoginURL="/jazzop/form/login"
accessTokenLifetime="7201"
authorizationGrantLifetime="604801">
<autoAuthorizeClient>client01</autoAuthorizeClient>
<databaseStore dataSourceRef="OAUTH2ORA" />
</oauthProvider>
CREATE BIGFILE TABLESPACE
DATAFILE 'ORACLE_BASE/oradata/DB/。DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE _TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE
DATAFILE 'ORACLE_BASE/oradata/DB/。DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE _TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE QM
DATAFILE 'ORACLE_BASE/oradata/DB/QM.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 QM_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/QM_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE RM
DATAFILE 'ORACLE_BASE/oradata/DB/RM.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TEMPORARY TABLESPACE RM_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/RM_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE DCC
DATAFILE 'ORACLE_BASE/oradata/DB/DCC.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 DCC_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/DCC_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE LQE
DATAFILE 'ORACLE_BASE/oradata/DB/LQE.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 LQE_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/LQE_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE LDX
DATAFILE 'ORACLE_BASE/oradata/DB/LDX.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 LDX_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/LDX_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE GC
DATAFILE 'ORACLE_BASE/oradata/DB/GC.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 GC_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/GC_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
CREATE BIGFILE TABLESPACE DW
DATAFILE 'ORACLE_BASE/oradata/DB/DW.DBF'
SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
创建临时表空间 DW_TEMP
TEMPFILE 'ORACLE_BASE/oradata/DB/DW_TEMP.DBF'
SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL 统一大小 1M;
在 Oracle Enterprise Manager Database Control 中,单击服务器 > 表空间并验证您创建的表空间是否显示以及是否可访问。 另请确保名为 USERS 的缺省 Oracle 表空间已经存在。 如果 Oracle 数据库中不存在此表空间,请创建该表空间。
创建表空间之后,必须为每一个应用程序创建一个特殊 Oracle 用户以使用 Oracle 数据库。 对于运行在一个 Oracle 数据库上的多个 Jazz 服务器,必须为每一个应用程序创建一个 Oracle 数据库用户。 这个 Oracle 数据库用户必须能够在其表空间(不受限或者具有空间配额)中使用创建会话、表、过程和视图的特权创建数据库对象。
要为 表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER JTS_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE JTS QUOTA UNLIMITED ON JTS TEMPORARY TABLESPACE JTS_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO JTS_DB_USER;
要为 表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER PUB_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE PUB QUOTA UNLIMITED ON PUB TEMPORARY TABLESPACE PUB_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO PUB_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER _DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE QUOTA UNLIMITED ON TEMPORARY TABLESPACE _TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO _DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER _DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE QUOTA UNLIMITED ON TEMPORARY TABLESPACE _TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO _DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER QM_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE QM QUOTA UNLIMITED ON QM TEMPORARY TABLESPACE QM_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO QM_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER RM_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE RM QUOTA UNLIMITED ON RM TEMPORARY TABLESPACE RM_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO RM_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER DCC_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE DCC QUOTA UNLIMITED ON DCC TEMPORARY TABLESPACE DCC_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO DCC_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER LQE_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE LQE QUOTA UNLIMITED ON LQE TEMPORARY TABLESPACE LQE_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO LQE_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER LDX_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE LDX QUOTA UNLIMITED ON LDX TEMPORARY TABLESPACE LDX_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO LDX_DB_USER;
要为 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER GC_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE GC QUOTA UNLIMITED ON GC TEMPORARY TABLESPACE GC_TEMP;
GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO GC_DB_USER;
要为公共数据仓库表空间创建用户并授予必需的许可权,请输入以下命令:
CREATE USER DW_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE DW QUOTA UNLIMITED ON DW TEMPORARY TABLESPACE DW_TEMP;
GRANT DBA TO DW_USER;
注:与其他数据库相比,在 Oracle 上创建数据仓库时需要具备更多权限。 您在数据仓库的连接规范中指定数据库用户时,请确保该数据库用户具有 DBA 许可权。 您可以在创建数据仓库之后变更此权限。 有关更多信息,请参阅完成安装。
要创建没有 DBA 许可权的数据仓库,请参阅 此部署 Wiki 文章。
创建一个名为 ORACLE_JDBC_DRIVER_FILE 的环境变量,并使其指向 ojdbc8.jar JDBC 驱动程序。 该位置可能因 Oracle 产品和操作系统的不同而有所变化。 您可以从 Oracle Web 站点下载受支持的 Oracle JDBC 驱动程序。
export ORACLE_JDBC_DRIVER_FILE =/Path_to_JDBC_driver/ojdbc8.jar
开始之前
此过程要求满足以下先决条件:
过程
使用 SQL Server 安装随附的 sqlcmd 命令行工具来设置 SQL Server 数据库。 也可以使用可视工具(例如 SQL Server Studio Management)。
重要说明:如果将 应用程序安装在相同计算机或分布式平台上,那么必须创建单独的数据库以及与该数据库相关联的数据库用户。
CREATE DATABASE jts
GO
创建登录 jtsDBuser
WITH PASSWORD = 'jtsDBpswd';
USE jts;
exec sp_changedbowner 'jtsDBuser'
GO
ALTER DATABASE jts COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE Jts SET READ_COMMITTED_SNAPSHOT ON
GO
CREATE DATABASE pub
GO
创建登录 pubDBuser
WITH PASSWORD = 'pubDBpswd';
USE pub;
exec sp_changedbowner 'pubDBuser'
GO
ALTER DATABASE pub COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE pub SET READ_COMMITTED_SNAPSHOT ON
请注意,脚本文件中的值是示例,您应根据自己的使用情况和环境加以变更。 例如,如果 TOKENSTRING 值 2048 太小,您可使用数据类型 TOKENSTRING NVARCHAR(MAX) NOT NULL, 予以增大。
-- Manually create DATABASE using object explorer and provide name as OAUTH2DB2;
USE OAUTH2DB2;
GO
CREATE SCHEMA OAUTHDBSCHEMA;
GO
---- CREATE TABLES ----
CREATE TABLE OAUTHDBSCHEMA.OAUTH20CACHE
(
LOOKUPKEY VARCHAR(256) NOT NULL,
UNIQUEID VARCHAR(128) NOT NULL,
COMPONENTID VARCHAR(256) NOT NULL,
TYPE VARCHAR(64) NOT NULL,
SUBTYPE VARCHAR(64),
CREATEDAT BIGINT,
LIFETIME INT,
EXPIRES BIGINT,
TOKENSTRING VARCHAR(2048) NOT NULL,
CLIENTID VARCHAR(64) NOT NULL,
USERNAME VARCHAR(64) NOT NULL,
SCOPE VARCHAR(512) NOT NULL,
REDIRECTURI VARCHAR(2048),
STATEID VARCHAR(64) NOT NULL,
EXTENDEDFIELDS NVARCHAR(2048) NOT NULL DEFAULT '{}'
);
GO
CREATE TABLE OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG
(
COMPONENTID VARCHAR(256) NOT NULL,
CLIENTID VARCHAR(256) NOT NULL,
CLIENTSECRET VARCHAR(256),
DISPLAYNAME VARCHAR(256) NOT NULL,
REDIRECTURI VARCHAR(2048),
ENABLED INT,
CLIENTMETADATA NVARCHAR(2048) NOT NULL DEFAULT '{}'
);
GO
CREATE TABLE OAUTHDBSCHEMA.OAUTH20CONSENTCACHE (
CLIENTID VARCHAR(256) NOT NULL,
USERID VARCHAR(256),
PROVIDERID VARCHAR(256) NOT NULL,
SCOPE VARCHAR(1024) NOT NULL,
EXPIRES BIGINT,
EXTENDEDFIELDS NVARCHAR(2048) NOT NULL DEFAULT '{}'
);
GO
---- ADD CONSTRAINTS ----
ALTER TABLE OAUTHDBSCHEMA.OAUTH20CACHE
ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY);
GO
ALTER TABLE OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG
ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID);
GO
---- CREATE INDEXES ----
CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC);
GO
---- GRANT PRIVILEGES ----
---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT
OTHER THAN ADMINISTRATOR FOR DB ACCESS ----
-- Change dbuser to the account you want to use to access your database
--GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CACHE TO dbuser;
--GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG TO dbuser;
--GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CONSENTCACHE TO dbuser;
---- END OF GRANT PRIVILIGES ----
createOauthMSSQL.sql
GO
此脚本将创建名为 oauth2db 的数据库,然后在 OAuthDBSchema 模式中创建表。 这些表需要页大小至少为 8K 的缓冲池。 这个 SQL 脚本会创建必要的缓冲池和表空间,但如果您的缓冲池已使用 8K 或更大的页大小,您可跳过此操作。
<dataSource id=OAuthFvtDataSource
jndiName=jdbc/OAuth2DB
<jdbcDriver libraryRef=DerbyLib
/>
<properties.derby.embedded
databaseName=asDB
createDatabase=create
/>
</dataSource>
<library id=DerbyLib
<fileset dir=${shared.config.dir}/lib/global
includes=derby.jar
/>
</library>
<dataSource id=OAUTH2DBDS
jndiName=jdbc/OAUTH2DB
<jdbcDriver libraryRef=MSJDBCLib
/>
<properties.microsoft.sqlserver user=username
password=Password
databaseName=OAUTH2DB
serverName=SQLDBServer
portNumber=1433
/>
</dataSource>
<library id=MSJDBCLib
<fileset dir=${shared.config.dir}/lib/global
id=sqljdbc42
includes=sqljdbc42.jar
/>
</library>
对于下列属性,确保使用正确的值:
<oauthProvider id=JazzOP
httpsRequired=真
autoAuthorize=真
customLoginURL=/jazzop/form/login
accessTokenLifetime=7201
authorizationGrantLifetime=604801
>
<autoAuthorizeClient>client01</autoAuthorizeClient>
<databaseStore dataSourceRef=OAUTH2DBDS
/>
</oauthProvider>
CREATE DATABASE ccm
GO
创建登录 ccmDBuser
WITH PASSWORD = 'ccmDBpswd';
USE ccm;
exec sp_changedbowner 'ccmDBuser'
GO
ALTER DATABASE ccm COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE Ccm SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE eni
GO
创建登录 eniDBuser
WITH PASSWORD = 'eniDBpswd';
USE eni;
exec sp_changedbowner 'eniDBuser'
GO
ALTER DATABASE eni COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE eni SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE qm
GO
创建登录 qmDBuser
WITH PASSWORD = 'qmDBpswd';
USE qm;
exec sp_changedbowner 'qmDBuser'
GO
ALTER DATABASE qm COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE Qm SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE rm
GO
创建登录 rmDBuser
WITH PASSWORD = 'rmDBpswd';
USE rm;
exec sp_changedbowner 'rmDBuser'
GO
ALTER DATABASE rm COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE RM SET READ_COMMITTED_SNAPSHOT ON
GO
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE dcc
GO
创建登录 dccDBuser
WITH PASSWORD = 'dccDBpswd';
USE dcc;
exec sp_changedbowner 'dccDBuser'
GO
ALTER DATABASE dcc COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE Dcc SET READ_COMMITTED_SNAPSHOT ON
GO
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE lqe
GO
CREATE LOGIN lqeDBuser
WITH PASSWORD = 'lqeDBpswd';
USE lqe;
exec sp_changedbowner 'lqeDBuser'
GO
ALTER DATABASE lqe COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE LQe SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE ldx
GO
CREATE LOGIN ldxDBuser
WITH PASSWORD = 'ldxDBpswd';
USE ldx;
exec sp_changedbowner 'ldxDBuser'
GO
ALTER DATABASE ldx COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE ldx SET READ_COMMITTED_SNAPSHOT ON
执行
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE gc
GO
创建登录 gcDBuser
WITH PASSWORD = 'gcDBpswd';
USE gc;
exec sp_changedbowner 'gcDBuser'
GO
ALTER DATABASE gc COLLATE SQL_Latin1_General_CP437_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE GC SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
CREATE DATABASE dw
GO
创建登录 dwDBuser
WITH PASSWORD = 'dwDBpswd';
USE dw;
exec sp_changedbowner 'dwDBuser'
GO
ALTER DATABASE dw COLLATE SQL_Latin1_General_CP1_CS_AS
GO
注:在运行此命令之前,请确保与数据库的连接处于打开状态。
ALTER DATABASE DW SET READ_COMMITTED_SNAPSHOT ON
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
创建一个名为 SQLSERVER_JDBC_DRIVER_FILE 的环境变量,并使其指向 JDBC 驱动程序。 此驱动程序所在的位置视安装而定。
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
注:如果要将 与 应用程序一起安装,那么不需要执行此步骤。
如果要向现有 服务器添加 ,那么必须使用 -addTables 存储库工具命令将必需的数据库表添加到 数据库:
cd _Install_Dir\server
repotools-ccm.bat -addTables
cd _Install_Dir/server
./repotools-ccm.sh -addTables
您可以使用分区 repotools 命令对未分区的 REPOSITORY.VERSIONREPOSITORY_VERSION<SchemaPrefix>_REPOSITORY.VERSIONRPSTR_VRSN 表。 它会根据项类型按范围进行分区。 从 V6.0.6.1 开始,已引入数据库表分区,以处理存储库中大量数据(数百万个工件)的性能、可用性和可伸缩性。 您必须安装 Enterprise 版的 Db2(或者,如果使用的是 Db2 11.5,那么必须安装 Advanced 版)Db2zDb2iOracleSQL Server 数据库才能利用这些功能。 这些数据库的 Standard 版、Workgroup 版、Personal 版或 Express 版以及缺省的 Apache Derby 数据库不支持分区。 底层数据库不支持分区时,此命令将失败。
要启用数据库表分区,请打开命令窗口并输入以下命令:
cd /opt/IBM/QM_Server/server/
。/repotools-qm.sh -分区 teamserver.properties=conf/qm/teamserver.properties enable
cd C:\Program Files\IBM\QM_Server\server\
repotools-qm.bat -分区 teamserver.properties=conf\qm\teamserver.properties enable
有关分区 repotools 命令的详细信息,请参阅用于对数据库表进行分区的存储库工具命令。
开始之前
关于本任务
将 J2EE 容器管理的认证用于登录和系统许可权。 为了使应用程序服务器工作,必须使用该应用程序服务器配置一个领域。 基于文件的用户注册表对测试或评估非常有用,这是因为 不支持导入用户或映射用户角色。 对于完整的应用程序功能(包括查看系统用户角色和导入用户), 支持 LDAP 领域。
配置联合存储库
设置组和用户
要能够运行 ,您需要在 存储库中定义组和用户,并将它们映射至 Jazz 组。 在安装任何 应用程序之前,必须先创建用户组。
现在,可以启动 服务器。
cd Jazz_Install_Dir\server
server.startup.bat
您可以将 ELM 应用程序配置为作为 Windows 服务来运行。 有关更多信息,请参阅将 ELM 应用程序作为 Windows 服务来运行。
cd Jazz_Install_Dir/server
。/server.startup
clm_was_config.py 脚本配置 并设置安全选项以便您可在 WebSphere 环境中运行 应用程序。
开始之前
确保您已完成以下任务:
过程
createJVMCustomProperty(jvm, "DB2Z_JDBC", "/etc/jazz/server/db2z", "")
createJVMCustomProperty(jvm, "ORACLE_JDBC_DRIVER_FILE", "C:\app\user\product\12.2.0\dbhome_1\jdbc\lib\ojdbc8.jar", "")
createJVMCustomProperty(jvm, "ORACLE_JDBC_DRIVER_FILE", "/opt/app/user/product/12.2.0/dbhome_1/jdbc/lib/ojdbc8.jar", "")
createJVMCustomProperty(jvm, "SQLSERVER_JDBC_DRIVER_FILE", "C:\MSSQL\jdbc\sqljdbc42.jar", "")
createJVMCustomProperty(jvm, "SQLSERVER_JDBC_DRIVER_FILE", "/opt/mssql/jdbc/sqljdbc42.jar", "")
注:在 Windows 平台上,必须在对应 Jython 脚本位置的路径和 conf 目录中使用正斜杠。
cd WAS_Profile_Dir\bin
wsadmin.bat -lang jython -user WAS_USER -password WAS_PASSWORD -f C:/Jazz_Install_Dir/server/was/clm_was_config.py C:/Jazz_Install_Dir/server/conf
cd WAS_Profile_Dir/bin
./wsadmin.sh -lang jython -user WAS_USER -password WAS_PASSWORD -f /opt/Jazz_Install_Dir/server/was/clm_was_config.py /opt/Jazz_Install_Dir/server/conf
cd WAS_Profile_Dirbin
stopServer.bat server1-user WAS_USER -password WAS_PASSWORD
startServer.bat server1
cd WAS_Profile_Dir/bin
./stopServer.sh server1-userWAS_USER -password WAS_PASSWORD
./startServer.sh server1
要为文档构建器设置 ,请参阅在 WebSphere Application Server 上部署文档构建器。
开始之前
确保您已完成以下任务:
过程
-Xmx4g -Xms4g -Xmn1g
-Xgcpolicy:gencon -Xnocompressedrefs
-Xmx4g -Xms4g -Xmn1g
-XX: MaxPermSize= 768M -XX:ReservedCodeCacheSize=512M -XX:CodeCacheMinimumFreeSpace=2M
-Xmx4g -Xms4g -Xmn1g
-Xgcpolicy:gencon -Xcompressedrefs
-Xgc:preferredHeapBase=0x100000000
提示:如果您需要更大的堆大小,那么您可以使用以下设置,将
{N} 替换为要使用的内存量,将 {N/4} 替换为总内存的 1/4。 例如,如果 -Xmx 设置为 8g,那么 -Xmn 应该设置为 2g。
-Xmx{N} -Xms{N} -Xmn{N/4}
仅适用于 : -Xmn 值应该是 -Xms 值的 33%。 例如,如果 -Xmx 大小为 4gb,那么
-Xmn 应该为 1365m。 以下 Deployment Wiki 文档包含有关 缩放大小和调整的有用信息:Sizing and tuning guide for 。 仅限于 :如果由于内存问题导致 应用程序页面变得无响应,请参阅有关故障诊断的此技术说明。
在对每个 Web 应用程序都使用不同的应用程序服务器的分布式环境中,必须对每个 实例添加这些定制属性。
为避免出现问题,请勿在文件路径中使用空格。 您可以使用双引号将路径引起来。
注:JDBC 驱动程序的路径必须是绝对路径。 请勿使用 URL 路径 (file:///)。 有关 Oracle Java 数据库连接 (JDBC) 连接的更多信息,请参阅 设置数据库
步骤。
注:JDBC 驱动程序的路径必须是绝对路径。 请勿使用 URL 路径 (file:///)。 有关 SQL Server JDBC 连接的更多信息,请参阅 设置数据库
步骤。
在启动流程的早期阶段,将使用 startup_log4j.properties 文件所包含的设置,以将消息传递至 SystemOut.log 文件。 在早期阶段之后,每个 Jazz 应用程序都将切换至使用 Jazz_Install_Dir/server/conf/app_context/log4j.properties 文件中特定于应用程序的设置。
要使用跨域身份管理系统 (SCIM) 标准,您必须安装 Jazz Authorization Server 并配置 LDAP 用户注册表。 有关更多信息,请参阅为 SCIM 功能部件配置 。
可在分布式环境中使用 clm_deploy.py 或 clm_deploy_distributed.py 来部署应用程序 WAR 文件。
开始之前
运行该脚本之前,确保已安装 、 和 应用程序。
完成以下步骤以将安全角色映射至 LDAP 组。 请注意,完成此映射之前,必须在 LDAP 服务器上设置这些组。
以下示例说明应用程序的角色映射。 将值替换为 LDAP 服务器中的值。 可能需要联系 LDAP 管理员以获取此信息:
注:请确保 JazzAdmins、JazzUsers、JazzGuests 和 JazzProjectAdmins 安全组的名称中不含任何空格。
RoleMapping = {
'jts' : {
'JazzAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzUsers' : {
'mappedUser':None,
'mappedGroup':"cn=JazzUsers,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzGuests' : {
'mappedUser':None,
'mappedGroup':"cn=JazzGuests,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzProjectAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzProjectAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
RoleMapping = {
'ccm' : {
'JazzAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzUsers' : {
'mappedUser':None,
'mappedGroup':"cn=JazzUsers,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzGuests' : {
'mappedUser':None,
'mappedGroup':"cn=JazzGuests,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzProjectAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzProjectAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
RoleMapping = {
'qm' : {
'JazzAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzUsers' : {
'mappedUser':None,
'mappedGroup':"cn=JazzUsers,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzGuests' : {
'mappedUser':None,
'mappedGroup':"cn=JazzGuests,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
'JazzProjectAdmins' : {
'mappedUser':None,
'mappedGroup':"cn=JazzProjectAdmins,cn=members,o=ldap.server.com",
'AllowAccessToEveryone':'No',
'AllowAccessToAllAuthenticatedUsers':'No'
},
关于本任务
clm_deploy.py 脚本将 webapps 目录中的所有可用应用程序 WAR 文件安装至单个 节点。
clm_deploy_distributed.py 脚本可用于安装 webapps 目录中的任何可用应用程序 WAR 文件,只要您在命令自变量中以逗号分隔列表形式指定这些文件。
注:Web 归档应用程序必须具有 .war 扩展名。
过程
要在单个 上部署应用程序,请完成以下步骤:
注:在 Windows 平台上,必须在对应 Jython 脚本位置的路径和 webapps 目录中使用正斜杠。
cd WAS_Profile_Dir\bin
wsadmin.bat -lang jython -user WAS_USER -password WAS_PASSWORD -f C:/Jazz_Install_Dir/server/was/clm_deploy.py nodeName server1 C:/Jazz_Install_Dir/server/webapps -config C:/Jazz_Install_Dir/server/was
cd WAS_Profile_Dir/bin
./wsadmin.sh -lang jython -user WAS_USER -password WAS_PASSWORD -f /opt/Jazz_Install_Dir/server/was/clm_deploy.py nodeName server1 /opt/Jazz_Install_Dir/server/webapps -config /opt/Jazz_Install_Dir/server/was
要在分布式 环境中部署应用程序,请完成以下步骤:
注:在 Windows 平台上,必须在对应 Jython 脚本位置的路径和 webapps 目录中使用正斜杠。
cd WAS_Profile_Dir\bin
wsadmin.bat -lang jython -user WAS_USER -password WAS_PASSWORD -f C:/Jazz_Install_Dir/server/was/clm_deploy_distributed.py nodeName server1 C:/Jazz_Install_Dir/server/webapps jts,ccm,clmhelp -config C:/Jazz_Install_Dir/server/was
cd WAS_Profile_Dir/bin
./wsadmin.sh -lang jython -user WAS_USER -password WAS_PASSWORD -f /opt/Jazz_Install_Dir/server/was/clm_deploy_distributed.py nodeName server1 /opt/Jazz_Install_Dir/server/webapps jts,ccm,clmhelp -config /opt/Jazz_Install_Dir/server/was
要启动已部署应用程序,请重新启动应用程序服务器。 将 server1 替换为应用程序服务器的名称:
cd WAS_Profile_Dirbin
stopServer.bat server1-user WAS_USER -password WAS_PASSWORD
startServer.bat server1
cd WAS_Profile_Dir/bin
./stopServer.sh server1-userWAS_USER -password WAS_PASSWORD
./startServer.sh server1
开始之前
过程
根据您安装的 应用程序,以下 Web 应用程序可能适用于部署:
如果您正在使用 V9.x,那么必须更新 JAX-RS 设置之后才能使用 CE Connector for IoT 应用程序:
要配置 CE Connector for IoT,请参阅配置连接器。
以下应用程序必须对其用户采用相同的认证方法,并且必须使用相同的安全组映射。
过程
这些存储库组与每一个 Jazz 实现相关联,并且必须映射到包含授权用户的特定组。 如果您正在使用 LDAP,那么在完成此映射之前,必须先在 LDAP 服务器上对这些组进行设置。 如果您正在将这些存储库组映射到各个用户,请选择存储库组,然后单击映射用户。
注:如果将来会对 LDAP 配置级别进行变更,那么您必须将安全角色重新映射到 JTS 和其他已安装的应用程序的用户或存储库组。
这时,应该会出现一个绿色箭头,用于指示已成功启动应用程序。
注:转换器应用程序仅在 Windows 和 Linux 上受支持。 有关其他不受支持平台上的安装指示信息,请参阅 Converter Application Configuration and Troubleshooting Guide的 Delegated Configuration
部分。
有关配置服务器的信息,请参阅在 IBM i 上配置服务器。
配置 以使用 LDAP 注册表对用户进行认证。
开始之前
如果您使用 LDAP 来进行用户管理,并且您启用不使用区分大小写的用户管理的选项,请确保 也配置为允许不区分大小写的用户管理。 要在启动服务器后配置 登录属性,请在管理 Web 界面的“高级属性”页上修改使用不区分大小写的用户标识匹配属性。
过程
在安装应用程序和数据库并启动 和其他应用程序之后,您可以登录 (jts/setup) 页面并运行设置向导来配置服务器。
"Express 安装" 是向导的简化版本,允许您设置缺省 Derby 数据库和 Liberty 基本用户注册表。 该向导将检测和设置您刚刚安装的应用程序。
过程
重要说明:[fully qualified hostname] 是主机名,它带有安装了 的机器的 DNS 域引用。 良好的 [标准主机名] 的一个示例是 hostname.example.com。 localhost 或 IP 地址是不正确的 [fully qualified hostname] 的示例。
" 定制设置
" 向导将指导您设置数据库,配置电子邮件设置,配置用户注册表以及注册应用程序。
开始之前
设置数据库。
过程
注:如果您在安装期间选择了 选项,并且在设置向导的步骤 1 中安装了 ,那么必须配置 Authorization Server。 提供授权服务器 URL ,管理用户标识和管理密码,然后单击 测试连接。
确保浏览器未阻止弹出窗口。 使用弹出窗口进行登录。
限制:当 Jazz 安全体系结构 SSO 处于启用状态时,不支持 浏览器附加组件。
提示:通过此操作会保存 Tomcat 配置文件。 要查看所生成 XML 文件的名称和位置,请在消息窗口中单击显示详细信息。
提示:有关许可证如何提供对应用程序功能的不同级别访问权的信息,请参阅客户访问许可证管理概述。
注:如果对连接类型选择
J2EE,那么还必须在 中将 resultSetHoldability 属性设置为 1。 缺省情况下,此属性设置为 2。 如果未将此属性设置为 1 ,那么某些数据仓库收集作业可能会失败。 有关
resultSetHoldability 的更多信息,请参阅 文档。
如果您未配置此数据仓库,那么虽然您的应用程序可以使用,但您却无法存储任何报告数据,同时多数报告也将无法使用。
配置 服务器以使用 LDAP 注册表对用户进行认证。
开始之前
如果您使用 LDAP 来进行用户管理,并且您启用不使用区分大小写的用户管理的选项,请确保 也配置为允许不区分大小写的用户管理。 要配置 登录属性,请在管理 Web 界面的“高级属性”页面上修改使用不区分大小写的用户标识匹配属性。
过程
<ldapRegistry
id="sample_ldap" realm="SampleLdapIDSRealm" ignoreCase="true"
host="localhost" port="389"
baseDN="ou=people,dc=jazz,dc=net"
ldapType="IBM Tivoli Directory Server">
<idsFilters
userFilter="(&(uid=%v)(objectclass=inetOrgPerson))"
groupFilter="(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=posixGroup))"
userIdMap="*:uid"
groupIdMap="*:cn"
groupMemberIdMap="ibm-allGroups:member;ibm-allGroups:uniqueMember">
</idsFilters>
</ldapRegistry>
以下示例适用于 Microsoft Active Directory 类型:
ldapType="Microsoft Active Directory"
<activedFilters
userFilter="(&(sAMAccountName=%v)(objectcategory=user))"
groupFilter="(&(cn=%v)(objectcategory=group))"
userIdMap="user:sAMAccountName"
groupIdMap="*:cn"
groupMemberIdMap="memberof:member">
</activedFilters>
后续操作:
在分布式环境中,执行这些步骤以在所有服务器上配置 Liberty 文件。
配置 Tomcat 服务器以使用 LDAP 注册表对用户进行认证。
关于本任务
执行设置向导期间,如果单击了保存 LDAP 配置文件按钮,那么会在 Tomcat_Home 目录中保存 Tomcat 配置文件。 使用以下过程来设置 Tomcat 配置文件以使用 LDAP。
开始之前
如果您使用 LDAP 来进行用户管理,并且您启用不使用区分大小写的用户管理的选项,请确保 也配置为允许不区分大小写的用户管理。 要配置 登录属性,请在管理 Web 界面的“高级属性”页面上修改使用不区分大小写的用户标识匹配属性。
过程
后续操作:
在分布式环境中,执行这些步骤以在所有服务器上配置 Tomcat 文件。
可从命令行运行 setup 命令以设置数据库、配置电子邮件设置、配置用户注册表以及注册所有您刚才已安装的应用程序。
setup 命令是一个存储库工具命令,允许您在不使用设置向导的情况下设置 和相关联的应用程序。 可以采用交互方式来运行此命令,以帮助捕获促使将来自动进行安装所需要的响应文件。 请参阅用于配置服务器的存储库工具命令以了解可与该命令配合使用的每个参数的说明。
开始之前
在运行 setup 命令之前,您必须已经安装了 和任何 应用程序,创建了数据库,并且在应用程序服务器上已部署并启动了这些应用程序。
注:如果您正在使用 Derby 数据库,请在运行 setup 命令之前确保 Jazz_Install_Dir/server/conf/jts/teamserver.propertiesJazz_Install_Dir\server\conf\jts\teamserver.properties 文件中的数据库和数据仓库的位置为绝对路径。 例如:com.ibm.team.repository.db.jdbc.location=Jazz_Install_Dir/conf/jts/derby/repositoryDB 和 com.ibm.team.datawarehouse.db.jdbc.location=Jazz_Install_Dir/conf/jts/derby/warehouseDB。
过程
cd Jazz_Install_Dir\server
repotools-jts.bat -setup repositoryURL=https://qualified.hostname.com:9443/jts adminUserID=ADMINWAS_ADMIN_ID。adminPassword=ADMINWAS_ADMIN_PASSWORD
cd Jazz_Install_Dir/server
./repotools-jts.sh -setup repositoryURL=https://qualified.hostname.com:9443/jts adminUserID=ADMINWAS_ADMIN_ID。adminPassword=ADMINWAS_ADMIN_PASSWORD
我明白一旦设置了公用 URI,便无法再予以修改,除非通过其他管理命令来进行,但这些管理命令可能会导致来自于不支持变更 URL 的其他应用程序的断开链接。
选择“确认公用 URI”:
[1] 我了解
[2] 取消并退出设置-缺省值
[1] JDBC -缺省值
[2] J2EE
[1] Derby-缺省值
[2] Db2
[3] SQL Server
[4] Db2 for z/OS
[5] Db2i
[6] Derby Net
[7] Oracle
例如:
conf/jts/derby/repositoryDB
//localhost:50000/JTS:user=db2admin;password={password};
thin:jtsDBuser/{password}@localhost:1521/DB
//localhost:1433;databaseName=jts;user=jtsDBuser;password={password};
//ipAddress:ipPort/location:user=jtsDBuser;password={password};
[1] LIBERTY
[2] LDAP
[3] 非 LDAP 外部注册表
如果您选择了 LDAP,那么会导入登录用户信息。 如果您选择了“非 LDAP”,那么不需要输入密码。
[1] 禁用-缺省值
[2] 不禁用
注:本地应用程序是安装在 所在应用程序服务器下的应用程序,可发现其详细信息。 非本地应用程序安装在分布式环境中,或与 不安装在同一应用程序服务器中,并且必须由用户提供其详细信息。
下表显示可向 注册的应用程序及其上下文根和发现 URL:
| 应用程序名称 | 上下文根 | 发现 URL |
|
/ccm /rqm /rm /relm /gc /ldx /rs /dcc /lqe |
https://server.example.org:9443/ccm/scr https://server.example.org:9443/rqm/scr https://server.example.org:9443/rm/scr https://server.example.org:9443/relm/scr https://server.example.org:9443/gc/scr https://server.example.org:9443/ldx/scr https://server.example.org:9443/rs/scr https://server.example.org:9443/dcc/scr https://server.example.org:9443/lqe/scr |
如果未设置数据仓库或正在使用 Derby 数据库,那么不需要密码。 否则,对数据仓库输入密码。 完成此步骤可能需要几分钟时间。
setup 命令是一个存储库工具命令,允许您在不使用设置向导的情况下设置 和相关联的应用程序。 可以从命令行以快速方式运行 setup 命令来设置所有缺省值。
当您以快速方式运行 setup 命令时,系统只会提示您输入所需要的信息来创建管理用户,并为该用户分配许可证。 所有其他任务都将使用缺省值来自动完成。 如果您需要变更缺省值(例如,公用 URI 条目),那么可以在命令行中添加 repositoryURL 参数。 您还可以使用响应文件,它具有以快速方式运行 setup 命令时所需要的所有已记录的信息。 请参阅用于配置服务器的存储库工具命令以了解可与该命令配合使用的每个参数的说明。
过程
cd Jazz_Install_Dir\server
repotools-jts.bat -setup repositoryURL=https://qualified.hostname.com:9443/jts express=yes
cd Jazz_Install_Dir/server
。/repotools-jts.sh -setup repositoryURL=https://qualified.hostname.com:9443/jts express=yes
对于可以支持集群的 () 应用程序(例如 或 ),分布式数据由一个称为 的独立 Web 应用程序管理。
() 是一个小型 Java 应用程序,包含主要 JAR 文件 distributedCache.jar、针对配置属性的 distributedCache.cfg 文件和 jarlib 目录中的必需依赖关系。 微服务为集群 () 应用程序的分布式数据提供集中管理和存储位置。 集群操作需要 ;如果 无法访问,那么所有集群应用程序将处于“等待”状态,直到 恢复联机。 本身并不是 应用程序,它可能与 应用程序具有不同的配置需求。
必须已安装,且在集群应用程序的所有节点都可以访问的机器上运行。 缺省情况下,微服务安装在 () 机器上的 server/clustering/cache 目录下,且在执行 启动顺序时启动,或者在集群应用程序要求它时按需启动。 如果尚未设置 URL 高级属性设置,那么集群应用程序将调用 ,以发现微服务的状态。 然后, 尝试查找正在运行的 进程,并启动未在运行的 。 在生产环境中, 通常是位于代理(例如 )后端的后端服务器,或者为提高性能而将它安装在专用服务器上。 在这些情况下,必须手动启动 ,并且必须设置集群应用程序 URL 服务属性。
注:为了获得最佳性能,应将 移至一个独立于 的专用服务器。
要移动 或者重新配置 URL,请完成下列步骤:
URL 示例:
https://myproxy.company.com/
https://myserver.company.com:10001/
注:如果您在启用集群之前执行下列步骤,那么在您复制应用程序节点时会将变更传播到其他节点。
as_trusted_url = $S{AuthServer.as_trusted_url, https://myserver.company.com:10001}
注意:在 server/clustering/cache/distributedCache.cfg文件中,请勿将带有斜线尾部的 URL 用于 as_trusted_url 属性的值。
根据安装拓扑,可以在 distributedCache.cfg 文件中设置下列配置属性。
JazzProjectAdmins=LDAPJazzAdmins,JazzAdmins=LDAPJazzAdmins,JazzUsers=LDAPJazzUsers,JazzDWAdmins=LDAPJazzAdmins,JazzGuests=LDAPJazzUsers
但是,在 中,该属性设置为:
{"LDAPJazzAdmins":"JazzProjectAdmins,JazzAdmins,JazzDWAdmins","LDAPJazzUsers":"JazzUsers,JazzDWAdmins"}
简而言之,在 中,您对 LDAP 组映射指定 Jazz 角色,而在 中,您对 Jazz 角色映射指定 LDAP组。 请注意,如果未正确设置这些属性,那么在 日志控制台中将显示以下错误消息:
The user registry settings may be set incorrectly. Please refer to the cfg file UserRegistry section.
缺省情况下,以 SSL 方式运行 。 这由 [REST] 部分中的 useSsl 属性来控制。 在 [REST-SslContextFactory] 部分指定了其他 SSL 相关配置。 请确保在 keyStorePath 中指定正确的文件名和路径。
下面是一些样本配置,供您参考。 请注意,这些样本仅指出了一些重要参数,而未指出整个配置。
样本 1, 满足下列条件:
#===========================================
# REST settings
#===========================================
[REST]
port = $E{CACHE_PORT, 10001}
stylesheet = styles/devops.css
saveConfigAction = RESTART_SERVER
useSsl = true
authType = OIDC
#===========================================
# AuthServer settings
#===========================================
[AuthServer]
auth_url = $S{AuthServer.auth_url, https://JAS_HOST:9643/oidc/endpoint/jazzop}
client_id = dcm
client_name =
as_admin_id = $S{AuthServer.as_admin_id, ADMIN}
as_admin_pass = $S{AuthServer.as_admin_pass, ADMIN}
as_trusted_url = $S{AuthServer.as_trusted_url, https://JTS_HOST:10001}
#============================================
# LDAP UserRegistry settings.
#============================================
[UserRegistry]
base_group_DN = dc=jazz,dc=domain
group_name_property = cn
group_roles_mapping = {"LDAPJazzAdmins":"JazzProjectAdmins,JazzAdmins,JazzDWAdmins","LDAPJazzUsers":"JazzUsers,JazzDWAdmins"}
样本 2, 满足下列条件:
#============================================
# REST settings
#============================================
[REST]
port = $E{CACHE_PORT, 10001}
stylesheet = styles/devops.css
saveConfigAction = RESTART_SERVER
useSsl = true
authType = OIDC
#============================================
# AuthServer settings
#============================================
[AuthServer]
auth_url = $S{AuthServer.auth_url, https://JAS_HOST:9643/oidc/endpoint/jazzop}
client_id = dcm
client_name =
as_admin_id = $S{AuthServer.as_admin_id, ADMIN}
as_admin_pass = $S{AuthServer.as_admin_pass, ADMIN}
as_trusted_url = $S{AuthServer.as_trusted_url, https://IHS_HOST}
如果 的前端有代理服务器,那么必须将它配置为将 请求转发至正在运行 的相应主机和端口。 缺省情况下, 集群期望在端口 10001 上安全配置的 与 在同一主机上运行。
要修改 IHS 配置,请对下列文件进行变更:
a) httpd.conf - 添加以下条目来侦听缺省 端口 (10001)。 可以在 distributedCache.cfg 中变更缺省 端口。 请注意,仅当您打算将端口作为 URL 的一部分时,才需要进行以下变更。 如果您打算从 URL 屏蔽 端口,那么不需要在 httpd.conf 文件中进行任何变更。
监听 10001
<VirtualHost *:10001>
SSLEnable
SSLServerCert <IHS服务器证书别名>
</VirtualHost>
b) plugin-cfg.xml - 添加以下条目以将端口 10001 上的请求转发至相应的 服务器。 请注意, 只需要转发 /jsa 和 /dcm 上下文根。
<ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="microservice_Cluster" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">
<服务器 ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" 名称="微服务" ServerIOTimeout="9000" WaitForContinue="false">
<Transport Hostname="<JTS_HOSTNAME>"端口="10001" 协议="https">
<Property Name="keyring" Value="<File Path of keystore file (kdb)>"/>
<Property Name="stashfile" Value="<File Path of stash file file (sth)>"/>
</Transport>
</Server>
</ServerCluster>
<UriGroup Name="microservice_Cluster_URIs">
<UriAffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/jsa/*"/>
<Uri;Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/dcm/*"/>
</UriGroup>
<路由 ServerCluster="microservice_Cluster" UriGroup="microservice_Cluster_URIs" VirtualHostGroup="default_host"/>
c) 更新密钥库数据库文件,以根据 plugin-cfg.xml 文件的密钥库更新对 证书添加一个条目。
启动和停止微服务所需要的所有文件和脚本都在 server/clustering/cache 目录中。 要运行微服务,您必须安装了 JVM V1.8 或更高版本。 可以使用所包括的脚本来启动微服务,也可以使用以下命令来启动微服务:
java –Xms2G –Xmx3G -jar distributedCache.jar
可以通过该命令根据需要来变更 JVM Xms 和 Xmx 参数的值。
注:
启动微服务:
要确定微服务,请打开命令窗口Shell,并输入下列命令:
cd Path_To__Folder
start distributedCache。start.bat JRE_Bin_Path
cd PATH_To__Folder
./distributedCache.start.sh JRE_Bin_Path > /dev/null &
其中:
Path_To__Folder 是 的安装位置,JRE_Bin_Path 是 JRE/Bin 文件夹所在的位置。 JRE_Bin_Path 为可选。 如果未指定此路径,那么系统会认为 正在从其缺省位置运行,并使用 应用程序所提供的 JRE。
停止微服务:
要停止微服务,请打开命令窗口Shell,并输入下列命令:
cd Path_To__Folder
distributedCache。stop.bat JRE_Bin_Path
cd Path_To__Folder
./distributedCache.stop.sh JRE_Bin_Path
其中:
() 用于认证 。 要注册微服务,在 distributedCache.cfg 文件中的 AuthServer 和 UserRegistry 部分配置了若干参数,如前一节中所述。 将在首次启动后自动向 注册。 在 向 注册之后,在 distributedCache.cfg 文件中会更新下列属性:client_secret 和 registration_completed = true。 缺省情况下, 将在 上注册,并且 client_id 为 dcm。 如果您需要更新 的 注册,那么可以删除现有 注册,然后再次向 注册 :
client_secret = $S{AuthServer.client_secret}
cd JAS_Install_Dir\cli
rmclient.bat -a AUTH_SERVER_URL -u ADMIN:ADMIN dcm
cd JAS_Install_Dir/cli
./rmclient -a AUTH_SERVER_URL -u ADMIN:ADMIN dcm
其中 AUTH_SERVER_URL 是配置文件中所指定的 auth_url。 ADMIN:ADMIN 参数是由用户标识和密码组成的管理用户凭证,用户标识与密码之间用冒号分隔。 dcm 是用于微服务注册的 Authorization Server 客户机标识。
在完成单个 节点的设置和配置之后,可以通过复制节点将它变换为集群。
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.team.repository.cluster.nodeId="ccm1""
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.team.repository.service.internal.db.allowConcurrentAccess=true"
JAVA_OPTS="$JAVA_OPTS -Dretry.count=0"
JAVA_OPTS="$JAVA_OPTS -Dretry.wait=10"
将 ccm1 替换为节点的名称或标识。 此名称必须在所有节点中唯一。 稍后将这些设置复制到其他节点时,必须在所有节点(例如 ccm2 和 ccm3)上变更此值。
您注册 应用程序时,使用了 HAProxy URL,所以 不具有特定节点的主机名。 将新节点添加至集群之后,您还必须将它添加至 客户机注册。
注:当您添加第二个节点时,还必须将第一个节点的主机名添加至注册。
clustering 目录中包含下列文件:
客户机标识:在 上注册的集群 应用程序的客户机标识。 要获取客户机标识,请打开 teamserver.properties 文件并查找 com.ibm.team.repository.servlet.sso_clientId 属性。
本地节点 URL:这是安装了 应用程序的计算机的标准主机名称和端口号。 请注意,这不是应用程序注册期间所使用的 应用程序的公用 URL。 HAProxy 配置文件的后端部分中也使用此主机名。
./addNodeReg.shaddNodeReg.bat client ID https://_Hostname:Port/appContext
注:请确保在您用于初始设置的第一个节点上运行 addNodeReg 脚本。
可以采用两种方式在所有节点上复制 应用程序。 可以在所有其他节点上安装 应用程序,然后仅将 teamserver.properties 和 server.startup 文件从第一个节点复制到其他节点。 或者,可以将整个安装目录从第一个节点复制到其他节点。 请勿忘记在所有节点上变更 server.startup 文件中的节点标识,以便它们都具有唯一标识。
打开 HAProxy 配置文件,并验证它是否列示了实际 节点的主机名,以及行数是否与节点数匹配。 根据需要编辑配置文件,然后重新启动 HAProxy 服务。
在每个节点上启动 服务器。 检查 HAProxy 控制台以确保所有后端服务器都已联机。
在完成单个 节点的设置和配置之后,可以通过复制节点将它变换为集群。
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.team.repository.cluster.nodeId="qm1""
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.team.repository.service.internal.db.allowConcurrentAccess=true"
JAVA_OPTS="$JAVA_OPTS -Dretry.count=0"
JAVA_OPTS="$JAVA_OPTS -Dretry.wait=10"
将 qm1 替换为节点的名称或标识。 此名称必须在所有节点中唯一。 稍后将这些设置复制到其他节点时,必须在所有节点(例如 qm2 和 qm3)上变更此值。
您注册 应用程序时,使用了 HAProxy URL,所以 不具有特定节点的主机名。 将新节点添加至集群之后,您还必须将它添加至 客户机注册。
注:当您添加第二个节点时,还必须将第一个节点的主机名添加至注册。
clustering 目录中包含下列文件:
客户机标识:在 上注册的集群 应用程序的客户机标识。 要获取客户机标识,请打开 teamserver.properties 文件并查找 com.ibm.team.repository.servlet.sso_clientId 属性。
本地节点 URL:这是安装了 应用程序的计算机的标准主机名称和端口号。 请注意,这不是应用程序注册期间所使用的 应用程序的公用 URL。 HAProxy 配置文件的后端部分中也使用此主机名。
./addNodeReg.shaddNodeReg.bat client ID https://_Hostname:Port/appContext
注:请确保在您用于初始设置的第一个节点上运行 addNodeReg 脚本。
可以采用两种方式在所有节点上复制 应用程序。 可以在所有其他节点上安装 应用程序,然后仅将 teamserver.properties 和 server.startup 文件从第一个节点复制到其他节点。 或者,可以将整个安装目录从第一个节点复制到其他节点。 请勿忘记在所有节点上变更 server.startup 文件中的节点标识,以便它们都具有唯一标识。
打开 HAProxy 配置文件,并验证它是否列示了实际 节点的主机名,以及行数是否与节点数匹配。 根据需要编辑配置文件,然后重新启动 HAProxy 服务。
在每个节点上启动 服务器。 检查 HAProxy 控制台以确保所有后端服务器都已联机。
完成下列步骤以在设置集群环境之后添加更多 副本。
完成下列步骤以在设置集群环境之后添加更多 副本。
在完成 定制设置之后,您可能会看到一个或多个应用程序的以下诊断故障消息:
应用程序:https://JTS_HOST:9443/ccm/rootservices 中"/ccm "的发现资源的 OAuth 域与条目不同。
来自发现资源的 OAuth 域:[https://JTS_HOST:9443/ccm] 应用程序 OAuth 域:[]
此错误的原因可能是存储库工具 (repotools) 命令中的应用程序未完全同步。 要解决此问题,请完成下列步骤以手动使这些应用程序同步:
cd Jazz_Install_Dir/\server
./repotools-jtsrepotools-jts -listFriends repositoryURL=https://JTS_HOST:9443/jts adminUserId=adminUserId adminPassword=管理员密码
./repotools-jtsrepotools-jts -synchFriend repositoryURL=https://JTS_HOST:9443/jts adminUserId=adminUserId adminPassword=adminPassword friendId=FriendID_From_PreviousStep
如果您已在集群环境的前端安装了 或其他类似的代理服务器,那么必须确保已启用此功能,以接受所有 HTTP 请求(例如
GET、PUT 和 POST 等)中的内容(有效内容)。 如果未启用此功能,那么您可能会在代理服务器中接收到 HTTP 400 错误请求
错误,因为某些 HTTP GET 请求是随有效内容一起发送并被代理拒绝的。
为避免此类错误,请在代理服务器的 plugin-cfg.xml 文件中设置 AcceptAllContent="true" 。
或 集群成员与 之间的请求数可能快速增多并填满磁盘空间。 可以修改 rsyslog 配置文件,以便在记录消息时废弃某些 HAProxy 消息。 为此,在要废弃的行的末尾添加波浪号 (~)。 示例:
:msg, regex, "/map/" ~
local2.* /var/log/haproxy.log
& stop
有关激活配置管理和启用项目区域(包括用于获取激活密钥的链接)的详细指示信息,请参阅应用程序管理员入门。
注:不支持在 Windows 平台上安装
为物联网 (IoT) 和移动环境提供快速安全的双向消息传递。 是高性能 MQTT 代理。
过程
要安装非 Dockerized 版本的 ,请完成下列步骤:
注:需要具有 IBM 标识才能访问这些文件。 如果您不具有
IBM 标识,那么系统将提示您创建 IBM 标识,然后才能下载 。
有关完整的指示信息,请参阅 文档。
使用称为集线器的组织配置对象来定义配置策略。
过程
通过遵循前一任务中的过程登录到 Web UI 之后,创建新的集线器,然后创建并分配连接策略、消息传递策略和端点。
在已安装和配置 之后,您必须在管理 Web UI 的“高级属性”部分添加 MQTT 代理 URI:
过程
要了解多个 GCM 实例的其他配置设置,请参阅配置多个 GCM 实例。
安装并启动服务器后,可使用 从已注册应用程序收集数据并将它们装入到数据仓库中。 有关详细指示信息,请参阅使用 收集数据。
安装并启动文档构建器之后,您可进行配置以添加用户和标志,或者对服务器启用 HTTPS。 有关详细信息,请参阅配置文档构建器。
要在 WebSphere Application Server Liberty Profile 上进一步配置文档构建器,请参阅在 WebSphere Application Server Liberty Profile 上部署文档构建器。
安装并设置服务器之后,您可以安装 Eclipse 客户机以连接至该服务器。 要使用 IBM Installation Manager 来安装 Eclipse IDE 的客户机,请参阅使用 Installation Manager 来安装 Eclipse 客户机。
要配置 Kerberos 服务器和客户机单点登录认证,请参阅配置 Kerberos 单点登录认证。