原文:https://www.ibm.com/developerworks/cn/websphere/techjournal/0905_webcon/0905_webcon.html

修改主机名

让我们首先从修改部署管理器机器上的主机名开始。初始配置如图 1 所示,其中部署管理器节点 SONOMACellManager01 位于主机 SONOMA.xd61stew.ibm.com 中。

图 1. 初始配置

停止部署管理器后,在作出任何改变之前,使用 WebSphere Application Server 备份工具 backupConfig.(sh/bat) 对您的配置进行备份始终是个好主意,如清单 1 所示。并不是说您希望出现任何错误,但是在出现问题时能够恢复到起点总是不错的。

清单 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SONOMA:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin #
        ./backupConfig.sh /root/FullSonomaCellBackup.zip
ADMU0116I: Tool information is being logged in file
           /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/backupConfig.log
ADMU0128I: Starting tool with the Dmgr01 profile
ADMU5001I: Backing up config directory
           /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config to file
           /root/FullSonomaCellBackup.zip
ADMU0505I: Servers found in configuration:
ADMU0506I: Server name: dmgr
ADMU2010I: Stopping all server processes for node SONOMACellManager01
ADMU0512I: Server dmgr cannot be reached. It appears to be stopped.
.....................................................................................
ADMU5002I: 939 files successfully backed up
SONOMA:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin #

现在应当启动 wsadmin,但是不要连接到 WebSphere 进程。这可以通过指定 -conntype NONE 完成,如清单 2 所示。

清单 2
1
2
3
4
5
6
SONOMA:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin # ./wsadmin.sh -conntype NONE
    -lang jython
WASX7357I: By request, this scripting client is not connected to any server process.
    Certain configuration and application operations will be available in local mode.
WASX7031I: For help, enter: "print Help.help()"
wsadmin>

如果这是您第一次使用 Jython 运行 wsadmin,而不是使用默认的 Jacl,那么当第一次处理 Jython JAR 文件时,将看到大量类似于下面的信息:

*sys-package-mgr*: processing new jar,
'/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime/batch.jar'

准备好 wsadmin 之后,对 AdminTask 对象调用 changeHostName 实用命令。清单 3 所示的 AdminTask 输出显示了交互模式,它提示您进行输入并根据您的输入构建 wsadmin 命令。

在本例中,主机名由 “SONOMA.xd61stew.ibm.com” 修改为 “NAPA.xd61stew.ibm.com”(图 1)。nodeName 参数告诉 wsadmin 哪个特定节点被修改;在本例中,这个节点是托管部署管理器的节点,而主机名参数则指定新的主机名。可以看到,我们还选择重新生成 SSL 证书作为修改的一部分。您还将注意到 AdminTask 根据您的输入显示它生成的命令,这使您能够将未来要使用的命令拷贝到一个文件中。一旦 AdminTask 生成的命令得到执行后,修改将被保存并且您将退出 wsadmin。

清单 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
wsadmin>AdminTask.changeHostName ('[-interactive]')
Change Host Name
 
Change the host name of a node
 
*Node Name (nodeName): SONOMACellManager01
*Host Name (hostName): NAPA.xd61stew.ibm.com
System Name (systemName): SONOMA
Regenerate Certificates (regenDefaultCert):
 
Change Host Name
 
F (Finish)
C (Cancel)
 
Select [F, C]: [F] F
WASX7278I: Generated command line: AdminTask.changeHostName
    ('[-nodeName SONOMACellManager01
    -hostName NAPA.xd61stew.ibm.com -systemName SONOMA ]')
''
wsadmin>AdminConfig.save()
''
wsadmin>exit

重新启动部署管理器后,可以看到修改被反映到管理控制台中,如图 2 所示,其中部署管理器节点的主机名现在变为 “NAPA.xd61stew.ibm.com”。顺便提一下,如果您在输入主机名时出现错误,那么很可能无法启动部署管理器,并且将需要查看日志。表示新主机名拼写错误的消息为:

<your new host name> and the exception is java.net.UnknownHostException:

另一个相关的错误消息为:

Host name <your new host name> is not registered in DNS.

如果是这样的话,只需重新运行 AdminTask.changeHostName 并正确地输入新的主机名,然后像往常一样保存并退出。

