WLSTツールを使用して、weblogicの管理サーバや管理対象サーバの稼働状況を監視するプログラムを作成しています。
以下の実行結果の通り、server.getHealthState()メソッドの結果から、「HEALTH_OK」のみを配列に格納して、if文の条件式として利用したいです。コードで不足している部分を知りたいです。
環境 Oracle Weblogic Server 12.2.1.3.0 Oracle Enterprise Pack for Eclipse 12.2.1.3.1
ソースコード #Conditionally import wlstModule only when script is executed with jython if __name__ == '__main__': from wlstModule import *#@UnusedWildImport print 'starting the script ....' username = 'weblogic' password = 'zxcv!!11' url='t3://localhost:7001' connect(username,password,url) Servers=domainRuntimeService.getServerRuntimes(); if (len(Servers) > 0): for tempServer in Servers: jdbcServiceRT = tempServer.getJDBCServiceRuntime(); dataSources = jdbcServiceRT.getJDBCDataSourceRuntimeMBeans(); if (len(dataSources) > 0): for dataSource in dataSources: print 'アクティブな接続の平均数 ' , dataSource.getActiveConnectionsAverageCount() print '現在アクティブな接続の数 ' , dataSource.getActiveConnectionsCurrentCount() print 'アクティブな接続の最大数 ' , dataSource.getActiveConnectionsHighCount() print 'AdminServer状態 ' , dataSource.getState() print 'データソースタイプ ' , dataSource.getType() Count=dataSource.getActiveConnectionsCurrentCount() if (Count > 20): print '[Alart]現在アクティブな接続の数 が20を超えています' domainRuntime() cd('ServerRuntimes') servers=domainRuntimeService.getServerRuntimes() for server in servers: serverName=server.getName(); print 'マシン名/リッスンアドレス ', server.getListenAddress() print 'リッスンポート ', server.getListenPort() print 'ヘルスチェック ', server.getHealthState() Health01=server.getHealthState() print 'テスト',Health01 Health02=Health01[3][2] print 'テスト',Health02 #if Health02 != 'HEALTH_OK': # print '危険' #else: # print '正常' edit() startEdit() 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
実行結果 WebLogic Scripting Tool(WLST)を初期化しています... WebLogic Server Administration Scripting Shellへようこそ 使用可能なコマンドに関するヘルプを表示するには、help()と入力してください starting the script .... ユーザーID weblogicでt3://localhost:7001に接続しています ... ドメイン"base_domain"に属する管理サーバー"AdminServer"に。が正常に接続されました 警告: サーバーへの接続に安全でないプロトコルが使用されました。 通信セキュリティを確保するには、かわりにSSLポートまたは管理ポートを使用する必要があります。 アクティブな接続の平均数 0 現在アクティブな接続の数 0 アクティブな接続の最大数 0 AdminServer状態 Running データソースタイプ JDBCDataSourceRuntime ロケーションがdomainRuntimeツリーに移動しました。これは、 DomainMBeanをルートMBeanとする読取り専用のツリーです。 詳細は、help('domainRuntime')を使用してください マシン名/リッスンアドレス A0430-02396/10.1.52.109 リッスンポート 7001 ヘルスチェック Component:null,Partition: null,State:HEALTH_OK,MBean:null,Symptoms:[], ReasonCode:[] マシン名/リッスンアドレス A0430-02396/10.1.52.109 リッスンポート 7003 ヘルスチェック Component:null,Partition: null,State:HEALTH_OK,MBean:null,Symptoms:[], ReasonCode:[] テスト Component:null,Partition: null,State:HEALTH_OK,MBean:null,Symptoms:[], ReasonCode:[] Problem invoking WLST - Traceback (innermost last): File "C:\Oracle\Middleware\Oracle_Home\workspace\kanshi_001\wlst\newWlst.py", line 39, in ? AttributeError: __getitem__
あなたの回答
tips
プレビュー