웹로직 용어

개발/WEB 2017. 5. 24. 22:18

Domain
- wls 설치 후 전체 어플리케이션의 기반이 되는 제일 큰 논리 단위
- 도메인은 운영자 입장에서 관리하기 편하게 정의
- 조직/업무/개발/운영.....

Server
- 하드웨어와 관계없이 JVM 상에서 실행되는 하나의 weblogic.server 인스턴스
  ○ Admin Server : 도메인에 등록되어 있는 모든 서버를 관리 하기 위한 서버
  ○ Managed Server : Admin Server에 의해서 관리되는 실제 어플리케이션 배포/운영 서버

Machine
- 논리적으로 H/W 구분하는 단위

Cluster
- 여러개의 웹로직 서버 인스턴스를 묶어 하나의 서버 개념으로 구성할 수 있게 해주는 단위
  ○ Failover, Load Balancing, 어플리케이션 배포 등의 대응되는 개념

Node Manager
- 원격으로 웹로직 서버를 관리(start/stop) 하기 위한 기능


1. Domain
- 웹로직 서버 최상의 관리 단위
- 도메인 당 하나의
  ○ Admin Server가 반드시 있어야 함
  ○ Configuration Repository (config.xml)을 포함
  ○ 도메인  하나의 Admin Console
  ○ 도메인 별로 Domain Log생성
- 모든 서버 포함
  ○ Admin Server
  ○ Managed Server
  ○ Cluster
  ○ Machine 포함
- 리소스 포함
  ○ Application 배포, 데이터소스, JMS 등의 모든 리소스들을 포함
- Configuration Wizard (config.cmd / config.sh) 를 통해 도메인 작성 및 구성 변경

2. Domain 구성 예시
- 도메인 내에는 반드시 하나의 Admin Server가 존재 해야함
- 단일 도메인 내에는 반드시 동일한 웹로직 버전을 구성
- 클러스터를 복수의 도메인에서는 구성할 수 없음
- 웹로직 리소스(JMS, JDBC 등)은 도메인 간 공유할 수 없음

3. Domain 디렉토리
wl_server        : domain 이름
  autodeploy     : 개발모드일때 application을 autodeploy에 저장하여 자동배포
  bin            : start/stop 스크립트
  config         : 도메인에 대한 루트 configuration
     configCache
     deployments
     diagnostics
     jdbc
     jms
     lib
     nodemanager
     security     : 도메인 보안 관련 설정 파일
     startup
  console-ext     : WLS_HOME/server/lib/console-ext/diagnostics-consoleextension.jar 파일 복사하여 WLDF(Weblogic Diagnostic Framework) 사용하도록 설정
  init-info       : Configuration-Wizard에서 도메인 환경 변경이 init-info 디렉토리 에서 정보를 읽음
  lib
  pending         : 설정파일 변경에 대한 임시 저장소
  security
  servers         : 도메인 내의 Managed Server 들에 대한 개별 디렉토리
  tmp


4. 웹서버와 연결
- 웹서버 플러그인에 의해 웹서버와 연동
apache
Microsoft Internet Information Server (IIS)
Sun java System Web Server (Sun One Web Server)
Weblogic Server
- 통신 프로토콜 : HTTP / HTTPS
- 전송방식 : URL 패스에 근거한 전송, MIME 에 근거한 전송

5. 웹서버와의 제휴
- 구성패턴 : 웹서버와의 분
  ○ 정적콘텐츠, SSL 관련 처리는 웹서버
  ○ 동적콘텐츠, 비즈니스 논리는 WLS
- 인터넷으로부터의 접속은 web 서버
- DB접속은 was 서버

6. Node Manager
- 웹로직 서버를 시작/정지/지연 등의 관리를 할 수 있는 별도의 프로세스 실행되는 유틸리티
- 웹로직 서버가 운영되는 H/W 에서 실행되어야 함
- 관리대상 : Admin Server / Managed Server
- 제어항목 : 시작, 정지, 재시작, 모니터, 로그

7. Clustering and Node Manager

8. 운영환경
  *스크립트 변경항목
    클래스패스
    FD값
    JVM 옵션의 변경, java heap 사이즈등
  *classpath
    $DOMAIN_HOME/bin/setDomainEnv.sh
    PRE_CLASSPATH, POST_CLASSPATH, PATCH_CLASSPATH
  *FD값
    WL_HOME/common/bin/commEnv.sh
    ulimit -n xxxx
  *JVM Option
    $DOMAIN_HOME/bin/setDomainEnv.sh
    USER_MEM_ARGS, JAVA_OPTION
9. Start Script에 의한 시작

10. 개발모드, 프로덕션 모드

11. 로그 관리/감시
도메인 로그 : 도메인 내 서버 정보
서버 로그 : 서버의 상세 동작 정보, 에러출력
표준 출력 로그 : 서버의 상세 동작 정보 표준/에러 출력
엑세스 로그 : HTTP 액세스 정보
Datasource 로그 : SQL, JDBC 관련 동작
플러그인 로그 : web 플러그인 동작 정보

12. 서버 로그 레벨
TRACE : 진단/분석을 위한 메시지의 경우 사용
INFO : 일반적인 정보에 사용하는 저 레벨의 정보 메시지
NOTICE : 중요도가 높은 정보 메시지
WARNING : 문제가 있는 오퍼레이션 또는 컨피그레이션이 있을 경우 사용(일반적인 오퍼레이션에 지장 없음)
ERROR : 유저에러발생(에러 대처가능)
CRITICAL : 시스템 또는 서비스에러 발생(시스템을 회복할 수 있지만 서비스의 손실이나 문제가 발생할 가능성이 있음)
ALERT : 시스템의 특정의 서비스만이 사용 불능 상태(자동회복 실행 불가)
EMERGENCY : 서버가 사용 불능인 상태

 