图 2. 修改主机名后的配置

这时应该逐一停止所有节点代理并使用新的部署管理器主机名运行 syncNode,如清单 4 所示,然后在 syncNode 完成后启动节点代理。

清单 4
1
2
3
4
5
6
7
8
9
AVALON:/opt/WAS70/AppServer\profiles/AppSrv01/bin>./syncNode.sh NAPA
ADMU0116I: Tool information is being logged in file
           /opt/WAS70/AppServer/profiles/AppSrv01/logs/syncNode.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU0401I: Begin syncNode operation for node AVALONNode01 with Deployment
           Manager NAPA: 8879
ADMU0016I: Synchronizing configuration between node and cell.
ADMU0402I: The configuration for node AVALONNode01 has been synchronized with
           Deployment Manager NAPA: 8879

将概要文件迁移到一个新主机

当然,并不是所有情况都像在服务器上保持 WebSphere Application Server 等中间件并仅需要修改主机名这么简单。更常见的情况是,您需要将运行时从一台机器迁移到另一台机器,修改主机名只是迁移过程中的一个步骤。假设您并不仅仅是将现有服务器的主机名从 “SONOMA” 修改为 “NAPA”,您实际上希望将部署管理器(或任何其他 WebSphere Application Server 进程)移动到另一台机器,并修改 WebSphere Application Server 配置来反映新服务器上的主机名。如果结合使用 manageprofiles 命令和 AdminTask.changeHostName,那么您就可以实现上述目的。

要开始此过程,首先停止服务器上运行的所有进程,然后使用 backupProfile 选项运行 manageprofiles 命令,同时指定将要备份的文件和所需的文件名,如清单 5 所示。

清单 5
1
2
3
SONOMA:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin # ./manageprofiles.sh
    -backupProfile -profileName Dmgr01 -backupFile /root/SONOMADmgr01Backup.zip
INSTCONFSUCCESS: Success: The profile backup operation was successful.

当备份完成后,使用您喜欢的文件拷贝工具将备份文件从旧服务器上转移到新服务器上。新服务器需要安装 WebSphere Application Server,但是不需要创建任何概要文件,但是有一个预配置项可以使您的转移更加顺利:目标系统上的目录结构应当匹配源系统上的目录结构。虽然 WebSphere Application Server V7 似乎消除了大部分(但不是全部)指向 WAS_HOME 目录位置的硬编码目录路径,但是目前为止 Version 6.1 中还有超过 200 个路径。因此,如果您没有在机器之间维护目录结构的一致性,您将需要手动修改目录结构,以及对目录路径 in setupCmdLine.sh(bat) 和 variables.xml 的引用。当然,我不会对这 200 多个实例以及修改方式进行归档。相反,我仅仅是建议您将 WebSphere Application Server 安装到源机器和目标机器上的相同位置。这样的话,只需要使用 restoreProfile 选项运行 manageprofiles,如清单 6 所示。

清单 6
1
2
3
NAPA:/opt/IBM/WebSphere/AppServer/bin # ./manageprofiles.sh  -restoreProfile
    -backupFile /root/SONOMADmgr01Backup.zip
INSTCONFSUCCESS: Success: The profile was successfully restored.

现在,只需调用 wsadmin AdminTask.changeHostName 命令,如前所示,保存您的修改并退出。部署管理器(或其他 WebSphere Application Server 进程)现在已经准备好在新的服务器上启动。WebSphere Application Server 概要文件以外的任何配置内容(比如在非默认位置展开的应用程序、共享库 JAR、JDBC 提供者使用的数据库驱动器、独立的连接器模块,等等)都必须手动拷贝。此外,如果是在使用 Sun™ Solaris™ 或 HP JDK 的机器和运行 IBM JDK 的机器之间迁移(反之亦然),那么也必须手动修改 JVM 设置中的任何 Sun、HP 或 IBM JDK 特定的 -X 标志。

在结束本节之前,需要注意上述过程也可以用于将您的 WebSphere Application Server 配置从 32 位安装迁移到 64 位安装,反之亦然。您可能会问,为什么要从 64 位迁移到 32 位?这是因为,在完成测试后,您可能会发现 64 位的性能不如您预期的那样好,这可能有多个原因

