JEUS
|
|
- 영호 정
- 5 years ago
- Views:
Transcription
1 JEUS Scheduler 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved.
2 Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 우 ) Restricted Rights Legend All TmaxSoft Software (JEUS ) and documents are protected by copyright laws and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. 이소프트웨어 (JEUS ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxSoft Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TmaxSoft의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks JEUS is registered trademark of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. JEUS 는 TmaxSoft Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Open Source Software Notice Some modules or files of this product are subject to the terms of the following licenses. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYMPHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1 Detailed Information related to the license can be found in the following directory : ${INSTALL_PATH/lib/licenses 본제품의일부파일또는모듈은다음의라이선스를준수합니다. : APACHE2.0, CDDL1.0, EDL1.0, OPEN SYM PHONY SOFTWARE1.1, TRILEAD-SSH2, Bouncy Castle, BSD, MIT, SIL OPEN FONT1.1 관련상세한정보는제품의다음의디렉터리에기재된사항을참고해주십시오. : ${INSTALL_PATH/lib/licenses 안내서정보안내서제목 : JEUS Scheduler 안내서발행일 : 소프트웨어버전 : JEUS v7.0 Fix#1 안내서버전 : v2.1.2
3 내용목차 안내서에대하여... ix 제1장 소개 개요 Scheduler 컴포넌트구조 Scheduler 서버... 2 제2장 Scheduler 프로그래밍 개요 JEUS Scheduler 클래스 작업정의 ScheduleListener 인터페이스구현 Schedule 클래스상속 RemoteSchedule 클래스상속 Scheduler 객체얻기 로컬환경에서 Scheduler 객체얻기 원격환경에서 Scheduler 객체얻기 작업등록 한번수행되는작업등록 반복되는작업등록 Schedule 작업객체등록 작업제어 Scheduler 사용 Standalone 환경에서사용 JEUS 서버에서사용 Java EE 컴포넌트에서사용 Job-list 사용 제3장 Scheduler 설정 개요 Job-list 설정 서버 Scheduler 설정 Thread Pool 설정 공용 Thread Pool 전용 Thread Pool 클라이언트컨테이너설정 색인 JEUS iii
4
5 그림목차 [ 그림 1.1] JEUS에서의 Scheduler 컴포넌트... 2 [ 그림 1.2] Scheduler 서버별수행방식... 2 [ 그림 2.1] Scheduler API 클래스... 6 [ 그림 3.1] WebAdmin 서버목록화면 [ 그림 3.2] WebAdmin Scheduler 설정화면 [ 그림 3.3] WebAdmin Scheduler 설정 - Lock 설정 [ 그림 3.4] WebAdmin Scheduler 설정 - Scheduler 사용설정 [ 그림 3.5] WebAdmin Scheduler 설정 - Job 추가 [ 그림 3.6] WebAdmin Scheduler 설정 - Job 저장 [ 그림 3.7] WebAdmin Scheduler 설정 - Job 추가확인 [ 그림 3.8] WebAdmin Scheduler 설정 - 추가된 Job 반영 [ 그림 3.9] WebAdmin Scheduler 설정 - Lock 설정 [ 그림 3.10] WebAdmin Scheduler 설정 - 공용 Thread Pool 설정 (1) [ 그림 3.11] WebAdmin Scheduler 설정 - 공용 Thread Pool 설정 (2) [ 그림 3.12] WebAdmin Scheduler 설정 - Lock 설정 [ 그림 3.13] WebAdmin Scheduler 설정 - 전용 Thread Pool 설정 (1) [ 그림 3.14] WebAdmin Scheduler 설정 - 전용 Thread Pool 설정 (2) JEUS v
6
7 예목차 [ 예 2.1] Task object example... 7 [ 예 2.2] Schedule object example... 8 [ 예 2.3] RemoteSchedule object example... 9 [ 예 2.4] 반복되는작업등록 [ 예 2.5] Schedule 작업객체등록 [ 예 2.6] ScheduleController.cancel 메소드사용 [ 예 2.7] Standalone 클라이언트에서 Scheduler 사용 [ 예 2.8] 리모트클라이언트에서 Scheduler 사용 [ 예 2.9] EJB에서 JEUS Scheduler 사용 [ 예 3.1] jeusadmin에서공용 Thread Pool 설정 [ 예 3.2] jeusadmin을통해 Scheduler Service 공용 Thread Pool 설정 [ 예 3.3] 클라이언트컨테이너설정 : <<jeus-client-dd.xml>> [ 예 3.4] Job-list 설정 : <<jeus-client-dd.xml>> JEUS vii
8
9 안내서에대하여 안내서의대상 본안내서는 JEUS Scheduler 기능을사용하고자하는관리자나프로그래머를대상으로한다. 안내서의전제조건 본안내서는 JEUS 시스템에대한전반적인이해와 JEUS 시스템이제공하는각종기능및특성에대한습득을위한기본서이다. 본안내서를원활하게이해하기위해서는다음과같은사항을미리알고있어야한다. RMI 및 JNDI에대한이해 JEUS의기본개념이해 Java에대한기본적인이해 안내서의제한조건 본안내서는제품특성상언급되는 Java EE나 Java 스펙에대해서자세히다루지않는다. 따라서해당내용은 Java 관련문서를참고한다. 실무에서의구체적인사용방법이나관리및운용에관한사항은각제품의안내서를참고한다. 참고 JEUS 시스템에대한기본적인내용은 "JEUS 소개 " 나 "JEUS 설치및시작하기 " 를참고한다. 안내서에대하여 ix
10 안내서구성 본안내서는총 3개의장으로구성되어있다. 제1장소개 JEUS Scheduler의기능과사용가능한환경, 수행방식에대해설명한다. 제2장 Scheduler 프로그래밍 JEUS Scheduler 프로그래밍에필요한기본지식과사용방법에대해서설명한다. 제3장 Scheduler 설정 JEUS Scheduler를설정하는방법에대해서설명한다. x JEUS Scheduler 안내서
11 안내서규약 표기 <<AaBbCc123>> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > 참고주의 [ 그림 1.1] [ 표 1.1] AaBbCc123 의미프로그램소스코드의파일명 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항주의할사항그림이름표이름 Java 코드, XML 문서 [ command argument ] < xyz > 옵션파라미터 < 와 > 사이의내용이실제값으로변경됨선택사항. 예 ) A B: A나 B 중하나파라미터등이반복되어서나옴 안내서에대하여 xi
12 시스템사용환경 본안내서의모든예제와환경구성은 UNIX의스타일에준하여작성되어 Microsoft Windows ( 이하 Windows) 와같이다른환경에서작업하는경우몇가지사항을고려해야한다. 예를들어경로구분자의경우 UNIX 스타일인 / 를 Windows 스타일인 \ 로바꿔서사용한다. 또한환경변수도 Windows 스타일로변경해서사용하면된다. 문서의내용은 Java 표준을고려해서작성했기때문에대부분의내용은동일하게적용된다. 관련안내서 안내서 JEUS 소개 JEUS 설치및시작하기 JEUS Server 안내서 JEUS Application Client 안내서 JEUS WebAdmin 안내서 설명 JEUS 7 서버에대한전반적인소개와 JEUS의아키텍처를포함하여각구성요소들에대해설명한안내서이다. JEUS에대한소개와설치및시작방법에대해기술한안내서이다. JEUS 시스템과서버의개요와시스템관리를위한안내서이다. Java EE 클라이언트와 JEUS 사이의상호운용에대해기술한안내서이다. JEUS의웹관리툴인 WebAdmin을사용한 JEUS 의설정및제어, 모니터링, 클러스터링, 리소스설정및관리에대해기술한안내서이다. 참고자료 Javadoc JEUS API JEUS_HOME/docs/api/jeus-api/index.html xii JEUS Scheduler 안내서
13 연락처 Korea TmaxSoft Co., Ltd 272-6, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, South Korea Tel: Fax: Web (Korean): 기술지원 : USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ U.S.A Tel: Fax: info@tmaxsoft.com Web (English): Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, Mita, Minato-Ku, Tokyo, Japan Tel: Fax: info@tmaxsoft.co.jp Web (Japanese): 안내서에대하여 xiii
14 China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, China Tel: ~8 Fax: Web (Chinese): xiv JEUS Scheduler 안내서
15 제 1 장소개 본장에서는 JEUS Scheduler 의기능과사용가능한환경, 수행방식에대해설명한다 개요 JEUS Scheduler는정해진시간에수행되거나반복적으로수행되는작업을 Scheduling할수있는기능을제공한다. Scheduler는 JEUS의확장된기능으로정해진시간에혹은주기적으로작업을수행해야할때사용할수있다. EJB의경우 Timer Service와같은기능을제공하는데이와유사한목적을지니고있으며 EJB 환경이아니더라도사용할수있다. 예를들어주기적으로임시파일을삭제한다거나, 주기적으로데이터베이스커넥션을체크하는등의시스템관리에사용할수도있다. Java EE 환경에서 Timer Service를이용하고자할때 Java SE Timer(java.util.Timer) 를직접사용할수없으므로 EJB Timer Service를사용하거나 JEUS에서제공하는 JEUS Scheduler를사용해야한다. EJB Timer Service는 EJB 환경에서만사용할수있는데반하여 JEUS Scheduler는모든 Java EE 환경에서사용할수있고일반 Java SE 애플리케이션에서도사용이가능하다. JEUS Scheduler는 Java SE Timer(java.util.Timer) 와유사하기때문에 Java SE Timer에익숙하다면 JEUS Scheduler를쉽게사용할수있다. 또한 Java SE Timer에는없는작업종료시점 (end time) 과최대수행횟수 (max count) 를지정할수있는기능도제공한다. JEUS Scheduler는다음과같이다양한환경에서사용이가능하다. Java SE 애플리케이션에서 Standalone Scheduler 사용 Java EE 애플리케이션클라이언트에서 Standalone Scheduler 사용 JEUS 서버 Scheduler Service를원격에서접속하여사용 JEUS 서버설정파일에 Job을등록해서사용 JEUS 서버 Scheduler Service를 Java EE 컴포넌트에서사용 제 1 장소개 1
16 1.2. Scheduler 컴포넌트구조 JEUS Scheduler는사용자애플리케이션내에서사용할수도있고 JEUS 서버에서사용할수도있다. JEUS 서버는원격에서접속할수있는 Scheduler Service를구동시킬수있으며설정파일을통해 Scheduling될작업을등록할수도있다. JEUS Scheduler의컴포넌트는다음과같은구조를갖는다. [ 그림 1.1] JEUS에서의 Scheduler 컴포넌트 Managed Server (one or more) Engines EJB Engine Servlet Engine JMS Engine Configuration Manager Agent Group Management Service External Resource Service JNDI Service Security Service Management (JMX) Service Deployment Service Class FTP Service Transaction Service Logging Service DataSource Service Session Service Scheduler Service ThreadPool Management Service Console Admin Service 1.3. Scheduler 서버 Scheduler 서버의종류에따라 Scheduler의수행방식이달라지고, Scheduler Service가구분된다. 다음은 Scheduler 서버의종류에따른수행방식을나타낸다. [ 그림 1.2] Scheduler 서버별수행방식 Client VM Scheduler Server Client App Server VM Scheduler Service Client VM Client App Server VM Scheduler Service Servlet EJB 1. use in Client container 2. use in Server 3. use in application deployed in Server 다음은각각의 Scheduler Service 를사용하는경우에대한설명이다. 서버 Scheduler Service 2 JEUS Scheduler 안내서
17 항상주기적으로수행되어야할작업을 scheduling할때사용한다. 서버에서항상수행되어야할주기적인작업이있다면 Job-list에미리등록하여서버가구동할때수행되도록할수도있다. Java EE 컴포넌트들 (Servlet, JSP, EJB 등 ) 이주기적으로수행되는작업을 Scheduling할때주로사용을 scheduling할때주로사용한다. 또한 JNDI 저장소에등록되어서원격클라이언트에서도사용할수있다. 클라이언트 Scheduler Service 애플리케이션클라이언트에서 Standalone 방식으로구동되는 JEUS Scheduler Service는애플리케이션클라이언트내부에서어떠한작업을주기적으로수행하는경우주로사용한다. 또한애플리케이션클라이언트가종료되면더이상수행될필요가없는작업인경우에사용한다. 제 1 장소개 3
18
19 제 2 장 Scheduler 프로그래밍 본장에서는 JEUS Scheduler 프로그래밍에필요한기본지식과사용방법에대해서설명한다 개요 JEUS 5 이후버전에서는이전 (4.x) 에사용되던방식과비교하여다음과같이몇가지사항이변경및추가되었다. 하지만 JEUS 5.0 Scheduler는기존버전과호환성을유지하고있기때문에기존에작성된프로그램도별도의수정없이운영이가능하다. SchedulerListener 인터페이스추가작업을정의하기위한인터페이스로 ScheduleListener 인터페이스가추가되었다. ScheduleListener 인터페이스는최상위작업인터페이스로모든작업은이인터페이스를구현 (imple ments) 해야한다. 기존에존재하던 Schedule 작업클래스도 ScheduleListener에서구현하고있다. 따라서 Schedule 작업클래스를상속해서작업을정의하지않아도 ScheduleListener를구현해서작업을정의할수있다. SchedulerFactory 클래스추가기존에사용되던클라이언트와서버용 SchedulerManager는더이상사용되지않으며 (deprecated), 새롭게 SchedulerFactory 클래스가추가되었다. SchedulerFactory는 Scheduler 객체를얻는데사용되며 Scheduler 객체를통해클라이언트환경, 서버환경, 리모트클라이언트환경의구별없이작업을등록할수있다. 다양한메소드추가 Scheduler 인터페이스에는작업을등록하는다양한메소드들이추가되었다. 이제작업을등록할때시작시간, 주기, 종료시간, 최대수행횟수를지정할수있다. Thread Pool을이용한멀티스레드방식으로변경기존의 JEUS Scheduler는기본적으로싱글스레드방식으로작업을수행했지만새로운 JEUS Scheduler 는 Thread Pool을이용하여각작업을별도의스레드로동작시킨다. 따라서어떤한작업이수행중에블록되더라도다른작업수행에영향이없다. Job-list 기능추가프로그래밍방식으로작업을등록하지않고 JEUS 서버설정에작업을등록할수있는 Job-list 기능이추가되었다. JEUS Scheduler 프로그래밍을이해하기위해먼저 JEUS Scheduler를구성하고있는클래스들을살펴보고, Scheduling 작업을정의하는방법, 작업을등록하는방법, 등록된작업을제어하는방법에대해설명한다. 이후에 JEUS Scheduler를어떤경우에사용할수있는지를알아본다. 본장에서설명하는모든예제파일들은 JEUS_HOME/samples/scheduler 디렉터리에서찾아볼수있다. 제 2 장 Scheduler 프로그래밍 5
20 2.2. JEUS Scheduler 클래스 기본적으로 JEUS Scheduler는 J2SE Timer와개념적인부분뿐만아니라유사한인터페이스를가지고있다. 작업을나타내는 java.util.timertask 클래스는 JEUS Scheduler의 jeus.schedule.schedulelistener 인터페이스와동일하고, 작업을등록하는 java.util.timer 클래스는 JEUS Scheduler의 jeus.schedule.scheduler 인터페이스와동일하다. 따라서이러한유사성을고려하여 JEUS Scheduler를사용한다면좀더쉽게익숙해질수있을것이다. 다음은각 Scheduler API 클래스에대한설명이다. [ 그림 2.1] Scheduler API 클래스 SchedulerFactory get instances ScheduleListener registered Scheduler implements Schedule extends RemoteSchedule returns ScheduleController JeusScheduler Exception API 클래스 설명 package jeus.schedule interface ScheduleListener abstract class Schedule JEUS Scheduler의모든클래스와인터페이스는 jeus.schedule 패키지와그하위패키지에소속되어있다. 정해진시간에수행되어야할작업은 ScheduleListener 인터페이스를구현 (implements) 하여클래스로정의된다. ScheduleLis tener는하나의 Callback 메소드인 ontime() 을가지고있어해당시간이되었을때이메소드가호출된다. ScheduleListener를구현한추상클래스로 JEUS 5 이전에사용하던작업클래스이다. 이클래스는 ontime() 이외에도 nexttime() Callback 메소드가있어서작업을등록할때호출될시간을예약 6 JEUS Scheduler 안내서
21 API 클래스 설명 하는것이아니라작업을등록한후에동적으로다음호출될시 간을결정할수있다. abstract class RemoteSchedule class SchedulerFactory interface Scheduler interface ScheduleController exception JeusSchedulerException 특수한 Schedule 클래스로 initialize() Callbak 메소드를가지고있어객체를생성할때초기화파라미터값을받을수있다. 실제 (concrete) Scheduler 객체를얻어오기위해사용된다. JEUS Scheduler에작업을등록하기위한핵심인터페이스로다양한 registerschedule() 메소드를정의하고있다. Scheduler에작업을등록하면 ScheduleController 인터페이스를구현한객체를리턴받는다. 이핸들객체는작업에대한정보를얻거나작업을취소할때사용된다. JEUS Scheduler에작업등록하거나취소할때에내부적으로문제가발생하는경우 JeusSchedulerException이발생할수있다. 참고 각인터페이스나클래스에대한자세한설명은 JEUS Scheduler Javadoc API 를참고한다 작업정의 작업을수행하기위해서는작업클래스를정의하고작업의수행시간및주기에따라알맞은방법으로작 업을정의해야한다 ScheduleListener 인터페이스구현 정해진시간에수행되어야할작업은 ScheduleListener 인터페이스를구현 (implements) 하여클래스로정의된다. ScheduleListener는하나의 Callback 메소드인 ontime() 을가지고있어해당시간이되었을때이메소드가호출된다. 따라서작업클래스를정의하기위해서는 ontime() 메소드를구현하고메소드내에서작업을수행하도록프로그램을작성한다. [ 예 2.1] Task object example public class SimpleTask implements ScheduleListener { private String name; private int count; // no-arg constructor is required if classname is used for task registration public SimpleTask() { 제 2 장 Scheduler 프로그래밍 7
22 public SimpleTask(String name) { this.name = name;... public void ontime() { count++; echo("##### " + name + " is waked on " + new Date()); Schedule 클래스상속 ScheduleListener를바로구현하지않고 Schedule 클래스나 RemoteSchedule 클래스를상속하여작업클래스를정의할수있다. Schedule 클래스나 RemoteSchedule 클래스는 JEUS 5 이전 Scheduler에서사용되던작업클래스이다. JEUS 5에서는일반적인작업을정의할때는 ScheduleListener를구현하도록하고있지만하위호환성을위해기존작업클래스를그대로제공하고있다. Schedule 추상클래스는 ontime() 이외에도 nexttime() 이라는 Callback 메소드가있어서작업을등록할때호출될시간을예약하지않고작업클래스내에서다음호출될시간을결정하도록한다. 따라서고정적인주기를갖는작업보다는가변적인주기를갖는작업의경우에좀더효휼적으로사용된다. JEUS Scheduler는 Schedule 작업객체의처음수행시간을결정하기위해작업객체를등록한후에먼저 nexttime() 을호출하여처음수행시간을정한다. 그런다음해당시간이되면 ontime() 을호출하여작업을수행하고 ontime() 이종료되면다시 nexttime() 을호출하여다음수행시간을정하게된다. nexttime() 은다음에작업이수행될절대시간을 Milli-Second(ms) 값으로넘겨주어야한다. 이때 0을리턴하면작업이더이상수행되지않게된다. Schedule 작업객체는 ontime() 이수행된후에 nexttime() 을호출하기때문에 ontime() 에서작업을수행한시간만큼 nexttime() 호출이지체된다. 따라서정확한간격으로작업을호출하도록프로그래밍하기가쉽지않다. 그렇기때문에되도록작업내에서 nexttime() 을통해반복주기를구현하기보다는작업을등록할때반복주기를설정하는것이좋다. [ 예 2.2] Schedule object example public class SimpleSchedule extends Schedule { private String name; private int count; private long period = 2000; // 2 seconds // no-arg constructor is required if classname is used for task registration public SimpleSchedule() { 8 JEUS Scheduler 안내서
23 public SimpleSchedule(String name) { this.name = name; public void ontime() { count++; echo("##### " + name + " is waked on " + new Date());... public long nexttime(long currenttime) { return currenttime + period; RemoteSchedule 클래스상속 RemoteSchedule 클래스는원격으로작업을등록할때초기화변수를지정할수있는 Schedule 객체이다. 주로원격에서클래스이름을통해작업객체를등록할때사용한다. 이클래스는 initialize() Callback 메소드를가지고있는데작업등록후에초기화파라미터로이메소드가한번호출된다. 따라서원격에서클래스이름으로작업을등록할때초기화값을설정하고싶을경우사용할수있다. initialize() Callback은 Scheduler.registerSchedule(classname, hashtable, daemon_flag) 메소드를이용하여 RemoteSchedule 작업객체를등록하는경우에만호출된다. [ 예 2.3] RemoteSchedule object example public class SimpleRemoteSchedule extends RemoteSchedule { private String name; private int count; private long period; // no-arg constructor is required if classname is used for task registration public SimpleRemoteSchedule() { // this is called by scheduler after creation public void initialize(hashtable parameters) { name = (String) parameters.get("name"); Long interval = (Long) parameters.get("interval"); if (interval!= null) period = interval.longvalue(); else period = 2000; 제 2 장 Scheduler 프로그래밍 9
24 public void ontime() { count++; echo("##### " + name + " is waked on " + new Date());... public long nexttime(long currenttime) { return currenttime + period; 참고작업을 Job-list를사용하여등록하거나 classname을사용하는 API를통해등록하는경우에는컨터이너가해당클래스를초기화하기때문에작업클래스에는 no-arg(default) 생성자 (constructor) 가반드시필요하다 Scheduler 객체얻기 본절에서는 Scheduler 객체를얻는방법에대해서알아본다. JEUS Scheduler 는로컬환경과원격환경 에서모두구동된다 로컬환경에서 Scheduler 객체얻기 로컬환경에서구동된다는것은프로그램이구동되고있는로컬 JVM 내에 Scheduler 인스턴스가생성되며, 등록된모든작업이같은 JVM 내에서구동된다는것을의미한다. JEUS Scheduler는 JVM 내에서현재하나의인스턴스만생성되며이인스턴스를 Default Scheduler라고한다. 따라서현재는 JVM 내에모든클라이언트들은 Default Scheduler를공유하게된다. 로컬환경의 JEUS Scheduler는일반 J2SE 애플리케이션이나 Java EE 애플리케이션클라이언트, Java EE 컴포넌트등에서사용된다. 로컬환경의 JEUS Scheduler를사용하기위해서 SchedulerFactory를이용한다. 다음과같이간단하게 Default Scheduler 인스턴스를얻을수있다. // Get the default scheduler Scheduler scheduler = SchedulerFactory.getDefaultScheduler(); 원격환경에서 Scheduler 객체얻기 원격환경에서구동된다는것은프로그램이구동되고있는 JVM 이아닌원격의다른 JVM 에서 Scheduler 인스턴스가생성되고, 등록된모든작업이원격 JVM 내에서구동된다는것을의미한다. 10 JEUS Scheduler 안내서
25 원격 Scheduler는 RMI 객체형태로나타나기때문에클라이언트는 RMI Call을통해 JEUS Scheduler를사용하게된다. JEUS 환경에서는 JEUS 서버에원격 Scheduler Service가기동된다. 원격환경의 JEUS Scheduler는원격클라이언트가 JEUS 서버에작업을등록할때사용된다. JEUS 서버에있는원격 JEUS Scheduler를사용하기위해서 JNDI Lookup을이용한다. 다음과같이 JEUS 서버 Scheduler 인스턴스 (Stub) 를얻을수있다. // Get the remote scheduler InitialContext ic = new InitialContext(); Scheduler scheduler = (Scheduler)ic.lookup( Scheduler.SERVER_SCHEDULER_NAME); 참고 JEUS 5 이전에사용되던 jeus.schedule.server.schedulermanager와 jeus.schedule.client.scheduler Manager는더이상사용되지않는다 (deprecated). 대신 SchedulerFactory를통해 Scheduler 객체를얻어서사용하기를권장한다. 하지만하위호환성을유지하기위해위클래스들은그대로제공된다 작업등록 본절에서는 Scheduler 인터페이스를이용하여작업을등록하는방법에대해서알아본다. 로컬환경이나원격환경에서 Scheduler 인스턴스를얻어왔다면작업을등록하는방법은동일하다. 단, 원격 JEUS Scheduler는작업객체가원격으로전송 (serialization) 되어원격으로운용된다 한번수행되는작업등록 단지특정시간에한번만수행되어야할작업의경우에는하나의수행시간만설정하여작업을등록할수있다. 이때수행시간은 java.util.date 객체로절대시간을설정하거나, Milli-Second(ms) 값으로현재시간을기준으로얼마의시간이지난후에수행되어야하는지설정할수있다. 다음의메소드를이용하여작업을등록한다. registerschedule(schedulelistener task, Date time, boolean isdaemon) registerschedule(schedulelistener task, long delay, boolean isdaemon) 다음은메소드사용에대한예이다. SimpleTask task1 = new SimpleTask("task1"); Date firsttime1 = new Date(System.currentTimeMillis() ); ScheduleController handle1 = scheduler.registerschedule(task1, firsttime1, false); 참고 메소드의파라미터에대한설명은 반복되는작업등록 을참고한다. 제 2 장 Scheduler 프로그래밍 11
26 반복되는작업등록 반복되는작업의경우첫수행시간, 주기, 종료시간, 최대수행횟수등을주어작업을등록할수있다. 반복되는작업의특성에따라반복주기를 Fixed-delay 방식이나 Fixed-rate 방식으로결정해야한다. Fixed-delay 방식작업이수행되는간격이일정하게유지된다. 작업의다음수행시간은이전수행시간과주기에의해서결정된다. 만약작업의수행이지체 ( 작업수행시간이오래걸리거나 garbage collection과같은외부이유에의해서지체되는경우 ) 되어다음작업이수행되어야할시기가지난경우에다음작업은바로수행되며, 그이후에수행되는작업들은그만큼지체된다. 따라서장기적으로는작업의수행시간이조금씩뒤쳐질수있다. Fixed-rate 방식작업이수행되는비율이일정하게유지된다. 작업의다음수행시간은첫수행시간과주기에의해서결정된다. 작업의수행이지체되더라도다음작업은바로뒤따라수행되며, 시간당수행되는비율을유지한다. 장기적으로작업의수행시간이초기에지정한주기에따라계속유지된다. 참고 JEUS Scheduler는 Fixed-rate 방식으로작업을등록하면비교적정확한호출시간을보장해주기위해작업수행이지체되더라도시간이되면다른스레드에의해작업을호출한다. 따라서작업수행이지체되는경우에같은작업이동시에 (concurrently) 수행된다. 따라서이러한경우에는작업객체가 Thread-safe한지고려해야한다. 다음의메소드를이용하여작업을등록한다. registerschedule(schedulelistener task, Date firsttime, long period, Date endtime, long maxcount, boolean isdaemon) registerschedule(schedulelistener task, long delay, long period, Date endtime, long maxcount, boolean isdaemon) registerscheduleatfixedrate(schedulelistener task, Date firsttime, long period, Date endtime, long maxcount, boolean isdaemon) registerscheduleatfixedrate(schedulelistener task, long delay, long period, Date endtime, long maxcount, boolean isdaemon) 작업을등록할때사용하는파라미터들은다음과같다. 파라미터 Date firsttime long delay long period 의미시작시간으로처음수행될시간을지정한다. 시작시간이다. 현재이후에처음수행될시간을지정한다. ( 단위 : ms) 반복수행주기를지정한다. ( 단위 : ms) 12 JEUS Scheduler 안내서
27 파라미터 Date endtime long maxcount boolean isdaemon 의미종료시간이다. 이시간이후에는작업이더이상수행되지않고 null인경우에는종료시간의제약이없다. 최대수행횟수이다. Scheduler.UNLIMITED인경우에는제한이없다. 원격으로 Schedule을등록하는경우에만의미가있으며 true 값으로설정하면클라이언트와의연결이종료되었을때작업이종료된다. 현재 RMI Runtime의 DGC(Distrubuted Garbage Collection) 정책에의해클라이언트가연결이종료되었음을판단하기때문에실제로클라이언트의연결이종료되고 15분정도가지나야종료되었음을탐지하게되어 Scheduling 이취소된다. boolean isthreaded 더이상사용되지않는다 (deprecated). 다음은작업을등록하는예제이다. [ 예 2.4] 반복되는작업등록 SimpleTask task2 = new SimpleTask("task2"); ScheduleController handle2 = scheduler.registerschedule(task2, 2000, 2000, null, Scheduler.UNLIMITED, false); SimpleTask task3 = new SimpleTask("task3"); Date firsttime3 = new Date(System.currentTimeMillis() ); Date endtime3 = new Date(System.currentTimeMillis() + 10 * 1000); ScheduleController handle3 = scheduler.registerscheduleatfixedrate(task3, firsttime3, 2000, endtime3, 10, false); Schedule 작업객체등록 Schedule이나 RemoteSchedule 작업객체를등록하는것은하위호환성을유지하기위해제공된다. 작업의처음수행시간과이후에반복되는수행시간은 Schedule 작업객체의 nexttime() 메소드를이용하기때문에등록할때는별도의파라미터를줄필요가없다. 이경우다음메소드를이용하여작업을등록한다. registerschedule(schedule task, boolean isdaemon) registerschedule(string classname, Hashtable params, boolean isdaemon) 다음은작업을등록하는예제이다. [ 예 2.5] Schedule 작업객체등록 Hashtable params = new Hashtable(); params.put("name", "task3"); 제 2 장 Scheduler 프로그래밍 13
28 params.put("interval", new Long(3000)); ScheduleController handle3 = scheduler.registerschedule( "samples.scheduler.simpleremoteschedule", params, true); SimpleSchedule task4 = new SimpleSchedule("task4"); ScheduleController handle4 = scheduler.registerschedule(task4, true); 주의 Scheduler 는 Managed Server(MS) 에서제공하는서비스이므로설정에주의한다. 만약설정이잘못 되어 Scheduler 를생성할수없다면, MS 는에러메시지를표시하고기동에실패한다 작업제어 JEUS Scheduler에작업을등록하면핸들 (handle) 인 ScheduleController 객체를리턴한다. 이객체는등록된작업하나당만들어지는데등록된작업을제어하기위해사용한다. 이핸들을이용하여작업에대한정보를얻어오거나작업을취소할수있다. 다음은 ScheduleController.cancel() 메소드를호출하여작업을취소하는예제이다. [ 예 2.6] ScheduleController.cancel 메소드사용 SimpleTask task2 = new SimpleTask("task2"); ScheduleController handle2 = scheduler.registerschedule(task2, 2000, 2000, null, Scheduler.UNLIMITED, false); Thread.sleep(10 * 1000); handle2.cancel(); 2.7. Scheduler 사용 작업정의, Scheduler 객체얻기, 작업등록, 작업제어까지완료하였다면 JEUS Scheduler를사용할준비가모두되었다. 본절에서는환경에따른 Schduler의사용방법에대해설명한다 Standalone 환경에서사용 일반 J2SE 애플리케이션이나 Java EE 애플리케이션클라이언트에서 JEUS Scheduler를사용할수있다. 이경우에는 JEUS 서버와별개로 JEUS Scheduler를 J2SE Timer와같이라이브러리처럼사용할수있다. Scheduler 객체를얻기위해서는 SchedulerFactory 클래스를이용한다. 또한로컬환경에서작업을등록할때 daemon flag는사용되지않으므로어떤값을넣어도무방하다. 다음은 Standalone 클라이언트예제이다. 14 JEUS Scheduler 안내서
29 [ 예 2.7] Standalone 클라이언트에서 Scheduler 사용 public class StandAloneClient { public static void main(string args[]) { try { // Get the default scheduler Scheduler scheduler = SchedulerFactory.getDefaultScheduler(); // Register SimpleTask which runs just one time echo("register task1 which runs just one time..."); SimpleTask task1 = new SimpleTask("task1"); Date firsttime1 = new Date(System.currentTimeMillis() ); ScheduleController handle1 = scheduler.registerschedule(task1, firsttime1, false); Thread.sleep(5 * 1000); echo(""); // Register SimpleTask which is repeated // with fixed-delay echo("register task2 which is repeated " + "until it is canceled..."); SimpleTask task2 = new SimpleTask("task2"); ScheduleController handle2 = scheduler.registerschedule(task2, 2000, 2000, null, Scheduler.UNLIMITED, false); Thread.sleep(10 * 1000); handle2.cancel(); echo(""); // Register SimpleTask which is repeated // with fixed-rate echo("register task3 which is repeated " + "for 10 seconds..."); SimpleTask task3 = new SimpleTask("task3"); Date firsttime3 = new Date(System.currentTimeMillis() ); Date endtime3 = new Date(System.currentTimeMillis() + 10 * 1000); ScheduleController handle3 = scheduler.registerscheduleatfixedrate( task3, firsttime3, 2000, endtime3, 10, false); Thread.sleep(12 * 1000); echo(""); // Register SimpleSchedule which is repeated // every 2 seconds echo("register task4 which is repeated " + "every 2 seconds..."); SimpleSchedule task4 = new SimpleSchedule("task4"); ScheduleController handle4 = scheduler.registerschedule(task4, false); 제 2 장 Scheduler 프로그래밍 15
30 Thread.sleep(10 * 1000); echo(""); // Cancel all tasks echo("cancel all tasks registerd on the scheduler..."); scheduler.cancel(); Thread.sleep(5 * 1000); System.out.println("Program terminated."); catch (Exception e) { e.printstacktrace(); private static void echo(string s) { System.out.println(s); Java EE 애플리케이션클라이언트에서 JEUS Scheduler 를사용하는경우에는 DD(jeus-client-dd.xml) 에 JEUS Scheduler 의 Thread Pool 에관련된설정을할수있다. 참고 1. Scheduler의 Thread Pool과관련된설정은 JEUS Reference Book 의 Thread Management 관련명령어 을참고한다. 2. Scheduler를사용한코드를컴파일하거나기동시키기위해서는 JEUS 관련클래스 (jeus.jar 등 ) 가클래스패스에지정되어있어야한다 JEUS 서버에서사용 JEUS 서버에 Scheduler Service가기동되어있다면원격클라이언트가이것을사용할수있는다. 그전에먼저 JEUS 서버에 Scheduler Service가기동되도록설정되어있어야한다. JEUS 서버 Scheduler Service는 RMI Scheduler 객체를 JNDI에등록한다. 따라서클라이언트에서는 JNDI Lookup을통해서원격 Scheduler 객체 ( 실제로는 Stub 객체 ) 를얻을수있다. 이객체의 JNDI 이름은 jeus_service/scheduler 로 Scheduler.SERVER_SCHEDULER_NAME 상수을사용한다. 일단 Scheduler 객체를얻으면작업을등록하는방법은동일하다. 단, 등록된작업객체는전송 (Serialization) 되어원격 Scheduler에서실제로운용된다. 즉, JEUS 서버에서수행된다. 이경우등록할때 daemon flag는의미가있으며, daemon flag를 true로등록하면원격클라이언트가종료되었을때원격작업도종료된다. 16 JEUS Scheduler 안내서
31 참고 JEUS 서버에 Scheduler Service 가기동되도록설정하는방법은 JEUS Reference Book 의 Thread Management 관련명령어 을참고한다. 다음은리모트클라이언트예제이다. [ 예 2.8] 리모트클라이언트에서 Scheduler 사용 public class RemoteClient { public static void main(string args[]) { try { // Get the remote scheduler InitialContext ic = new InitialContext(); Scheduler scheduler = (Scheduler)ic.lookup( Scheduler.SERVER_SCHEDULER_NAME); // Register SimpleTask which runs just one time echo("register task1 which runs just one time..."); SimpleTask task1 = new SimpleTask("task1"); Date firsttime1 = new Date(System.currentTimeMillis() ); ScheduleController handle1 = scheduler.registerschedule(task1, firsttime1, true); Thread.sleep(5 * 1000); echo(""); // Register SimpleTask which is repeated // with fixed-delay echo("register task2 which is repeated " + "until it is canceled..."); SimpleTask task2 = new SimpleTask("task2"); ScheduleController handle2 = scheduler.registerschedule(task2, 2000, 2000, null, Scheduler.UNLIMITED, true); Thread.sleep(10 * 1000); handle2.cancel(); echo(""); // Register SimpleRemoteSchedule which is repeated // every 3 seconds echo("register task3 which is repeated " + "every 3 seconds..."); Hashtable params = new Hashtable(); params.put("name", "task3"); params.put("interval", new Long(3000)); ScheduleController handle3 = scheduler.registerschedule( "samples.scheduler.simpleremoteschedule", params, true); 제 2 장 Scheduler 프로그래밍 17
32 Thread.sleep(10 * 1000); echo(""); // Cancel all tasks echo("cancel all tasks registerd on the scheduler..."); scheduler.cancel(); Thread.sleep(5 * 1000); System.out.println("Program terminated."); catch (Exception ex) { ex.printstacktrace(); private static void echo(string s) { System.out.println(s); 주의위예제를실행하려면해당작업클래스파일을 JAR 파일로묶어서 DOMAIN_HOME/lib/application 또는 SERVER_HOME/lib/application에복사하여위치시켜야한다. JEUS 서버가해당작업을수행하기위해서는해당클래스를로딩해야하기때문에 JEUS가이미기동되어있는상태라면반드시재기동해야한다 Java EE 컴포넌트에서사용 EJB나서블릿과같은 Java EE 컴포넌트에서 JEUS Scheduler를사용할수있다. 이때 JEUS Scheduler 는 JEUS 서버에서기동된다. EJB 2.1 표준에는 EJB Timer Service를명시하고있으며, JEUS 5에서도 EJB Timer Service를제공하고있다. 따라서 EJB 컴포넌트의경우 Java EE 표준을준수하려면 JEUS Scheduler 보다는 EJB Timer Service 를사용할것을권장한다. 하지만 EJB 외의 Java EE 컴포넌트에서는 EJB Timer Service를사용할수없으므로 JEUS Scheduler를사용해야한다. Java EE 컴포넌트에서 JEUS Scheduler를사용하는것은 Standalone JEUS Scheduler를사용하는방식과동일하다. SchedulerFactory 클래스를이용하여서버에서기동되는 Scheduler 객체를얻어온후에필요한등록메소드를호출하여작업을등록한다. 다음은 EJB에서 JEUS Scheduler 사용예제이다. [ 예 2.9] EJB에서 JEUS Scheduler 사용 public class HelloEJB implements SessionBean { private SimpleTask task; 18 JEUS Scheduler 안내서
33 private ScheduleController taskhandler; private boolean isstarted; public HelloEJB() { public void ejbcreate() { task = new SimpleTask("HelloTask"); isstarted = false; public void trigger() throws RemoteException { if (!isstarted) { Scheduler scheduler = SchedulerFactory.getDefaultScheduler(); taskhandler = scheduler.registerschedule( task, 2000, 2000, null, Scheduler.UNLIMITED, false); isstarted = true; public void ejbremove() throws RemoteException { if (isstarted) { taskhandler.cancel(); isstarted = false; public void setsessioncontext(sessioncontext sc) { public void ejbactivate() { public void ejbpassivate() { public class HelloClient { public static void main(string args[]) { try { InitialContext ctx = new InitialContext(); HelloHome home = (HelloHome) ctx.lookup("helloapp"); Hello hello = (Hello) home.create(); hello.trigger(); catch (Exception e) { 제 2 장 Scheduler 프로그래밍 19
34 e.printstacktrace(); 참고 JEUS 서버에서동작하는 JEUS Scheduler 에대해 Thread Pool 을설정할수있다. 설정하는방법에 대해서는 3.4. Thread Pool 설정 를참고한다 Job-list 사용 Job-list는 JEUS 서버에프로그래밍방식으로작업을등록하지않고설정파일을이용하여작업을등록하는것이다. Job-list는 JEUS 서버 Scheduler에등록할수있다. Job-list로작업을등록하면작업은 Fixedrate 방식으로반복수행된다. 참고 JEUS 서버에서동작하는 JEUS Scheduler 에대해 Job-list 를설정할수있다. 설정하는방법에대해 서는 3.2. Job-list 설정 를참고한다. 20 JEUS Scheduler 안내서
35 제 3 장 Scheduler 설정 본장에서는 JEUS 설정파일이나 Deployment Descriptor(DD) 에 JEUS Scheduler 를설정하는방법에대 해서설명한다 개요 JEUS Scheduler Service를사용하기위해서는각서비스별로필요한내용을설정해야한다. JEUS 서버에 Scheduler Service 설정원격에서 JEUS 서버 Scheduler Service에접근하는경우나 Job-list를이용하여 JEUS 서버에서주기적인작업을수행할서버에 Scheduler Service를활성화시켜야한다. Scheduler Service를활성화하려면 WebAdmin에서 Scheduler Service를사용하겠다는설정을해야한다. 이설정이되어있어야서버가부팅할때 Scheduler Service를시작시킨다. Scheduler Service를사용하도록설정한다. Scheduler Service에서사용할 Thread Pool 설정한다. 서버에서 scheduling되어수행할 Job-list에대해서설정한다. 클라이언트컨테이너에 Scheduler Service 설정 Deployment Descriptor(DD) 에서설정한다. Scheduler를사용하려면서비스를활성화시키는설정과 Thread Pool 설정그리고실제작업을수행할 Job-list 설정을해야한다 Job-list 설정 본절에서는실제작업을수행할 Job 을등록하는방법에대해설명한다. 프로그램코드에서작업을등록하는것외에 JEUS 설정파일에작업을등록하면 JEUS 서버가구동될때작업이자동으로 scheduling된다. Job은 scheduling될하나의작업단위를의미한다. Job에해당하는클래스는반드시 jeus.schedule.schedulelistener를구현해야하며해당클래스와관련클래스를 JAR 파일로묶어다음의경로에위치시켜야한다. 아래디렉터리는 Domain Administration Server( 이하 DAS) 와 Managed Server( 이하 MS) 사이에동기화 되지않기때문에사용자가수동으로동기화시켜주어야한다. DOMAIN_HOME/lib/application 제 3 장 Scheduler 설정 21
36 아래디렉터리는 JEUS를설치했을때생성되는디렉터리가아니므로사용자가직접생성해서위치시켜야한다. SERVER_HOME/lib/application Job은서버에설정하면 JEUS Scheduler Service에서작업이수행된다. 다음은 Job 을설정할때주의해서작성해야할항목에대한설명이다. 항목 Begin Time 설명 작업이최초로수행될시간을지정한다. 설정하지않을경우 JEUS 서버가기동할때 시작한다. 타입 : XML datetime type 형식 : yyyy-mm-ddthh:mm:ss.sss 만약등록한작업의 Begin Time이과거이면주기적으로현재시간이후에최초의수행되어야할시간에최초수행되도록조정된다. End Time 작업이끝날시간을지정한다. 설정되지않을경우종료하지않는다. 타입 : XML datetime type 형식 : yyyy-mm-ddthh:mm:ss.sss End Time 이과거인경우에작업은한번도수행되지않는다. Count 작업의최대수행횟수를지정한다. 설정되지않거나 -1 인경우최대수행횟수에제한이없다. 참고 Job-list 방식으로등록된작업은 Fixed-rate 방식으로반복된다. 따라서비교적정확한시간에호출되지만작업수행시간이오래걸릴때는작업이동시에진행될수있기때문에작업이 Thread-safe 하도록고려해야한다 서버 Scheduler 설정 본절에서는 WebAdmin 을통해실제서버에 Scheduler 를설정하는방법에대해서설명한다. 원격에서 JEUS 서버 Scheduler Service에접근하거나 Job-list를이용하여 JEUS 서버에서주기적인작업을수행하려면서버에 Scheduler Service를활성화시켜야한다. Scheduler Service를활성화하려면다음과같이 WebAdmin에서 Scheduler Service를사용하겠다는설정을해야한다. 이설정이되어있어야서버가부팅할때 Scheduler Service를시작시킨다. 다음은 Schedule 클래스상속 에서작성한예제를서버에 Job으로추가하는과정이다. 22 JEUS Scheduler 안내서
37 1. WebAdmin 의왼쪽메뉴에서 [Servers] 를선택하면, 서버목록조회화면으로이동한다. 서버목록에서 Scheduler 설정을변경할서버 (server1) 을선택한다. [ 그림 3.1] WebAdmin 서버목록화면 제 3 장 Scheduler 설정 23
38 2. Server 설정화면에서 [Resource] > [Scheduler] 메뉴를선택하면 Scheduler 설정화면으로이동한다. [ 그림 3.2] WebAdmin Scheduler 설정화면 24 JEUS Scheduler 안내서
39 3. WebAdmin 왼쪽메뉴하단에위치한 [LOCK & EDIT] 버튼을클릭하여 Scheduler 설정변경을위한 Lock을가져와야한다. Lock 설정변경에대한자세한설명은 JEUS WebAdmin 안내서 의 Lock 기능 을참고한다. Lock을설정한후에 Scheduler 설정을변경할수있다. [ 그림 3.3] WebAdmin Scheduler 설정 - Lock 설정 제 3 장 Scheduler 설정 25
40 4. 'Enabled' 항목이체크하고고급선택사항영역에서 Scheduler에서사용할 Thread Pool 정보를설정한다. Scheduler의 Thread Pool에관한내용은 3.4. Thread Pool 설정 을참고한다. 설정이완료되면 [ 확인 ] 버튼을클릭한다. 저장이완료되면화면상단에는설정변경저장에대한결과메시지가나타난다. 'Enabled' 항목이체크되어있는상태라면이과정은생략한다. [ 그림 3.4] WebAdmin Scheduler 설정 - Scheduler 사용설정 26 JEUS Scheduler 안내서
41 5. Job 을추가하기위해서는화면하단에 Job 목록에서 [Add] 버튼을클릭한다. [ 그림 3.5] WebAdmin Scheduler 설정 - Job 추가 6. Job 설정화면에서 Job 의이름과 Job 을수행할클래스이름, Job 이수행될주기를입력하고 [ 확인 ] 버 튼을클릭한다. [ 그림 3.6] WebAdmin Scheduler 설정 - Job 저장 제 3 장 Scheduler 설정 27
42 7. 다음은 [ 확인 ] 버튼을클릭하여변경한내용이임시저장된후의결과화면이다. 화면상단에서임시저 장결과에대한메시지와 Job 목록에서추가한 Job 을확인할수있다. [ 그림 3.7] WebAdmin Scheduler 설정 - Job 추가확인 8. [Activate changes] 버튼을클릭해서 Scheduler 를추가한내용을반영한다. 참고 운영중인서버에 Scheduler 를추가하거나변경하는작업은동적으로반영되지않는다. 설정만저장 해두었다가서버가재기동될때반영된다. 28 JEUS Scheduler 안내서
43 [ 그림 3.8] WebAdmin Scheduler 설정 - 추가된 Job 반영 9. 서버를재기동하면추가한 Job 이수행되면서서버로그에로깅된결과를조회할수있다. ##### waked on Tue Apr 23 14:50:19 KST 2013 ##### waked on Tue Apr 01 15:20:19 KST Thread Pool 설정 Scheduler Service는 Thread Pool을설정하여 Scheduler Service를수행하는데필요한 Thread의개수를조절한다. Thread Pool은 System Thread Pool을공유해서사용하는공용 Thread Pool과별도의 Thread Pool을설정하는전용 Thread Pool로나뉜다. 제 3 장 Scheduler 설정 29
44 본절에서는 WebAdmin 과콘솔툴을사용해서 Thread Pool 을설정하는방법에대해서설명한다. 항목에 대한자세한내용은 JEUS Server 안내서 의 Thread Pool 설정 을참고한다 공용 Thread Pool Scheduler Service 에서공용 Thread Pool 을사용할경우는 Thread 개수만미리할당해놓으면된다. WebAdmin 사용 다음은 WebAdmin을사용해서 Thread Pool을설정하는과정에대한설명이다. Thread Pool을설정하기전에 Lock 설정을변경해야한다. 1. Scheduler 설정화면에서고급선택사항에서 Thread Pool 설정을변경할수있다. [ 그림 3.9] WebAdmin Scheduler 설정 - Lock 설정 30 JEUS Scheduler 안내서
45 2. 고급선택사항의 Pooling 설정에서 'Shared' 항목을선택하고, 'Reserved Thread Num' 의개수를 10 으로설정한다. [ 확인 ] 버튼을클릭하면변경한설정이임시저장되고, 화면상단에서저장결과에대한메시지를확인할수있다. [ 그림 3.10] WebAdmin Scheduler 설정 - 공용 Thread Pool 설정 (1) 제 3 장 Scheduler 설정 31
46 3. [Activate Changes] 버튼을클릭해서서버에반영한다. 서버에 Activate가완료되면설정한 Scheduler 의 Thread Pool 설정이서버에반영되고, 반영에대한결과를 WebAdmin 화면상단에자세한메시지로보여준다. Thread Pool 설정은동적반영가능한항목이므로운영중인서버에변경된설정이적용된다. [ 그림 3.11] WebAdmin Scheduler 설정 - 공용 Thread Pool 설정 (2) 32 JEUS Scheduler 안내서
47 콘솔툴사용 다음은콘솔툴 (jeusadmin) 을통해 Scheduler의 Thread Pool을설정하는방법이다. [ 예 3.1] jeusadmin에서공용 Thread Pool 설정 [DAS]domain1.adminServer>modify-system-thread-pool server1 -service scheduler -r 10 Performed to MODIFY scheduler thread pool of a server (server1) successfully. You can check the results using "show-system-thread-pool server1 -service scheduler or modify-system-thread-pool server1 -service scheduler" [DAS]domain1.adminServer>show-system-thread-pool server1 -service scheduler show the current configuration scheduler thread pool of a server (server1) ================================================================================ Reserved Threads of the service scheduler ================================================================================ 전용 Thread Pool Scheduler Service에서전용 Thread Pool을사용할경우 WebAdmin과콘솔툴 (jeusadmin) 을통해설정할수있다. 본절에서는 WebAdmin과콘솔툴을사용하여전용 Thread Pool을설정하는방법에대해설명한다. WebAdmin 사용 다음은 WebAdmin을사용해서 Thread Pool을설정하는과정에대한설명이다. Thread Pool을설정하기전에 Lock 설정을변경해야한다. 1. WebAdmin의왼쪽메뉴에서 [Servers] 를선택하면, 서버목록조회화면으로이동한다. ([ 그림 3.1]) 서버목록에서설정할서버 (server1) 를선택하고, [Resource] > [Scheduler] 메뉴를선택해서 Scheduler 화면으로이동한다. 2. WebAdmin의왼쪽메뉴에서 [LOCK & EDIT] 버튼을클릭해서설정변경모드로전환한후에고급선택사항에서 Thread Pool 설정을변경할수있다. Lock 설정변경모드에대한자세한설명은 JEUS We badmin 안내서 의 Lock 기능 을참고한다. 제 3 장 Scheduler 설정 33
48 [ 그림 3.12] WebAdmin Scheduler 설정 - Lock 설정 34 JEUS Scheduler 안내서
49 3. 고급선택사항에서 'Pooling' 을체크하고 'Dedicated' 항목을선택한다. 'Min' 에 0, 'Max' 를 20으로설정하고 [ 확인 ] 버튼을클릭한다. [ 확인 ] 버튼을클릭하면변경한설정이임시저장되고, 화면상단에서저장결과에대한메시지를확인할수있다. [ 그림 3.13] WebAdmin Scheduler 설정 - 전용 Thread Pool 설정 (1) 제 3 장 Scheduler 설정 35
50 4. [Activate Changes] 버튼을클릭해서서버에반영한다. 서버에 Activate가완료되면설정한 Scheduler 의 Thread Pool 설정이서버에반영되고, 반영에대한결과를 WebAdmin 화면상단에자세한메시지로보여준다. Thread Pool 설정은동적반영가능한항목이므로운영중인서버에변경된설정이적용된다. [ 그림 3.14] WebAdmin Scheduler 설정 - 전용 Thread Pool 설정 (2) 36 JEUS Scheduler 안내서
51 콘솔툴사용 다음은콘솔툴 (jeusadmin) 을통해 Scheduler의 Thread Pool을설정하는방법이다. [ 예 3.2] jeusadmin을통해 Scheduler Service 공용 Thread Pool 설정 [DAS]domain1.adminServer>show-service-thread-pool server1 -service scheduler Shows the current configuration ================================================== Name Value (No data available) ================================================== [DAS]domain1.adminServer>modify-service-thread-pool server1 -service scheduler -min 0 -max 20 Performed to MODIFY scheduler thread pool of server (server1) successfully. But ALL changes are non-dynamic. They must be applied after RESTART. you can check out the results using "show-service-thread-pool server1 -service scheduler or modify-service-thread-pool server1 -service scheduler" [DAS]domain1.adminServer>show-service-thread-pool server1 -service scheduler show the current configuration ==================================================================== Name Value Min 0 Max 20 Keep alive Time Queue Size 4096 Max Stuck Thread Time Action on Stuck Thread NONE ==================================================================== 참고 Scheduler Service의 Thread Pool 설정을수정하는것은동적반영가능하기때문에서버를재기동하지않아도된다. 하지만공용 Thread Pool을사용하다가전용 Thread Pool을사용하도록 Thread Pool의타입을변경하는경우동적반영되지않기때문에서버를재기동해야한다. 제 3 장 Scheduler 설정 37
52 3.5. 클라이언트컨테이너설정 Java EE 애플리케이션을사용하는경우클라이언트컨테이너에서구동되는 JEUS Scheduler에대해설정한다. 애플리케이션클라이언트를위한 JEUS DD인 jeus-client-dd.xml 파일에다음과같이 <scheduler> 설정을추가한다. [ 예 3.3] 클라이언트컨테이너설정 : <<jeus-client-dd.xml>> <?xml version="1.0"?> <jeus-client-dd> <module-info>... </module-info>... <scheduler> <enabled>true</enabled> <!-- Scheduler Thread-pool settings --> <pooling> <dedicated> <min>2</max> <max>10</max> <keep-alive-time>60000</keep-alive-time> <queue-size>4096</queue-size> <stuck-thread-handler> <max-stuck-thread-time> </max-stuck-thread-time> <action-on-stuck-thread>none</action-on-stuck-thread> </stuck-thread-handler> </dedicated> </pooling> </scheduler> </jeus-client-dd> 위의설정파일을수정한후에 JEUS 서버를재기동할필요는없지만, 클라이언트모듈과클라이언트컨 테이너는재기동해야수정한설정내용이반영된다. 주의클라이언트컨테이너에서 Scheduler Service를사용할때는공용 Thread Pool은사용할수없다. 클라이언트컨테이너와애플리케이션클라이언트에대해서는 "JEUS Application Client 안내서 " 를참고한다. 38 JEUS Scheduler 안내서
53 다음은클라이언트컨테이너에서수행할 Job 설정예제이다. [ 예 3.4] Job-list 설정 : <<jeus-client-dd.xml>> <scheduler>... <job-list> <job> <class-name>samples.schedulejob</class-name> <name>schedulejob</name> <description>this is a sample for scheduler service</description> <begin-time> t00:00:00</begin-time> <end-time> t00:00:00</end-time> <interval> <minutely>30</minutely> </interval> <count>-1</count> </job> </job-list> </scheduler> 제 3 장 Scheduler 설정 39
54
55 색인 O ontime, 6, 7, 8 P package jeus.schedule, A abstract class RemoteSchedule, 7 abstract class Schedule, 6 C cancel, 14 class SchedulerFactory, 7 D daemon, 9, 14, 16 E EJB Timer Service, 1, 18 exception JeusSchedulerException, 7 F Fixed-delay 방식, 12 Fixed-rate 방식, 12 I initialize() Callback, 9 interface ScheduleController, 7 interface ScheduleListener, 6 interface Scheduler, 7 R registerschedule, 12 registerscheduleatfixedrate, 12 boolean isdaemon, 13 boolean isthreaded, 13 Date endtime, 13 Date firsttime, 12 long delay, 12 long maxcount, 13 long period, 12 RemoteSchedule, 7, 8, 9 S ScheduleFactory, 14 SchedulerFactory, 5, 7, 10, 11, 18 SERVER_SCHEDULER_NAME, 11, 16 Standalone Scheduler, 18 ㅋ 클라이언트컨테이너, 38 J JEUS Scheduler, 1 Job-list, 5, 20, 21, 22 L Lookup, 11 N nexttime, 7, 8 색인 41
56
JEUS
JEUS Scheduler 안내서 JEUS v6.0 Fix#8 Copyright 2011 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2011 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More informationTmax
Tmax JTmaxServer User Guide Tmax v5.0 SP1 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자
More information목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에
개념정리및샘플예제 EJB stateful sample 문서 2016. 01. 14 목차 JEUS EJB Session Bean가이드... 3 1. stateful session bean... 3 1.1 stateful sample 가이드... 3 1.1.1 sample source... 3 1.1.2 결과확인... 6 1.2 http session에서사용하기...
More informationInterstage5 SOAP서비스 설정 가이드
Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service
More information교육2 ? 그림
Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,
More informationrmi_박준용_final.PDF
(RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:
More informationMicrosoft Word - AnyLink Introduction v3.2.3.doc
Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. AnyLInk Copyright Notice Copyright 2007 Tmax Soft Co., Ltd. All Rights Reserved. Tmax Soft Co., Ltd. 대한민국서울시강남구대치동 946-1 글라스타워 18 층우 )135-708 Restricted
More informationuntitled
Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.
More information개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.
설치및환경설정 JDBC 접속세션구분 / 확인 2013. 11. 01 개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 사용하기 JEUS 에서설정방법
More informationq 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2
객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가
More information[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step
기타지식 [JEUS 7.0] eclipse plug-in 연동 2015. 06. 09 [JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step. 1]
More informationNetwork Programming
Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI
More informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More informationPowerPoint Presentation
Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More information제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More informationTibero
Tibero 클라이언트설치가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights
More information개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식
Tibero DB Link (Tibero To Oracle) - Local 방식 2014. 04. 16. 목차 1. 구성환경... 3 2. 환경설정... 3 2.1. Tibero 서버 (AIX) 에 Oracle instance Client 파일을업로드... 3 2.2. Oracle Instance Client에대한환경설정등록 (.profile)... 4 2.3.
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More informationJEUS
JEUS SNMP 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More information설치및환경설정 JEUS Thread State Notify 설정
JEUS Thread State Notify 설정 2014. 07. 02 목차 1. thread-state-notify 설정... 3 1.1 시나리오 #1. max-thread-active-time : 10초... 3 1.2 시나리오 #2. max-thread-active-time : 10초, thread-interrupt-execution : true...
More informationMicrosoft PowerPoint - 04-UDP Programming.ppt
Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여
More information목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...
개발및운영 JEUS7 Node Manager 가이드 2014. 12. 15 목차 1. 노드매니저종류... 3 1.1 Java Type... 3 1.2 SSH Type... 3 2. 노드설정파일및로깅... 3 2.1 nodes.xml... 3 2.2 jeusnm.properties... 4 2.3 .properties... 4 2.4 JeusNodeManager.log...
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More information예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A
제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor
More informationAPI 매뉴얼
PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations
More informationIntro to Servlet, EJB, JSP, WS
! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g
More informationNo Slide Title
J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol
More informationMicrosoft PowerPoint - RMI.ppt
( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix
More informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More informationPowerPoint 프레젠테이션
@ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation
More information비긴쿡-자바 00앞부속
IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter
More informationPowerPoint Presentation
객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television
More informationAnalytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras
Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios
More informationgnu-lee-oop-kor-lec06-3-chap7
어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More information< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10
(https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More informationChap12
12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)
More informationMobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V
Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4
More informationSystem Recovery 사용자 매뉴얼
Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.
More information제8장 자바 GUI 프로그래밍 II
제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로
More information1
1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2
More information歯Writing_Enterprise_Applications_2_JunoYoon.PDF
Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part2 JSTORM http//wwwjstormpekr Revision Document Information Document title Writing Enterprise Applications
More informationPowerPoint 프레젠테이션
@ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability
More informationvRealize Automation용 VMware Remote Console - VMware
vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation
More information인디쓔피-IOM핸돜벁닄큐1014pdf, page 59 @ Preflight ( IOM핸돜벁닄큐__1014 )
Publisher: International Organization for Migration 17, route des Morillons 1211 Geneva 19 Switzerland Tel: +41.22.717 91 11 Fax: +41.22.798 61 50 E-mail: hq@iom.int Internet: http://www.iom.int ISBN 978
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More informationAPI STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum
API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More information마리오와 소닉 리우 올림픽™
마리오와 소닉 리우 올림픽 1 사용하기 전에 준비하기 2 유저 콘텐츠에 대하여 3 인터넷으로 이용 가능한 기능 4 보호자 여러분께 5 amiibo란 시작하기 전에 6 게임 소개 7 게임 시작 방법 8 조작 방법 9 데이터 저장과 삭제 통신으로 더욱 즐기기 10 대전 모드 11 포켓 마라톤 12 기록 기타 13 사용 곡명과 작곡자 소개 14 플레이 정보 송신
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information개발및운영 Tibero Perl 연동
Tibero Perl 연동 2014. 05. 27. 목차 1. Windows에서의홖경구성... 3 1.1 Tibero ODBC Driver 설치... 3 1.2. Tool 설치... 5 2. Unix에서의홖경구성... 6 2.1 iodbc 설치... 7 2.2 Tibero 설치... 7 2.3 Iodbc drvier manager 등록... 7 3. Tibero
More information(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])
Chapter 17. RMI Mingyu Lim Collaborative Computing Systems Lab, School of Internet & Multimedia Engineering Konkuk University, Seoul, Korea 학습목표 RMI란 RMI 구조 RMI는어떻게동작하는가 로컬객체를원격객체로변경하기 RMI를이용한계산기애플리케이션
More informationthesis
CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation
More informationSpring Boot
스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More information. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요
. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,
More information슬라이드 1
Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치
More information09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위
01 노동법 법원으로서의 노동관행 15 - 대판 2002.4.23, 2000다50701 [퇴직금] (한국전력공사 사례) 02 노동법과 신의성실의 원칙 17 - 대판 1994.9.30, 94다9092 [고용관계존재확인등] (대한조선공사 사례) 03 퇴직금 청구권 사전 포기 약정의 효력 19 - 대판 1998.3.27, 97다49732 [퇴직금] (아시아나 항공
More information슬라이드 1
UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)
More information<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 19 장배치관리자 이번장에서학습할내용 배치관리자의개요 배치관리자의사용 FlowLayout BorderLayout GridLayout BoxLayout CardLayout 절대위치로배치 컨테이너안에서컴포넌트를배치하는방법에대하여살펴봅시다. 배치관리자 (layout manager) 컨테이너안의각컴포넌트의위치와크기를결정하는작업 [3/70] 상당히다르게보인다.
More information오버라이딩 (Overriding)
WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener
More informationMasoJava4_Dongbin.PDF
JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr
More informationI T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache
More informationgnu-lee-oop-kor-lec10-1-chap10
어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class
More information* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f
JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage
More information목차 JEUS JNLP Client Sample 가이드 JNLP 란 JNLP의이점 TEST TEST 환경 TEST Sample sample application 셋팅 (ser
기술교육 JEUS JNLP Sample 가이드 2015. 06. 19 목차 JEUS JNLP Client Sample 가이드... 3 1. JNLP 란... 3 2. JNLP의이점... 3 3. TEST... 3 3.1 TEST 환경... 3 3.2 TEST Sample... 4 3.2.1 sample application 셋팅 (server side)...
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More informationView Licenses and Services (customer)
빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차
More informationAPI - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어
메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -
More informationConnection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET
135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26
More information자바 프로그래밍
5 (kkman@mail.sangji.ac.kr) (Class), (template) (Object) public, final, abstract [modifier] class ClassName { // // (, ) Class Circle { int radius, color ; int x, y ; float getarea() { return 3.14159
More informationBSC Discussion 1
Copyright 2006 by Human Consulting Group INC. All Rights Reserved. No Part of This Publication May Be Reproduced, Stored in a Retrieval System, or Transmitted in Any Form or by Any Means Electronic, Mechanical,
More information개발및운영 Eclipse 를이용한 ANT 활용방법
Eclipse 를이용한 ANT 활용방법 2014. 04. 09 목차 Eclipse를이용한 ANT 활용방법... 3 1. ant 사용전준비사항... 3 1.1 ant Install... 3 1.2 Java Project 생성... 5 2. ant 활용방법... 10 2.1 ant project 생성... 10 3. ant 설정... 13 3.1 ant directory...
More informationMicrosoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx
2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More informationfundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…
Command JSTORM http://www.jstorm.pe.kr Command Issued by: < > Revision: Document Information Document title: Command Document file name: Revision number: Issued by: Issue
More informationJavaGeneralProgramming.PDF
, Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More informationJAVA PROGRAMMING 실습 09. 예외처리
2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change
More informationBusiness Agility () Dynamic ebusiness, RTE (Real-Time Enterprise) IT Web Services c c WE-SDS (Web Services Enabled SDS) SDS SDS Service-riented Architecture Web Services ( ) ( ) ( ) / c IT / Service- Service-
More informationJEUS
JEUS JMX 안내서 JEUS v7.0 Fix#1 Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted
More information(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])
예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음
More informationJ2EE & Web Services iSeminar
9iAS :, 2002 8 21 OC4J Oracle J2EE (ECperf) JDeveloper : OLTP : Oracle : SMS (Short Message Service) Collaboration Suite Platform Email Developer Suite Portal Java BI XML Forms Reports Collaboration Suite
More informationPowerPoint 프레젠테이션
Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More information기술자료
1 쪽중 1 쪽 WebLogic Server 8.1 Tutorials 03 - 리소스 (JDBC, JMS 등 ) 설정 본문서에서는 MedRec 애플리케이션을디플로이하고서비스하기위해서필요한 WebLogic Server 의리소스들을설정하는방법에대하여설명할것이다. 1. JDBC(Java Database Connectivity) Connection Pool 과 Data
More informationSolaris Express Developer Edition
Solaris Express Developer Edition : 2008 1 Solaris TM Express Developer Edition Solaris OS. Sun / Solaris, Java, Web 2.0,,. Developer Solaris Express Developer Edition System Requirements. 768MB. SPARC
More informationPowerPoint 프레젠테이션
인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음
More informationPowerPoint Presentation
객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리
More information슬라이드 1
- 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.
More informationJMF2_심빈구.PDF
JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet
More information