Posted by ladon
,

var st = "12|3|45";

st = st.replace( /\|/gi , ',' ); // gi는 replaceAll 역할, \는 특수문자 앞에 붙임

console.log(st);

-----------------

12,3,45

 

Posted by ladon
,

이클립스 에러

 

문제 :
Java compiler level does not match the version of the installed Java project facet.

해결 :
프로젝트 properties > project facets > java version 맞게 설정

프로젝트 properties > project facets > jdk compile version 맞게 설정


문제 :
Cannot change version of project facet Dynamic Web Module to 3.0

해결 :
org.eclipse.wst.common.project.facet.core.xml 버젼확인 <installed facet="jst.web" version="3.0"/>

프로젝트 properties > project facets > Dynamic Web Module 3.0 확인

Maven -> Update Project

프로젝트홈 / .settings / org.eclipse.wst.common.project.facet.core.xml
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="jst.java" version="1.7"/>

프로젝트홈 / .settings / org.eclipse.jdt.core.prefs
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7

pom.xml에서 다음과 같이 plugin을 추가
<build>
 <finalName>hkgcni</finalName>
 <plugins>
  <plugin>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
           <source>1.8</source>
    <target>1.8</target>
   </configuration>
  </plugin>
 </plugins>
</build>


문제 :
[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:XXX' did not find a matching property.

해결 :
tomcat의 Publish module contents to separate XML files 체크


문제 :
Can't load IA 32-bit .dll on a AMD 64-bit platform

해결 :
JAVA 버젼 변경 32bit로


문제 :
Illegal key size

해결 :
AVA의 기본 정책으로는 AES128 암호화 방식까지만 사용이 가능하므로
AES256 방식으로 암호화를 하게 되면 아래와 같은 Exceptioin이 발생합니다
참고로 미 통상법에 의해 자국내에서만 AES256 방식이 허용되었다고 하네요

local_policy.jar US_export_policy.jar 를

C:\Program Files\Java 1.6.0\lib\security\ 에 복사

 

Posted by ladon
,
팝업 본인 리플래시
document.location.reload();

부모창 리플래시
opener.document.location.reload();

onUnload() - 페이지 나갈때 스크립트 실행
Posted by ladon
,

style에서 border을 0으로 준다
<input type="text" style="border=0" name="aa" value="" size="10">

마우스 포인터 손가락 모양으로 변경
style='cursor:hand'
Posted by ladon
,

팝업이나 화면중 원하는 위치에만 스크롤바를 걸고 싶을때

<div style="overflow-x:scroll; overflow-y:scroll; width:417px; height:310px;">

<table>
 <tr><td></td></tr>
</table>

</div>

// overflow-x:scroll; 을 지우면 가로 스크롤바는 안나오게 된다.
// overflow-y:auto; 로 하면 스크롤이 필요 없을때는 안나오다가 필요하면 나온다.
// width는 div가로 길이, height는 div 세로길이 이다.
// 보통 사용하는게 테이블만 걸고 싶을때 테이블을 div로 걸어주면 테이블만 스크롤이 생긴다.

Posted by ladon
,

문제점 :
 <html> 태그 이전에 <script>태그를 사용해서 alert을 찍어주면
 브라우저에 따라서 alert가 두번 실행되는 경우

 (간혹 플래그값으로 페이지 돌아 왔을때 같은경우에)

 이것은 로직이 2번 실행되는것 은 아님
 alert 이후에 로직이 실행 되어야 한다면

원인 :
 <html> 태그 이후에 <meta>태그로 캐릭터셋을 기본과 다르게 지정하면
캐릭터셋을 교체하기 위해서 리로드 하기 때문에 두번 호출 된다

해결 :
 스크립트를 <head>안에 넣거나
 onload이벤트를 적절히 활용하면 해결 된다.

Posted by ladon
,

// 오늘 날짜 구하기
function getDay(){
 var today = new Date();
 var ty = today.getFullYear();
 var tm = today.getMonth()+1;
 var td = today.getDate();

 if(tm < 10) {
  tm = "0"+tm;
 }
 if(td < 10) {
  td = "0"+td;
 }
 var todayValue = ty+"-"+tm+"-"+td
}

// 어제 날짜를 구할때는

var yesterday = new Date(today.valueOf()-(24*60*60*1000));
해서 오늘날짜랑 똑같이 계산하면 됨


// 특정일 에 대한 요일 구하기
function getWeek(strsDate){
 var weekName = new Array("일", "월", "화", "수", "목", "금", "토");
 var strYear = "";
 var strMonth = "";
 var strDay = "";
 var aDate = null;

 if( strsDate.indexOf("-") > 0){
  aDate = strsDate.split("-");
  strYear = aDate[0];
  strMonth = aDate[1];
  strDay = aDate[2];
 } else {
  strYear = strsDate.slice(0,4);
  strMonth = strsDate.slice(4,6);
  strDay = strDate.slice(6,8);
 }

 strDay = parseFloat(strDay);
 var sDate = strYear + "/" + strMonth + "/" + strDay;
 var tmpDate = new Date(sDate);
 var nWeek = tmpDate.getDay();
  
 document.forms[0].weekNameValue.value = weekName[nWeek];
}

Posted by ladon
,