通过脚本编制来启用动态高速缓存服务多单元和多核心组失效
可以使用 dynacacheJMSSIB.py 脚本来启用动态高速缓存服务多单元和多核心组失效。此脚本将配置多个单元中的外部高速缓存适配器和服务集成总线基础结构。该脚本必须从 WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin 目录执行才能正常工作。
开始之前
开始本任务前,wsadmin 工具必须正在运行。有关更多信息,请参阅关于如何启动 wsadmin 工具的主题。
还必须确保以下事项:
- 每一个单元或核心组都包含用于主管生产应用程序的集群。必须在单元或核心组中都使用相同的生产应用程序才能确保正确处理失效标识。
- 在每个单元或核心组中创建了由两个服务器组成的单独集群,用于主管服务集成总线。此集群的成员不能定义 RemoteJMSInvalidator 外部高速缓存组。如果为这些集群成员定义了外部高速缓存组 RemoteJMSInvalidator,那么会发生无限回送的情况,在单元之间将来回反复发送失效。
- 定义了数据源,可从服务集成总线集群成员访问该数据源。如果这两个单元共享该数据库,请确保在为每一个单元定义每一个数据源时,使用唯一的数据库名称。
- 每一个单元或核心组都包含复制域,该复制域同时包含服务集成总线集群以及用于主管生产应用程序的所有集群。
关于此任务
dynacacheJMSSIB.py 脚本通过 3 个步骤来配置每一个单元或核心组:
- 入站 JMS/服务集成总线配置。入站 JMS/服务集成总线配置包括:
- 创建服务集成总线和配置服务集成总线目标。
- 创建 Java 消息服务 (JMS)。
- 配置 JMS 激活规范
- 在服务集成总线集群上安装 WAS_INSTALL_ROOT/installables/DynacacheMessageHandler.ear 消息驱动的 Bean。
- 出站 JMS/服务集成总线配置。
出站 JMS/服务集成总线配置包括配置 JMS 队列连接工厂以与远程单元通信。
- 外部高速缓存组配置。
外部高速缓存组配置包括在用于主管生产应用程序的每一个集群成员上配置外部高速缓存组和外部高速缓存适配器。
使用 Jython 时,请指定 --help 以及相应的 --setup=xxx 选项以显示每一个命令的可用参数:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py
--setup=dynacacheInSIB --help
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py
--setup=dynacacheOutSIB --help
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py
--setup=ddynacacheECA --help
要删除入站、出站或 ECA 配置,请将 --delete 添加到用于创建各自配置工件的命令中。
示例 1:多个单元
此示例显示如何使用脚本对用于主管相同的应用程序 ApplicationA 的两个单元(Cell1 和 Cell2)进行配置。
Cell1
ProductionCluster1 (hosts ApplicationA)
SIBCluster1
node1/sib1 (service integration bus member)
SIB_ENDPOINT_ADDRESS=7777
hostname=host1.com
node1b/sib2 (service integration bus member)
SIB_ENDPOINT_ADDRESS=7776
hostname=host11.com
ReplicationDomain (contains ProductionCluster1 members and SIBCluster1
members)
Service Integration Bus Data Source1
JNDI name = jdbc/SIBCluster1DataSource
Cell2
ProductionCluster2 (hosts ApplicationA)
SIBCluster2
node2/sib1 (service integration bus member)
SIB_ENDPOINT_ADDRESS=8888
hostname=host2.com
nodesb/sib2 (service integration bus member)
SIB_ENDPOINT_ADDRESS=8889
hostname=host22.com
ReplicationDomain (contains ProductionCluster2 members and SIBCluster2
members)
Service Integration Bus Data Source2
JNDI name = jdbc/SIBCluster2DataSource
请完成下列步骤以启用 Cell1 和 Cell2 的动态高速缓存服务单元失效支持。
- 请发出以下命令以配置 Cell1 的入站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheInSIB --cluster=SIBCluster1 --datasourceJNDI=jdbc/SIBCluster1DataSource
- 请发出以下命令以配置 Cell2 的入站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheInSIB --cluster=SIBCluster2 --datasourceJNDI=jdbc/SIBCluster2DataSource
- 请发出以下命令以配置 Cell1 的出站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheOutSIB --remoteCellSIBServers=host2.com:8888,host22.com:8889 --remoteCellID=Cell2
- 请发出以下命令以配置 Cell2 的出站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheOutSIB --remoteCellSIBServers=host1.com:7777,host11.com:7776 --remoteCellID=Cell1
- 请发出以下命令以配置 Cell1 的外部高速缓存组/外部高速缓存适配器:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheECA --cluster=ProductionCluster1 --remoteCellID=Cell2
- 请发出以下命令以配置 Cell2 的外部高速缓存组/外部高速缓存适配器:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheECA --cluster=ProductionCluster2 --remoteCellID=Cell1
此示例显示如何使用脚本对包含多个核心组的单个单元进行配置。这些核心组都主管相同的应用程序 (ApplicationA)。
CoreGroup1
ProductionCluster1 (hosts ApplicationA)
SIBCluster1
node1/sib1 (service integration bus member)
SIB_ENDPOINT_ADDRESS=7777
hostname=host1.com
node1b/sib2 (service integration bus member)
SIB_ENDPOINT_ADDRESS=7776
hostname=host11.com
ReplicationDomain (contains ProductionCluster1 members and SIBCluster1
members)
Service Integration Bus Data Source1
JNDI name = jdbc/SIBCluster1DataSource
Cell2 中的 CoreGroup2 也主管 ApplicationA 且具有以下拓扑:
CoreGroup2
ProductionCluster2 (hosts ApplicationA)
SIBCluster2
node2/sib1 (service integration bus member)
SIB_ENDPOINT_ADDRESS=8888
hostname=host2.com
nodesb/sib2 (service integration bus member)
SIB_ENDPOINT_ADDRESS=8889
hostname=host22.com
ReplicationDomain (contains ProductionCluster2 members and SIBCluster2
members)
Service Integration Bus Data Source2
JNDI name = jdbc/SIBCluster2DataSource
请完成下列步骤以启用 CoreGroup1 和 CoreGroup2 的动态高速缓存服务核心组失效支持。
- 请发出以下命令以配置 CoreGroup1 的入站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheInSIB --localCellID=Cell1/CoreGroup1 --cluster=SIBCluster1 --datasourceJNDI=jdbc/SIBCluster1DataSource
- 请发出以下命令以配置 CoreGroup2 的入站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheInSIB --localCellID=Cell1/CoreGroup2 --cluster=SIBCluster2 --datasourceJNDI=jdbc/SIBCluster2DataSource
- 请发出以下命令以配置 CoreGroup1 的出站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheOutSIB --localCellID=Cell1/CoreGroup1 --remoteCellSIBServers=host2.com:8888,host22.com:8889 --remoteCellID=Cell1/CoreGroup2
- 请发出以下命令以配置 CoreGroup2 的出站 JMS/服务集成总线:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheOutSIB --localCellID=Cell1/CoreGroup2 --remoteCellSIBServers=host1.com:7777,host11.com:7776 --remoteCellID=Cell1/CoreGroup1
- 配置 CoreGroup1 的外部高速缓存组/外部高速缓存适配器:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheECA --cluster=ProductionCluster1 --localCellID=Cell1/CoreGroup1 --remoteCellID=Cell1/CoreGroup2
- 请发出以下命令以配置 CoreGroup2 的外部高速缓存组/外部高速缓存适配器:
./wsadmin.sh -lang jython -f ../../../util/dynacacheJMSSIB.py --setup=dynacacheECA --cluster=ProductionCluster2 --localCellID=Cell1/CoreGroup2 --remoteCellID=Cell1/CoreGroup1