# 创建域
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('\n')
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('\n')
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)