1. 개요방화벽에서는 지정한 포트에 대해서 접근허용에 대한 세션을 지정한 시간동안만 저장해둔다.설정한 시간동안 요청이 없을시에는 세션 내용을 삭제한다.따라서 두 서버간에 커넥션 상태가 establish이어도 제대로 데이터 전송이 되질 않는다. 이런 문제를 방지하고자 WebtoB 는 지속적으로 JEUS WebContainer에게WebtoB의 설정 파일에 정의된 "svrchktime" 변수 값의 간격으로 "ping"메시지를 보낸다.Web Container는 여기에서 정의한 시간 간격으로 WebtoB의 ping을 체크한다.WebtoB 의 ping 이 여기에서 설정된 시간 간격 내에서 발견되지 않으면 통신 연결은 끊어진 것으로간주되어 다시 설정된다. 그러므로, 여기의 값은 "svrchktime"보다 커야 한다...
awk에서 쓰이는 정규표현식 메타문자 ^ 행의 시작 지시자 $ 행의 끝 지시자 . 하나의 문자와 대응 * 선행 문자와 같은 문자의 0개 혹은 임의 개수와 대응 + 선행 문자와 같은 하나 이상의 문자와 대응 ? 선행 문자와 같은 문자의 0개 혹은 하나와 대응 [ABC] [ ] 사이의 문자 집합 중 하나와 대응 예들들어, A이거나 B 혹은 C [^ABC] [ ] 사이의 무자 집합에 속하지 않는 한 문자와 대응 [A-Z] A부터 Z사이의 문자 집합 중 하나와 대응 A|B A나 B와 대응 (AB) 하나 이상의 문자셋 AB와 대응 \* 문자로서의 *와 대응 & 검색열을 저장하여 치환열에서 사용할 수 있게 한다
[CPU] AIX lsdev -Cc processor HP-UX ioscan -fnC processor SOLARIS psrinfo -v LINUX cat /proc/cpuinfo [Physical RAM] AIX bootinfo -r HP-UX grep -i Physical /var/adm/syslog/syslog.log SOLARIS Prtconf LINUX free [Kernel Bits] AIX bootinfo -K HP-UX getconf KERNEL_BITS SOLARIS isainfo -kv LINUX getconf WORD_BIT [Service Switch] AIX /etc/netsvc.conf HP-UX /etc/nsswitch.conf SOLARIS /etc/nsswitch.conf ..
index.html index.jsp login.jsp 404 /notFoundError.jsp 404 /error/404.jsp 500 /error/500.jsp java.lang.Throwable /errors/jspcatch.jsp a.MyException /error.jsp 3600 WorkerServlet jeus.servlet.servlets.WorkerServlet -1 WorkerServlet /servlets/* empServlet samples.servlets.EmpSelectServlet -1 empServlet empServlet z application/x-compress zip application/zip
JEUS의 WorkerServlet은 평상 패키지 구분자를 /로 인식한다.이것을 바꿔주는 옵션은 아래와 같이 PackageSeparator를 바꿔주면 된다.그러면 servlets/com.xxx.xxx.xxxservlet을 인식한다. web.xml ...중략… WorkerServlet jeus.servlet.servlets.WorkerServlet PackageSeparator . -1 WorkerServlet /servlets/* …중략…
개요모사이트 시스템에서 gc로그를 확인하여 보면 total heap size가 동적으로 변동이 되고 있고 있었다. 자세히 따지면 new영역을 동적으로 관리하는 기능이다. 앞전에 이런기능이 있는걸로 알고 있었지만, 문제는 full gc가 너무 빈번하게 발생하였다.그래서 7월9일에 New영역을 동적으로 변동시켜는 기능을 비활성화설정을 하고 나서 지켜본 결과 full gc가 거의 일어나지 않고 있음을 확인할 수 있었다. 그에 따라 UseAdaptiveSizePolicy 옵션에 대하여 알아보았다. Q. UseAdaptiveSizePolicy 가 무엇인가?-XX:+UseAdaptiveSizePolicy: Adaptive하게 New Generation의 크기가 Survivor Space의 크기를 변경할 것인지의 여..
1. 개요 AIX는 다른 OS와는 달리, Thread Dump 를 생성하면 file로 따로 생성된다. 2. 설정법 - 관련 파일 : .profile - 설정 내역 export IBM_JAVA_HEAPDUMP_TEXT=true export IBM_HEAPDUMP=true export IBM_HEAP_DUMP=true export IBM_HEAPDUMP_OUTOFMEMORY=true export IBM_JAVADUMP_OUTOFMEMORY=true export IBM_HEAPDUMPDIR=$JEUS_HOME/logs/javacore export IBM_JAVACOREDIR=$JEUS_HOME/logs/javacore
File Descriptor- file descriptor의 수는 동시에 핸들링이 가능한 파일의 수를 말한다. 파일의 open과 관련되어 있기도 하고 Socket의 open과도 관계가 있기 때문에 웹 구조에서는 상당한 관심과 튜닝을 해야 한다.- file descriptor에는 Hard limit 과 Soft limit이 있다.Hard limit : 머신 자체의 최대값 제한.Soft limit : 시스템의 자원을 사용하는데 제한을 둔다. - 이 값이 너무 낮게 설정한 경우, JEUS 로그 파일에 "파일에 너무 많은 파일이 열렸다(Too many open files)"는 오류가 표시된다. [확인법]명령어 : ulimit –aHex)# ulimit -aHaddress space limit (kbytes) (..
C와 JAVA의 큰 차이점 중 하나는 Memory 관리이다. C : 개발자가 관리 ex) alloc JAVA : JVM(Java Virtual Machine)에서 알아서 관리 간혹가다, 소스상에 System.gc() 를 구현해 놓는 경우가 존재한다. 친절하게도 주석처리로 '//메모리 정리..' 같이.. 소스상에서 System.gc() 를 수행하면 항상 Full GC가 수행된다는게 문제다. Full GC가 일어난 동안에는 Application 수행이 완전히 멈춰버린다. 예를 들어, 5초동안 Full GC가 일어 났다면 5초 동안 먹통이 된다.. 결론은.. GC는 JVM이 알아서 하도록 둔다. TIP JVM옵션 중 System.gc() 수행을 못하도록 하는 옵션이 존재한다. -XX:+DisableExplic..
트랜잭션이 성공한 경우 100 Continue 클라이언트로부터 일부 요청을 받은 후 나머지 요청 정보를 계속 보내라는 의미101 Switching Protocols 서버는 클라이언트의 요청대로 Upgrade헤더를 따라 다른 프로토콜을 바꿀 것임200 OK 에러 없이 전송 성공201 Created 요청이 완성되고 그 결과 새로운 자원을 생성하였다.202 Accepted 요청이 수행되었지만 처리가 완료되지 않았다.203 Non-Authoritative Information 서버가 클라이언트의 요구 중 일부만 전송204 No Content 클라이언트의 요구를 처리 했으나 전송 할 데이터가 없음205 Reset Content 요청이 완료되었고, 사용자 프로그램이 요청을 반영하고 보낸 문서에 사용자가 쉽게 다른 ..
# 포트번호 입력받아서=======================================while truedo DT=`date +%Y-%m-%d` TIME=`date +%H:%M:%S` STR1=`netstat -an | grep $1` echo "[$DT $TIME] " echo "$STR1" sleep 3done======================================= # sh port_chk.sh 8080 수행 예)# sh port_chk.sh 8080[2010-02-02 22:53:07] tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN [2010-02-02 22:53:10] tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN [2010-02-02..
때때로 특정 폴더 하위의 모든 jar 파일에서 특정 클래스를 찾아 보고 싶을 때 사용할 수 있는 쉘 스크립트를 소개합니다. 예 ) WebtInnerConnection 클래스가 어느 jar 파일에 존재하는지 검색 [실행]find . -type f -name '*.jar' | while read LINE; do echo $LINE;jar tvf $LINE | grep WebtInnerConnection;done [결과]./system/local_policy.jar./system/mail.jar./system/snmp_agent.jar./system/sunjce_provider.jar./system/toolresource.jar./system/uddi4j.jar./system/US_export_policy.j..
[CPU] AIX lsdev -Cc processor HP-UX ioscan -fnC processor SOLARIS psrinfo -v LINUX cat /proc/cpuinfo [Physical RAM] AIX bootinfo -r HP-UX grep -i Physical /var/adm/syslog/syslog.log SOLARIS Prtconf LINUX free [Kernel Bits] AIX bootinfo -K HP-UX getconf KERNEL_BITS SOLARIS isainfo -kv LINUX getconf WORD_BIT [Service Switch] AIX /etc/netsvc.conf HP-UX /etc/nsswitch.conf SOLARIS /etc/nsswitch.conf ..
참조 URL : http://aploit.egloos.com/4806304 목적 - JDK자체에 포함된 것이 아닌 설치한 라이브러리의 것을 로딩하려 할 때 사용 기본정리 - JAXP 라이브러리 : jaxp-api.jar, jaxp-ri.jar - 각 JDK 버전마다 JAXP 라이브러리가 포함되어 있음. 그러나 각각 JAXP버전은 상이함. JDK 1.4 : JAXP 1.2 JDK 5 : JAXP 1.3 JDK 6 : JAXP 1.4 * JDK버전에 -0.2를 하면 된다고 생각하면 될듯. 문제가 발생하는 경우 JDK 1.4로 개발하면서 JAXP 1.3을 쓰려고 하면 동일한 패키지명을 가지는 클래스가 2개가 존재하게 된다. 즉, org.w3c.dom.Document 의 경우 JAXP1.2는 rt.jar에 존재..
1. httpd.conf ServerName 192.168.11.76:9080 # 디렉토리 권한 설정. apache의 기본 디렉토리가 아닌, 다른 디렉토리에 AP소스가 존재한다면 아래와 같이 등록하여 주어야 한다. AllowOverride None Options None Order allow,deny Allow from all AllowOverride None Options None Order allow,deny Allow from all # vhost.conf Include한다. Include conf/vhost.conf # mod_jk 모듈 로딩 LoadModule jk_module modules/mod_jk-1.2.26_httpd-2.2.8_linux-k2.6_x86.so JkWorkersFile ..
목적 : JEUS에서 제공하는 DataSouce를 사용하지 않고.. 즉, JEUS를 통하지 않고 다이렉트로 접속하는 부분에서 이상이 없는지 확인하려할 때 사용함. DB 접속자체의 이상유무를 확인하려 할 때 사용. Oracle 샘플 import java.sql.*; public class DBConnTest { public static void main(String[] args) { Connection conn=null; try { //Class.forName("oracle.jdbc.pool.OracleDataSource"); Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("JDBC Driver Loading Success"); ..
목적 : 해당 클래스가 정상적인 경로의 클래스를 로딩했는지 알아볼때 사용. -1) { ret = ret.substring(0, idx) + target + ret.substring(idx+source.length()); idx = ret.indexOf(source, idx+target.length()); } return ret; } public String linkClass(String inputStr) { String result = inputStr; String patternStr = "([a-zA-Z0-9]{1,}\\.){1,}[a-zA-Z0-9]{1,}[@|$][a-zA-Z0-9]{1,}]{0,1}"; Pattern pattern = Pattern.compile(patternStr); Matche..
목적 : session 객체 정보 확인 시 사용 Session ID : [] isNew : [] Creation Time : Last Accessed Time : Max Inactive Interval : second [ 세션 정보를 얻어오는 메소드를 사용한 예제 ] Exception 발생하였습니다. [1] 세션 ID는 [] 입니다. [2] 당신의 웹사이트에 머문 시간은 입니다. [3] 세션의 유효시간은 분입니다. [4] 세션이 새로 만들어 졌나요? [5] 당신이 접속한 IP는
/** 사용 목적 : 찾고자 하는 로딩된 class가 물리적으로 어디에 존재하는지 알고자 할 때 사용. */ [Example] Document Builder Factory - org.apache.xerces.jaxp.DocumentBuilderFactoryImpl SAX Parser Factory - org.apache.xerces.jaxp.SAXParserFactoryImpl Transformer Factory - org.apache.xalan.processor.TransformerFactoryImpl (ex) org.apache.xerces.jaxp.DocumentBuilderFactoryImpl [Search Result]
P3P의 개념Platform for Privacy PreferencesW3C에서 개발한 프라이버시 보호 관련 표준 기술.web browser는 웹사이트의 개인보호정책을 쉽게 해석할 수 있을 것이다.다시 말해, 웹사이트에 제공되는 개인정보보호에 대한 장황한 약관의 내용들을 P3P에 의해서 표준형식으로 표현되고 web browser는 이를 웹사이트로부터 받아 자신이 설정한 개인보호정책과 상충되면 차단하고 일치하면 받아들임.P3P를 적용한 사이트에서는 HTTP헤더 또는 링크된 XML파일을 통해 해당 사이트엫서 취급하는 개인정보의 레벨이나 성격 등을 웹브라우저에게 알려주고 있다.MSIE 6.0에서부터 발생하는 쿠키 관련 문제 등의 상당 부분이 바로 이 P3P와 연관됨. 즉, 6.0에 와서 정책이 바꼈음.MSIE..
주소창에 다음과 같이 입력하고 엔터~! 치면 1. 팝업창으로 나오기 javascript:alert(document.cookie); 2. 현재창으로 나오기 javascript:document.write(document.cookie); 이는 다음과 같은 경우에 유용하게 쓰임. 1. 세션라우팅(Session Routing)이 true일 때 지금 이 요청이 어떤 컨테이너에 전달되었는지 확인할때 2. 세션이 끊기는 장애상황 대처시 세션 아이디가 변했는지 확인 할 때
- Total
- Today
- Yesterday
- DevOps
- 쓰레드덤프
- Password manager
- Thread Dump
- rundeck
- Docker
- iTerm2
- Jenkins
- nginx
- Config History
- 엔시블
- PostgreSQL
- Linux
- Playbook
- 엔서블
- Ansible
- rsync
- ssl
- 젠킨스
- Nexus
- groovy
- openssl
- 리눅스
- Shell Script
- 데브옵스
- vagrant
- JVM
- URL Encoding
- 파이프라인
- 플레이북
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |