# 创建域 domainTemplate = 'C:/python/appserver/Oracle/Middleware/wlserver_10.3/common/templates/domains/wls.jar' port = 7001 user = 'weblogic' password = 'weblogic0' domainName = 'python_domain' jdkHome = 'C:/python/appserver/Oracle/Middleware/jdk160_29' # Weblogic Domain Template # Use Basic Domain Template readTemplate(domainTemplate) # Config AdminServer Listen Address and Port cd('Servers/AdminServer') set('ListenAddress','') set('ListenPort', port) # Config username and password of Console User cd('/') # 'Security/base_domain/User/weblogic' The 'weblogic' is username cd('Security/base_domain/User/'+ user) cmo.setPassword(password) # If the domain already exists, overwrite the domain setOption('OverwriteDomain', 'true') # Config home directory for the JVM to be used when starting the weblogic server setOption('JavaHome',jdkHome ) # Config the Domain folder path writeDomain('C:/python/appserver/Oracle/Middleware/user_projects/domains/'+ domainName) # Close Template closeTemplate() # Exit script exit() #创建连接池 # Modify these values as necessary url = '127.0.0.1:7001' username = 'weblogic' password = 'weblogic0' dsName = 'mysql_ds' dsJNDIName = 'jdbc/mysql' targetName = 'AdminServer' initialCapacity = 1 maxCapacity = 10 capacityIncrement = 1 driverName = 'com.mysql.jdbc.Driver' driverURL = 'jdbc:mysql://localhost:3306/crawler' driverUsername = 'root' driverPassword = 'root' # Connect to administration server connect(username, password, url) # Check if data source already exists try: cd('/JDBCSystemResources/' + dsName) print 'The JDBC Data Source ' + dsName + ' already exists.' exit() except WLSTException: pass print 'Creating new JDBC Data Source named ' + dsName + '.' edit() startEdit() cd('/') # Save reference to target server targetServer = getMBean('/Servers/' + targetName) # Create data source jdbcSystemResource = create(dsName, 'JDBCSystemResource') jdbcResource = jdbcSystemResource.getJDBCResource() jdbcResource.setName(dsName) # Set JNDI name jdbcResourceParameters = jdbcResource.getJDBCDataSourceParams() jdbcResourceParameters.setJNDINames([dsJNDIName]) jdbcResourceParameters.setGlobalTransactionsProtocol('TwoPhaseCommit') # Create connection pool connectionPool = jdbcResource.getJDBCConnectionPoolParams() connectionPool.setInitialCapacity(initialCapacity) connectionPool.setMaxCapacity(maxCapacity) connectionPool.setCapacityIncrement(capacityIncrement) # Create driver settings driver = jdbcResource.getJDBCDriverParams() driver.setDriverName(driverName) driver.setUrl(driverURL) driver.setPassword(driverPassword) driverProperties = driver.getProperties() userProperty = driverProperties.createProperty('user') userProperty.setValue(driverUsername) # Set data source target jdbcSystemResource.addTarget(targetServer) # Activate changes save() activate(block='true') print 'Data Source created successfully.' exit() #监控weblogic # WLST WebLogic Server Monitoring Script # Author: Madan M Noru # This script can be used to monitor JVM, EXECUTE QUEUE, JDBC and JMS Resources # of all the WebLogic Instances running in a domain. # NOTE: If you are unable to run this script, it could be an indentation problem. Please post your E-mail Id, I can send you the script. # import pymysql while True: import time print(time.strftime("%Y-%m-%d %X")) Now = time.localtime(time.time()) timestr=time.strftime("%Y-%m-%d %X") print(timestr) print('=========================') username = 'weblogic' password = 'weblogic0' url = 't3://127.0.0.1:7001' urldict = {} connect(username, password, url) serverlist = adminHome.getMBeansByType('Server') print(serverlist) for svr in serverlist: # urldict['' + svr.getName() + ''] = str(svr.getListenPort()) urldict[svr.getName()] = 't3://' + svr.getListenAddress() + ':' + str(svr.getListenPort()) disconnect() # curTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) fjvm = open("jvm.txt","w") fjvm.truncate() fjvm.close() fpools = open("pools.txt","w") fpools.truncate() fpools.close() for svr, url in urldict.items(): try: connect('weblogic', 'weblogic0', 't3://127.0.0.1:7001') jvmrtlist = home.getMBeansByType('JVMRuntime') print(jvmrtlist) print(' ') print('The Runtime Stats of Server: ' + svr) print(' ') print('JVM') print(' ') print('FreeJVM usedJVM totalJVM persentJVM') print(' ') for jvmRT in jvmrtlist: freejvm = jvmRT.getAttribute("HeapFreeCurrent") usedjvm = jvmRT.getAttribute('HeapSizeCurrent') totaljvm = jvmRT.getAttribute("HeapSizeMax") persentjvm = jvmRT.getAttribute("HeapFreePercent") print(freejvm, ' ', usedjvm, ' ', totaljvm,' ',persentjvm) print(' ') print('------------------------------------------------') # 获取系统时间(只取分:秒) f = open("jvm.txt", "a") f.write(str(timestr)+','+str('base_domain')+','+str(svr)+','+str(freejvm)+','+str(usedjvm)+','+str(totaljvm)+','+str(persentjvm)) f.write(' ') print('===============1') f.close() # time.sleep(5) # 注释掉部分为执行队列的监控 # eqrtlist=home.getMBeansByType('ExecuteQueueRuntime') # print ' ' # print ' ' # print 'EXECUTE QUEUES' # print ' ' # print 'ExecuteQueueName TotalCount CurrIdleCount PendRequestCurrCount ServicedRequestTotalCount' # print ' ' # for eqRT in eqrtlist: # eqname = eqRT.getAttribute("Name") # eqtthreads = eqRT.getAttribute("ExecuteThreadTotalCount") # eqithreads = eqRT.getAttribute("ExecuteThreadCurrentIdleCount") # eqqc = eqRT.getAttribute("PendingRequestCurrentCount") # eqthrougp = eqRT.getAttribute("ServicedRequestTotalCount") # print eqname,' ',eqtthreads,' ',eqithreads,' ',eqqc,' ',eqthrougp # print ' ' # poolrtlist = home.getMBeansByType('JDBCConnectionPoolRuntime') print(' ') print(' ') print('JDBC CONNECTION POOLS') print('Name Maxcapacity ActiveCurrent ActiveHighCount WaitSecondsHighCount WaitingCurrentCount State') print(' ') for poolRT in poolrtlist: pname = poolRT.getName() ptype = 'normal' pmaxcapacity = poolRT.getAttribute("MaxCapacity") paccc = poolRT.getAttribute("ActiveConnectionsCurrentCount") paverage=poolRT.getAttribute("ActiveConnectionsAverageCount") # pachc = poolRT.getAttribute("ActiveConnectionsHighCount") # pwshc = poolRT.getAttribute("WaitSecondsHighCount") # pwfccc = poolRT.getAttribute("WaitingForConnectionCurrentCount") pstate = poolRT.getAttribute("State") print(pname, ' ', pmaxcapacity, ' ', paccc, ' ', pstate) print(' ') print('-------------------------------------------------------------') f = open("pools.txt", "a") f.write(str(timestr)+','+str(pname)+','+str(svr)+','+str(ptype)+','+str(pstate)+','+str(paccc)+','+str(pmaxcapacity)) f.write(' ') f.close() domainRuntime() # cd('ServerRuntimes/'+svr+'/WorkManagerRuntimes/weblogic.kernel.Default') cd('ServerRuntimes/' + svr + '/ThreadPoolRuntime/ThreadPoolRuntime') # print(ls()) print('-----------------------------------------------------------------') jmsrtlist = home.getMBeansByType('JMSDestinationRuntime') print(' ') print(' ') print('JMS DESTINATIONS') print(' ') print('Name ByteCurr Pending Received High MsgCurr Pending High Received ConsumersTotal') print(' ') for jmsRT in jmsrtlist: jmsname = jmsRT.getAttribute("Name") jmsbcc = jmsRT.getAttribute("BytesCurrentCount") jmsbpc = jmsRT.getAttribute("BytesPendingCount") jmsbrc = jmsRT.getAttribute("BytesReceivedCount") jmsbhc = jmsRT.getAttribute("BytesHighCount") jmsmcc = jmsRT.getAttribute("MessagesCurrentCount") jmsmpc = jmsRT.getAttribute("MessagesPendingCount") jmsmhc = jmsRT.getAttribute("MessagesHighCount") jmsmrc = jmsRT.getAttribute("MessagesReceivedCount") jmsctc = jmsRT.getAttribute("ConsumersTotalCount") print(jmsname, ' ', jmsbcc, ' ', jmsbpc, ' ', jmsbrc, ' ', jmsbhc, ' ', jmsmcc, ' ', jmsmpc, ' ', jmsmhc, ' ', jmsmrc, ' ', jmsctc) print(' ') print('-------------------------------------------------------------------') # 获取系统时间(只取分:秒) disconnect() except: print("Skipping " + svr) continue java.lang.Thread.sleep(5000)