2013년 5월 3일 금요일

WAS와 IIS 연동시 304가 아닌 200 상태코드만 나올때. ..

Windows 2008 서버에서 ajp 프로토콜을 쓰는 WAS 와 IIS 를 연동하기 위해 "isapi_redirect.dll" 을 구성했다.

해당 시스템에 성능 이슈가 있어서 확인 결과 , eTag 나 Last-modired 헤더가 정상적임에도 계속 200으로 받아와서 네트워크 트래픽을 발생시키고 있었다. (성능에도 악영향)

(기본 설정의 경우 서버측에서 최초 요청시 200상태코드로 데이터를 송신 후,  서버에서 파일이 변경되지 않은 경우 304 Not modired 상태코드를 보내준 후 실제 데이터는 보내지않고 브라우저의 로컬 캐시를 로딩하도록 한다. )

 1. MS 문의 결과 : IIS 문제는 아니고 isapi 필터 문제로 추정
 2. isapi 테스트
    - isapi 를 제거하니 정상적으로 동작
    - isapi dll 을 다른버전으로 구성
      1) 32bit (1.2.37 버전) : 현상 해소 (정상동작
      2) 62bit (1.2.37 버전) : 문제 현상 유지


isapi dll 파일이 64비트에서 상태코드를 200으로 내려주는 듯 하다.
----
버그인지에 대해서는 추가 확인 예정

IIS7 특정 jpg 파일이 엑박표시될 때 ...

IIS 7.5 에서 특정 jpg 파일이 엑박표시되었다.
전부다 그런건 아니고 해당 파일만 .... (멘탈붕괴) ...

 1) 해당 파일을 크롬으로 오픈하니 열린다.
 2) 해당 파일을 png 로 확장자를 바꾸니 열린다.

-----
문제는 보안설정때문에 걸어놓은 "X-Contentx-Type-Options=nosniff" 때문이였다.
해당 설정은 확장자와 본문의 내용이 다를때, 실행하거나 랜더링 하지 않는다.

2013년 4월 25일 목요일

정리되지 않은 글...

2013.04.25
마구잡이식 글쓰기를 해보기로 했다.
정말 정리 안되겠지만.

생각을 글로 정리하다보면..생각도 정리가 되지 않을까?

세계 10대 기업

http://www.forbes.com/global2000/#page:1_sort:0_direction:asc_search:_filter:All%20industries_filter:All%20countries_filter:All%20states

우연찮게 세계 1000대 기업자료를 보게되었다.
그런데 우선 메인 페이지에 나오는 세계 10대 기업에

중국이 4개, 미국이 4개, 영국 1개, 네덜란드 1개 이다...

 더 놀라운건,,, 애플 마이크로 소프트는 10위 밖이고 (애플 15위 , 마이크로 소프트 41위)
삼성은 20위이다.


역시 날고 뛰어봐야...인구수를 이기긴 힘든거같다..
중국....역시 나는건가...

2013년 4월 17일 수요일

visualVM 모니터링을 위한 WAS jmx setting

 WAS 모니터링을 할 때 JAVA 에서 기본적으로 제공하는 jvisualVM 을 이용하여 실시간 모니터링이 가능하다.

유닉스에서는 DISPLAY 환경변수 및  Xwindow 설정을 통해 내 PC 에서 띄워서 사용이 가능하다 (상세한 방법은 Xwindow 사용법을 참고)

 윈도우 에서는 jvisualVM 과 WAS 가 같은 계정으로 구동될 때는 로컬에서 jvisualVM 만 기동해도 ($JAVA_HOME\bin 하위에 존재) java 프로세스를 자동으로 인식하나, WAS 를 윈도우 서비스로 등록한 경우 WAS 계정이 "SYSTEM" 계정으로 구동되어 자동인식이 어려운 경우가 있다.

이런 경우 WAS 에 다음과 같이 JMX 세팅을 구성한 후 원격이나 로컬에서 호출이 가능하다.
 

  << WAS JAVA Option setting >>
  -Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=1403
 -Dcom.sun.management.jmxremote.ssl=false
 -Dcom.sun.management.jmxremote.authenticate=false (이 값을 false 로 주는 경우에는 아이피와 JMX 포트만 아는 경우에는 네트워크 접속이 가능한 누구라도 불법으로(?) 모니터링이 가능하므로 될수있으면 true 로 주고 아이디 패스워드를 주도록 한다. )

 *** 기타 설정 (optional)  ***
 -Djava.security.policy=<policy file>
-Dcom.sun.management.jmxremote.local.only=false (true 로 주면 로컬에서만 접속 가능, 이것을 주는 경우 아이디 패스워드가 불필요할수도 있겠다..)
-Djava.rmi.server.hostname=<your public hostname>
-Dcom.sun.management.jmxremote.password.file=<password_file>




2013년 4월 2일 화요일

퀼트 관련 사이트

http://cafe.naver.com/nona040/578

유닉스 쉘 스크립트 작성시 sub 스크립트 호출 방식에 따른 차이

- 출처  : 본인 작성

유닉스 쉘 실행 방식에 따른 차이점

※ child1.sh
   echo "$A"
   echo "child1 exit"
   exit 0
   
   echo "passed exit" 
 
※ child2.sh
   echo "child2 called"

TEST CASE1) 단순 호출 ※ multi_call_test.sh
    echo "Location : Mail shell"
    A=3
    ## CAll child shell
    child1.sh (또는 sh child1.sh 로 해도 동일 결과) 
    ## Call child2 shell
    child2.sh
    
    # end
    
CASE1 결과)
    prompt> multi_call_test.sh
    Location : main shell
    
    child1 exit
    child2 called 
    

TEST CASE2) . 호출 (호출 쉘 앞에 dot(점,.) 추가) ※ multi_call_test.sh
    echo "Location : Mail shell"
    A=3
    ## CAll child shell
    . child1.sh    
    ## Call child2 shell
    child2.sh
    
    # end
 
CASE2 결과)
    prompt> multi_call_test.sh
    Location : main shell
    3
    child1 exit
 
 
결론) 호출 후 메인 쉘의 동작과 별도로 동작하게 하려면 sh (쉘이름), 메인 쉘과 운명을 같이 하게 하려면 .을 주어 호출




끝.