【发布时间】:2012-04-09 19:01:23
【问题描述】:
我在一台服务器上部署了两个 weblogic 托管实例。这两个实例使用不同的端口号,比如说 7001 和 7002。我的问题是如何在运行时获取端口号?比如在instance1中,我想得到7001,如果在instance2中,我想得到7002。
【问题讨论】:
我在一台服务器上部署了两个 weblogic 托管实例。这两个实例使用不同的端口号,比如说 7001 和 7002。我的问题是如何在运行时获取端口号?比如在instance1中,我想得到7001,如果在instance2中,我想得到7002。
【问题讨论】:
一个简单的解决方案是使用 WLST。下面的脚本将获取 WebLogic 服务器域中所有服务器的端口号。
#!/usr/bin/python
connect('weblogic','password','t3://localhost:7001')
domainConfig()
servers = cmo.getServers()
print "Server\t\tPort\tSSL"
for server in servers:
print server.name + "\t" + str(server.getListenPort()) + "\t" + str(server.getSSL().getListenPort())
disconnect()
注意:您可能必须将倒数第二行开头的空格替换为制表符。
此脚本同样适用于 Unix 或 Windows 环境。
从命令提示符 wlst 脚本名称
这样一个脚本的输出类似于:
Server Port SSL
AdminServer 7001 7002
bam_server1 9001 9002
osb_server1 7003 7004
soa_server1 8001 8002
【讨论】:
你可以使用这样的脚本
export IDM_WLS_DOMAIN=IDMDomain
export IDM_DOMAIN_HOME="$FMW_HOME/user_projects/domains/$IDM_WLS_DOMAIN"
...
export IDM_WLS_ADMIN_PORT=`cat $IDM_DOMAIN_HOME/bin/startManagedWebLogic.sh | grep 'ADMIN_URL="http' | cut -d '"' -f2 | cut -d ':' -f3`
-> IDM_WLS_ADMIN_PORT 将等于 7001 或 7002,...
【讨论】:
使用 JMX。
您可以编写一个查找 RuntimeService MBean 的 java 程序
“com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean”
您可以从中查找集群的所有成员,包括管理员。
并找到他们完整的 IP 地址/DNS 和端口号
这是一个入门示例
【讨论】: