46
본 문서는 임의로 배포 및 복사될 수 없음 WebLogic WebLogic WebLogic WebLogic 운영자지침서 운영자지침서 운영자지침서 운영자지침서 2003.12 2003.12 2003.12 2003.12

WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

본 문서는 임의로 배포 및 복사될 수 없음

WebLogicWebLogicWebLogicWebLogic 운영자지침서운영자지침서운영자지침서운영자지침서

2003.122003.122003.122003.12

Page 2: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

12003.12

1. 1. 1. 1. 개요개요개요개요

1.1 WAS1.1 WAS1.1 WAS1.1 WAS란란란란

WAS는 웹이 탄생한 이래, 주로 데이터베이스 조회나 일반적인 비즈니스 로직에 대한 처리를

위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨어를 지칭한다. 자바스크립트나

JSP 등과 같은 스크립트 및 서비스들은 대개 최신의 데이터를 검색하기 위해 데이터베이스에

접근하고, 브라우저 또는 클라이언트 프로그램을 통해 사용자들에게 검색 결과를 제공한다.

WAS를 비롯한 애플리케이션 서버들은, 웹서버 즉 HTTP서버와 같은 컴퓨터를 공유할 수도

있지만, 별개의 컴퓨터를 독립적으로 사용하는 경우도 많다. 대규모 사이트에서는, 오히려

WAS와 웹서버 등을 위해 여러 대의 컴퓨터가 동원되기도 한다. 넷스케이프의 Netscape

Application Server, BEA의 Weblogic Enterprise, 볼랜드의 AppServer, 그리고 IBM의

Websphere Application Server 등이 WAS의 대표적인 제품들이다.

WAS 개념도

패키지패키지패키지패키지 애플리케이션애플리케이션애플리케이션애플리케이션커스텀커스텀커스텀커스텀

애플리케이션애플리케이션애플리케이션애플리케이션

WAS

Deployments

Operating Systems/Hardware

OS/39OS/39OS/39OS/39

0000

LinuxLinuxLinuxLinuxUUUUUUUUnixnixnixnixnixnixnixnix

Legacy

Core

Applications

DB

Third-Party

S/W

Middleware

Single Infrastructure for all of an Enterprise’s Web applications serving every network

client type

Page 3: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

22003.12

1. 1. 1. 1. 개요개요개요개요

1.2 1.2 1.2 1.2 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 소개소개소개소개

BEA사의 WebLogic Server는 전 세계적으로 WAS시장 1위의 제품이며, OLTP 업무 및 기타 웹

기반의 어플리케이션 서비스를 위한 관리 및 배치, 리소스 관리 등의 기능을 수행하며 동종

제품에 비해 뛰어난 기능, 성능, 안정성, 확장성 등이 인증된 제품이다.

특 장 점

BEA WebLogic 서버는 클라이언트 커넥션 공유기능, 리소스 풀링, 동적인웹 페이지와 EJB 컴포넌트 간의 복잡한 동적 클러스터링 기능을 제공하는 높은 확장성을 지닌 아키텍쳐이다

무한의무한의무한의무한의 확장성확장성확장성확장성

기존 시스템에 접근하는 다양한 통로를 제공하여 네트워크 상의 어디에서나 조직 내 데이터베이스에 접근하여 트랜잭션을 완벽하고 안전하게처리할 수 있도록 하며, 실시간 자바 바인딩에서 애플리케이션 간 메시징 또는 코바 객체로의 접근이 가능하며 이 외에도 JNDI를 통하여 노벨의 NDS, 썬의 NIS+, 마이크로소프트의 액티브 디렉토리 그리고 기타 디렉토리 서비스에 접근할 수 있으며. 특히 WebLogic의 JNDI는 자바의 통제 하에 작동되는 멀티 티어로 구현되어 있으며 기존의 네이밍 서비스에저장된 정보에 접근하고 이를 갱신할 수도 있다

기존기존기존기존 시스템과의시스템과의시스템과의시스템과의 유연유연유연유연

한한한한 통합통합통합통합

WebLogic은 네트워크나 환경의 변화에 유연하게 대처하는 동적인 애플리케이션 분할 기능을 제공하여 업무나 네트워크의 변화에 실시간으로 대응하여 애플리케이션을 이동 또는 재배치 할 수 있다.

강력한강력한강력한강력한 애플리케이션애플리케이션애플리케이션애플리케이션디플로이먼트디플로이먼트디플로이먼트디플로이먼트

애플리케이션의 실행 상태를 중앙 집중식으로 모니터링하고 시스템을 업데이트 할 수 있는 그래픽 타입의 강력한 관리콘솔을 통하면 Class Path와 Java Heap 사용 상태 같은 세부적인 것들 부터 JDBC 드라이버 정보,서블릿, 쓰레드, 유저, 소프트웨어 버전, 라이센스 등 WebLogic 애플리케이션 서버에 관한 각종 정보들을 텍스트 형태나 그래픽 형태로 제공받을 수 있다.

낮은낮은낮은낮은 비용으로비용으로비용으로비용으로 유연한유연한유연한유연한관리가관리가관리가관리가 가능가능가능가능

페일오버, 시스템 관리, 보안기능 등의 포괄적인 부분의 신뢰성은 전세계적으로 미션 크리티컬 애플리케이션 환경을 요구하는 수천의 사이트에서 검증

신뢰성신뢰성신뢰성신뢰성

BEA WebLogic 서버는 각 부문에서 선두를 차지하고 있는 대부분의 데이터베이스, 운영 시스템, 웹 서버와 통합 할 수 있는 유연성을 제공한다.

유연성유연성유연성유연성

BEA WebLogic 서버의 엔터프라이즈 자바빈(EJB), 자바 서버 페이지(JSP), 서블릿 컴포넌트 아키텍쳐로 인해 신속하게 시장에 대응할 수 있도록 개발 속도를 높여 주며, 이러한 개방형 표준들은 개발툴과 밀접하게 결합되어 개발을 더욱 간결하게 해주고, 빠르게 애플리케이션을 분배 할 수있도록 도와 준다.

신속한신속한신속한신속한 개발개발개발개발

설설설설 명명명명장점장점장점장점

WebLogic 서버는 웹 브라우저, 무선 디바이스를 비롯한 다양한 클라이언트를 지원하는 e-business 애플리케이션을 호스트 해 준다.

다양한다양한다양한다양한 클라이언트클라이언트클라이언트클라이언트 지지지지원원원원

복잡한 웹 애플리케이션을 쉽게 구현할 수 있도록 하는 중요한 산업 표준인 EJB, JSP, JMS, JDBC, XML, WML 등을 지원하고, 표준 솔루션을 제공함으로써 개발 생산성을 높이고 투자를 보호해 준다.

표준을표준을표준을표준을 따른따른따른따른 최초의최초의최초의최초의 웹웹웹웹애플리케이션애플리케이션애플리케이션애플리케이션 서버서버서버서버

Page 4: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

32003.12

1. 1. 1. 1. 개요개요개요개요

1.3 1.3 1.3 1.3 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 아키텍처아키텍처아키텍처아키텍처

WebLogic 애플리케이션는 ‘분산 자바 애플리케이션들을 취합, 분산 배치하고 관리할 수 있는,

표준 기반의 확장성 있는 개방형 플랫폼’이고, 자바 비즈니스 컴포넌트들 뿐만 아니라

이기종의 데이터베이스 그리고 다른 네트웍 자원들을 상호 연결해주는 역할을 하며, 객체들

간의 트랜잭션 무결성, 보안성 그리고 확장성을 제공합니다.

아키텍처

DB서버서버서버서버

애플리케이션 서버와 동일 머신에 존재 가능, Connection Pool 및

JTS풀 형성

JDBC

• 데이터베이스에

접근하기 위한 Java

표준

• Type 1,2,3,4 네가지

방식이 있슴

세션빈세션빈세션빈세션빈• 비즈니스 워크플로우를 구현

• DB의 조회 및 검색에 사용

• 워크플로우를 컴포넌트화 함으로써 재사용성, 타시스템과의

연계성 제고

JSP/Servlet• HTML 컨텐츠 제작, 소규모 계산 로직, Data Validation Check...

• EJB 컴포넌트 호출, 세션관리, Http threading, Http load

balancing & fail over

HTML/APPLET

• 웹브라우져 환경

• 단순 정보 조회성 업무에 적용

• HTML, applet 중 어느 방식으로

처리할 것인 가는 업무 또는

트랜잭션의

성격에 따라 판단

엔티티빈엔티티빈엔티티빈엔티티빈

• Database의 읽기, 쓰기 등의

관련된 처리를 수행함

• 엔터티빈을 사용하는 경우에는

세션빈에 데이터베이스 관련

코딩은 전혀 필요 없기 때문에

업무 확장성 및 유지보수가 간단

Java 애플리케이션애플리케이션애플리케이션애플리케이션• 자바 애플리케이션

• UI가 다양할 필요가

있는 Application.

• OA와의 연계가 필요한

Application.

• 인터넷 속도가 느린

환경

JDBC

DB 서버서버서버서버

엔티티엔티티엔티티엔티티

빈빈빈빈

세션세션세션세션 빈빈빈빈

서블릿서블릿서블릿서블릿 JSP

네트웍네트웍네트웍네트웍

D

B

서서서서버버버버

애애애애플플플플리리리리케케케케이이이이션션션션서서서서버버버버

클클클클라라라라이이이이언언언언트트트트

웹웹웹웹서서서서버버버버

Page 5: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

42003.12

• 컴포넌트 기반의 개발은 보안과 트랜잭션 업무 로직을 쉽게 캡슐화 할 수있게 해 주며, BEA WebLogic 서버는 EJB, 서블릿, JSP, JMS, JDBC 등의완벽한 구현을 제공.

컴포넌트 기반자바 개발

• 클러스터링은 가장 높은 수준의 확장성과 고성능을 제공하며, 웹 페이지클러스터링은 프리젠테이션 로직의 투명한 중복과 로드밸런싱, 페일오버를 처리하고, 컴포넌트 클러스터링은 EJB의 복잡한 중복과, 로드밸런싱,페일오버를 핸들링.

클러스터링

• BEA 웹로직 엔터프라이즈는 웹서버, 자바 애플리케이션 서버, 백엔드트랜잭션 서버에 이르는 모든 기능을 제공

웹과 트랜잭션부분에서의 최고의

서버

• BEA 웹로직 엔터프라이즈는 J2EE와 CORBA를 지원하는 컴포넌트 기반의프로그래밍을 지원하고 또한 Tuxedo ATMI와 같은 절차적 프로그래밍모델도 지원

프로그래밍 언어와모델의 선택

• 존재하는 BEA Tuxedo 어플리케이션을 위해 BEA Tuxedo 서비스를 EJB, CORBA 오브젝트와 함께 사용할 수 있음

BEA Tuxedo 애플리케이션 호스팅

(ATMI)

• 인터넷과 무선 클라이언트를 기업의 자원에 연결하게 하기 위해 BEA 웹로직 엔터프라이즈는 고성능의 웹서버와 다른 엔터프라이즈어플리케이션이나 백엔드 트랜잭션 서비스로의 확장을 제공

웹에서 메인프레임에 이르는

확장성

• BEA eLink는 메인 프레임, 레거시 시스템, 데이터베이스, 팩키지와의확장성 있는 연결설을 제공

• BEA eLink Adapters for Mainframe은 BEA 웹로직 엔터프라이즈와 IBM OS/390 CICS나 IMS TM 어플리케이션과의 양방향 연결성을 제공

BEA eLink를 통한엔터프라이즈

어플리케이션과비지니스 프로세스

통합

• BEA 웹로직 엔터프라이즈는 장애시간을 최소화하고 어플리케이션이 계속운영되도록 함

• 이것은 클러스터링과 서버그룹의 중복으로 이루어 짐강력한 장애관리

• BEA 웹로직 엔터프라이즈는 브라우저에서 백엔드 트랜잭션과 데이터관리 시스템에 이르는 많은 보안 서비스를 제공

• Java와 CORBA나 절차적 어플리케이션을 위한 Single Sign-on 을 지원하고LLE (Link Level Encryption), SSL(Secure Socket Layer)를 지원

• BEA 웹로직 엔터프라이즈는 또한 Unix NIS, NT, LDAP 보안 환경과의통합을 지원

• GUI 보안관리 툴 제공

강력한 보안

• BEA 웹로직 엔터프라이즈는 분산 시스템에서의 많은 주요 관리 기능을자동화 해 주고 오퍼레이터의 작업을 줄어 줌

• BEA 웹로직은 표준 SNMP MIB나 프로그래밍할 수 있는 BEA의 API를 사용할수 있음

중앙 집중적 관리

기 능 설 명구분

주요기능

1. 1. 1. 1. 개요개요개요개요

1.4 1.4 1.4 1.4 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 기능기능기능기능

Page 6: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

52003.12

기 능 설 명구분

• BEA WebLogic 서버는 일반적인 HTTP 요청을 통한 웹 브라우저에서 직접액세스 할 수 있으며, 더 나은 성능을 위해 HTTP 커넥션이 관리된다. 모든 BEA WebLogic 서버 서비스는 TCP/소켓을 통한 직접 억세스가 가능

표준 인터넷

프로토콜

• BEA WebLogic 서버는 Wireless Markup Language(WML)과 무선 클라이언트지원을 위한 WAP 서버와의 통합을 지원

