wlst weblogicデータソースランタイム情報の取得


背景
Weblogicはconsoleでデータソースの実行時統計を表示できます.例えば、現在のアクティビティ数、最大容量、最小容量などです.サーバーの数が膨大であるか、データソースの統計監視機能が必要である場合は、プログラムタイミングでデータソースの実行時情報を取得する必要があります.2つのスキームでデータソースの実行時情報を取得できます.
  • JMXによりweblogicランタイムMBean情報を取得し、MBeanからデータソースランタイム情報を取得する.
  • jythonスクリプトによりデータソースのランタイム情報を取得することも、本明細書で説明する方法です.

  • wlstスクリプト
    基本的な考え方は、接続サーバを通じてデータソースの実行時情報を取得し、csvフォーマットを通じてファイルに出力し、csvファイルはexcelを通じて統計分析を行うことができ、csvファイルをサーバにアップロードして第三者プログラムを通じて統計分析を行うことができる.
    import sys
    url=sys.argv[1]
    username=sys.argv[2]
    password=sys.argv[3]
    connect(username,password,'t3://'+url)
    file=open("datasource.csv",'a')
    file.write("machine,server,Name,ActiveConnectionsAverageCount,ActiveConnectionsCurrentCount,ActiveConnectionsHighCount,ConnectionDelayTime,ConnectionsTotalCount,CurrCapacity,CurrCapacityHighCount,DeploymentState,FailedReserveRequestCount,FailuresToReconnectCount,HighestNumAvailable,HighestNumUnavailable,LeakedConnectionCount,NumAvailable,NumUnavailable,PrepStmtCacheAccessCount,PrepStmtCacheAddCount,PrepStmtCacheCurrentSize,PrepStmtCacheDeleteCount,PrepStmtCacheHitCount,PrepStmtCacheMissCount,Properties,ReserveRequestCount,State,WaitingForConnectionCurrentCount,WaitingForConnectionFailureTotal,WaitingForConnectionHighCount,WaitingForConnectionSuccessTotal,WaitingForConnectionTotal,WaitSecondsHighCount
    ") allServers=domainRuntimeService.getServerRuntimes(); if (len(allServers) > 0): for tempServer in allServers: jdbcServiceRT = tempServer.getJDBCServiceRuntime(); dataSources = jdbcServiceRT.getJDBCDataSourceRuntimeMBeans(); if (len(dataSources) > 0): for dataSource in dataSources: print "Server:" , tempServer print "Datasource:" , dataSource.getName() print "ActiveCount" , dataSource.getActiveConnectionsCurrentCount() file.write(url+",") file.write(str(tempServer.getName())+",") file.write(str(dataSource.getName())+",") file.write(str(dataSource.getActiveConnectionsAverageCount())+",") file.write(str(dataSource.getActiveConnectionsCurrentCount())+",") file.write(str(dataSource.getActiveConnectionsHighCount())+",") file.write(str(dataSource.getConnectionDelayTime())+",") file.write(str(dataSource.getConnectionsTotalCount())+",") file.write(str(dataSource.getCurrCapacity())+",") file.write(str(dataSource.getCurrCapacityHighCount())+",") file.write(str(dataSource.getDeploymentState())+",") file.write(str(dataSource.getFailedReserveRequestCount())+",") file.write(str(dataSource.getFailuresToReconnectCount())+",") file.write(str(dataSource.getHighestNumAvailable())+",") file.write(str(dataSource.getHighestNumUnavailable())+",") file.write(str(dataSource.getLeakedConnectionCount())+",") file.write(str(dataSource.getNumAvailable())+",") file.write(str(dataSource.getNumUnavailable())+",") file.write(str(dataSource.getPrepStmtCacheAccessCount())+",") file.write(str(dataSource.getPrepStmtCacheAddCount())+",") file.write(str(dataSource.getPrepStmtCacheCurrentSize())+",") file.write(str(dataSource.getPrepStmtCacheDeleteCount())+",") file.write(str(dataSource.getPrepStmtCacheHitCount())+",") file.write(str(dataSource.getPrepStmtCacheMissCount())+",") file.write(str(dataSource.getProperties())+",") file.write(str(dataSource.getReserveRequestCount())+",") file.write(str(dataSource.getState())+",") file.write(str(dataSource.getWaitingForConnectionCurrentCount())+",") file.write(str(dataSource.getWaitingForConnectionFailureTotal())+",") file.write(str(dataSource.getWaitingForConnectionHighCount())+",") file.write(str(dataSource.getWaitingForConnectionSuccessTotal())+",") file.write(str(dataSource.getWaitingForConnectionTotal())+",") file.write(str(dataSource.getWaitSecondsHighCount())) file.write("
    ")

    スクリプトの実行
    wlstスクリプトを実行するには、weblogic環境が必要です.サーバで実行することをお勧めします.
  • まず$DOMAIN_HOME/bin/ディレクトリに入り、setDomainEnv.shスクリプトを実行し、weblogic環境
  • を設定する.
    cd /u01/Middleware/user_projects/domains/portal_domain/bin
    . ./setDomainEnv.sh

    2行目のスクリプトは.で始まり、この点がなければ設定は有効ではありません.
  • スクリプトをサーバにアップロードし、wlstツールでスクリプト
  • を実行します.
    cd /home/oracle/scripts
    java weblogic.WLST datasource.py localhost:7001 weblogic password

    スクリプトはconsoleアドレス、管理者アカウント、管理者パスワードを指定する必要があります.スクリプトの実行に成功すると、現在のディレクトリにdatasource.csvファイルが生成され、excelで直接開くこともできます.また、curlコマンドでリモートサーバにアップロードすることもできます.
    統計複数サーバ{{とうけい:ふくすうさーば}}
    複数のサーバを統計する場合は、呼び出しスクリプトをもう1つ書き、datasource.pyを複数回呼び出すことができます.
    cd /u01/Middleware/user_projects/domains/portal_domain/bin
    . ./setDomainEnv.sh
    cd /home/oracle/scripts
    java weblogic.WLST datasource.py localhost:7001 weblogic password
    java weblogic.WLST datasource.py localhost:7002 weblogic password
    java weblogic.WLST datasource.py localhost:7003 weblogic password
    java weblogic.WLST datasource.py localhost:7004 weblogic password
    java weblogic.WLST datasource.py localhost:7005 weblogic password
    # ...

    最後に書く
    jythonは少数派の言語で、ネット上の資料は少ないが、使い方はpythonとほとんど一致しており、jythonの資料が見つからない場合はpythonを調べてみることができる.