另一个选项

AdminTask.changeHostName 命令的另一个选择是使用基于属性文件的配置实用工具,该工具是 WebSphere Application Server V7 附带的一部分。在本例中,仍然使用 wsadmin 来提取配置,然后验证并应用变更。

如前所述,在不使用连接的情况下启动 wsadmin(-conntype NONE)并且将被修改的进程会停止。这一次,AdminTask extractConfigProperties 实用工具按以下方式调用:

清单 7
1
2
wsadmin >AdminTask.extractConfigProperties('[-propertiesFileName /root/
    SONOMA.cell.props]')

在本例中,创建了一个属性文件 SONOMA.cell.props,您可以使用任何文本编辑器进行编辑。只需要找到 “from” 主机名,在本例中为 “SONOMA.xd61stew.ibm.com”(清单 8),将其修改为新主机名,保存文件并退出。

清单 8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# End of Section 1.0# Cell=!{cellName}
#
#
#
EnvironmentVariablesSection
#
#
#Environment Variables
nodeName=AVALONNode01
applicationName3=isclite
applicationName2=ibmasyncrsp
applicationName1=WebSphereWSDM
serverName3=nodeagent
serverName2=dmgr
serverName1=clusterserver2
serverName=clusterserver1
nodeName2=SONOMACellManager01
nodeName1=AVALONNode02
applicationName=DefaultApplication
cellName=SONOMACell01
coreGroup=DefaultCoreGroup
hostName=AVALON.xd61stew.ibm.com
nodeGroup=DefaultNodeGroup
hostName6=${LOCALHOST_NAME}
clusterName=defaultcluster
hostName5=SONOMA.xd61stew.ibm.com
hostName4=localhost
hostName3=232.133.104.73
hostName2=ff01::1
hostName1=*

编辑完文件后,在退出 wasdmin 前需要运行另外三个 wsadmin 命令(清单 9):

  • AdminTask.validateConfigProperties 将验证所做的修改。
  • AdminTask.applyConfigProperties 将所做的修改应用到库。
  • AdminConfig.save 将保存修改。
清单 9
1
2
3
4
5
6
7
8
9
wsadmin> AdminTask.validateConfigProperties('[-propertiesFileName
/root/SONOMA.cell.props ]')
'true'
wsadmin> AdminTask.applyConfigProperties('[-propertiesFileName
/root/SONOMA.cell.props ]')
''
wsadmin>AdminConfig.save()
''
wsadmin>exit

如前所述,启动部署管理器并运行 syncNode,在停止每个节点代理后确保修改被全部传播,然后重启节点代理。

真正执行修改

如果您仍然在运行 WebSphere Application Server V5.x —— 即使它不再受到支持 —— 并且您需要对 Version 5.x 环境做出修改,那么您可以使用一些工具,但是这些工具不同于 V6.x 和 V7.0 中使用的工具。要在 WebSphere Application Server V5.x 中修改现有系统的主机名,可以使用与 在 V7.0 中修改主机名 相同的过程;由于这个过程提供了 wsadmin Jython 语法而 V5.x wsadmin 使用的是 Jacl,我在清单 10 中提供了修改后的 Jacl 语法。

