hs_err_pid 파일을 열어보면 


# A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xff380700, pid=583, tid=3156104 # # JRE version: 6.0_16-b01 # Java VM: Java HotSpot(TM) Server VM (14.2-b01 mixed mode solaris-sparc ) # Problematic frame: # C [libc_psr.so.1+0x700] memcpy+0x2f8 ... --------------- T H R E A D --------------- Current thread (0x00746400): JavaThread "p: default-threadpool; w: Idle" daemon [_thread_in_native, id=3156104, stack(0xb0c00000,0xb0c80000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0xfe0cc000 Registers: O0=0xfe0cbfc0 O1=0x00000000 O2=0xc3230063 O3=0x6f727465 O4=0x6d612f67 O5=0x70726f63 O6=0xb0c7c890 O7=0xfe202378 G1=0x00054000 G2=0x00c4f5d0 G3=0x00000000 G4=0xff140000 G5=0x03785238 G6=0x00000000 G7=0xb7314200 Y=0x00000000 PC=0xff380700 nPC=0xff380704 Top of Stack: (sp=0xb0c7c890) 0xb0c7c890: fe0c77d2 00000008 00000065 00007200 0xb0c7c8a0: 00000072 96898d9b ffffffff 00000000 0xb0c7c8b0: 03789a00 fe0cbfc0 0000002c 00001d80 0xb0c7c8c0: ff3303a8 00000000 b0c7c8f0 fe20d194 0xb0c7c8d0: 00c4f5e4 00000000 00000001 00000000 0xb0c7c8e0: 00000000 00000000 00000001 00c4f608 0xb0c7c8f0: fe0c77d2 00000076 00000065 00007200 0xb0c7c900: 00000072 96898d9b ffffffff 00000000 Instructions: (pc=0xff380700) 0xff3806f0: d8 5e 60 30 da 5e 60 38 d6 f6 20 20 d8 f6 20 28 0xff380700: d4 5e 60 40 d6 5e 60 48 da f6 20 30 d4 f6 20 38 Stack: [0xb0c00000,0xb0c80000], sp=0xb0c7c890, free space=498k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libc_psr.so.1+0x700] memcpy+0x2f8 C [libzip.so+0xd19c] C [libzip.so+0x2380] ZIP_GetEntry+0xe4 C [libzip.so+0x2800] Java_java_util_zip_ZipFile_getEntry+0xc4 j java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J+0 j java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J+0 j java.util.zip.ZipFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+31 j java.util.jar.JarFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+2 j java.util.jar.JarFile.getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;+2 ... 위와 비슷한 내용이 보인다면


원인

JVM 충돌


해결하기

가장 흔한 이유는 아래 2가지가 있습니다.

1. 기기의 SWAP 공간이 부족

2. JVM에서 해당 JAR 파일이 사용중일때 JAR 파일이 수정되거나 덮어쓰여졌을 경우, JAR 파일이 손상됐다고 판단.


1번의 이슈같은 경우는 논외로 하겠습니다.


2번의 이슈가 거의 대부분인데 이유는 아래와 같습니다.

JVM은 성능향상을 목적으로 JAR 파일의 central directory structure(mmap를 사용하여)를 캐싱합니다. 

central directory는 JAR파일의 내용(엔트리 주소, 사이즈같은)을 담고있는데 그것을 캐싱한다는 것은 매번 JAR파일의 엔트리를 사용할때마다 디스크 에서 읽는것을 없애줍니다.  


그런데 만일 JAR파일이 수정되었다면 JAM의 central directory는 더이상 정확한 정보를 가지지 못하게되고 결과적으로 수정된 JAR파일에서 엔트리를 로딩하려 할때 SIGBUS나 SIGSEGV를  발행하게됩니다.


참고 : 1.6.0_23 부터 ZIP/JAR 파일에 대하여 메모리 매핑을 사용하지않는 명령행 옵션이 추가되었습니다.


-Dsun.zip.disableMemoryMapping=true


상기 옵션을 사용하게 되면 성능에 영향을 끼치게되는데 이유는 VM이 매번 JAR의 엔트리를 사용할때마다 추가적인 디스크 IO가 발생되기때문입니다(central directory structrure 를 알아내기 위하여).


가급적 새롭게 JAR파일을 배포하게되면 해당 JAR파일을 사용하여 실행되고 있는 프로세스를 재시작하는것을 추천합니다.