WML과 WAP 통합

• 트랜잭션을 보호하기 위해 , BEA 웹로직 엔터프라이즈는 고성능 이기종

트랜잭션 관리를 지원

완전한

트랜잭션 관리

시스템

• JSP는 동적인 웹 컨텐츠의 쉬운 개발과 분배를 제공하며. JSP는 개별화와데이터베이스 액세스, 신뢰성 있고 고성능 웹 애플리케이션 개발을 위한트랜잭션 EJB와 함께 사용될 수 있다.

자바 서버페이지 (JSP)

• RMI는 분산 오브젝트를 지원하며, RMI로 인해 애플리케이션은 분산된 오브젝트를 로컬 오브젝트처럼 사용할 수 있고, 다수의 서버들 간의 RMI 클러스터링 또한 가능하다.

� 웹로직과 CORBA간 트란잭션과 보안 컨텍스트 Propagation 양방향지원

� EJB/OTS/IIOP 스팩과 Full 호환

리모트 메쏘드

호출 (RMI)

• JMS는 메시지가 반드시 배달될 수 있도록 하기 위해 “store & forward”와“point to point” 메시징을 제공하며, JMS는 또한 변경되는 상황의 실시간정보를 요구하는 애플리케이션을 위해 “publish/subscribe” 이벤트 관리

모델을 제공

� Clustered JMS로 고가용성의 메시지 기능을 제공

� JCA를 통한 MQSeries와의 통합(No coding)을 지원

자바 메시징

서비스 (JMS)

• JDBC는 자바 애플리케이션이 네트워크 어디에서든지 데이터베이스를 액세스하고 업데이트 할 수 있도록 하며, BEA WebLogic 서버는 자체의 고성능JDBC 드라이버를 포함하고있고 또한 다른 3rd-Party JDBC 드라이버와도 운영될 수 있다.

Multi-tier JDBC

• BEA WebLogic E-Business Platform™의 기반이 되는 BEA WebLogic Server

는 고도의 확장성 및 안정성 있는 웹 서비스에 억세스 가능

•SOAP, WSDL, XML, UDDI, JAX-RPC 지원

•Microsoft .Net과 Web Service 연동

•XML pull parser : 성능개선, 용이한 API

•SOAP처리 전후 메시징 처리

•XML과 자바간 Serializes/Deserializes

•UDDI v2호환 레지스트리를 내장하여 인트라넷 환경에서 사용

웹서비스 지원

� IBM VisualAge for Java, Inprise JBuilder, Microsoft Visual J++이나다른 자바 통합 툴과의 통합을 제공

� 통합개발환경을 위한 WebLogic WorkShop제공

� 자바파일을 쉽고 빠르게 배치할 수 있는 WebLogic Builder 제공

� EJB2.0 생성 유틸리티인 EJBGen제공

통합 개발환경(IDE) 지원

주요기능 (계속)

1. 1. 1. 1. 개요개요개요개요

1.4 1.4 1.4 1.4 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 기능기능기능기능

Page 7: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

62003.12

�기존의 애플리케이션 서버를 자바와 웹으로 확장 가능하게 합니다. BEAWebLogic 서버는 BEA Tuxedo와 CORBA 기술(BEA WebLogic 엔터프라이즈)과의 고성능 통합을 제공합니다.

CORBA & OLTP 지원

�BEA WebLogic 서버는 애플리케이션과 클러스터의 상태를 업데이트하고 원격으로 모니터링 할 수 있는 강력한 순수 자바 콘솔을 제공합니다. 다수의 클라이언트와 서버는 단일한 리모트 콘솔에서 쉽게 관리 할 수 있습니다.

그래픽 관리 콘솔

�BEA WebLogic 서버는 온라인 애플리케이션 컴포넌트를 머신들에 동적으로재배치하는 것을 허용합니다. EJB, JSP, 서블릿은 동적으로 로드 되거나리로드 되고, 동적으로 액티브 클러스터에 추가 되거나 제거될 수 있습니다.

동적 애플리케이션분할과

클러스터 멤버쉽

�BEA WebLogic 서버는 RSA Secured Sockets Layer(SSL), X.509, Access Control Lists(ACL)를 통해 네트웍 애플리케이션을 보호합니다. 모든 BEAWebLogic 서버 서비스들은 HTTP 터널링 또는 HTTPS을 사용할 수 있습니다.

통합된 보안기능과

방화벽 지원

�BEA WebLogic 서버는 진단과 보안 감시 정보를 자동적으로 로그하고 예외상황을 스스로 로깅하는 애플리케이션 인터페이스를 제공합니다. HTTP 트래픽이 표준 공통 로그나 확장된 로그 포맷에 선택적으로 로깅 될 수 있습니다. 로그는 리모트 웹 브라우저, 관리 콘솔, 3rd-Party 로깅 분석 툴에서 볼 수 있습니다.

로깅

�클러스터 환경에서, 데이터베이스를 검색하지 않고 빠르게 액세스하기 위해 읽기 전용 엔티티 빈을 메모리에 캐시 할 수 있습니다.

미들티어 데이터 캐싱

�SNMP 지원은 다른 3rd-Party SNMP 준수 관리 프레임워크를 사용하는 시스템 관리 툴을 사용할 수 있게 합니다.

SNMP 지원

기 능 설 명구분

주요기능 (계속)

1. 1. 1. 1. 개요개요개요개요

1.4 1.4 1.4 1.4 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 기능기능기능기능

Page 8: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

72003.12

유지보수 지원내역

2. 2. 2. 2. 유지보수유지보수유지보수유지보수 및및및및 장애지원장애지원장애지원장애지원

2.1 2.1 2.1 2.1 유지보수유지보수유지보수유지보수

� Call, FAX 혹은 E-mail을 통한 문제해결 및 기술상담

� 구입제품에구입제품에구입제품에구입제품에 대한대한대한대한 Upgrade/Update Upgrade/Update Upgrade/Update Upgrade/Update 지원지원지원지원

� 각종 정보 제공

� 개발 및 운영환경 가이드 지원

� 시스템 Open전 지원(튜닝)

� ITPLUS WebSupport Access 제공(7x24)

� Remote Remote Remote Remote 진단진단진단진단 서비스서비스서비스서비스 제공제공제공제공

� 7 x 24 Call 7 x 24 Call 7 x 24 Call 7 x 24 Call 서비스서비스서비스서비스 ((((월월월월~~~~일일일일, 00~24, 00~24, 00~24, 00~24시시시시))))

� 모든 교육과정 30% 할인 혜택 제공

� 문제 발생시 최우선 지원 – 방문지원

� 성능 및 어플리케이션 튜닝 가이드 지원

� 전담전담전담전담 SE SE SE SE 배정배정배정배정

� 월월월월 1111회회회회 정기방문정기방문정기방문정기방문 및및및및 예방점검예방점검예방점검예방점검

� 근무시간외 서비스를 위한 요청에 대기

� Call, FAX 혹은 E-mail을 통한 문제해결 및 기술상담

� 구입제품에구입제품에구입제품에구입제품에 대한대한대한대한 Upgrade/Update Upgrade/Update Upgrade/Update Upgrade/Update 지원지원지원지원

� 각종 정보 제공

� 개발 및 운영환경 가이드 지원

� 시스템 Open전 지원(튜닝)

� ITPLUS WebSupport Access 제공(7x24)

� Remote Remote Remote Remote 진단진단진단진단 서비스서비스서비스서비스 제공제공제공제공

� 7 x 24 Call 7 x 24 Call 7 x 24 Call 7 x 24 Call 서비스서비스서비스서비스 ((((월월월월~~~~일일일일, 00~24, 00~24, 00~24, 00~24시시시시))))

� 모든 교육과정 30% 할인 혜택 제공

� 문제 발생시 최우선 지원 – 방문지원

� 성능 및 어플리케이션 튜닝 가이드 지원

� 전담전담전담전담 SE SE SE SE 배정배정배정배정

� 월월월월 1111회회회회 정기방문정기방문정기방문정기방문 및및및및 예방점검예방점검예방점검예방점검

� 근무시간외 서비스를 위한 요청에 대기

유지보수 지원조직

제조제조제조제조사업팀사업팀사업팀사업팀

제조제조제조제조사업팀사업팀사업팀사업팀

금융금융금융금융사업팀사업팀사업팀사업팀

금융금융금융금융사업팀사업팀사업팀사업팀

아키아키아키아키텍처팀텍처팀텍처팀텍처팀

아키아키아키아키텍처팀텍처팀텍처팀텍처팀

대표이사대표이사대표이사대표이사대표이사대표이사대표이사대표이사

경영지원부경영지원부경영지원부경영지원부경영지원부경영지원부경영지원부경영지원부

마케팅팀마케팅팀마케팅팀마케팅팀마케팅팀마케팅팀마케팅팀마케팅팀

통신통신통신통신사업팀사업팀사업팀사업팀

통신통신통신통신사업팀사업팀사업팀사업팀

EAMEAMEAMEAM사업팀사업팀사업팀사업팀

EAMEAMEAMEAM사업팀사업팀사업팀사업팀

전략기획팀전략기획팀전략기획팀전략기획팀전략기획팀전략기획팀전략기획팀전략기획팀

정보정보정보정보기술기술기술기술

연구소연구소연구소연구소

정보정보정보정보기술기술기술기술

연구소연구소연구소연구소

기술기술기술기술지원팀지원팀지원팀지원팀

기술기술기술기술지원팀지원팀지원팀지원팀

eBiz Architecture팀제조/통신/인터넷팀

금융/공공팀

공공공공공공공공사업팀사업팀사업팀사업팀

공공공공공공공공사업팀사업팀사업팀사업팀

모바일모바일모바일모바일사업팀사업팀사업팀사업팀

모바일모바일모바일모바일사업팀사업팀사업팀사업팀

물류물류물류물류영업팀영업팀영업팀영업팀

물류물류물류물류영업팀영업팀영업팀영업팀

EAIEAIEAIEAI사업팀사업팀사업팀사업팀

EAIEAIEAIEAI사업팀사업팀사업팀사업팀

DPSDPSDPSDPS사업팀사업팀사업팀사업팀

DPSDPSDPSDPS사업팀사업팀사업팀사업팀

솔루션솔루션솔루션솔루션사업팀사업팀사업팀사업팀

솔루션솔루션솔루션솔루션사업팀사업팀사업팀사업팀

Page 9: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

82003.12

장애등급 및 지원

2. 2. 2. 2. 유지보수유지보수유지보수유지보수 및및및및 장애지원장애지원장애지원장애지원

2.2 2.2 2.2 2.2 장애지원장애지원장애지원장애지원

장애처리 절차

1111급급급급 장애장애장애장애

2222급급급급 장애장애장애장애

3333급급급급 장애장애장애장애

장장장장 애애애애 내내내내 용용용용 응답시간응답시간응답시간응답시간

� 운영시스템 다운� 미션 크리티컬 어플리케이션 다운� 최종테스트의 어플리케이션으로 운영을

위한 시간이 매우 촉박할 때� 전체적인 개발 노력에 장애 발생

� 제한적인 기능만을 수행하는 운영시스템� 시스템 불안정으로 수시로 가동 중단� 성능에 영향을 미칠 수 있는 사안으로 시

간이 촉박할 경우

� 운영시스템에 에러발생(운영에는 지장이없음)

� 제품 성능 향상 요청� 성능에 영향을 미칠 수 있는 시스템 개발

상의 에러

� 1시간내최초 응대

� 응대후 2시간내지원진행

� 4시간내최초 응대

� 응대후 8시간내지원진행

� 8시간내최초 응대 후일정협의

ITPLUSITPLUS

장애발생장애발생장애발생장애발생장애발생장애발생장애발생장애발생 전담전담전담전담 SE배정배정배정배정

전담전담전담전담 SE배정배정배정배정

BEA

Korea

USA

BEA

Korea

USA

고객지원팀고객지원팀고객지원팀고객지원팀고객지원팀고객지원팀고객지원팀고객지원팀

장애해결장애해결장애해결장애해결

웹웹웹웹웹웹웹웹접수

확인 답변

장애해결장애해결장애해결장애해결

전화전화전화전화전화전화전화전화접수

장애처리여부장애처리여부장애처리여부장애처리여부 확인확인확인확인 장애처리진행장애처리진행장애처리진행장애처리진행 확인확인확인확인

메일메일메일메일메일메일메일메일

KM DB

(SPSS)Self Problem Solving System

Page 10: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

92003.12

� StartStartStartStart

• Start_scriptStart_scriptStart_scriptStart_script를 실행한다.(실행 시마다 paweblogicord를 직접 쓸 수도 있고 script 안에

WLS_PW=paweblogicord로 추가할 수도 있다.)

• Port는 Default로 7001이며, console이나 직접 config.xml에서 바꾸어 줄 수 있다.

• ps –ef | grep java 또는 ps –ef | grep weblgoic으로 구동중인 프로세스를 확인한다.

• 반드시 웹로직 유저로 서버를 start해야 한다.

� StopStopStopStop

• Stop_scriptStop_scriptStop_scriptStop_script를 실행하거나 Administration Console에서 Server메뉴-> Control 탭 ->

Start/Stop 탭 -> Graceful shutdown of this server 혹은 Force shutdown of this

server 선택