清单 10
1
2
3
4
5
6
7
8
wsadmin>$AdminConfig list ServerIndex
(cells/AvalonNetwork/nodes/Avalon:serverindex.xml#ServerIndex_1)
(cells/AvalonNetwork/nodes/AvalonManager:serverindex.xml#ServerIndex_1)
 
wsadmin>$AdminConfig modify (cells/AvalonNetwork/nodes/AvalonManager:serverindex.xml
    #ServerIndex_1) {{hostName AVALON.xd61stew.ibm.com}}
 
wsadmin>$AdminConfig save

除了像上面那样修改主机名外,WebSphere Application Server V7.0 Information Center 中还提供了一组 wsadmin 样例脚本,应该能够用于这个目的。

(转)在 WebSphere Application Server 中修改主机名称并迁移概要文件的更多相关文章

  1. WebSphere Application Server中manageprofiles的使用

    转自 https://www.cnblogs.com/lgfeng/archive/2013/02/21/2921215.html ---------------------------------- ...

  2. 在 WebSphere Application Server V7 集群环境中管理 HTTP session[阅读]

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1012_dingsj_wascluster/1012_ding ...

  3. 将 Spring 和 Hibernate 与 WebSphere Application Server 一起使用

    本文摘要 如果您考虑将 Spring 或 Hibernate 与 IBM® WebSphere® Application Server 一起使用,则本文向您阐述了如何配置这些框架,以适用于 WebSp ...

  4. linux/win7下安装websphere application server

    说明: 1.参考网址:http://www.ibm.com/developerworks/cn/aix/library/au-wasonlinux/ 2.在ibm官网上下载websphere appl ...

  5. Websphere Application Server 环境配置与应用部署最佳实践

    在发布一个运行于 WebSphere Application Server 的 J2EE 应用之前,对服务器进行配置和部署应用是必不可少的一个过程,这个过程是非常复杂的.WAS 为用户提供了可视化的管 ...

  6. WebSphere Application Server切换JAVA SDK版本

    最近在Windows Server 2008 R2服务器中搭建了一套IHS+WAS8.5集群环境,测试一个简单的demo应用没有问题,可是在部署正式应用时总是报类版本错误.换了好几个JDK对项目进行编 ...

  7. 1、WebSphere Application Server的下载以及安装

    最近在做农行相关的项目,我们的后台需要发布到农行WebSphere Application Server上,因此学习一下: 一.WebSphere 是什么? WebSphere 为 SOA (面向服务 ...

  8. WebSphere Application Server诊断和调优

    近段时间,我们项目中用到的WebSphere应用服务器(WAS),但在客户的production环境下极不稳定,经常宕机.给客户造成非常不好的影响,同时,也给项目组很大压力.为此,我们花了近一个月时间 ...

  9. 为WebSphere Application Server v8.5安装并配置JDK7

    IBM WebSphere Application Server v8.5可以同时支持不同版本的JDK共存,并且可以通过命令设置概要文件所使用的JDK版本.WAS8.5默认安装JDK6,如果要使用JD ...

随机推荐

  1. Python网络编程总结

    ----learn from luffycity---- 1. 什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构就是基于网络实现客户端与服务端通信 ...

  2. 抓包工具 - HttpWatch(功能详细介绍)

    HttpWatch是功能强大的网页数据分析工具,集成在IE工具栏,主要功能有网页摘要.cookies管理.缓存管理.消息头发送/接收,字符查询.POST数据.目录管理功能和报告输出.HttpWatch ...

  3. Hdu1427 速算24点 2017-01-18 17:26 46人阅读 评论(0) 收藏

    速算24点 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  4. codevs 1160

    这道题还是和蛇形填数有关,因为要不停的去转圈圈去判断是否到了最中间的那个位置,所以用到了递归的思想. #include<stdio.h> int n,a[100][100]; void r ...

  5. [翻译] Virtual method interception 虚方法拦截

    原文地址:http://blog.barrkel.com/2010/09/virtual-method-interception.html 注:基于本人英文水平,以下翻译只是我自己的理解,如对读者造成 ...

  6. python跳坑---生成器

    贵有恒,何必三更眠五更起,最无益,只怕一日曝十日寒. 好多东西要写下来一是方便自己,二可以分享给大家,我却一拖再拖. 工作的时候看别人代码中间结果,跳了个坑,关于python generator类型: ...

  7. TFS Java SDK使用指南

    [2018.3.6 更新] 最新版本的TFS Java SDK(14.123.1)支持Java SDK 1.6版本,可以从Oracle的官方网站(http://www.oracle.com/techn ...

  8. linux系统编程之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl

    本节目标: 1,文件共享 打开文件内核数据结构 一个进程两次打开同一个文件 两个进程打开同一个文件 2,复制文件描述符(dup.dup2.fcntl) 一,文件共享 1,一个进程打开两个文件内核数据结 ...

  9. 反射导出 Excel

    /// <summary> /// List 数据导出Excel /// </summary> /// <param name="list">数 ...

  10. WPF Item拖拽 DragDrop

    今天有个需求是需要拖拽DataGrid中的item到另一个DataGrid.自己实现还比较繁琐,网上查了查,发现一个不错的开源项目 gong-wpf-dragdrop nuget安装下:Install ...