扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要讲解了“websphere集群的创建方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“websphere集群的创建方法”吧!
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了修武免费建站欢迎大家使用!
前面已经介绍了创建概要文件,这里把前面创建的管理节点和受管理节点结合起来做集群。
首先进入管理节点的bin目录启动管理节点,启动了才能进入管理控制台
./startManager.sh
进入其他受管理节点启动节点,也可以不启动,不启动也可以创建集群,因为创建概要的时候我们已经把受管理节点添加到管理节点中了,现在启动只是为了方便后续操作
./startNode.sh
然后进入管理控制台,然后服务器 > 集群 > WebSphere Application Server 集群 ,点击新建集群,新建集群的名字我们自己随便填,配置 HTTP 会话内存到内存复制的复选框我们这里先不勾选,选择的好处就是我们这里所有节点的会话是共享的,如果配置负载均衡的话,这几个节点的会话是无缝切换的。如果这几个节点都在同一台服务器上,使用这个选项就非常方便了,如果位于多个不同服务器就麻烦了。这里我们不勾选,因为我们下面使用会话管理的另一种方式。集群名字填好后,下面就是要添加集群的成员,所有需要的节点添加完集群就创建完成了。
集群创建完成后,我们就可以创建JDBC 提供程序了,还有数据源了,创建的时候注意作用域都要选择集群。
这里我们重点创建一个数据源,用来管理会话的,数据源名:sessions,JNDI 名称:jdbc/sessions,以上名字可以随便写,最好容易分辨。下一步选择我们之前创建的JDBC提供程序,websphere默认支持DB2和Oracle,我们使用Oracle,这里选择Oracle JDBC Driver,然后下一步填写数据库连接的URL,最后完成。
数据源配置好了,数据库的表结构是什么样的呢,参考IBM官方文档
https://www.ibm.com/support/knowledgecenter/zh/SSAW57_9.0.5/com.ibm.websphere.nd.multiplatform.doc/ae/uprs_rpersistence.html
https://www.ibm.com/support/knowledgecenter/zh/SSAW57_9.0.5/com.ibm.websphere.nd.multiplatform.doc/ae/tprs_cnfp.html
https://www.ibm.com/support/knowledgecenter/zh/SSAW57_9.0.5/com.ibm.websphere.nd.multiplatform.doc/ae/tprs_table_creation.html
对于 Oracle:
CREATE TABLE SESSIONS ( ID VARCHAR(128) NOT NULL , PROPID VARCHAR(128) NOT NULL , APPNAME VARCHAR(128) NOT NULL, LISTENERCNT SMALLINT , LASTACCESS INTEGER, CREATIONTIME INTEGER, MAXINACTIVETIME INTEGER , USERNAME VARCHAR(256) , SMALL RAW(2000), MEDIUM LONG RAW , LARGE RAW(1) )
如果 Web 容器定制属性 UseOracleBLOB 设置为 true,那么:
CREATE TABLE SESSIONS ( ID VARCHAR(128) NOT NULL , PROPID VARCHAR(128) NOT NULL , APPNAME VARCHAR(128) NOT NULL, LISTENERCNT SMALLINT , LASTACCESS INTEGER, CREATIONTIME INTEGER, MAXINACTIVETIME INTEGER , USERNAME VARCHAR(256) , SMALL RAW(2000), MEDIUM BLOB, LARGE RAW(1) )
两者只是MEDIUM字段的类型不一样,我们这里采用默认第一种方式在数据创建好表。
创建完数据源之后需要重启nodeagent,不然连接数据库会有错误.应用安装完成之后同步一下节点,然后再启动应用.
然后设置服务器配置,服务器 > 服务器类型 > WebSphere Application Server> server_name > 会话管理 > 分布式环境设置,直接点击数据库,修改 数据源 JNDI 名称,这个名称看仔细了,是系统默认的,需要改成我们上面创建的jdbc/sessions,修改用户标识和密码,也就是SESSIONS表所在库的用户名和密码,其他配置不用修改,然后保存配置,数据库默认就会被选中有效。这里的server_name是我们的节点,把所有节点的服务器都这样配置好以后,重启所有server,然后就会生效了。
可以安装一个应用,通过一个节点的端口登录应用,再在另一个节点的端口打开应用,看看会话是否也有效,同时数据库SESSIONS表应该已经有数据了。
注意应用程序的管理也有一个会话管理 > 分布式环境设置,这里无需设置,设置后也没有作用。
集群创建好,接下来配置ihs,实现ihs的负载均衡。先配置 Web 服务器插件,使用命令行来创建,可参考
https://www.ibm.com/support/knowledgecenter/zh/SSEQTP_9.0.5/com.ibm.websphere.base.doc/ae/tins_pctcl_using.html
需要先配置一个 tool 自变量的响应文件,创建定义时,此参数是必需的。
我们就在WCT目录创建一个响应文件把
cd /opt/IBM/WebSphere/Toolbox/WCT
这个目录下有个pct_responsefile.txt,就是响应文件的模板,不过是Windows下的,我们需要改动的很多,不过可以参考,里面有很多注释。我们创建响应文件
vi responsefile.txt
文件内容如下,这里的概要文件指定的是受管理节点Custom01,指定管理节点是运行生成configurewebserver1.sh脚本报不是有效的节点错误,可以看下面后续的测试。
configType=local enableAdminServerSupport=true enableUserAndPass=true ihsAdminUserID=admin ihsAdminPassword=ihsadmin ihsAdminPort=8008 ihsAdminCreateUserAndGroup=true ihsAdminUnixUserGroup=was ihsAdminUnixUserID=ihs mapWebServerToApplications=true wasExistingLocation=/opt/IBM/WebSphere/AppServer/ profileName=Custom01 webServerConfigFile1=/opt/IBM/HTTPServer/conf/httpd.conf webServerDefinition=webserver1 webServerHostName=localhost webServerOS=Linux webServerInstallArch=64 webServerPortNumber=80 webServerSelected=ihs
创建完响应文件以后我们就可以进行配置了
./wctcmd.sh -tool pct \ -createDefinition \ -defLocPathname /opt/IBM/WebSphere/Plugins \ -defLocName WebServerPlugins \ -response /opt/IBM/WebSphere/Toolbox/WCT/responsefile.txt
如果创建失败,检查参数设置是否有问题,比如参数路径、系统是不是Linux、系统是不是64版本,然后修改响应参数,还有可能缺少一些32位类库支持,可尝试下载如下软件
yum install ld-linux.so.2 libgcc.i686
创建成功后会在/opt/IBM/WebSphere/Plugins/bin/目录下生成一个configurewebserver1.sh脚本,因为我们响应文件定义的服务器名字就是webserver1。
我们将这个脚本文件复制到管理节点bin目录下
cp /opt/IBM/WebSphere/Plugins/bin/configurewebserver1.sh /opt/IBM/WebSphere/AppServer/bin/
然后在AppServer/bin/下运行这个脚本
./configurewebserver1.sh
后续:
上面通过命令创建的configurewebserver1.sh,如果指定的概要文件是管理节点,运行会报节点不是有效的节点的问题,通过图形界面创建的,同样是管理节点,则不会报错,这样我们可以自己手动编辑configurewebserver1.sh脚本,比对两个生成的脚本,唯一的区别就是最后一行的参数,一个是unmanaged ihs-node,另一个是managed Dmgr01Node,可能是生成的Dmgr01Node名字与现有节点名字重复了,命令行工具的一个Bug吧。
#!/bin/sh binDir=`dirname "$0"` . "$binDir/setupCmdLine.sh" COMMAND_INVOKED="$0" PROFILE_NAME_PARAMETER= WSADMIN_USERID_PARAMETER= WSADMIN_PASSWORD_PARAMETER= IHS_ADMIN_PASSWORD_PARAMETER= printUsage() { echo "" echo "" echo "Usage: $COMMAND_INVOKED" echo " [ -profileName profile_name ] " echo " [ -user WAS_Admin_userID ] " echo " [ -password WAS_Admin_password ] " echo " [ -ihsAdminPassword IHS_Admin_password ]" echo " [ -help | -? ]" echo " " echo "Where:" echo " \"profileName\" is the name of the profile in which " echo " web server should be created" echo " \"user\" is the WebSphere Administration userID" echo " \"password\" is the WebSphere Administration password" echo " \"ihsAdminPassword\" is the password to access the IHS Adminstration server" echo " " echo "Example: " echo " $COMMAND_INVOKED -profileName AppSrv01 -user admin -password admin1" echo " " echo " " exit 0 } printError() { echo "ERROR: $1" printUsage } while [ $# -gt 0 ]; do case $1 in -help|-?) printUsage exit 0 ;; -profileName) shift echo "Using the profile $1" PROFILE_NAME_PARAMETER="-profileName $1" ;; -user) shift echo "Using WAS admin userID $1" WSADMIN_USERID_PARAMETER="-user $1" ;; -password) shift WSADMIN_PASSWORD_PARAMETER="-password $1" ;; -ihsAdminPassword) shift IHS_ADMIN_PASSWORD_PARAMETER="$1" ;; -*) echo "Unsupported option" echo "$1" printUsage exit 0 ;; esac shift done "$binDir/wsadmin.sh" $PROFILE_NAME_PARAMETER $WSADMIN_USERID_PARAMETER $WSADMIN_PASSWORD_PARAMETER -f $WAS_HOME/bin/configureWebserverDefinition.jacl webserver1 IHS '/opt/IBM/HTTPServer' '/opt/IBM/HTTPServer/conf/httpd.conf' 80 MAP_ALL '/opt/IBM/WebSphere/Plugins' unmanaged ihs-node localhost linux 8008 admin ihsadmin
如果有其他改动,比对上面脚本中的参数修改就可以了。创建好之后添加运行权限
chmod +x configurewebserver1.sh
然后在AppServer/bin/目录下运行就好了,运行之后会单独创建一个ihs-node节点,可以在拓扑图中看到,
要想在管理控制台可以启动和停止ihs,需要启动ihs的管理服务
/opt/IBM/HTTPServer/bin/adminctl start
注意编辑的是运行生成脚本wctcmd.sh之后生成的configurewebserver1.sh,如果不运行上面wctcmd.sh直接写一个configurewebserver1.sh执行也正常,但是启动ihs控制台adminctl start会报错误
Syntax error on line 7 of /opt/IBM/HTTPServer/conf/admin.conf:Port must be specified
因为不运行生成脚本,一些环境变量就没有设置,管理端口等变量就找不到正确的值。
注:
如果你是用的图形界面的Web插件管理工具,点击菜单没反应,一般是Linux服务器会出现这种情况,由于缺少软件包导致的,或者64位操作系统,缺少32系统包的支持,可以在终端下运行wct.sh看看有什么错误,或者查看一下错误日志
cat /root/.ibm/WebSphere/workspaces/WCT85/.metadata/.log
再或者直接安装一下包试试
yum install libgcc libgcc.i686 ld-linux.so.2 gtk2.i686 PackageKit-gtk3-module PackageKit-gtk3-module.i686
再提供两条命令
#删除服务器定义 ./wctcmd.sh -tool pct -deleteDefinition webserver1 -defLocName WebServerPlugins #删除插件位置定义 ./wctcmd.sh -tool pct -removeDefinitionLocation -defLocName WebServerPlugins
感谢各位的阅读,以上就是“websphere集群的创建方法”的内容了,经过本文的学习后,相信大家对websphere集群的创建方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流