• 강제로 process를 종료할 경우 해당 프로세스를 찾아서(ps –ef | grep java 에서

process PID 확인 후) kill –9 PID를 실행한다

� StartStartStartStart

• Start_scriptStart_scriptStart_scriptStart_script를 실행한다.(실행 시마다 paweblogicord를 직접 쓸 수도 있고 script 안에

WLS_PW=paweblogicord로 추가할 수도 있다.)

• Port는 Default로 7001이며, console이나 직접 config.xml에서 바꾸어 줄 수 있다.

• ps –ef | grep java 또는 ps –ef | grep weblgoic으로 구동중인 프로세스를 확인한다.

• 반드시 웹로직 유저로 서버를 start해야 한다.

� StopStopStopStop

• Stop_scriptStop_scriptStop_scriptStop_script를 실행하거나 Administration Console에서 Server메뉴-> Control 탭 ->

Start/Stop 탭 -> Graceful shutdown of this server 혹은 Force shutdown of this

server 선택

• 강제로 process를 종료할 경우 해당 프로세스를 찾아서(ps –ef | grep java 에서

process PID 확인 후) kill –9 PID를 실행한다

Administration Server

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.1 Start & Stop3.1 Start & Stop3.1 Start & Stop3.1 Start & Stop

Managed Server

� StartStartStartStart

• 반드시반드시반드시반드시 Administration ServerAdministration ServerAdministration ServerAdministration Server가가가가 정상정상정상정상 가동가동가동가동 된된된된 후후후후 가동해야가동해야가동해야가동해야 한다한다한다한다....

• Start_scriptStart_scriptStart_scriptStart_script을 서버별로 실행한다. (실행 시에 이름을 바꾸어 여러 Managed Server를 만

들 수 있다. 실행 시마다 파라미터로 Manged Server이름과 ADMIN_URL를 줄 수도 있고,

script 안에 set SERVER_NAME=managed server 이름 , ADMIN_URL=Administartion server,

WLS_PW=paweblogicord 형태로 추가 할 수도 있다.)

� ManagedServerManagedServerManagedServerManagedServer 정지정지정지정지

• Stop_scriptStop_scriptStop_scriptStop_script를 서버별로 실행한다

• Administration Console에서 Server메뉴 -> Control 탭 -> Graceful shutdown of this

server 혹은 Force shutdown of this server 선택.

� StartStartStartStart

• 반드시반드시반드시반드시 Administration ServerAdministration ServerAdministration ServerAdministration Server가가가가 정상정상정상정상 가동가동가동가동 된된된된 후후후후 가동해야가동해야가동해야가동해야 한다한다한다한다....

• Start_scriptStart_scriptStart_scriptStart_script을 서버별로 실행한다. (실행 시에 이름을 바꾸어 여러 Managed Server를 만

들 수 있다. 실행 시마다 파라미터로 Manged Server이름과 ADMIN_URL를 줄 수도 있고,

script 안에 set SERVER_NAME=managed server 이름 , ADMIN_URL=Administartion server,

WLS_PW=paweblogicord 형태로 추가 할 수도 있다.)

� ManagedServerManagedServerManagedServerManagedServer 정지정지정지정지

• Stop_scriptStop_scriptStop_scriptStop_script를 서버별로 실행한다

• Administration Console에서 Server메뉴 -> Control 탭 -> Graceful shutdown of this

server 혹은 Force shutdown of this server 선택.

Script

WLS VersionWLS VersionWLS VersionWLS VersionAdmin/ManagAdmin/ManagAdmin/ManagAdmin/Manag

ededededLogLogLogLogStop ScriptStop ScriptStop ScriptStop Script

Start Start Start Start ScriptScriptScriptScript

인스턴스인스턴스인스턴스인스턴스명명명명

서버서버서버서버

Page 11: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

102003.12

Web Application은 servlets, JSP, JSP tag libraries 그리고 HTML, image 파일들을 말하는

것으로써 EJB나 JDBC, JMS, XML등과 같은 다른 resources을 사용할 수 있다. Web

Application은 J2EE 스펙에 정의된 것처럼 exploded directory format 과 .war 파일과 같이

정형화된 디렉토리 구조를 사용하게 된다.

1) servlets, JSPs, static files, deployment descriptor 등과 같은 파일들을 정해진 포맷에 맞는디렉토리에 위치시킨다.

2) Web Application Deployment Descriptor(web.xml)을 작성한다. 이 파일에 Servlets을 등록하거나initialization parameters을 정의하거나 jsp tag libraries 태그를 등록하거나 보안 제약 사항을 정의하거나 한다.

3) WebLogic-Specfic Deployment Descriptor(weblogic.xml)를 생성한다. JSP properties, JNDI mappings, security role mappings, HTTP session parameters등을 정의한다. 즉 Weblogic에dependent한 내용을 정의하는 파일이다.

4) (Optional) 선택사항으로써 위의 디렉토리 구조로 .war 파일을 생성한다. 정형화된 디렉토리 자체로 Deploy시킬 수가 있으며, 압축파일인 .war로 만들어 Deploy시킬 수 있다.

5) Web Application의 deployment attribute(cluster, Virtual Host..)를 세팅한다.

1) servlets, JSPs, static files, deployment descriptor 등과 같은 파일들을 정해진 포맷에 맞는디렉토리에 위치시킨다.

2) Web Application Deployment Descriptor(web.xml)을 작성한다. 이 파일에 Servlets을 등록하거나initialization parameters을 정의하거나 jsp tag libraries 태그를 등록하거나 보안 제약 사항을 정의하거나 한다.

3) WebLogic-Specfic Deployment Descriptor(weblogic.xml)를 생성한다. JSP properties, JNDI mappings, security role mappings, HTTP session parameters등을 정의한다. 즉 Weblogic에dependent한 내용을 정의하는 파일이다.

4) (Optional) 선택사항으로써 위의 디렉토리 구조로 .war 파일을 생성한다. 정형화된 디렉토리 자체로 Deploy시킬 수가 있으며, 압축파일인 .war로 만들어 Deploy시킬 수 있다.

5) Web Application의 deployment attribute(cluster, Virtual Host..)를 세팅한다.

디랙토리 구조

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.1 Deploy 3.2.1 Deploy 3.2.1 Deploy 3.2.1 Deploy 개요개요개요개요

DescriptionDirectory / File

WLS-specific Deployment descriptorWeblogic.xml

Web Application Deployment descriptorWeb.xml

Servlet, Applet 등 Server-side class 위치ClassesWEB-INF

Archive Tool 정보META-INF

루트 디렉토리

html, JSP, image 파일들 위치Web Application

Deploy 준비

Page 12: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

112003.12

정형화된 Directory Deploy

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console에서에서에서에서 DeployDeployDeployDeploy하는하는하는하는 방법방법방법방법

� console 왼쪽메뉴에서 Deployments -> Web Application Modules를 선택한 후, 오른쪽 창에서Deploy a new Web Application Module…을 선택한다 .

� console 왼쪽메뉴에서 Deployments -> Web Application Modules를 선택한 후, 오른쪽 창에서Deploy a new Web Application Module…을 선택한다 .

� web application의 위치를 찾아서 체크한 후 우측 하단의 Target Module버튼을 누른다� web application의 위치를 찾아서 체크한 후 우측 하단의 Target Module버튼을 누른다

Page 13: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

122003.12

정형화된 Directory Deploy

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console에서에서에서에서 DeployDeployDeployDeploy하는하는하는하는 방법방법방법방법

� web application의 이름을 입력한 후 우측 하단의 Deploy버튼을 누른다� web application의 이름을 입력한 후 우측 하단의 Deploy버튼을 누른다

� web application이 성공적으로 deploy되면 아래와 같은 화면이 나타나게 된다. � web application이 성공적으로 deploy되면 아래와 같은 화면이 나타나게 된다.

Page 14: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

132003.12

.war 파일 Deploy

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console에서에서에서에서 DeployDeployDeployDeploy하는하는하는하는 방법방법방법방법

� WebLogic 8.1에서는 web Application을 war 파일로 묶어서 등록할 수 있다.• Temp 라는 디렉토리를 만들고 그 밑에 정형화된 디렉토리들을 똑 같이 만든다.

� 위 설명대로 적절히 serverlt이나 jsp를 배치 시킨다.예예예예)))) C:\Temp>jar cvf DefaultWebApp.war(원하는 war 파일명) DefaultWebApp(war 파일로 묶고자하는 대상) 명령으로 war 파일을 만든다.

� Console에 들어가서 Deployments -> Web Applications Modules를 클릭, 오른쪽 화면에서 Deploy a new Web Application Module…을 클릭한다.

� WebLogic 8.1에서는 web Application을 war 파일로 묶어서 등록할 수 있다.• Temp 라는 디렉토리를 만들고 그 밑에 정형화된 디렉토리들을 똑 같이 만든다.

� 위 설명대로 적절히 serverlt이나 jsp를 배치 시킨다.예예예예)))) C:\Temp>jar cvf DefaultWebApp.war(원하는 war 파일명) DefaultWebApp(war 파일로 묶고자하는 대상) 명령으로 war 파일을 만든다.

� Console에 들어가서 Deployments -> Web Applications Modules를 클릭, 오른쪽 화면에서 Deploy a new Web Application Module…을 클릭한다.

� war파일이 있는 위치로 가서 war파일을 체크한 후 오른쪽 하단의 Target Module을 클릭한다.� war파일이 있는 위치로 가서 war파일을 체크한 후 오른쪽 하단의 Target Module을 클릭한다.

Page 15: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

142003.12

.war 파일 Deploy

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console3.2.2 Admin Console에서에서에서에서 DeployDeployDeployDeploy하는하는하는하는 방법방법방법방법

� Web Application의 이름을 입력한 후 오른쪽 하단의 Deploy 버튼을 클릭한다.� Web Application의 이름을 입력한 후 오른쪽 하단의 Deploy 버튼을 클릭한다.

� .war .war .war .war 파일파일파일파일 deploydeploydeploydeploy시시시시 에러에러에러에러 발생발생발생발생…check!check!check!check!� .war .war .war .war 파일파일파일파일 deploydeploydeploydeploy시시시시 에러에러에러에러 발생발생발생발생…check!check!check!check!

Page 16: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

152003.12

Target 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy3.2 Web Application Deploy

3.2.3 Target 3.2.3 Target 3.2.3 Target 3.2.3 Target 설정설정설정설정

� 해당 Web Application에서 target 탭을 선택한 후 실행시킬 서버를 선택(복수로 선택할 수 있다.)하여 apply버튼을 클릭한다.

� Target된 서버만이 해당 web application을 실행시킬 수 있다.

� 해당 Web Application에서 target 탭을 선택한 후 실행시킬 서버를 선택(복수로 선택할 수 있다.)하여 apply버튼을 클릭한다.

� Target된 서버만이 해당 web application을 실행시킬 수 있다.

Target이란 Deploy이 된 Web application을 실행시킬 웹로직 서버를 지정해 주는 것이다.

Page 17: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

162003.12

JSP 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.3 JSP 3.3 JSP 3.3 JSP 3.3 JSP 설정설정설정설정

� JSP 파일은 해당 WebApplication 디렉토리( ex)C:\DefaultWebApp\ )에 위치시키며 JSP operating Parameters는 WebApplication 디렉토리 밑의 web-inf/weblogic.xml 에 적어준다.

� JSP 파일은 해당 WebApplication 디렉토리( ex)C:\DefaultWebApp\ )에 위치시키며 JSP operating Parameters는 WebApplication 디렉토리 밑의 web-inf/weblogic.xml 에 적어준다.

� 위와 같이 weblogic.xml에 jsp에 대하여 describe되어 있고 해당 web application이 실행중인server에 target되어 있다면 jsp 파일은 web application 디렉토리( ex) C:\DefaultWebApp\ )에 위치시키면 브라우저에서 바로 불러올 수 있다.

� 위와 같이 weblogic.xml에 jsp에 대하여 describe되어 있고 해당 web application이 실행중인server에 target되어 있다면 jsp 파일은 web application 디렉토리( ex) C:\DefaultWebApp\ )에 위치시키면 브라우저에서 바로 불러올 수 있다.

<<<<jspjspjspjsp----descriptor>descriptor>descriptor>descriptor><jsp-param>

<param-name>compileCommand</param-name><param-value>javac</param-value>

</jsp-param><jsp-param>

<param-name>verbose</param-name><param-value>true</param-value>

</jsp-param><jsp-param>

<param-name>keepgenerated</param-name><param-value>false</param-value>

</jsp-param><jsp-param>

<param-name>pageCheckSeconds</param-name><param-value>1</param-value>

</jsp-param><jsp-param>

<param-name>packagePrefix</param-name><param-value>jsp_servlet</param-value>

</jsp-param><jsp-param>

<param-name>noTryBlocks</param-name><param-value>false</param-value>

</jsp-param><jsp-param>

<param-name>precompile</param-name><param-value>false</param-value>……

</jsp</jsp</jsp</jsp----descriptor>descriptor>descriptor>descriptor>

JSP 실행 방법

Page 18: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

172003.12

Servlet 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.4 3.4 3.4 3.4 ServletServletServletServlet 설정설정설정설정

� Web Application 디렉토리(C:\DefaultWebApp)밑의 \WEB-INF\classes 밑에 패키지에 맞게 디렉토리를 생성하고 class 파일을 위치시킨다.