참고

http://www-01.ibm.com/support/docview.wss?uid=swg21625858

http://bugs.sun.com/view_bug.do?bug_id=7129299  

Posted by 빨강토끼
,

DB서버 리부팅후 oracle 에 접속을 하려고 하면

아래와 같은 메시지가 나오면서 접속이 안될때가 있습니다.


ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist 

Linux Error: 2: No such file or directory


오라클이 비정상 종료로 인한문제라고 합니다.

nolog 로 접속하여 startup 해주면 되는데

방법은 아래와 같습니다.


[db]# sqlplus /nolog

SQL> conn sys/ as sysdba

...

SQL>startup

...

...

Database mounted.


그런데 이러고 나서 접속을 하려고 하면

또다시 아래와 같은 메시지가 나오면서 접속이 안될때가 있습니다.


ora-12541 tns 리스너가 없습니다


oracle만 실행되고 리스너가 실행안된경우입니다.


리스너 상태를 살패본후 리스너가 만일 구동중이 아니면 리스너를 start 해주면 됩니다.


[db]# lsnrctl

LSNRCTL>status


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Solaris Error: 146: Connection refused

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DB서버명)(PORT=1521)))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Solaris Error: 146: Connection refused


위와 같이 나오면 리스너가 실행되지 않고 있는것 입니다.

start 해주시면 됩니다.


LSNRCTL>start



Posted by 빨강토끼
,

충동알림창에서 Start MergeTool to resolve conflicts을 선택하여 MergeTool을 통해 수정하거나, 충돌이 일어난 파일을 수동을 찾아 직접 수정하여 충돌 해결


Project의 Team Menu->Add to Index 선택 


Project의 Team Menu -> Rebase -> Continue Rebaes 선택 



Posted by 빨강토끼
,

sublime text 을 사용하고 있습니다.

그런데 txt 문서들을 열고 이런저런 작업을 하고 새로편집창을 열어 이런저런 작업을 한후에

sublime text 를 닫으면 수정하거나 새로만든 화일들의 저장여부를 묻지도 않고 닫혀버립니다.

이기능을 sublime text 에서는 hot_exit 라고 하는데 저는 아직 익숙하지가 않아서

sublime text 를 닫을때 그런화일들의 저장여부를 확인했으면해서 인터넷을 찾아봤습니다.


Preferences.sublime-settings 에서

"hot_exit": false,

이라고 입력하고 저장하면 제가 바라는 기능이 동작됩니다.



Posted by 빨강토끼
,

갑자기 잘되던 Command Palette 단축키 (Ctrl+Shift+P) 가 안먹는 현상이 생겼습니다.

구글링을 해도 답이 안나왔습니다.


결국 설정화일을 뒤져보니

C:\Program Files\Sublime Text 3\Packages\Default.sublime-package

라는 경로의 파일에


정상인 구문

