import environment profile = environment.getProfile() weblogic_listen_port = int(profile[ 'managed.server.listen.port' ]) hostnames = profile[ 'managed.server.hosts' ] managed_server_count = len( hostnames ) cluster_list = '' for idx in range( managed_server_count ) : listen_address = hostnames[idx] interface_address = listen_address managedServer = create( managedServerName, 'Server' ) managedServer.setInterfaceAddress( interface_address ) managedServer.setListenAddress( interface_address ) managedServer.setListenPort( weblogic_listen_port ) cluster_list = \ cluster_list + listen_address + ":" + str(weblogic_listen_port) if 'cluster.dns.name' in profile : cluster.setClusterAddress( profile['cluster.dns.name'] ) else : cluster.setClusterAddress( cluster_list )在这个修改过的代码片段中,您积累了一个以逗号分隔的服务侦听地址和端口所组成的列表。如果在配置文件中提供了DNS名称(本例没有),则可以使用其作为群集地址,但默认情况下使用积累的地址和端口列表。
端对端供应:共享配置数据
在大部分测试环境中,供应的不仅仅是WebLogic域。例如,Apache Web服务器可以用于群集中受管服务器的静态HTTP目录或者平衡其HTTP请求的负载。供应脚本中也可以实现其他此类环境组件的配置。下面是一个environment.py的扩展版,包括了一个用于Apache Web服务器的配置值:
def getProfile () : env = {} env['managed.server.listen.port'] = 7001 env['managed.server.hosts'] = \ [ "hostname_1", "hostname_2", "hostname_3" ] env['apache.listen.port'] = 8080 return env
要实现这一点,您需要向供应脚本添加几行代码(新增行添加到片段的最后面):
import environment
profile = environment.getProfile()
weblogic_listen_port = int(profile[ 'managed.server.listen.port' ])
hostnames = profile[ 'managed.server.hosts' ]
managed_server_count = len( hostnames )
cluster_list = ''
for idx in range( managed_server_count ) :
listen_address = hostnames[idx]
interface_address = listen_address
managedServer = create( managedServerName, 'Server' )
managedServer.setInterfaceAddress( interface_address )
managedServer.setListenAddress( interface_address )
cluster_list = \
cluster_list + listen_address + ":" + str(weblogic_listen_port)
if 'cluster.dns.name' in profile :
cluster.setClusterAddress( profile['cluster.dns.name'] )
else :