� 주의주의주의주의)))) 위 디렉토리를 system classpath나 weblogic start 스크립트의 classpath에 위치시키면 실행중 servlet이 변경됬을 때 반영이 되지 않으므로 주의 한다.

� \WEB-INF\web.xml 파일을 다음과 같이 만든다.

� Web Application 디렉토리(C:\DefaultWebApp)밑의 \WEB-INF\classes 밑에 패키지에 맞게 디렉토리를 생성하고 class 파일을 위치시킨다.

� 주의주의주의주의)))) 위 디렉토리를 system classpath나 weblogic start 스크립트의 classpath에 위치시키면 실행중 servlet이 변경됬을 때 반영이 되지 않으므로 주의 한다.

� \WEB-INF\web.xml 파일을 다음과 같이 만든다.

� 도메인 디렉토리에서 Administration Server를 실행한 후 Managed Server를 실행한다. 브라우저에서 http://localhost:7001/test/dkdkd 로 접근한다. 위 xml 파일중 url-pattern 요소 부분이 웹에서 접근 하 는 url 형 식 을 정 의 하 는 것 으 로 써 * 는 어 떤 이 름 을 써 도 된 다 는 말 이 다 . 즉http://localhost:7001/test/hello 를 써도 같은 서블릿이 실행된다

� 도메인 디렉토리에서 Administration Server를 실행한 후 Managed Server를 실행한다. 브라우저에서 http://localhost:7001/test/dkdkd 로 접근한다. 위 xml 파일중 url-pattern 요소 부분이 웹에서 접근 하 는 url 형 식 을 정 의 하 는 것 으 로 써 * 는 어 떤 이 름 을 써 도 된 다 는 말 이 다 . 즉http://localhost:7001/test/hello 를 써도 같은 서블릿이 실행된다

