Guest User

Untitled

a guest
Nov 3rd, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.57 KB | None | 0 0
  1. #Conditionally import wlstModule only when script is executed with jython
  2. if __name__ == '__main__':
  3. from wlstModule import *#@UnusedWildImport
  4.  
  5. def configureCluster(clusterName, isUnicast):
  6. cluster = getMBean('/Clusters/' + clusterName)
  7. if cluster == None:
  8. print 'Creating cluster ' + clusterName
  9. cluster = create(clusterName, 'Cluster')
  10. print 'Updating cluster parameters for ' + clusterName
  11. if isUnicast:
  12. cluster.setClusterMessagingMode('unicast')
  13. return cluster
  14.  
  15. def configureServer(serverName, serverListenAddress, serverListenPort,
  16. cluster, machine, maxStuckThreadCount):
  17. server = getMBean('/Servers/' + serverName)
  18. if server == None:
  19. print 'Creating server ' + serverName
  20. server = create(serverName, 'Server')
  21. print 'Updating server parameters for ' + serverName
  22. server.setListenPort(serverListenPort)
  23. server.setListenAddress(serverListenAddress)
  24. server.setCluster(cluster)
  25. server.setMachine(machine)
  26. print '- Configuring overload protection'
  27. overloadProtection = server.getOverloadProtection()
  28. overloadProtection.setFailureAction('no-action')
  29. overloadProtection.setPanicAction('system-exit')
  30. serverFailureTrigger = getMBean('/Servers/' + serverName + '/OverloadProtection/' + serverName
  31. + '/ServerFailureTrigger/' + serverName)
  32. if serverFailureTrigger == None:
  33. cd('/Servers/' + serverName + '/OverloadProtection/' + serverName)
  34. serverFailureTrigger = create(serverName, 'ServerFailureTrigger')
  35. cd('/')
  36. serverFailureTrigger.setMaxStuckThreadTime(600)
  37. serverFailureTrigger.setStuckThreadCount(maxStuckThreadCount)
  38. print '- Configuring logging'
  39. serverLog = server.getLog()
  40. serverLog.setRotationType('bySize')
  41. serverLog.setFileMinSize(5000)
  42. serverLog.setNumberOfFilesLimited(java.lang.Boolean('false'))
  43. serverLog.setFileCount(7)
  44. serverLog.setLogFileSeverity('Trace')
  45. serverLog.setStdoutSeverity('Notice')
  46. serverLog.setDomainLogBroadcastSeverity('Off')
  47. webServerLog = server.getWebServer().getWebServerLog()
  48. webServerLog.setLoggingEnabled(java.lang.Boolean('true'))
  49. webServerLog.setRotationType('bySize')
  50. webServerLog.setFileMinSize(5000)
  51. webServerLog.setNumberOfFilesLimited(java.lang.Boolean('false'))
  52. webServerLog.setFileCount(5)
  53.  
  54. def lookupTarget(targetName):
  55. # try to find the target among servers
  56. target = getMBean('/Servers/' + targetName)
  57. if target == None:
  58. # try to find the target amond migratable targets
  59. target = getMBean('/MigratableTargets/' + targetName)
  60. if target == None:
  61. # try to find the target among clusters
  62. target = getMBean('/Clusters/' + targetName)
  63. return target
  64.  
  65. def configureFileDataStore(storeName, targetName, directory):
  66. store = getMBean('/FileStores/' + storeName)
  67. if store == None:
  68. print 'Creating File Store ' + storeName
  69. store = create(storeName, 'FileStore')
  70. print 'Updating File Store parameters for ' + storeName
  71. store.setDirectory(directory + store.getName().replace(' ', '_'))
  72. store.setTargets([lookupTarget(targetName)])
  73. return store
  74.  
  75. def configureJmsServer(serverName, targetName, store):
  76. jmsServer = getMBean('/JMSServers/' + serverName)
  77. if jmsServer == None:
  78. print 'Creating JMS Server ' + serverName
  79. jmsServer = create(serverName, 'JMSServer')
  80. print 'Updating JMS Server parameters for ' + serverName
  81. jmsServer.setPersistentStore(store)
  82. jmsServer.setTargets([lookupTarget(targetName)])
  83. return jmsServer
  84.  
  85. def configureJmsModule(moduleName, targetName):
  86. jmsModule = getMBean('/JMSSystemResources/' + moduleName)
  87. if jmsModule == None:
  88. print 'Creating JMS Module ' + moduleName
  89. jmsModule = create(moduleName, 'JMSSystemResource')
  90. print 'Updating JMS Module parameters for ' + moduleName
  91. jmsModule.setTargets([targetName])
  92. return jmsModule
  93.  
  94. def configureJmsSubdeployment(subdeploymentName, moduleName, jmsServers):
  95. subdeployment = getMBean('/JMSSystemResources/' + moduleName +
  96. '/SubDeployments/' + subdeploymentName)
  97. if subdeployment == None:
  98. print 'Creating JMS Subdeployment ' + subdeploymentName + ' for module ' \
  99. + moduleName
  100. cd('/JMSSystemResources/' + moduleName + '/SubDeployments')
  101. subdeployment = create(subdeploymentName, 'SubDeployment')
  102. cd('/')
  103. print 'Updating Subdeployment parameters for ' + subdeploymentName
  104. subdeployment.setTargets(jmsServers)
  105. return subdeployment
  106.  
  107. def configureJmsConnectionFactory(cfName, cfJndiName, moduleName, isXA, isDefaultTargeting,
  108. subdeploymentName, messagesMaximum):
  109. cf = getMBean('/JMSSystemResources/' + moduleName +
  110. '/JMSResource/' + moduleName + '/ConnectionFactories/' +
  111. cfName)
  112. if cf == None:
  113. print 'Creating JMS Connection Factory ' + cfName + ' for module ' \
  114. + moduleName
  115. cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
  116. cf = create(cfName, 'ConnectionFactory')
  117. cd('/')
  118. print 'Updating JMS Connection Factory parameters for ' + cfName
  119. cf.setJNDIName(cfJndiName)
  120. if isDefaultTargeting == 'true':
  121. cf.setDefaultTargetingEnabled(java.lang.Boolean(isDefaultTargeting))
  122. else:
  123. cf.setSubDeploymentName(subdeploymentName)
  124. cf.getClientParams().setClientIdPolicy('Restricted')
  125. cf.getClientParams().setSubscriptionSharingPolicy('Exclusive')
  126. cf.getClientParams().setMessagesMaximum(messagesMaximum)
  127. cf.getTransactionParams().setTransactionTimeout(30)
  128. cf.getTransactionParams().setXAConnectionFactoryEnabled(java.lang.Boolean(isXA))
  129. return cf
  130.  
  131. def configureJmsDistributedQueue(queueName, queueJndiName, moduleName, subdeploymentName):
  132. queue = getMBean('/JMSSystemResources/' + moduleName +
  133. '/JMSResource/' + moduleName + '/UniformDistributedQueues/' +
  134. queueName)
  135. if queue == None:
  136. print 'Creating JMS Uniform Distributed Queue ' + queueName + ' for module ' \
  137. + moduleName
  138. cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
  139. queue = create(queueName, 'UniformDistributedQueue')
  140. cd('/')
  141. print 'Updating JMS Uniform Distributed Queue parameters for ' + queueName
  142. queue.setJNDIName(queueJndiName)
  143. queue.setSubDeploymentName(subdeploymentName)
  144. return queue
  145.  
  146. def configureJmsDistributedTopic(topicName, topicJndiName, moduleName, subdeploymentName):
  147. topic = getMBean('/JMSSystemResources/' + moduleName +
  148. '/JMSResource/' + moduleName + '/UniformDistributedTopics/' +
  149. topicName)
  150. if topic == None:
  151. print 'Creating JMS Uniform Distributed Topic ' + topicName + ' for module ' \
  152. + moduleName
  153. cd('/JMSSystemResources/' + moduleName + '/JMSResource/' + moduleName)
  154. topic = create(topicName, 'UniformDistributedTopic')
  155. cd('/')
  156. print 'Updating JMS Uniform Distributed Topic parameters for ' + topicName
  157. topic.setJNDIName(topicJndiName)
  158. topic.setSubDeploymentName(subdeploymentName)
  159. return topic
  160.  
  161. print 'starting the script ....'
  162.  
  163. jmsClusterName = 'test_cluster'
  164. jmsServerNamePrefix = 'jms_server_'
  165. jmsServerHostName = 'localhost'
  166. jmsServerListenPortBase = 8101
  167. jmsServerCount = 10
  168. appServerNamePrefix = 'soa_server_'
  169. appServerHostName = 'localhost'
  170. appServerListenPortBase = 8001
  171. appServerCount = 4
  172.  
  173. jmsResourcesServerNamePrefix = 'TestJMSServer_'
  174. jmsResourcesFileStoreNamePrefix = 'TestFileStore_'
  175. jmsResourceFileStoreDirectoryPathPrefix = 'store/'
  176. jmsResourcesUseMigratableTargets = false
  177. jmsResourcesModuleName = 'TestModule'
  178. jmsResourcesSubDeploymentName = 'TestModuleClusterSubDep'
  179. jmsResourcesQueues = [('SuperQueue_1', 'jms/super/queue1'),
  180. ('SuperQueue_2', 'jms/super/queue2'),
  181. ('SuperQueue_3', 'jms/super/queue3'),
  182. ('SuperQueue_4', 'jms/super/queue4'),
  183. ('SuperQueue_5', 'jms/super/queue5')]
  184. jmsResourcesConnectionFactories = [('SuperConnectionFactory_1', 'jms/super/cf1'),
  185. ('SuperConnectionFactory_3', 'jms/super/cf3'),
  186. ('SuperConnectionFactory_5', 'jms/super/cf5')]
  187. jmsResourcesConnectionFactoriesIsXA = true
  188. jmsResourcesConnectionFactoriesMaxMessages = 100
  189.  
  190. username = 'weblogic'
  191. password = '12345678'
  192. url='t3://localhost:7001'
  193.  
  194. connect(username, password, url)
  195. edit()
  196. startEdit()
  197.  
  198. #=======================================================================================
  199. # Configure a JMS Cluster
  200. #=======================================================================================
  201. print 'Configuring a JMS Cluster with JMS Servers'
  202. jmsCluster = configureCluster(jmsClusterName, true)
  203. for i in range(0, jmsServerCount):
  204. configureServer(jmsServerNamePrefix + repr(i + 1), jmsServerHostName,
  205. jmsServerListenPortBase + i, jmsCluster, None, 0)
  206. for i in range(0, appServerCount):
  207. configureServer(appServerNamePrefix + repr(i + 1), appServerHostName,
  208. appServerListenPortBase + i, jmsCluster, None, 0)
  209.  
  210. #=======================================================================================
  211. # Configure Persistent stores and JMS Servers
  212. #=======================================================================================
  213. print 'Configuring Persistent stores'
  214. stores = []
  215. for i in range(0, jmsServerCount):
  216. targetName = jmsServerNamePrefix + repr(i + 1)
  217. if jmsResourcesUseMigratableTargets:
  218. targetName = targetName + ' (migratable)'
  219. dataStore = configureFileDataStore(jmsResourcesFileStoreNamePrefix + repr(i + 1),
  220. targetName, jmsResourceFileStoreDirectoryPathPrefix)
  221. stores.append(dataStore)
  222.  
  223. print 'Configuring JMS Servers'
  224. jmsServers = []
  225. for i in range(0, jmsServerCount):
  226. targetName = jmsServerNamePrefix + repr(i + 1)
  227. if jmsResourcesUseMigratableTargets:
  228. targetName = targetName + ' (migratable)'
  229. jmsServer = configureJmsServer(jmsResourcesServerNamePrefix + repr(i + 1),
  230. targetName, stores[i])
  231. jmsServers.append(jmsServer)
  232.  
  233. #=======================================================================================
  234. # Configure JMS Module
  235. #=======================================================================================
  236. print 'Configuring JMS Module'
  237. configureJmsModule(jmsResourcesModuleName, jmsCluster)
  238.  
  239. print 'Configuring SubDeployment for JMS Module'
  240. configureJmsSubdeployment(jmsResourcesSubDeploymentName, jmsResourcesModuleName,
  241. jmsServers)
  242.  
  243. print 'Configuring JMS Connection factories for JMS Module'
  244. for cfName, cfJndiName in jmsResourcesConnectionFactories:
  245. configureJmsConnectionFactory(cfName, cfJndiName, jmsResourcesModuleName,
  246. jmsResourcesConnectionFactoriesIsXA, false, jmsResourcesSubDeploymentName,
  247. jmsResourcesConnectionFactoriesMaxMessages)
  248.  
  249. print 'Configuring JMS Uniform Distributed Queues for JMS Module'
  250. for queueName, queueJndiName in jmsResourcesQueues:
  251. configureJmsDistributedQueue(queueName, queueJndiName,
  252. jmsResourcesModuleName,
  253. jmsResourcesSubDeploymentName)
  254.  
  255. try:
  256. save()
  257. activate(block="true")
  258. print "script returns SUCCESS"
  259. except Exception, e:
  260. print e
  261. print "Error while trying to save and/or activate"
  262. dumpStack()
  263. raise
Add Comment
Please, Sign In to add comment