Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Conditionally import wlstModule only when script is executed with jython
- if __name__ == '__main__':
- from wlstModule import *#@UnusedWildImport
- def configureCluster(clusterName, isUnicast):
- cluster = getMBean('/Clusters/' + clusterName)
- if cluster == None:
- print 'Creating cluster ' + clusterName
- cluster = create(clusterName, 'Cluster')
- print 'Updating cluster parameters for ' + clusterName
- if isUnicast:
- cluster.setClusterMessagingMode('unicast')
- return cluster
- def configureServer(serverName, serverListenAddress, serverListenPort,
- cluster, machine, maxStuckThreadCount):
- server = getMBean('/Servers/' + serverName)
- if server == None:
- print 'Creating server ' + serverName
- server = create(serverName, 'Server')
- print 'Updating server parameters for ' + serverName
- server.setListenPort(serverListenPort)
- server.setListenAddress(serverListenAddress)
- server.setCluster(cluster)
- server.setMachine(machine)
- print '- Configuring overload protection'
- overloadProtection = server.getOverloadProtection()
- overloadProtection.setFailureAction('no-action')
- overloadProtection.setPanicAction('system-exit')
- serverFailureTrigger = getMBean('/Servers/' + serverName + '/OverloadProtection/' + serverName
- + '/ServerFailureTrigger/' + serverName)
- if serverFailureTrigger == None:
- cd('/Servers/' + serverName + '/OverloadProtection/' + serverName)
- serverFailureTrigger = create(serverName, 'ServerFailureTrigger')
- cd('/')
- serverFailureTrigger.setMaxStuckThreadTime(600)
- serverFailureTrigger.setStuckThreadCount(maxStuckThreadCount)
- print '- Configuring logging'
- serverLog = server.getLog()
- serverLog.setRotationType('bySize')
- serverLog.setFileMinSize(5000)
- serverLog.setNumberOfFilesLimited(java.lang.Boolean('false'))
- serverLog.setFileCount(7)
- serverLog.setLogFileSeverity('Trace')
- serverLog.setStdoutSeverity('Notice')
- serverLog.setDomainLogBroadcastSeverity('Off')
- webServerLog = server.getWebServer().getWebServerLog()
- webServerLog.setLoggingEnabled(java.lang.Boolean('true'))
- webServerLog.setRotationType('bySize')
- webServerLog.setFileMinSize(5000)
- webServerLog.setNumberOfFilesLimited(java.lang.Boolean('false'))
- webServerLog.setFileCount(5)
- def lookupTarget(targetName):
- # try to find the target among servers
- target = getMBean('/Servers/' + targetName)
- if target == None:
- # try to find the target amond migratable targets
- target = getMBean('/MigratableTargets/' + targetName)
- if target == None:
- # try to find the target among clusters
- target = getMBean('/Clusters/' + targetName)
- return target
- def configureFileDataStore(storeName, targetName, directory):
- store = getMBean('/FileStores/' + storeName)
- if store == None:
- print 'Creating File Store ' + storeName
- store = create(storeName, 'FileStore')
- print 'Updating File Store parameters for ' + storeName
- store.setDirectory(directory + store.getName().replace(' ', '_'))
- store.setTargets([lookupTarget(targetName)])
- return store
- def configureJmsServer(serverName, targetName, store):
- jmsServer = getMBean('/JMSServers/' + serverName)
- if jmsServer == None:
- print 'Creating JMS Server ' + serverName
- jmsServer = create(serverName, 'JMSServer')
- print 'Updating JMS Server parameters for ' + serverName
- jmsServer.setPersistentStore(store)
- jmsServer.setTargets([lookupTarget(targetName)])
- return jmsServer
- def configureJmsModule(moduleName, targetName):
- jmsModule = getMBean('/JMSSystemResources/' + moduleName)
- if jmsModule == None:
- print 'Creating JMS Module ' + moduleName
- jmsModule = create(moduleName, 'JMSSystemResource')
- print 'Updating JMS Module parameters for ' + moduleName
- jmsModule.setTargets([targetName])
- return jmsModule
- def configureJmsSubdeployment(subdeploymentName, moduleName, jmsServers):
- subdeployment = getMBean('/JMSSystemResources/' + moduleName +
- '/SubDeployments/' + subdeploymentName)
- if subdeployment == None:
- print 'Creating JMS Subdeployment ' + subdeploymentName + ' for module ' \
- + moduleName
- cd('/JMSSystemResources/' + moduleName + '/SubDeployments')
- subdeployment = create(subdeploymentName, 'SubDeployment')
- cd('/')
- print 'Updating Subdeployment parameters for ' + subdeploymentName
- subdeployment.setTargets(jmsServers)
- return subdeployment
- def configureJmsConnectionFactory(cfName, cfJndiName, moduleName, isXA, isDefaultTargeting,
- subdeploymentName, messagesMaximum):
- cf = getMBean('/JMSSystemResources/' + moduleName +
- '/JMSResource/' + moduleName + '/ConnectionFactories/' +
- cfName)
- if cf == None:
- print 'Creating JMS Connection Factory ' + cfName + ' for module ' \
- + moduleName
- cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
- cf = create(cfName, 'ConnectionFactory')
- cd('/')
- print 'Updating JMS Connection Factory parameters for ' + cfName
- cf.setJNDIName(cfJndiName)
- if isDefaultTargeting == 'true':
- cf.setDefaultTargetingEnabled(java.lang.Boolean(isDefaultTargeting))
- else:
- cf.setSubDeploymentName(subdeploymentName)
- cf.getClientParams().setClientIdPolicy('Restricted')
- cf.getClientParams().setSubscriptionSharingPolicy('Exclusive')
- cf.getClientParams().setMessagesMaximum(messagesMaximum)
- cf.getTransactionParams().setTransactionTimeout(30)
- cf.getTransactionParams().setXAConnectionFactoryEnabled(java.lang.Boolean(isXA))
- return cf
- def configureJmsDistributedQueue(queueName, queueJndiName, moduleName, subdeploymentName):
- queue = getMBean('/JMSSystemResources/' + moduleName +
- '/JMSResource/' + moduleName + '/UniformDistributedQueues/' +
- queueName)
- if queue == None:
- print 'Creating JMS Uniform Distributed Queue ' + queueName + ' for module ' \
- + moduleName
- cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
- queue = create(queueName, 'UniformDistributedQueue')
- cd('/')
- print 'Updating JMS Uniform Distributed Queue parameters for ' + queueName
- queue.setJNDIName(queueJndiName)
- queue.setSubDeploymentName(subdeploymentName)
- return queue
- def configureJmsDistributedTopic(topicName, topicJndiName, moduleName, subdeploymentName):
- topic = getMBean('/JMSSystemResources/' + moduleName +
- '/JMSResource/' + moduleName + '/UniformDistributedTopics/' +
- topicName)
- if topic == None:
- print 'Creating JMS Uniform Distributed Topic ' + topicName + ' for module ' \
- + moduleName
- cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
- topic = create(topicName, 'UniformDistributedTopic')
- cd('/')
- print 'Updating JMS Uniform Distributed Topic parameters for ' + topicName
- topic.setJNDIName(topicJndiName)
- topic.setSubDeploymentName(subdeploymentName)
- return topic
- print 'starting the script ....'
- jmsClusterName = 'test_cluster'
- jmsServerNamePrefix = 'jms_server_'
- jmsServerHostName = 'localhost'
- jmsServerListenPortBase = 8101
- jmsServerCount = 10
- appServerNamePrefix = 'soa_server_'
- appServerHostName = 'localhost'
- appServerListenPortBase = 8001
- appServerCount = 4
- jmsResourcesServerNamePrefix = 'TestJMSServer_'
- jmsResourcesFileStoreNamePrefix = 'TestFileStore_'
- jmsResourceFileStoreDirectoryPathPrefix = 'store/'
- jmsResourcesUseMigratableTargets = false
- jmsResourcesModuleName = 'TestModule'
- jmsResourcesSubDeploymentName = 'TestModuleClusterSubDep'
- jmsResourcesQueues = [('SuperQueue_1', 'jms/super/queue1'),
- ('SuperQueue_2', 'jms/super/queue2'),
- ('SuperQueue_3', 'jms/super/queue3'),
- ('SuperQueue_4', 'jms/super/queue4'),
- ('SuperQueue_5', 'jms/super/queue5')]
- jmsResourcesConnectionFactories = [('SuperConnectionFactory_1', 'jms/super/cf1'),
- ('SuperConnectionFactory_3', 'jms/super/cf3'),
- ('SuperConnectionFactory_5', 'jms/super/cf5')]
- jmsResourcesConnectionFactoriesIsXA = true
- jmsResourcesConnectionFactoriesMaxMessages = 100
- username = 'weblogic'
- password = '12345678'
- url='t3://localhost:7001'
- connect(username, password, url)
- edit()
- startEdit()
- #=======================================================================================
- # Configure a JMS Cluster
- #=======================================================================================
- print 'Configuring a JMS Cluster with JMS Servers'
- jmsCluster = configureCluster(jmsClusterName, true)
- for i in range(0, jmsServerCount):
- configureServer(jmsServerNamePrefix + repr(i + 1), jmsServerHostName,
- jmsServerListenPortBase + i, jmsCluster, None, 0)
- for i in range(0, appServerCount):
- configureServer(appServerNamePrefix + repr(i + 1), appServerHostName,
- appServerListenPortBase + i, jmsCluster, None, 0)
- #=======================================================================================
- # Configure Persistent stores and JMS Servers
- #=======================================================================================
- print 'Configuring Persistent stores'
- stores = []
- for i in range(0, jmsServerCount):
- targetName = jmsServerNamePrefix + repr(i + 1)
- if jmsResourcesUseMigratableTargets:
- targetName = targetName + ' (migratable)'
- dataStore = configureFileDataStore(jmsResourcesFileStoreNamePrefix + repr(i + 1),
- targetName, jmsResourceFileStoreDirectoryPathPrefix)
- stores.append(dataStore)
- print 'Configuring JMS Servers'
- jmsServers = []
- for i in range(0, jmsServerCount):
- targetName = jmsServerNamePrefix + repr(i + 1)
- if jmsResourcesUseMigratableTargets:
- targetName = targetName + ' (migratable)'
- jmsServer = configureJmsServer(jmsResourcesServerNamePrefix + repr(i + 1),
- targetName, stores[i])
- jmsServers.append(jmsServer)
- #=======================================================================================
- # Configure JMS Module
- #=======================================================================================
- print 'Configuring JMS Module'
- configureJmsModule(jmsResourcesModuleName, jmsCluster)
- print 'Configuring SubDeployment for JMS Module'
- configureJmsSubdeployment(jmsResourcesSubDeploymentName, jmsResourcesModuleName,
- jmsServers)
- print 'Configuring JMS Connection factories for JMS Module'
- for cfName, cfJndiName in jmsResourcesConnectionFactories:
- configureJmsConnectionFactory(cfName, cfJndiName, jmsResourcesModuleName,
- jmsResourcesConnectionFactoriesIsXA, false, jmsResourcesSubDeploymentName,
- jmsResourcesConnectionFactoriesMaxMessages)
- print 'Configuring JMS Uniform Distributed Queues for JMS Module'
- for queueName, queueJndiName in jmsResourcesQueues:
- configureJmsDistributedQueue(queueName, queueJndiName,
- jmsResourcesModuleName,
- jmsResourcesSubDeploymentName)
- try:
- save()
- activate(block="true")
- print "script returns SUCCESS"
- except Exception, e:
- print e
- print "Error while trying to save and/or activate"
- dumpStack()
- raise
Add Comment
Please, Sign In to add comment