<?xml version="1.0" ?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><web-app><servlet><servlet-name>myServlet</servlet-name><servlet-class>examples.servlets.HelloWorldServlet</servlet-class></servlet><servlet-mapping><servlet-name>myServlet</servlet-name><url-pattern>/test/*</url-pattern></servlet-mapping> </web-app>

Page 19: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

182003.12

EJB 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.5 EJB 3.5 EJB 3.5 EJB 3.5 EJB 등록등록등록등록

� 왼쪽 패널에서 Deployments -> EJB Modules 선택한 후 오른쪽 패널에서 Deploy a new EJB Module…선택한다.

� 왼쪽 패널에서 Deployments -> EJB Modules 선택한 후 오른쪽 패널에서 Deploy a new EJB Module…선택한다.

� Deploy할 EJB의 .jar파일의 위치를 찾아서 체크한 후 우측 하단의 Target Module 버튼을 선택한다.� Deploy할 EJB의 .jar파일의 위치를 찾아서 체크한 후 우측 하단의 Target Module 버튼을 선택한다.

Page 20: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

192003.12

EJB 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.5 EJB 3.5 EJB 3.5 EJB 3.5 EJB 등록등록등록등록

� 하나 이상의 server가 있을 경우 target할 서버를 선택할 수 있다.� 하나 이상의 server가 있을 경우 target할 서버를 선택할 수 있다.

� Source에 대한 모드(stage/nostage)를 확인하고 이름을 입력한다.� Source에 대한 모드(stage/nostage)를 확인하고 이름을 입력한다.

Page 21: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

202003.12

EJB 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.5 EJB 3.5 EJB 3.5 EJB 3.5 EJB 등록등록등록등록

� Target한 서버에 성공적으로 deploy된 것을 확인할 수 있다.� Target한 서버에 성공적으로 deploy된 것을 확인할 수 있다.

� Test 탭을 선택하여 EJB가 제대로 deploy되었는지 테스트할 수 있다.� Test 탭을 선택하여 EJB가 제대로 deploy되었는지 테스트할 수 있다.

� 제대로 deploy되었다면 아래와 같은 메시지를 확인할 수 있다.� 제대로 deploy되었다면 아래와 같은 메시지를 확인할 수 있다.

Page 22: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

212003.12

Managed Server 생성방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 생성방법생성방법생성방법생성방법

� Admin server를 실행 후 관리 console(http://ip:port/console)로 접근하여 왼쪽 패널에서Servers를 선택한 후 오른쪽 패널에서 Configure a new Server…를 선택한다.

� Admin server를 실행 후 관리 console(http://ip:port/console)로 접근하여 왼쪽 패널에서Servers를 선택한 후 오른쪽 패널에서 Configure a new Server…를 선택한다.

� Server이름과 Listen Port 등을 설정한 후 오른쪽 하단의 create버튼을 선택한다.� Server이름과 Listen Port 등을 설정한 후 오른쪽 하단의 create버튼을 선택한다.

하나의 도메인 안에 여러 Managed server가 존재할 수 있으므로 필요할 때마다 새로이생성 할 수가 있다.

Page 23: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

222003.12

Managed Server 생성방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 생성방법생성방법생성방법생성방법

� 좌측 패널에 새로운 server가 생성된 것을 확인할 수 있다.� 좌측 패널에 새로운 server가 생성된 것을 확인할 수 있다.

� Domain의 home( ex)C:\bea\user_projects\domains\Leodomain )에 있는 startManagedWebLogic script를 열어 아래처럼 server name, user name, password에 알맞은 값을 입력하여 저장한 후script를 실행시킨다.

� Domain의 home( ex)C:\bea\user_projects\domains\Leodomain )에 있는 startManagedWebLogic script를 열어 아래처럼 server name, user name, password에 알맞은 값을 입력하여 저장한 후script를 실행시킨다.

하나의 도메인 안에 여러 Managed server가 존재할 수 있으므로 필요할 때마다 새로이생성 할 수가 있다.

� Managed server가 제대로 실행되었다면 아래처럼 console에서 running상태를 확인할 수 있다.� Managed server가 제대로 실행되었다면 아래처럼 console에서 running상태를 확인할 수 있다.

Page 24: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

232003.12

Managed Server 생성방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 3.6 Managed Server 생성방법생성방법생성방법생성방법

� command 상에서도 Managed Server를 생성 할 수 있다.

� $> java weblogic.Admin –url ip:port(Admin URL) –username 해당ID -password 해당Password CREATE –mbean “도메인이름:Type=Server,Name=서버이름”으로 생성가능ex) java ex) java ex) java ex) java weblogicweblogicweblogicweblogic.Admin .Admin .Admin .Admin –url localhosturl localhosturl localhosturl localhost:7001 :7001 :7001 :7001 –username system username system username system username system ----password password password password weblogicweblogicweblogicweblogic CREATE CREATE CREATE CREATE –

mbeanmbeanmbeanmbean “LeodomainLeodomainLeodomainLeodomain:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3”

� 올바르게 실행되었다면 OK라는 표시와 함께 새로운 server생성된 것을 console을 통해서 확인할수 있다.

� command 상에서도 Managed Server를 생성 할 수 있다.

� $> java weblogic.Admin –url ip:port(Admin URL) –username 해당ID -password 해당Password CREATE –mbean “도메인이름:Type=Server,Name=서버이름”으로 생성가능ex) java ex) java ex) java ex) java weblogicweblogicweblogicweblogic.Admin .Admin .Admin .Admin –url localhosturl localhosturl localhosturl localhost:7001 :7001 :7001 :7001 –username system username system username system username system ----password password password password weblogicweblogicweblogicweblogic CREATE CREATE CREATE CREATE –

mbeanmbeanmbeanmbean “LeodomainLeodomainLeodomainLeodomain:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3:Type=Server,Name=managedServer3”

� 올바르게 실행되었다면 OK라는 표시와 함께 새로운 server생성된 것을 console을 통해서 확인할수 있다.

하나의 도메인 안에 여러 Managed server가 존재할 수 있으므로 필요할 때마다 새로이생성 할 수가 있다.

Page 25: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

242003.12

WebLogic Log 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.7 Log 3.7 Log 3.7 Log 3.7 Log 설정설정설정설정 방법방법방법방법

3.7.1 3.7.1 3.7.1 3.7.1 WebLogic WebLogic WebLogic WebLogic LogLogLogLog

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> Server 선택.

� Server File Name : log 파일의 위치와 이름을 지정.� Stdout Severity Threshold : log 레벨을 지정(Info, Warning, Error, Notice, Critical, Alert,

Emergency). 보통 개발 중일 경우는 info로 설정하여 모든 로그를 볼 수 있도록 한다. � Rotation Type : log 메시지를 옮기는 기준을 지정(By Size, By Time, None). 보통 시간(By

Time)으로 지정한다(default는 by size).� Minimum File Size : 최소 파일 크기를 지정. 서버가 log메시지를 옮기는 파일의 최소 크기(1-

65535kb). Rotation type을 by size로 선택했을 때 지정한다.� Rotation Time : log 파일을 시간으로 rotation시킬 때 시작 시점.형식은 k:mm(k는 1-

24).rotation type을 by time으로 선택했을 때 지정한다.� File Time Span : log메시지가 다른 파일로 옮겨지는 시간간격(하나의 log파일 생성).� Limit Number of Retained Log Files : 생성할 log파일 수를 제한한다. Log Files To Retain에서

설정한 수만큼 log 파일을 생성하면 새로운 파일을 생성하지 않고 이전 파일을 덮어 쓴다.

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> Server 선택.

� Server File Name : log 파일의 위치와 이름을 지정.� Stdout Severity Threshold : log 레벨을 지정(Info, Warning, Error, Notice, Critical, Alert,

Emergency). 보통 개발 중일 경우는 info로 설정하여 모든 로그를 볼 수 있도록 한다. � Rotation Type : log 메시지를 옮기는 기준을 지정(By Size, By Time, None). 보통 시간(By

Time)으로 지정한다(default는 by size).� Minimum File Size : 최소 파일 크기를 지정. 서버가 log메시지를 옮기는 파일의 최소 크기(1-

65535kb). Rotation type을 by size로 선택했을 때 지정한다.� Rotation Time : log 파일을 시간으로 rotation시킬 때 시작 시점.형식은 k:mm(k는 1-

24).rotation type을 by time으로 선택했을 때 지정한다.� File Time Span : log메시지가 다른 파일로 옮겨지는 시간간격(하나의 log파일 생성).� Limit Number of Retained Log Files : 생성할 log파일 수를 제한한다. Log Files To Retain에서

설정한 수만큼 log 파일을 생성하면 새로운 파일을 생성하지 않고 이전 파일을 덮어 쓴다.

Page 26: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

252003.12

Domain Log 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.7 Log 3.7 Log 3.7 Log 3.7 Log 설정설정설정설정 방법방법방법방법

3.7.2 Domain Log3.7.2 Domain Log3.7.2 Domain Log3.7.2 Domain Log

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> Domain 선택.

� Log to Domain Log File : message를 domain log 파일로 보낼 것인지를 지정.� Use Log Filter : domain log로 어떠한 메시지를 보낼 것인지를 결정한다. None으로 지정하면

error이상의 메시지가 보내진다.

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> Domain 선택.

� Log to Domain Log File : message를 domain log 파일로 보낼 것인지를 지정.� Use Log Filter : domain log로 어떠한 메시지를 보낼 것인지를 결정한다. None으로 지정하면

error이상의 메시지가 보내진다.

Page 27: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

262003.12

HTTP Log 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.7 Log 3.7 Log 3.7 Log 3.7 Log 설정설정설정설정 방법방법방법방법

3.7.3 HTTP(Access) Log3.7.3 HTTP(Access) Log3.7.3 HTTP(Access) Log3.7.3 HTTP(Access) Log

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> HTTP 선택.

� web server를 사용한다면 Enable HTTP Logging을 uncheck하여 로그가 생성되지 않도록 한다.

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> HTTP 선택.

� web server를 사용한다면 Enable HTTP Logging을 uncheck하여 로그가 생성되지 않도록 한다.

Page 28: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

272003.12

JDBC Log 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.7 Log 3.7 Log 3.7 Log 3.7 Log 설정설정설정설정 방법방법방법방법

3.7.4 JDBC Log3.7.4 JDBC Log3.7.4 JDBC Log3.7.4 JDBC Log

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> JDBC 선택.

� JDBC log는 신중하게 설정 해야 한다. 이 로그 설정으로 인하여 장애가 발생 할 수 있기 때문이다. 모든 쿼리에 대한 로그가 발생하여 시스템에 부하를 줄 수 있다. 따라서 문제가 발생 했을경우 짧은 시간만 적용 할 수 있도록 해야 한다

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> JDBC 선택.

� JDBC log는 신중하게 설정 해야 한다. 이 로그 설정으로 인하여 장애가 발생 할 수 있기 때문이다. 모든 쿼리에 대한 로그가 발생하여 시스템에 부하를 줄 수 있다. 따라서 문제가 발생 했을경우 짧은 시간만 적용 할 수 있도록 해야 한다

Page 29: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

282003.12

JTA Log 설정 방법

3. 3. 3. 3. WebLogic WebLogic WebLogic WebLogic Server Server Server Server 운영운영운영운영

3.7 Log 3.7 Log 3.7 Log 3.7 Log 설정설정설정설정 방법방법방법방법

3.7.5 JTA Log3.7.5 JTA Log3.7.5 JTA Log3.7.5 JTA Log

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> JTA 선택.

� 왼쪽에서 server중 하나를 선택( ex)adminServer ) -> 오른쪽 패널에서 차례대로 Logging -> JTA 선택.

Page 30: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

292003.12

기본화면

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.1 4.1 4.1 4.1 WebLogic WebLogic WebLogic WebLogic Server ConsoleServer ConsoleServer ConsoleServer Console

� 관리자의 admin console의 처음 화면이다.� URL은 http://ip:port/console (예: http://localhost:7001/console) 이다.

� 관리자의 admin console의 처음 화면이다.� URL은 http://ip:port/console (예: http://localhost:7001/console) 이다.

BEA WebLogic 서버는 애플리케이션과 각종 서비스의 상태를 업데이트 하고 원격으로 모니터링 할 수 있는 강력한 웹기반 콘솔을 제공한다. 다수의 클라이언트와 서버는 단일한 리모트 콘솔에서 쉽게 관리 할 수 있다

Page 31: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

302003.12

서버성능 모니터링

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.2 4.2 4.2 4.2 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 모니터링모니터링모니터링모니터링

서버상태 모니터링

Page 32: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

312003.12

HTML, 서블릿, JSP 서비스 모니터링

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.2 4.2 4.2 4.2 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 모니터링모니터링모니터링모니터링

DB 모니터링

Page 33: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

322003.12

실행 Thread의 설정

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.3 4.3 4.3 4.3 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 튜닝튜닝튜닝튜닝

� 웹로직 서버의 쓰레드는 애플리케이션 작업의 처리와 리퀘스트를 대기(listen)하는 두가지 목적으로 사용된다. 웹로직의 쓰레드 풀은 쓰레드의 총 수를 설정하여 할당 할 수 있는데 기본적인실행 쓰레드 값은 15이다. 대부분의 애플리케이션은 이 값을 변경할 필요는 없다. 이 값이 너무크면 메모리 사용량이 커져 Context 의 switching 이 증가해 퍼포먼스가 저하된다. Response에많은 시간이 걸리는 DB 호출을 하는 경우는 반대의 경우 보다 많은 실행 쓰레드가 필요하다. 후자의 경우는 적은 실행 쓰레드로 퍼포먼스를 향상 시킬 수 있다. 또한 Thread 수가 너무 적은 경우, 웹로직 서버가 최대 부하로 동작하면 CPU의 능력을 100% 활용할 수 없다.

� 서버선택 > 마우스 우측(View Execute Queues) > 실행 큐 선택 > 쓰레드 설정 값 설정

� 웹로직 서버의 쓰레드는 애플리케이션 작업의 처리와 리퀘스트를 대기(listen)하는 두가지 목적으로 사용된다. 웹로직의 쓰레드 풀은 쓰레드의 총 수를 설정하여 할당 할 수 있는데 기본적인실행 쓰레드 값은 15이다. 대부분의 애플리케이션은 이 값을 변경할 필요는 없다. 이 값이 너무크면 메모리 사용량이 커져 Context 의 switching 이 증가해 퍼포먼스가 저하된다. Response에많은 시간이 걸리는 DB 호출을 하는 경우는 반대의 경우 보다 많은 실행 쓰레드가 필요하다. 후자의 경우는 적은 실행 쓰레드로 퍼포먼스를 향상 시킬 수 있다. 또한 Thread 수가 너무 적은 경우, 웹로직 서버가 최대 부하로 동작하면 CPU의 능력을 100% 활용할 수 없다.

� 서버선택 > 마우스 우측(View Execute Queues) > 실행 큐 선택 > 쓰레드 설정 값 설정

웹로직 서버를 튜닝하는 방법은 실행 쓰레드, 퍼포먼스 팩, 소켓리더, 커넥션 백로그 버퍼링(Connection Backlog Buffering), JDBC풀의 튜닝 등이 있다. 모든 설정은 웹로직 서버의 콘솔을 이용하여 변경 할 수 있고 튜닝된 정보는 config.xml에 저장된다

Page 34: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

332003.12

Connection Backlog Buffering 튜닝

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.3 4.3 4.3 4.3 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 튜닝튜닝튜닝튜닝

� 커넥션 백로그는 대기 큐에 들어온 TCP 커넥션의 수를 지정한다. 이 고정 사이즈의 큐에는 TCP 스택에서는 수신되었지만, 애플리케이션에서는 아직 받아 들여지지 않은 커넥션 리퀘스트가 들어있다. 디폴트는 50이고, 최대치는 운영체제마다 다르다.

� 클라이언트가 리퀘스트를 요청하였으나 Connection refused 라는 메시지를 받고, 서버에서는 아무런 에러가 없다면 이 값을 디폴트로부터 25% 를 크게 하고 이러한 메시지가 표시되지 않게 될때까지 이 속성 값을 25%씩 증가 시키면서 테스트 한다.

� 서버선택 > Configuration > Tuning > AcceptBacklog 값을 설정

� 커넥션 백로그는 대기 큐에 들어온 TCP 커넥션의 수를 지정한다. 이 고정 사이즈의 큐에는 TCP 스택에서는 수신되었지만, 애플리케이션에서는 아직 받아 들여지지 않은 커넥션 리퀘스트가 들어있다. 디폴트는 50이고, 최대치는 운영체제마다 다르다.

� 클라이언트가 리퀘스트를 요청하였으나 Connection refused 라는 메시지를 받고, 서버에서는 아무런 에러가 없다면 이 값을 디폴트로부터 25% 를 크게 하고 이러한 메시지가 표시되지 않게 될때까지 이 속성 값을 25%씩 증가 시키면서 테스트 한다.

� 서버선택 > Configuration > Tuning > AcceptBacklog 값을 설정

Page 35: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

342003.12

Connection Pool 튜닝

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.3 4.3 4.3 4.3 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 튜닝튜닝튜닝튜닝

� DBMS에서 JDBC 커넥션을 얻는 것은 매우 시간이 많이 걸리는 작업이다. JDBC 애플리케이션으로DB의 커넥션의 오픈(open)과 클로우즈(close)를 반복할 필요가 있는 경우, 이것은 퍼포먼스의 문제가 된다.

� 웹로직 서버를 시작 시키면 커넥션 풀 내의 커넥션이 오픈 되어 모든 클라이언트가 사용 할 수있게 된다. 클라이언트가 커넥션 풀의 커넥션을 클로우즈 하면 그 커넥션은 풀로 되돌려져 다른클라이언트가 사용 할 수 있는 상태가 된다. 즉 커넥션 그 자체가 클로우즈 되는 것이 아니다.

� 커넥션 풀을 설정시 초기값(InitialCapacity)과 최대값(MaxCapacity)을 설정할 수 있는데 개발시에는 초기값을 작게 설정하면 서버의 기동이 빠르기 때문에 편리하다. 하지만 운영시스템에서는서버에 부하가 걸리면 가능한 한 빠르게 서비스를 해주기 위해서는 모든 자원이 프로세스의 처리에 소비되게 된다. 따라서 초기값과 최대값을 같게 설정하여 모든 자원이 프로세스 처리에 사용되도록 한다.

� 운영 시스템에서는 풀 내의 커넥션 수를 JDBC 커넥션을 필요로 하는 동시 유저의 세션수와 같게하는 것을 추천한다.

� JDBC 드라이버 및 DBMS에 따라서 가능한 물리적 커넥션수가 제한 되어 있는 경우도 있다

� Pool 선택 > Connections > 각 항목을 설정

� DBMS에서 JDBC 커넥션을 얻는 것은 매우 시간이 많이 걸리는 작업이다. JDBC 애플리케이션으로DB의 커넥션의 오픈(open)과 클로우즈(close)를 반복할 필요가 있는 경우, 이것은 퍼포먼스의 문제가 된다.

� 웹로직 서버를 시작 시키면 커넥션 풀 내의 커넥션이 오픈 되어 모든 클라이언트가 사용 할 수있게 된다. 클라이언트가 커넥션 풀의 커넥션을 클로우즈 하면 그 커넥션은 풀로 되돌려져 다른클라이언트가 사용 할 수 있는 상태가 된다. 즉 커넥션 그 자체가 클로우즈 되는 것이 아니다.

� 커넥션 풀을 설정시 초기값(InitialCapacity)과 최대값(MaxCapacity)을 설정할 수 있는데 개발시에는 초기값을 작게 설정하면 서버의 기동이 빠르기 때문에 편리하다. 하지만 운영시스템에서는서버에 부하가 걸리면 가능한 한 빠르게 서비스를 해주기 위해서는 모든 자원이 프로세스의 처리에 소비되게 된다. 따라서 초기값과 최대값을 같게 설정하여 모든 자원이 프로세스 처리에 사용되도록 한다.

� 운영 시스템에서는 풀 내의 커넥션 수를 JDBC 커넥션을 필요로 하는 동시 유저의 세션수와 같게하는 것을 추천한다.

� JDBC 드라이버 및 DBMS에 따라서 가능한 물리적 커넥션수가 제한 되어 있는 경우도 있다

� Pool 선택 > Connections > 각 항목을 설정

Page 36: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

352003.12

Multi-CPU 머신에서의 튜닝

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.3 4.3 4.3 4.3 WebLogic WebLogic WebLogic WebLogic Server Server Server Server 튜닝튜닝튜닝튜닝

� Multi-CPU를 탑재한 머신에서는 사용 가능한 CPU에 웹로직을 클러스터로 구성하는 것을 고려할필요가 있다. 서버에 대한 CPU의 비율을 결정하려면, 다음과 같이 검증을 해봐야 한다.

• 네트웍 요건 – 웹 애플리케이션이 주로 네트웍 I/O바운드의 경우에는, 보다 고속의 NIC를

인스톨 하는 것이 CPU의 추가 보다 높은 퍼포먼스를 얻을 수 있다. 이것은 대부분의 CPU가이용 가능한 소켓의 Read를 기다리는 동안 Idle상태이기 때문이다.

• 디스크 I/O 요건 – 웹 애플리케이션이 주로 디스크 I/O바운드의 경우에는, CPU의 추가 전

에 디스크의 스핀들(spindle) 또는 각각의 디스크와 컨트롤러를 업그레이드하는 것을 생각해 볼 필요가 있다. 즉 추가의 CPU를 할당하기 전에 웹 애플리케이션이 네트웍 또는 디스크 I/O 바운드 보다 CPU 바운드 인지를 확인해야 한다. CPU 바운드의 경우 1개의 웹로직인스턴스에 CPU 사용률이 거의 100%라면 서버에 대한 CPU 비율을 증가 시킨다. 웹 애플리케이션에 필요한 처리는 다르지만 BEA의 조사결과 2개의 CPU에 대해서 1개의 웹로직 인스턴스로 한 비율의 경우에 최적의 결과를 얻을 수 있었다.

� Multi-CPU를 탑재한 머신에서는 사용 가능한 CPU에 웹로직을 클러스터로 구성하는 것을 고려할필요가 있다. 서버에 대한 CPU의 비율을 결정하려면, 다음과 같이 검증을 해봐야 한다.

• 네트웍 요건 – 웹 애플리케이션이 주로 네트웍 I/O바운드의 경우에는, 보다 고속의 NIC를

인스톨 하는 것이 CPU의 추가 보다 높은 퍼포먼스를 얻을 수 있다. 이것은 대부분의 CPU가이용 가능한 소켓의 Read를 기다리는 동안 Idle상태이기 때문이다.

• 디스크 I/O 요건 – 웹 애플리케이션이 주로 디스크 I/O바운드의 경우에는, CPU의 추가 전

에 디스크의 스핀들(spindle) 또는 각각의 디스크와 컨트롤러를 업그레이드하는 것을 생각해 볼 필요가 있다. 즉 추가의 CPU를 할당하기 전에 웹 애플리케이션이 네트웍 또는 디스크 I/O 바운드 보다 CPU 바운드 인지를 확인해야 한다. CPU 바운드의 경우 1개의 웹로직인스턴스에 CPU 사용률이 거의 100%라면 서버에 대한 CPU 비율을 증가 시킨다. 웹 애플리케이션에 필요한 처리는 다르지만 BEA의 조사결과 2개의 CPU에 대해서 1개의 웹로직 인스턴스로 한 비율의 경우에 최적의 결과를 얻을 수 있었다.

퍼포먼스 팩의 사용

� 많은 벤치 마크 결과 플랫품에 맞는 퍼포먼스 팩을 사용하면 퍼포먼스가 최대 3배까지 향상되는것으로 입증 됐다. 퍼포먼스 팩은 플랫폼용으로 최적화된 네이티브 소켓 멀티 플렉서(platform-optimized native socket multiplexor) 를 사용해서 퍼포먼스를 향상시킨다.

� 서버선택 > Configuration > Tuning > Enable Native IO 체크를 통해서 설정

� 많은 벤치 마크 결과 플랫품에 맞는 퍼포먼스 팩을 사용하면 퍼포먼스가 최대 3배까지 향상되는것으로 입증 됐다. 퍼포먼스 팩은 플랫폼용으로 최적화된 네이티브 소켓 멀티 플렉서(platform-optimized native socket multiplexor) 를 사용해서 퍼포먼스를 향상시킨다.

� 서버선택 > Configuration > Tuning > Enable Native IO 체크를 통해서 설정

Socket Reader Thread 튜닝

� 소켓으로부터 메시지를 읽어들이는 실행 쓰레드의 최고 비율을 설정할 수 있다. 이 값은 퍼포먼스 팩을 사용하지 않을 때만 설정 할 수 있고 추천되는 값은 30이다.

� 소켓으로부터 메시지를 읽어들이는 실행 쓰레드의 최고 비율을 설정할 수 있다. 이 값은 퍼포먼스 팩을 사용하지 않을 때만 설정 할 수 있고 추천되는 값은 30이다.

Page 37: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

362003.12

Heap 사이즈의 결정

4. 4. 4. 4. 성능관리방안성능관리방안성능관리방안성능관리방안

4.4 JVM 4.4 JVM 4.4 JVM 4.4 JVM 튜닝튜닝튜닝튜닝

� 애플리케이션 실행 중에, 최대의 부하를 준 상태로 웹로직 서버의 퍼포먼스를 모니터 한다.� -verbosegc 옵션을 사용해, GC에 투입될 시간과 자원을 정확하게 측정한다.� JVM의 verbose에서 GC출력을 유효하게 해서 표준 에러 및 표준 출력을 로그 파일에 기록 한다. � weblogic.log 파일에서 GC 전후의 타임 스탬프를 비교한다.(GC전체 실행시간이 3~5초를 넘기지

않도록 한다.). 평균 메모리 점유량(각 GC 실행 후의 heap의 상태)에서 heap의 여유가 항상 85% 가 되는 경우, heap 사이즈를 작게 해도 괜찮다.

� Java HotSpot JVM 1.3 을 사용하고 있는 경우는 Generation의 사이즈를 설정한다.http://e-docs.bea.com/wls/docs81/perform/JVMTuning.html#1109778예) $java ... -XX:NewSize=128m -XX:MaxNewSize=128m

-XX:SurvivorRatio=8 -Xms512m -Xmx512m ...� heap사이즈는 시스템에서 사용 가능한 여유 RAM보다 작게 한다. 즉 페이지가 디스크에 "swap"되

지 않는 범위로 설정한다.� 시스템이 GC에 소비하는 시간이 너무 긴 경우 heap사이즈를 작게 한다. 일반적으로 사용 가능한

RAM의 80%를 JVM에 할당한다.� 퍼포먼스 향상을 위하여 최소 heap 사이즈와 최대 heap사이즈는 같게 설정한다.

� 애플리케이션 실행 중에, 최대의 부하를 준 상태로 웹로직 서버의 퍼포먼스를 모니터 한다.� -verbosegc 옵션을 사용해, GC에 투입될 시간과 자원을 정확하게 측정한다.� JVM의 verbose에서 GC출력을 유효하게 해서 표준 에러 및 표준 출력을 로그 파일에 기록 한다. � weblogic.log 파일에서 GC 전후의 타임 스탬프를 비교한다.(GC전체 실행시간이 3~5초를 넘기지

않도록 한다.). 평균 메모리 점유량(각 GC 실행 후의 heap의 상태)에서 heap의 여유가 항상 85% 가 되는 경우, heap 사이즈를 작게 해도 괜찮다.

� Java HotSpot JVM 1.3 을 사용하고 있는 경우는 Generation의 사이즈를 설정한다.http://e-docs.bea.com/wls/docs81/perform/JVMTuning.html#1109778예) $java ... -XX:NewSize=128m -XX:MaxNewSize=128m

-XX:SurvivorRatio=8 -Xms512m -Xmx512m ...� heap사이즈는 시스템에서 사용 가능한 여유 RAM보다 작게 한다. 즉 페이지가 디스크에 "swap"되

지 않는 범위로 설정한다.� 시스템이 GC에 소비하는 시간이 너무 긴 경우 heap사이즈를 작게 한다. 일반적으로 사용 가능한

RAM의 80%를 JVM에 할당한다.� 퍼포먼스 향상을 위하여 최소 heap 사이즈와 최대 heap사이즈는 같게 설정한다.

자바가상머신(JVM)은 마이크로프로세서 상에서 Java 클래스 파일의 바이트 코드를 실행하는 실행 엔진이다. JVM 튜닝은 웹로직과 애플리케이션의 퍼포먼스에 큰 영향을 준다.특히 JVM의 벤더와 버전은 퍼포먼스에 큰 영향을 주므로 웹로직 서버에서 실행되는 것이보증 된 JVM을 사용해야 한다. JVM heap은 현재 사용되고 있는 오브젝트, 사용되지 않는오브젝트(non-referenced objects), 이용 가능한 여유메모리로 구성되는데 이러한 JVM heap 사이즈에 의해 GC(Garbage Collection : 사용되지 않는 오브젝트를 de-allocating)를 하는 빈도와 시간이 결정된다. GC를 하고 있는 동안 JVM은 프로세스를 실행할 수 없기 때문에 퍼포먼스가 저하된다. GC의 적절한 실행빈도는 애플리케이션에 따라 다르므로, GC의 실제 시간과 빈도를 해석하여 조정할 필요가 있다. 큰 heap사이즈를 설정할 경우, GC 전체는 저속화 되지만, 실행빈도가 낮아지고, 메모리의 요구에 맞게 heap사이즈를 설정할 경우, GC전체는 고속화 되지만, 실행빈도가 높아진다. Heap사이즈의 튜닝의 목적은소정의 시간에 처리할 수 있는 클라이언트의 수를 최대한으로 늘리면서 GC의 실행시간을최소한으로 억제하는 것이다.

Page 38: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

372003.12

고객 기본정보

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.1 5.1 5.1 5.1 장애장애장애장애 지원지원지원지원 요청요청요청요청 시시시시 필요필요필요필요 정보정보정보정보

� 고객사(필수)� 프로젝트명(필수)� 담당자 이름(필수)� 웹로직 영업 담당자 및 기존 웹로직 기술 지원 인력

� 고객사(필수)� 프로젝트명(필수)� 담당자 이름(필수)� 웹로직 영업 담당자 및 기존 웹로직 기술 지원 인력

웹로직 장애로 인한 문의시 필요한 기본 정보입니다. 고객 기본 정보와 웹로직 기본 정보를 기술하여 웹로직 엔지니어에게 전달해주시기 바랍니다

WebLogic 기본정보

� 장애 유형과 상관없이 아래와 같은 사항들은 기본적으로 필요한 정보들입니다. 이러한 정보들을 정확하고 상세히 기술해주시기 바랍니다.

• 웹로직 버전, 서비스팩 버전� java weblogic.Admin -url t3://[IP]:[Port] –username [username] –password [password]

VERSION 또는 웹로직 콘^솔에서 확인 가능.� 디플로이된 어플리케이션 기술(jsp, servlet, ejb 등등)

• 플랫폼(OS 종류 및 버전)� uname –a

• JDK 버전� java –version

• 문의 사항이 3rd party product 와 관련이 있다면 벤더명, product명, 버전을 명시

• 문의 사항에 대한 상세 설명 및 발생 빈도 기술� 장애 발생 빈도� 시스템 상황(웹로직이 운영중인 장비뿐만 아니라 Legacy 시스템 및 연계 시스템의 시스템 상

황) : cpu 상태, 메모리, 디스크 공간, 네트웍 상태, netstat –an 등� 웹서버(아파치, iis, iplanet) 상태 : 웹서버의 정상동작 여부 확인

• 오류 메시지 및 스택 트래이스(stack trace)� hang-up 현상 발생시 kill -3 pid 로 5초 간격의 thread dump 파일도 첨부(3회 정도 실행)

• 몇 가지 필요한 파일들

� config.xml, start 스크립트, 로그 파일.� 웹서버와 관련이 있다면 웹서버의 로그 파일(access, error 로그 및 환경 구성 파일 첨부).

� 장애 유형과 상관없이 아래와 같은 사항들은 기본적으로 필요한 정보들입니다. 이러한 정보들을 정확하고 상세히 기술해주시기 바랍니다.

• 웹로직 버전, 서비스팩 버전� java weblogic.Admin -url t3://[IP]:[Port] –username [username] –password [password]

VERSION 또는 웹로직 콘^솔에서 확인 가능.� 디플로이된 어플리케이션 기술(jsp, servlet, ejb 등등)

• 플랫폼(OS 종류 및 버전)� uname –a

• JDK 버전� java –version

• 문의 사항이 3rd party product 와 관련이 있다면 벤더명, product명, 버전을 명시

• 문의 사항에 대한 상세 설명 및 발생 빈도 기술� 장애 발생 빈도� 시스템 상황(웹로직이 운영중인 장비뿐만 아니라 Legacy 시스템 및 연계 시스템의 시스템 상

황) : cpu 상태, 메모리, 디스크 공간, 네트웍 상태, netstat –an 등� 웹서버(아파치, iis, iplanet) 상태 : 웹서버의 정상동작 여부 확인

• 오류 메시지 및 스택 트래이스(stack trace)� hang-up 현상 발생시 kill -3 pid 로 5초 간격의 thread dump 파일도 첨부(3회 정도 실행)

• 몇 가지 필요한 파일들

� config.xml, start 스크립트, 로그 파일.� 웹서버와 관련이 있다면 웹서버의 로그 파일(access, error 로그 및 환경 구성 파일 첨부).

Page 39: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

382003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.1 5.2.1 5.2.1 5.2.1 장애인지장애인지장애인지장애인지

웹로직 관리자는 장애를 먼저 인지하고 신속한 후속 조치를 적절히 취해야만 한다. 그렇게 하기 위해서는 주기적으로 모니터링을 해 웹로직의 정상적인 모니터링 결과를 인지하고 있어야 한다. 웹로직 장애에 대한 대처는 정상적인 상황과 장애 상황을 신속하고 정확히 판별하는 것부터 시작한다고 할 수 있다. 정확한 상황 판단을 통해서 단순히 “서비스가 안되는데요~” 처럼 불명확한 상황 판단을 줄이고 어떤 tier 에서 어떤 장애가 발생

했는지를 판단할 수 있다.웹로직(MiddleWare)의 특성상 웹로직 뿐만 아니라 front-end의 웹서버, back-end의DB(DBA가 통상적으로 모니터링) 등을 모두 모니터링 해주어야 장애 발생시 정확한 상황파악이 가능하다. 또한 서비스 전체에 영향을 주는 장애인지 아니면 어떤 웹 서비스에국한된 장애인지를 파악하고 장애 발생 빈도와 웹로직 프로세스의 유무 등도 파악해야한다.정상적인 상황과 장애 상황을 신속하고 정확히 판별하기 위해서는 아래와 같은 사항들을꾸준히 모니터링 해야 한다. 또한 이러한 모니터링을 손쉽게 하기 위해 각종 스크립트를미리 만들어 두거나 상용 모니터링 툴들을 사용하게 되면 장애시 상당한 도움이 된다.

주변환경 모니터링

� 웹서버웹서버웹서버웹서버 모니터링모니터링모니터링모니터링• access 로그 모니터링 : 클라이언트의 요청이 정상적으로 잘 들어오고 있는지를 확인• error 로그 모니터링 : 정상적인 에러 로그가 출력되는지 아니면 비정상적인 에러 로그가

출력되는지를 확인• 장애 인지를 위해 서비스 되는 어플리케이션과 상관없는 테스트용 html 및 jsp을 디플로이

해두어 장애시 html 과 jsp를 호출함으로써 웹서버 장애인지 웹로직 장애인지를 판단.

� 시스템시스템시스템시스템 모니터링모니터링모니터링모니터링 : CPU나 메모리가 부족하면 정상적인 서비스가 어려움.• CPU 사용량을 모니터링

� top, topas, glance 와 같은 것으로 모니터링� 일정한 수치의 CPU 사용량이 지속되지는 않는지?� CPU 사용량에 여분은 있는지?

• MEMORY 사용량을 모니터링� top, topas, glance 와 같은 것으로 모니터링� 자바 프로세스에 할당한 힙은 512M 인데 자바 프로세스가 G 단위의 메모리를 점유하

지 않는지?� 실제 프리 메모리는 여유가 있는지?

• 네트웍 상황을 모니터링• 웹서버 및 웹로직 EST 소켓 개수를 모니터링 : 요청이 들어오는지 확인

� netstat –an | grep wlsport | grep EST | wc –l

웹로직의 EST 개수가 늘어났다 줄어들었다 하는지?� netstat –an | grep webserverport | grep EST | wc –l

웹서버의 EST 개수가 늘어났다 줄어들었다 하는지?

� backbackbackback----end end end end 시스템시스템시스템시스템 모니터링모니터링모니터링모니터링• 연계 시스템은 정상적인지 모니터링.• middleware(웹로직)의 특성상 연계 시스템에 영향을 받아 장애가 발생하는 경우가 많아 연

계 시스템의 상황을 모니터링 하는 것도 상당히 중요함.

� 웹서버웹서버웹서버웹서버 모니터링모니터링모니터링모니터링• access 로그 모니터링 : 클라이언트의 요청이 정상적으로 잘 들어오고 있는지를 확인• error 로그 모니터링 : 정상적인 에러 로그가 출력되는지 아니면 비정상적인 에러 로그가

출력되는지를 확인• 장애 인지를 위해 서비스 되는 어플리케이션과 상관없는 테스트용 html 및 jsp을 디플로이

해두어 장애시 html 과 jsp를 호출함으로써 웹서버 장애인지 웹로직 장애인지를 판단.

� 시스템시스템시스템시스템 모니터링모니터링모니터링모니터링 : CPU나 메모리가 부족하면 정상적인 서비스가 어려움.• CPU 사용량을 모니터링

� top, topas, glance 와 같은 것으로 모니터링� 일정한 수치의 CPU 사용량이 지속되지는 않는지?� CPU 사용량에 여분은 있는지?

• MEMORY 사용량을 모니터링� top, topas, glance 와 같은 것으로 모니터링� 자바 프로세스에 할당한 힙은 512M 인데 자바 프로세스가 G 단위의 메모리를 점유하

지 않는지?� 실제 프리 메모리는 여유가 있는지?

• 네트웍 상황을 모니터링• 웹서버 및 웹로직 EST 소켓 개수를 모니터링 : 요청이 들어오는지 확인

� netstat –an | grep wlsport | grep EST | wc –l

웹로직의 EST 개수가 늘어났다 줄어들었다 하는지?� netstat –an | grep webserverport | grep EST | wc –l

웹서버의 EST 개수가 늘어났다 줄어들었다 하는지?

� backbackbackback----end end end end 시스템시스템시스템시스템 모니터링모니터링모니터링모니터링• 연계 시스템은 정상적인지 모니터링.• middleware(웹로직)의 특성상 연계 시스템에 영향을 받아 장애가 발생하는 경우가 많아 연

계 시스템의 상황을 모니터링 하는 것도 상당히 중요함.

Page 40: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

392003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.1 5.2.1 5.2.1 5.2.1 장애인지장애인지장애인지장애인지

WebLogic Log 모니터링

� 장애 인지의 가장 기본적인 방법으로써 어플리케이션과 웹로직 관련 로그를 모니터링 해야 한다. � tail –f 로그파일이름 의 형태로 모니터링

� 장애 인지의 가장 기본적인 방법으로써 어플리케이션과 웹로직 관련 로그를 모니터링 해야 한다. � tail –f 로그파일이름 의 형태로 모니터링

WebLogic Queue 모니터링

� Queue란 사용자들의 모든 request 들이 실행되기 전 기다리는 곳이다.� 일시적으로 Queue 에 request 들이 쌓이는 것과 달리, 지속적으로 Queue에 request 들이 쌓이는

지를 모니터링 해야 한다.� 사용자 증가시에 웹로직의 Queue에 일시적으로 request 가 쌓일 수 있다. Queue에 request가 쌓

이고 Throughput 과 메모리 사용량도 함께 증가하는지 모니터링. hang-up은 아니며 서비스 지연이 발생.

� Queue에 request가 쌓이지만 Throughput 과 메모리 사용량에 큰 변화가 없는 경우 장애 현상으로판단할 수 있다. 이와 같은 경우 대부분은 쓰레드가 특정 코드에서 데드락이 걸려 있거나 아니면다른 연동시스템에서 응답이 지연되어 발생되는 hang-up이다.

� Queue란 사용자들의 모든 request 들이 실행되기 전 기다리는 곳이다.� 일시적으로 Queue 에 request 들이 쌓이는 것과 달리, 지속적으로 Queue에 request 들이 쌓이는

지를 모니터링 해야 한다.� 사용자 증가시에 웹로직의 Queue에 일시적으로 request 가 쌓일 수 있다. Queue에 request가 쌓

이고 Throughput 과 메모리 사용량도 함께 증가하는지 모니터링. hang-up은 아니며 서비스 지연이 발생.

� Queue에 request가 쌓이지만 Throughput 과 메모리 사용량에 큰 변화가 없는 경우 장애 현상으로판단할 수 있다. 이와 같은 경우 대부분은 쓰레드가 특정 코드에서 데드락이 걸려 있거나 아니면다른 연동시스템에서 응답이 지연되어 발생되는 hang-up이다.

정상적으로 서비스가 되는 경우의

그래프

Queue에 request 가 쌓이는 경우의그래프 : hang-up

은 아님

Page 41: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

402003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.1 5.2.1 5.2.1 5.2.1 장애인지장애인지장애인지장애인지

Memory 모니터링

� Memory란 자바에서 사용하는 메모리 중 힙 메모리를 의미한다.� 메모리를 너무 과다하게 사용하는 경우를 보면 메모리 사용량이 급격히 증가하게 되는 것을 볼 수 있

는데, 대부분의 경우는 프로그램에서 조회한 값을 DB로부터 가져올 때 순간적으로 객체를 너무 많이사용한다든가, 조회한 데이터가 너무 많다든가, String 연산에서 너무 많은 객체를 생성한다든가 할때 나타날 수 있다. GC후 초기 메모리로 복귀되나 성능상의 문제가 야기 될 수 있다.

� GC후에도 메모리가 별로 줄어들지 않고 점차로 증가하는 현상을 볼 수 있다. 이런 경우 메모리 leak으로 판단을 하는데 HttpSession 객체에 너무 많은 데이타를 넣는다거나, static 변수를 너무 많이 사용하여 GC가 되지 않는 메모리가 많을 때 이러한 현상이 발생하게 된다.

� Memory란 자바에서 사용하는 메모리 중 힙 메모리를 의미한다.� 메모리를 너무 과다하게 사용하는 경우를 보면 메모리 사용량이 급격히 증가하게 되는 것을 볼 수 있

는데, 대부분의 경우는 프로그램에서 조회한 값을 DB로부터 가져올 때 순간적으로 객체를 너무 많이사용한다든가, 조회한 데이터가 너무 많다든가, String 연산에서 너무 많은 객체를 생성한다든가 할때 나타날 수 있다. GC후 초기 메모리로 복귀되나 성능상의 문제가 야기 될 수 있다.

� GC후에도 메모리가 별로 줄어들지 않고 점차로 증가하는 현상을 볼 수 있다. 이런 경우 메모리 leak으로 판단을 하는데 HttpSession 객체에 너무 많은 데이타를 넣는다거나, static 변수를 너무 많이 사용하여 GC가 되지 않는 메모리가 많을 때 이러한 현상이 발생하게 된다.

메모리 leak 현상의 힙 메모리 그래

App에서 메모리를 과다하게 사용

하는 경우

Page 42: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

412003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.1 5.2.1 5.2.1 5.2.1 장애인지장애인지장애인지장애인지

Idle Thread 개수 모니터링

� IdleThread 개수란 새로운 request 를 처리할 여분의 thread 개수.� IdleThread 개수가 일시적으로 0 혹은 낮은 수치로 내려가는지 아니면 지속적으로 낮은 값들을

가지는지 특정 패턴을 갖고 내려왔다 올라갔다 하는지를 모니터링 한다.� IdleThread 개수가 점진적으로 내려가 다시 늘어나지 않는다면 장애가 발생할 확률이 높아진다는

것을 의미한다. IdleThread 개수가 0이라는 값을 지속적으로 가지게 되면 request 를 처리할IdleThread가 없다는 것을 의미하므로 Queue에는 request 가 계속해서 쌓이게 되며 사용자들은응답을 받지 못하게 된다.

� IdleThread 개수란 새로운 request 를 처리할 여분의 thread 개수.� IdleThread 개수가 일시적으로 0 혹은 낮은 수치로 내려가는지 아니면 지속적으로 낮은 값들을

가지는지 특정 패턴을 갖고 내려왔다 올라갔다 하는지를 모니터링 한다.� IdleThread 개수가 점진적으로 내려가 다시 늘어나지 않는다면 장애가 발생할 확률이 높아진다는

것을 의미한다. IdleThread 개수가 0이라는 값을 지속적으로 가지게 되면 request 를 처리할IdleThread가 없다는 것을 의미하므로 Queue에는 request 가 계속해서 쌓이게 되며 사용자들은응답을 받지 못하게 된다.

JDBC Connections 개수 모니터링

� 커넥션 풀을 보면 Waiter에 대한 항목들이 있는데 이는 커넥션 풀이 모자라서 대기하는 건수를나타내며 Connections High는 최대 Connection 개수가 된다. 따라서 최대 Connection 개수에 도달하여 더 이상의 Connection을 얻지 못할 때, Waiter가 증가하게 된다. 그러므로 이러한 수치가나온다면 이는 커넥션 풀의 Maximum Capacity가 적어서 나타나는 것으로 수치를 늘려주면 된다. 단, 일반적으로 이 수치는 쓰레드 개수보다 5개정도 낮은 수치내에서 책정이 되어야 한다. 이유는 모든 쓰레드가 항상 JDBC 커넥션 풀만을 사용하는 것은 아니기 때문이다.

� 가끔씩 Connections(Active하게 DB와 접속된 연결개수)가 증가한 후 줄어들지 않는 경우 이는어플리케이션에서 DB와의 연결이 오랫동안 지속되는 것을 나타내며 이는 Long 트랜잭션으로 향후행업을 초래할 수 있는 원인이 될 수도 있다. 물론 사용자가 많은 경우 이러한 Connections 수치가 높이 올라가지만 그만큼 사용자가 많아 Throughput도 증가하게 된다.

� 문제는 Throughput의 증가 없이 Connections 가 증가하는 경우가 문제가 되는 것이다. 간혹Connections가 전혀 감소하지 않는 경우가 있는 데 이는 어플리케이션에서 JDBC Connection을close()하지 않는 경우에 발생하므로 어플리케이션 수정이 필요

� 커넥션 풀을 보면 Waiter에 대한 항목들이 있는데 이는 커넥션 풀이 모자라서 대기하는 건수를나타내며 Connections High는 최대 Connection 개수가 된다. 따라서 최대 Connection 개수에 도달하여 더 이상의 Connection을 얻지 못할 때, Waiter가 증가하게 된다. 그러므로 이러한 수치가나온다면 이는 커넥션 풀의 Maximum Capacity가 적어서 나타나는 것으로 수치를 늘려주면 된다. 단, 일반적으로 이 수치는 쓰레드 개수보다 5개정도 낮은 수치내에서 책정이 되어야 한다. 이유는 모든 쓰레드가 항상 JDBC 커넥션 풀만을 사용하는 것은 아니기 때문이다.

� 가끔씩 Connections(Active하게 DB와 접속된 연결개수)가 증가한 후 줄어들지 않는 경우 이는어플리케이션에서 DB와의 연결이 오랫동안 지속되는 것을 나타내며 이는 Long 트랜잭션으로 향후행업을 초래할 수 있는 원인이 될 수도 있다. 물론 사용자가 많은 경우 이러한 Connections 수치가 높이 올라가지만 그만큼 사용자가 많아 Throughput도 증가하게 된다.

� 문제는 Throughput의 증가 없이 Connections 가 증가하는 경우가 문제가 되는 것이다. 간혹Connections가 전혀 감소하지 않는 경우가 있는 데 이는 어플리케이션에서 JDBC Connection을close()하지 않는 경우에 발생하므로 어플리케이션 수정이 필요

Page 43: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

422003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.2 5.2.2 5.2.2 5.2.2 WebLogic WebLogic WebLogic WebLogic 장애장애장애장애 발생시발생시발생시발생시 원인원인원인원인 분석을분석을분석을분석을 위한위한위한위한 조치조치조치조치 절절절절차차차차

안정화된 사이트에서 운영 중에 장애가 발생을 하는 경우 소스 변경이나 back-end 의 장애로 인하여 웹로직도 함께 장애가 발생하는 경우가 많으며, 가끔은 웹로직의 설정을 임의로 수정하여 발생하는 경우를 종종 보게 된다. 장애 발생시 빠른 조치를 위해 웹로직을 재시작 하는 것은 장애 원인 분석을 어렵게 만든다. 기본적인 웹로직 및 시스템 모니터링 결과와 웹로직 관련 로그 및 java stack trace 와 같은 것들은 꼭 남겨야 한다. 이러한 정보 만으로 모든 장애를 해결할 수 있는 것은 아니지만, 발생한 장애에 대한 원인분석을 위해 기본적으로 필요한 사항들이다.

조치 순서

① 웹로직 및 웹서버 프로세스 확인• ps –ef | grep java (웹로직 프로세스 확인)

� 웹로직 프로세스가 존재하지 않는 경우. => 9999번번번번으로 가세요.� 웹로직 프로세스가 존재하는 경우.

• ps –ef | grep httpd (웹서버 프로세스 확인)� 웹서버 프로세스가 존재하는지 확인

② 웹로직 로그 확인• 웹로직웹로직웹로직웹로직 로그로그로그로그 상에상에상에상에 특이한특이한특이한특이한 로그들이로그들이로그들이로그들이 남겨져남겨져남겨져남겨져 있는지있는지있는지있는지 확인확인확인확인.• 언제부터 남겨지기 시작했는지 확인.• 특이한 로그가 주기적으로 발생하는지 아닌지 확인.

③ 웹서버 로그• 웹서버의웹서버의웹서버의웹서버의 access access access access 로그로그로그로그, error , error , error , error 로그에로그에로그에로그에 특이한특이한특이한특이한 로그가로그가로그가로그가 있는지있는지있는지있는지 확인확인확인확인.• 웹서버의 환경 설정은 변경이 없었는지 확인

� 아파치 환경 설정 파일 : httpd.conf� IIS 환경 설정 파일 : iisproxy.ini� Iplanet 환경 설정 파일 : magnus.conf, obj.conf, mime.types

④ 웹서버 장애인지 웹로직 장애인지를 확인(디플로이된 테스트 페이지 호출)• 웹서버가 정상적인지 html 페이지를 직접 호출해 본다.

� http://ip:webserverport/test.html 혹은 http://Domain_name/test.html� 정상적으로 호출이 되지 않는다면 웹서버 장애로 판단.

• 웹로직이 정상적인지 jsp 페이지를 직접 호출해 본다.� http://ip:wlsport/test.jsp 혹은 http://Domain_name/test.jsp� 정상적으로 호출이 되지 않는다면 웹로직 장애로 판단.

⑤ java stack trace : hanghanghanghang----upupupup의의의의 경우경우경우경우 꼭꼭꼭꼭 남겨야남겨야남겨야남겨야 함함함함.• kill –3 pid (3-5초 간격으로 3회 이상)

⑥ 시스템 모니터링 결과를 취합• CPU 사용량, 메모리 사용량, 네트웍 상황, 웹로직과 웹서버의 소켓 개수 모니터링

� 장애 인지를 위해 모니터링한 시스템 관련 항목들을 취합⑦ 웹로직을 재시작⑧ 해당 로그 및 위 모니터링 결과를 분석.

• 추가적인 모니터링이 필요할 수 있음.⑨ 웹로직 프로세스가 존재하지 않는 경우

• 임의로 kill 된 것은 아닌지 확인� kill –9 로 kill 시키면 웹로직 로그에 남겨짐.

• /WL_HOME/core 파일이 있는지 확인• core 파일과 웹로직 로그를 백업

� 백업 해둔 웹로직 로그 파일 분석� 백업 해둔 core 파일은 시스템 엔지니어에게 분석을 의뢰

• 웹로직 재시작• 정상적인 서비스가 이루어지는지 확인

① 웹로직 및 웹서버 프로세스 확인• ps –ef | grep java (웹로직 프로세스 확인)

� 웹로직 프로세스가 존재하지 않는 경우. => 9999번번번번으로 가세요.� 웹로직 프로세스가 존재하는 경우.

• ps –ef | grep httpd (웹서버 프로세스 확인)� 웹서버 프로세스가 존재하는지 확인

② 웹로직 로그 확인• 웹로직웹로직웹로직웹로직 로그로그로그로그 상에상에상에상에 특이한특이한특이한특이한 로그들이로그들이로그들이로그들이 남겨져남겨져남겨져남겨져 있는지있는지있는지있는지 확인확인확인확인.• 언제부터 남겨지기 시작했는지 확인.• 특이한 로그가 주기적으로 발생하는지 아닌지 확인.

③ 웹서버 로그• 웹서버의웹서버의웹서버의웹서버의 access access access access 로그로그로그로그, error , error , error , error 로그에로그에로그에로그에 특이한특이한특이한특이한 로그가로그가로그가로그가 있는지있는지있는지있는지 확인확인확인확인.• 웹서버의 환경 설정은 변경이 없었는지 확인

� 아파치 환경 설정 파일 : httpd.conf� IIS 환경 설정 파일 : iisproxy.ini� Iplanet 환경 설정 파일 : magnus.conf, obj.conf, mime.types

④ 웹서버 장애인지 웹로직 장애인지를 확인(디플로이된 테스트 페이지 호출)• 웹서버가 정상적인지 html 페이지를 직접 호출해 본다.

� http://ip:webserverport/test.html 혹은 http://Domain_name/test.html� 정상적으로 호출이 되지 않는다면 웹서버 장애로 판단.

• 웹로직이 정상적인지 jsp 페이지를 직접 호출해 본다.� http://ip:wlsport/test.jsp 혹은 http://Domain_name/test.jsp� 정상적으로 호출이 되지 않는다면 웹로직 장애로 판단.

⑤ java stack trace : hanghanghanghang----upupupup의의의의 경우경우경우경우 꼭꼭꼭꼭 남겨야남겨야남겨야남겨야 함함함함.• kill –3 pid (3-5초 간격으로 3회 이상)

⑥ 시스템 모니터링 결과를 취합• CPU 사용량, 메모리 사용량, 네트웍 상황, 웹로직과 웹서버의 소켓 개수 모니터링

� 장애 인지를 위해 모니터링한 시스템 관련 항목들을 취합⑦ 웹로직을 재시작⑧ 해당 로그 및 위 모니터링 결과를 분석.

• 추가적인 모니터링이 필요할 수 있음.⑨ 웹로직 프로세스가 존재하지 않는 경우

• 임의로 kill 된 것은 아닌지 확인� kill –9 로 kill 시키면 웹로직 로그에 남겨짐.

• /WL_HOME/core 파일이 있는지 확인• core 파일과 웹로직 로그를 백업

� 백업 해둔 웹로직 로그 파일 분석� 백업 해둔 core 파일은 시스템 엔지니어에게 분석을 의뢰

• 웹로직 재시작• 정상적인 서비스가 이루어지는지 확인

Page 44: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

432003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.3 5.2.3 5.2.3 5.2.3 대표적인대표적인대표적인대표적인 WebLogic WebLogic WebLogic WebLogic 장애장애장애장애 유형유형유형유형 및및및및 대처대처대처대처 방법방법방법방법

소스 변경 시 자주 발생하는 장애로 상황이 지속되면 모든 웹로직 ExecuteThread 들이 무한 루프 구문을 수행하게 되어 결국 웹로직 은 Hang-up 현상으로 빠지며, 전혀 서비스를할 수 없는 상태에 도달하기도 한다. 소스 변경시 기능 테스트와 함께 CPU 사용량도 꼭 모니터링 해야 한다.

의견의견의견의견

• kill –3 pid 를 통해 동일한 ExecuteThread 번호에 동일한 작업이 수행중인지 확인.(3-

5초 간격으로 3회이상)

• 무한 루프가 발생하는 업무를 제거 또는 수정.

– 제거 또는 수정을 하지 않은 상태에서 웹로직 재시작은 무의미하다

조치조치조치조치

소스상에 무한 루프가 있는 경우원인원인원인원인

CPU CPU CPU CPU 사용량이사용량이사용량이사용량이 높은높은높은높은 수준을수준을수준을수준을 유지하며유지하며유지하며유지하며 변화가변화가변화가변화가 없는없는없는없는 경우경우경우경우유형유형유형유형

CPU관련 장애

오픈한지 얼마되지 않은 사이트에서 종종 발생하는 장애의견의견의견의견

• App에서 JDBC Connections 관련 부분의 소스상에서 close가 잘 이루어지는 확인조치조치조치조치

• close를 명시적으로 하지 않아 발생

– 웹로직 로그에 “No Resource Available” 에러 출력

– 웹로직 로그에 “Too many open cursor” 에러 출력

원인원인원인원인

JDBC Connection leak JDBC Connection leak JDBC Connection leak JDBC Connection leak 이이이이 발생한발생한발생한발생한 경우경우경우경우유형유형유형유형

JDBC 관련 장애

finally {if ( rs != null ) try {rs.close();}catch(Exception e){} //생략 가능if ( stmt != null ) try {stmt.close();}catch(Exception e){}if ( conn != null ) try {conn.close();}catch(Exception e){}

closeclosecloseclose를를를를 명시적으로명시적으로명시적으로명시적으로 하하하하기기기기 위한위한위한위한 코드코드코드코드 예예예예

Page 45: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

442003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.3 5.2.3 5.2.3 5.2.3 대표적인대표적인대표적인대표적인 WebLogic WebLogic WebLogic WebLogic 장애장애장애장애 유형유형유형유형 및및및및 대처대처대처대처 방법방법방법방법

GC가 일어나는 동안 서비스를 할 수 없기에 GC가 너무 빈번히 일어나게 되면 응답속도에 영향을 주기 때문에 적절한 GC패턴을 유지하는 것은 성능 향상에 필수적이다

의견의견의견의견

• App 버그를 찾아 수정.

• java 힙 메모리 설정을 변경.

– Xms, -Xmx 값을 늘려준다.

조치조치조치조치

• App에서 메모리를 지나치게 많이 사용하는 경우

• java 힙 메모리 설정이 부적절한 경우원인원인원인원인

GCGCGCGC가가가가 너무너무너무너무 빈번히빈번히빈번히빈번히 일어나는일어나는일어나는일어나는 경우경우경우경우유형유형유형유형

Memory 관련 장애

Sun, HP JDK와는 달리 IBM에서는 single heap 을 사용. IBM JDK의 경우 OutOfMemory 에러가 발생한다면 대부분의 경우가 App 상의 메모리 leak 일 확률이 높다

의견의견의견의견

• 힙 영역이 부족한 경우 힙 영역을 늘려준다.

– Xms, -Xmx 값을 늘려준다.

• 시스템 메모리가 부족한 경우 시스템 메모리를 늘려준다.

• 위와 같은 조치후 동일한 에러가 발생한다면 App상의 메모리 leak이 확실하며, App 하나 하나를 살펴 봐야 한다 .

조치조치조치조치

• 힙 영역 부족

• 시스템 메모리 부족

• App 상 메모리 leak 발생.

원인원인원인원인

OutOfMemory OutOfMemory OutOfMemory OutOfMemory 에러에러에러에러 로그가로그가로그가로그가 발생하는발생하는발생하는발생하는 경우경우경우경우유형유형유형유형

GCGCGCGC가가가가 많이많이많이많이 일어나는일어나는일어나는일어나는 경우의경우의경우의경우의패턴패턴패턴패턴

OutOfMemory OutOfMemory OutOfMemory OutOfMemory 에러에러에러에러 발생시발생시발생시발생시 그그그그래프래프래프래프

Page 46: WebLogic 운영자지침서 - cfs6.tistory.comcfs6.tistory.com/upload_control/download.blog?fhandle... · WebLogic Server 운영자지침서WebLogic Server 운영자지침서 2003.12

WebLogic Server WebLogic Server WebLogic Server WebLogic Server 운영자지침서운영자지침서운영자지침서운영자지침서

452003.12

5. 5. 5. 5. 장애장애장애장애 조치조치조치조치

5.2 5.2 5.2 5.2 장애인지장애인지장애인지장애인지 및및및및 조치절차조치절차조치절차조치절차

5.2.3 5.2.3 5.2.3 5.2.3 대표적인대표적인대표적인대표적인 WebLogic WebLogic WebLogic WebLogic 장애장애장애장애 유형유형유형유형 및및및및 대처대처대처대처 방법방법방법방법

java 프로세스가 kill 되면서 core 파일을 남기는 경우 정확한 원인 분석을 위해서는 core 파일 분석이 필수적이나, 대형 사이트를 제외하고는 core 분석이 잘 이루어지지 않는 경우가 대부분. 이런 경우 JDK를 업그래이드 하거나, 최신 OS JDK 패치 적용과 같은 작업을 선행한 후 core 발생 여부를 모니터링 하기도 함

의견의견의견의견

• 각 JDK 벤더에게 core 분석을 의뢰.

• hotspot 또는 jit compiler 의 버그로 인한 발생하는 경우 classic compiler 로 변경해줌으로써 해결 가능.

– IBM JDK : java ----DjavaDjavaDjavaDjava.compiler=NONE.compiler=NONE.compiler=NONE.compiler=NONE 을 웹로직 start 스크립트에 추가해줌.

• 최신 OS JDK 패치를 적용

조치조치조치조치

• JDK 버그로 인한 발생

• hotspot 또는 jit compiler 의 버그로 인한 발생

– 특정 페이지나 특정 서비스를 클릭하면 core 가 발생함.

• OS JDK 패치가 이루어지지 않은 경우

원인원인원인원인

웹로직웹로직웹로직웹로직 프로세스가프로세스가프로세스가프로세스가 Kill Kill Kill Kill 되면서되면서되면서되면서 core core core core 파일을파일을파일을파일을 남기는남기는남기는남기는 경우경우경우경우(Core, Crash) (Core, Crash) (Core, Crash) (Core, Crash) 유형유형유형유형

웹로직 프로세스 관련 장애

웹로직웹로직웹로직웹로직 프로세스프로세스프로세스프로세스 HangHangHangHang----up up up up 발생시발생시발생시발생시 그래프그래프그래프그래프

우선 hang-up 현상에서 가장 중요한 것은 java stack trace 를 남기는 것이다. java stack trace 를 통해 hang-up 당시 어떤 서비스를 수행하다가 장애가 발생했는지 원인 규명이 가능하다

의견의견의견의견

• kill –3 pid 를 통한 java stack trace 를 남김.(3-5초 간격으로 3회)

– java stack trace 를 통해 응답을 못 받고 있는지 아니면 데드락과 같은 현상이 발생했는지를확인.

• DB에서 응답을 받지 못 한 경우라면 Lock 걸린 Table이 있는지 확인 후 왜 Lock 이 풀리지않았는지를 확인

• 웹로직 관련 classes에서 데드락이 발생했다면 웹로직 패치를 요청

조치조치조치조치

• 웹로직의 모든 ExecuteThread 들이 연동 시스템(DB)의 응답을 기다리고 있으나 응답이 없는 경우

• 데드락이 발생한 경우

원인원인원인원인

웹로직웹로직웹로직웹로직 프로세스는프로세스는프로세스는프로세스는 존재하나존재하나존재하나존재하나 서비스가서비스가서비스가서비스가 되지되지되지되지 않는않는않는않는 경우경우경우경우(Hang(Hang(Hang(Hang----up)up)up)up)유형유형유형유형