2011-11-22 1 views
0

$AdminApp view <applicationName> -MapResRefToEJB을 사용하면 배포 된 EJB 모듈에 대해 정의 된 리소스 참조를 나열 할 수 있습니다. 그러나이 명령의 결과는 일반 텍스트 (추가로 현지화 될 수 있음)입니다. 해당 정보를 추출하려면이 텍스트를 구문 분석해야하는데, 이는 그리 편리하지 않습니다. $ AdminConfig를 사용하여 구조화 된 양식에서 동일한 정보 (즉, 응용 프로그램의 자원 참조)를 얻을 수있는 방법이 있습니까?wsadmin : 기존 리소스 참조를 검사하는 방법?

답변

4

AppManagement MBean은이 데이터를 구조화 된 형식 (Vector of AppDeploymentTasks)으로 제공합니다. wsadmin 스크립팅 (jython)을 사용하여이 데이터를 얻으려면 다음을 수행하십시오.

import javax.management as mgmt 
appName = sys.argv[0] 
appMgmt = mgmt.ObjectName(AdminControl.completeObjectName("WebSphere:*,type=AppManagement")) 
appInfo = AdminControl.invoke_jmx(appMgmt, "getApplicationInfo", [appName, java.util.Hashtable(), None], ["java.lang.String", "java.util.Hashtable", "java.lang.String"]) 
for task in appInfo : 
    if (task.getName() == "MapResRefToEJB") : 
     resRefs = task.getTaskData() 
     # skip the first row since it contains the headers 
     for i in range(1, len(resRefs)) : 
      resRef = resRefs[i] 
      print 
      print "URI:", resRef[4] 
      print "EJB:", resRef[3] 
      print "Name:", resRef[5] 
      print "Type:", resRef[6] 
      print "JNDI:", resRef[8] 
관련 문제