2014-03-03 2 views
2

WLST를 사용하여 WL Domain에서 최대 Perm Gen과 사용법을 얻고 싶습니다. 지금까지 JMX에서 정보를 얻을 수 있다는 것을 알 수있었습니다. mBean. mBean 위치는 "java.lang : Location = Server1, name = PS Perm Gen, type = MemoryPool"WLST를 사용하여 PermGen 사용을 확인하십시오.

아래 코드를 시도했지만 작동하지 않는 것 같습니다.

testObject=ObjectName('java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool') 

또는 아래 코드를 시도해도 작동하지 않았습니다.

testBean=getMBean('javax.management.openmbean.CompositeData:Location=Server1,name=Usage,type=PS Perm Gen') 
for item in testBean: 
    print item.getKey() + ':' + item.getValue() 

도와주세요.

업데이트 : -------------------------------------------- ----- 빠른 답장을 보내 주셔서 감사합니다. 내 검색에서 가능성을 탐색하려고하기 때문에 내 주제와 관련하여 공유 할 WLST 코드가 없습니다.

기본적으로 WL 관리 서버에 아티팩트를 배포하기 전에 WLST 실행에서 사용 가능한 Perm Gen 크기를 확인하려고합니다.

WebLogic은 WL 관리 서버에서 전개되지 않은 유물의 힙이 아닌 메모리 공간을 해제하지 않으며 재활용하지 않고 배포/배포를 계속하면 WL 관리 서버가 결국 Perm Gen 공간의 OOME을 가져옵니다.

우리는 최소한의 서비스 중단을 시도하고 가능한 한 WL 관리 서버를 가동하고 실행합니다. 힙이 아닌 메모리 상태를 얻기 위해 어디에서나 WLST mBean 트리 위치를 검색했지만 실패했습니다.

그러나 JManage를 사용하면 mBean 개체 "java.lang : Location = Server1, name = PS Perm Gen, type = MemoryPool"을 통해 힙이 아닌 메모리 상태를 가져올 수 있습니다.

이 JManage에 아래와 같이 표시됩니다 :

Object Name java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool 

Class Name sun.management.MemoryPoolImpl 
Description Information on the management interface of the MBean 
Configured Name  Add to Application 

그래서 나는 이유가 MBean이있는 경우 WLST에서 MBean의 정보를 추출 할 수 없습니다 있을까요? 그래서 비슷한 경험/상황을 가진 사람에 대한 도움을 얻으려고합니다. 난 당신이 관리 서버에 연결 한 다음이 같은 것을 사용할 수 있습니다 것으로 나타났습니다

+0

그 예를 어디에서 발견 했습니까? http://theheat.dk/blog/?p=1917 또는 http : //www.yenlo와 같이 WLST에서 일반 힙 사용을 얻을 수 있습니다.weblogic-using-wlst/ –

+0

고마워요, mkstemp,하지만 힙 사용량은 알다시피, Perm Gen 메모리는 힙 영역 밖에 있습니다. – user3376413

+0

Coud, 예외 스택을 공유하여 도움을 청하십시오. –

답변

1

그러나

permObjectName=ObjectName('java.lang:type=MemoryPool,name=PS Perm Gen') 
usoPerm=mbs.getAttribute(permObjectName,'Usage') 
usoPerm.get('max') #Returns MaxPermSize in bytes 
usoPerm.get('used') #Returns used Perm Space in bytes 

, 나는 여러 서버에서이 테스트 한 항상 작동하지 않습니다 MBeanServer에 (MBS 때문에)는 "java.lang"mbean 트리를 '볼'수 없습니다.

0

Weblogic은 용도에 따라 다른 mbean 계층 구조를 사용합니다. 그것은 weblogic이 아닌 모든 mbean을 "사용자 정의"로 간주하므로 "사용자 정의"트리에 상주합니다. https://docs.oracle.com/cd/E24329_01/web.1211/e24415/understandwls.htm#JMXCU239

은 기계의 permgen 사용을 얻으려면, 당신은 연결되어 :

cd('custom:/java.lang/java.lang:type=MemoryPool,name=PS Perm Gen') 
permgen=get("Usage").get("used") 

당신은 도메인 관리자에 연결하고 다른 서버에 대한 정보를 얻고 싶은 경우 :

cd('domainCustom:/java.lang/java.lang:Location='+servername+',name=PS Perm Gen,type=MemoryPool') 
permgen=get("Usage").get("used")