{ "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },

과 그리고

{ "keys": ["ctrl+shift+p"], "command": "show_scope_name" },

라는 문구가 있었습니다.


아마 처음뒤에 나오는 구문때문에 앞으 command_palette 이 호출되지 않고 있는것 같아서

뒤의 구문을 주석처리하였더니 정상적으로 Command Palette 단축키 (Ctrl+Shift+P) 가 먹힙니다.

Posted by 빨강토끼
,

notepad++ 에서 Zen Coding 을 해보려고 Zen Coding - Python 이라는 플러그인을 설치하면

 Python Script 라는 플러그인이 같이 설치됩니다.


여하튼 실컨 참고하는 사이트데로 코딩을 한후에 Ctrl + Alt + Enter 를 해도 아무런 동작을 하지 않습니다.


그리고 혹시 몰라  플러그인 -> Python Script  -> Show Console 을 해보니 


Traceback (most recent call last):
  File "C:\Program Files\Notepad++\plugins\PythonScript\scripts\startup.py", line 26, in <module>
    import site
  File "C:\Python27\Lib\site.py", line 563, in <module>
    main()
  File "C:\Python27\Lib\site.py", line 545, in main
    known_paths = addusersitepackages(known_paths)
  File "C:\Python27\Lib\site.py", line 278, in addusersitepackages
    user_site = getusersitepackages()
  File "C:\Python27\Lib\site.py", line 253, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "C:\Python27\Lib\site.py", line 243, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "C:\Python27\Lib\sysconfig.py", line 472, in get_config_var
    return get_config_vars().get(name)
  File "C:\Python27\Lib\sysconfig.py", line 405, in get_config_vars
    import re
  File "C:\Python27\Lib\re.py", line 105, in <module>
    import sre_compile
  File "C:\Python27\Lib\sre_compile.py", line 14, in <module>
    import sre_parse
  File "C:\Python27\Lib\sre_parse.py", line 17, in <module>
    from sre_constants import *
  File "C:\Python27\Lib\sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT


이런 메시지가 출력되어있었습니다.


열심히 구글링을 한후에 알아낸 결과는


C:\Program Files\Notepad++\plugins\PythonScript\scripts\startup.py 을 열어서

# This imports the "normal" functions, including "help"

## 아래부분 삽입

sys.path = [n for n in sys.path if not n.startswith('C:\\Python27')]

## 윗부분 삽입
import site


하고 난후 다시 시작해보니 정상동작됩니다.


이유는...일본어라서....2.7.4 이후부터 REPEAT import 경로가 바뀌었다고 하네요...

Posted by 빨강토끼
,

어느날 갑자기 네이버(혹은 다음이나 검색사이트)를 통하여 여러분의 블로그나 사이트에 접속할때

정상적으로 여러분의 사이트가 보여지지 않고 이상한 성인사이트나 카지노 사이트로 접속될때가 있을겁니다.


정말 난감하죠.


전에 http://blog.cjred.net/204 를 통하여서 티스토리 해킹에 대한것을 간략하게 글을 올린적이 있었는데

최근에 지인분께서 자신의 홈페이지도 같은 경우를 처해있다고 해서 호스팅을 이용하시는 버전으로 해서

정리를 해보겠습니다.


일단 한시라도 빨리 여러분의 계정 비밀번호를 바꾸는 것이 우선입니다.


그리고 난후 여러분의 첫화면화일(index.php 등)이나 공통으로 로딩하여 사용하고 있는

js 나 인터넷 화일을 검토해봅니다.

혹시 어떤것인지 모른다면 여러분이 사용하고 있는 FTP 프로그램으로 보면 문제가 발생될때쯤

수정된 파일을 발견할수 있을겁니다.


해당 화일을 메모장등 편집기 프로그램으로 보면 아래와 같은 자바스크립트 문구를 발견할 수 있을겁니다.

여러분이 삽입한 코딩이 아니라는 것을 바로 확인 하실수 있을겁니다.

바로 납치 태그라는 것입니다.


간단하게 구문을 설명해 드리자면 

document.referrer 구문은 바로 전에 접근했던 url 정보를 반환하는 것인데

그곳이 만일 naver 나 daum 이면 

window.location.href = "xxxx.com" 으로 지정한 url 로 이동하라는 

코딩구문입니다.


해당 부분은 삭제하시면 문제를 해결하실수 있습니다.


만일 여러분의 문제가 되는 곳이 티스토리 블로그라면 

좀 더 추가적으로 해줘야되는 것이 있는데

http://blog.cjred.net/204

위 주소에 정리를 하였습니다.


다른 이글루스나 텀블러 등 다른 곳이라면 제가 이용해보질 않아서 잘모르겠습니다.^^

아래 티스토리 설명을 유추해보시면 금방 고치실수 있을겁니다.


고맙습니다.

Posted by 빨강토끼
,

GrapViz 는 정말 훌륭한 프로그램이지만

기본적으로 제공하는 편집기(GVEDIT) 는 정말 볼품이 없습니다.


AcroEdit 를 사용하는 방법도 있지만 저는 개인적으로 

NotePad++ 를 사용하기 때문에 사용법을 정리해 봅니다.


우선

PlugIn 하나를 다운받아야됩니다.


NotePad++ 를 실행한후에

Plugins -> Plugin Manager -> Show Plugin Manager

로 들어간후에


NppExec 라는 PlugIn을 설치합니다.


설치가 끝나면 재실행을 하게됩니다.


재실행후에 


NppExec를 아래와 같이 환경설정합니다.(F6)


Command 란에 


dot "$(FULL_CURRENT_PATH)" -Tpdf -o "$(CURRENT_DIRECTORY)\$(NAME_PART).pdf"


라고 기입하고 Save 버튼을 클릭합니다.

Script Name 을 아루거나 (예를 들어 dot) 기입한후 save 버튼을 클릭합니다


DOT 스크립트 파일을 notepad++ 창에서 여러분이 원하는 데로 편집한후 

Ctrl + F6 을 누르면 DOT 스크립트파일이 있는 위치에 PDF 파일이 생성된것을 확인할수 있습니다.


만일 PNG 이미지 화일로 출력되길 원한다면 


dot "$(FULL_CURRENT_PATH)" -Tpng -o "$(CURRENT_DIRECTORY)\$(NAME_PART).png"


라고 해주면 됩니다.


고맙습니다.^^


참조

http://graphviz.org/

http://blog.cjred.net/223

http://steinweb.blogspot.kr/2013/05/using-notepad-to-render-graphviz-figures.html

Posted by 빨강토끼
,

less2css 컴파일러

http://wearekiss.com/simpless

prefixr.com연동

설치한 폴더를 옮기면 실행안됨.


http://winless.org/

prefixr 연동안됨

별로 않좋음


less 편집

http://crunchapp.net/

air도 같이 깔아줘야됨

에러검출기능도 있다고 하는데 테스트해보니 잘안됨


클로스-브라우저, css압축

http://prefixr.com/

Posted by 빨강토끼
,

골든을 설치하고 tns 로 연결을 하려할경우

먼저


에서 

오라클 클라이언트(Oracle Client)를 다운받아 설치하던지, 

인스턴스클라이언트(Instant Client)를 다운받아 설치해야됩니다.


우선 오라클 클라이언트를 설치하는 경우엔 인스턴스클라이언트보다는 설정이 쉬운반번

무겁고 불필요한것들까지 설치된다는 부담이 있습니다.


인스턴스클라이언트를 설치하는 경우엔 가볍지만 환경화일이나 레지스트리를 설정해줘야하는 작업이 필요합니다.


1. 오라클 클라이언트를  설치하는 경우



http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html

위 링크로 들어가서 



위에 마크된 링크를 클릭하여서 다운로드후 압축을 푼후에 설치하시면


D:\app\red\product\11.2.0\client_1 식의 폴더가 여러분의 PC에 만들어지신것을 발견하실 수 있습니다.


해당 폴더로 들어가신후 바로 밑에 network 라는 폴더를 만들고 또 그 안으로 들어가서 admin 이라는 폴더를 만듭니다.


그리고 나서 첨부된 파일(sqlnet.ora , tnsnames.ora)을 복사해 넣으면 기본적인 환경이 완료됩니다.

tnsnames.ora 파일을 여러분 환경에 맞추어 수정해 사용하시면 됩니다.


2. 인스턴스 클라이언트를 설치하는 경우


http://www.oracle.com/technetwork/indexes/downloads/index.html

위 링크로 들어가서




위에 마크된 링크를 클릭하여서 다운로드후(basic 을 받으시면됩니다.) 압축을 풀어줍니다.


본글에서는 아래와 같은 경로에 압축을 풀었다는것을 가정합니다.

D:\Program\instantclient


위와 비슷한 경로의 압축이 풀려진 폴더로 이동후에 바로 밑에 network 라는 폴더를 만들고 

또 그 안으로 들어가서 admin 이라는 폴더를 만듭니다.


그리고 나서 첨부된 파일(sqlnet.ora , tnsnames.ora)

sqlnet.ora


tnsnames.ora

을 복사해 넣습니다.


그 다음으로는 PC의 환경설정과 레지스트리를 수정해야됩니다.


제어판 > 시스템 > 고급 > 환경변수 열어 아래와 같이 등록합니다.

PATH = D:\Program\instantclient;
TNS_ADMIN =D:\Program\instantclient\NETWORK\

3. 레지스트 등록

HKEY_LOCAL_MACHINE > SOFTWARE 열어 오른쪽 마우스를 클릭하여 새로만들기 > 키 선택합니다.
키명을 Oracle 변경하고 오른쪽 마우스를 클릭하여 문자열 값을 선택하고 아래와 같이 반복하여 문자열을 생성합니다.

# 문자열 명 : 문자열 값 패턴입니다.

NLS_LANG : Korean_Korea.KO16KSC5601
ORACLE_HOME :D:\Program\instantclient
SQLPATH : D:\Program\instantclient
ORACLE_SID : ORCL


그리고 난후 tnsnames.ora 파일을 여러분 환경에 맞추어 수정해 사용하시면 됩니다.

Posted by 빨강토끼
,