'분류 전체보기'에 해당되는 글 2491건

  1. 2009.06.26 eclipse Out of memory 오류 관련 eclipse.ini 파일 수정
  2. 2009.06.26 eclipse 실행시 out of memory
  3. 2009.06.25 Eclipse Code Style Sample (You can import!)
  4. 2009.06.24 이클립스 플러그인 정리 1
  5. 2009.06.24 emctl start dbconsole / Environment variable ORACLE_SID not defined. Please define it.
  6. 2009.06.24 oracle 백업 스케줄 걸기...
  7. 2009.06.24 Oracle Database 10g
  8. 2009.06.24 oracle standard edition & enterprise edition 비교표
  9. 2009.06.24 Oracle 10g 설명
  10. 2009.06.24 oracle 10g datebase 특징및 차이점
  11. 2009.06.24 오라클 버전별 차이점
  12. 2009.06.24 웹개발시 유용하게 쓸 수 있는 프로그램 모음
  13. 2009.06.22 웹상에서 제우스 로그보기
  14. 2009.06.22 제우스(JEUS), WebtoB 관리를 위한 주요 명령어 및 alias 요약
  15. 2009.06.22 기본 브라우저 세팅하는 프로그램입니다.
  16. 2009.06.22 프로세스별 패킷탐지 - Microsoft Network Monitor 3.3
  17. 2009.06.21 Apache Commons Lang 강추 (이제 직접유틸을 만들지 말자)
  18. 2009.06.21 [Tomcat 6.0] Connection Pool - DBCP 사용하기
  19. 2009.06.21 try-catch 로 왠만한 error 잡아내기
  20. 2009.06.21 ultraedit, editplus 편집툴 세로열 편집시 유용한 팁입니다. 1
  21. 2009.06.21 오라클(Oracle) CLOB 데이터 입력 - JDBC
  22. 2009.06.21 오라클 페이징 처리 깔끔하게...한방에..
  23. 2009.06.21 이클립스 디컴파일러 jad
  24. 2009.06.21 간단한 이클립스 TIP (메모리, workspace관련) 2
  25. 2009.06.21 class 파일을 java 파일로 디컴파일 해주는거... 1
  26. 2009.06.21 Exception in thread "main" java.lang.NoClassDefFoundError:xxxxx 1
  27. 2009.06.20 java 프로그램 실행시간 측정 3
  28. 2009.06.20 WEB-INF 밑에 환경 설정 파일(xml, properties) 추출
  29. 2009.06.20 javascript get 방식으로 데이터 받기
  30. 2009.06.20 JavaScript] [브라우저]브라우저명을 정확히 알아내기
56. Eclipse Etc.../Eclipse2009. 6. 26. 11:39
반응형
이클립스 3.x버젼을 쓰면서 갑자기 다운되거나 out of memory오류로 인해 오작동하는 문제가 자주 발생해 개발할때 짜증이 이만저만이 아니다.

명확한 원인도 모르겠고 검색해보면 permsize를 높여보라는 내용만 찾을 수있었는데..

이것이 Eclipse 3.3.1 버전의 런처가  Sun VM 을 인식못하는 버그가 있다는 사실을 알아냈다. (http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F)


이 현상과 유사한 것 같아서

vm을 직접 넣어주는 방식으로 변경하였다.

-showsplash
org.eclipse.platform
-vm
C:\java\jdk1.6.0\bin\javaw.exe
-vmargs
-Xms256M
-Xmx512M
-XX:PermSize=128M
-XX:MaxPermSize=512M


java.exe. 대신 javaw.exe 로 쓰고..

작업관리자에서 eclipse 프로세스와 별개로 javaw 프로세스가 뜨는 것 말고는 괜찮은 것 같다.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 26. 11:37
반응형

츌처: http://kimkijeung.com/106

FDT를  3.0.2 build 1001  버전으로 업데이트를 하고 나서 이클립스에 메모리가 부족하다는 메시지가 생겨났다. 이전까지 별 무리없이 쓰고 있었는데 작업을 앞두고 갑자기 먹통이 되어버리니 참 답답할 노릇이였다. 아마도 여러가지 기능이 추가되면서 필요로 하는 메모리가 늘어난듯 싶다.
찾아보니 fdt 포럼에도 이같은 문제가 제기되었는데 단순히 아래 메시지가 나오는 것과
같이 설치폴더에 있는 eclipse.ini 환경설정 파일의 메모리 최대 사용량을 늘려주라는 이야기 뿐이였다.

 

물론 메로리 설정을 변경하고 이상이 없다면 다행이지만 나의 경우에는 -Xmx512 로 설정할 경우
eclipse 런처가 실행조차 안되는 문제가 발생한다.
한참만에 이것이 Eclipse 3.3.1 버전의 런처가  Sun VM 을 인식못하는 버그가 있다는 사실을 알아냈다. (http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F)

따라서 이러한 문제를 해결하려면  eclipse.ini 파일을 약간 수정해야한다.
 
<original eclipse.ini>
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize   -------> remove

256m                        -------->remove
-vmargs
-Xms40m
-Xmx256m                  ------> replace -Xmx256m to -Xmx512m


 eclipse.ini 을 열면 위와 같은 코드를 볼 수 있을 것이다.
FDT3.0 을 위해 최대 사용할 메모리를 늘리려면  맨 아래줄의 -Xmx256m 부분의 숫자 부분을 512 이상으로 변경해주면 된다. (자신의 메모리 용량에 따라 512이상으로 적절하게 설정해주면된다.)

그리고 붉은색 코드부분을 모두 삭제해준다.

<revised eclipse.ini>
-showsplash
org.eclipse.platform
-vmargs
-Xms40m
-Xmx512m

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 25. 10:02
반응형

I have two examples about eclipse coding style in java language based on eclispe.
Standard code style give to understand and analyze codes.
Download file xml file can be imported to your eclipse 3.X. And it is close to java code convention.

<Imporing Code Templates Sample>
In Eclipse, you may follow belows orders.
Window -> Preferences -> Java -> Code Style -> Code Template

You will see that pop up window. To import, you may clock Import button on the window, and you will see file explorer, and choose the downloaded sample file "CodeTemplates_sample.xml"




<Imporing Formatter  Sample>
In Eclipse, you may follow belows orders.
Window -> Preferences -> Java -> Code Style -> Formatter

u will see that pop up window. To import, you may clock Import button on the window, and you will see file explorer, and choose the downloaded sample file "Formatter_sample.xml"
l

After clicking import button, you will see below pop-up window.
You can assign your formatter policy by choosing their options.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 24. 18:00
반응형
개발하면서 쓰고 있는 플러그인과 그외 유용한 플러그인을 정리해보았습니다.
사실은 매번 설치할때마다 뭐가 어디있는 지 다시 뒤적거리는 귀찮음이 싫어서 정리를 했다라는.. /(^o^)/


■ 이클립스 플러그인 관련 사이트

http://www.eclipse-plugins.info 간단한 플러그인 정보와 인기도(?) 확인 가능
http://www.sourceforge.net 각종 이클립스 플러그인 프로젝트들이 등록되어있음
http://www.eclipseplugincentral.com 플러그인 쇼핑몰, 포럼


■ DB 플러그인

1) Quantum DB (http://sourceforge.net/projects/quantum/)

왼쪽 북마크에 접속하고자 하는 DB 추가하고 환경잡기(ID, 비번, 접속드라이버 등)
원하는 북마크를 오른쪽버튼 클릭해서 DB에 connect한 후 오른쪽 쿼리 에디터에서 쿼리.

[참고]
- 오라클 JDBC드라이버 : C:oracleora81jdbclibclases12.zip 찾아서 추가 (oracle.jdbc.driver.OracleDriver)
- connection URL : jdbc:oracle:thin:@000.00.00.000:1521:ORACLE8

2) dbedit (http://sourceforge.net/projects/dbedit/)

3) jfacedbc #상용# (http://sourceforge.net/projects/jfacedbc/)

소스포지에 있는 버전은 2.X 버전이고 3.0부터는 상용으로 http://www.jfacedbc.com/ 에서 다운/구매 가능 (기능은 확실히 좋을 듯...)



■ XML 플러그인

1) XMLBuddy http://www.xmlbuddy.com/
XMLBuddy pro는 #상용#입니다.

2) oxygen #상용#
url update : http://www.oxygenxml.com/InstData/Eclipse/site.xml

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 XML 에디터.

4) 그 외 JXMLEditor, MetaCoder , Sunbow , X-Men, XML Schema Quality Checker



■ J2EE 개발 플랫폼

1) Lomboz (http://forge.objectweb.org/projects/lomboz)
롬보즈를 쓰기 위해서는 EMF(http://www.eclipse.org/emf)도 깔려있어야 함

2) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)



■ JSP 에디터 플러그인

1) SolarEclipse (http://sourceforge.net/projects/solareclipse/)
jsp 하이라이팅 기능만 있음

2) Lomboz jsp editor (http://forge.objectweb.org/projects/lomboz)
롬보즈 설치하면 깔리는 jsp 에디터. 코드 어시스턴스 기능 있음.

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 jsp 에디터. 롬보즈가 저장 시 에러 체크를 하는 반면, 실시간으로 에러 체크를 한다고 함.



■ 각종 플러그인

1) Yoxos ( http://www.yoxos.com/ )

유용한 플러그인들을 묶어 프로그램 인스톨하는 형식으로 배포.
종류별로 잘 분류되어 있고 설치시 필요한 플러그인만 선택하여 설치 가능.

2) subversion (svn) 플러그인
url update : http://subclipse.tigris.org/update

3) SWT/Swing 디자이너 #상용# http://www.swt-designer.com/




■ 플러그인 설치

1) 설치유형 1 : 복사
받은 플러그인 파일을 C:eclipseplugins 에 복사하고 재시작

2) 설치유형 2 : url update
Help > Software Updates > Find and Install 메뉴 선택
"search for new features to install" 선택후 next 버튼
new remote site 버튼을 클릭하여 플러그인명과 url update 주소를 입력하면 다운 받을 수 있다.

3) 플러그인 설치 문제 해결

복사해서 플러그인을 설치 할 때 가끔 반영이 안되는 문제가 있다.
똑같이 설치를 해도 잘 되는 컴이 있는가 하면 그렇지 않은 것도 있으니... -_-a
처음 실행 이전에 플러그인을 모두 복사해야 정상작동할 듯 싶다. 일단 실행 이후에 플러그인을 추가 설치하면 간혹 말썽이다.

첫째, Help > Software Updates > Manage Configuration 에서 설치되지않은 것들이 있으면 enable 시켜준다.
이렇게 해서 해결 된다면 제일 편하게 해결된 것.

둘째, eclipse 폴더 아래 configuration 폴더를 지우고 재시작.

셋째, 이래도 안 깔리면.... 이클립스를 아예 새로 풀고 플러그인들 먼저 다 복사해 둔 후 최초실행 시킨다.
Posted by 1010
02.Oracle/DataBase2009. 6. 24. 17:43
반응형

C:\Documents and Settings\Administrator>emctl start dbconsole
Environment variable ORACLE_SID not defined. Please define it.

C:\Documents and Settings\Administrator>set ORACLE_SID=orcl

C:\Documents and Settings\Administrator>emctl start dbconsole
OC4J Configuration issue. C:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole
_192.168.1.66_orcl not found.

C:\Documents and Settings\Administrator>emctl start dbconsole
EM Configuration issue. C:\oracle\product\10.2.0\db_1/192.168.1.66_orcl not foun
d.

C:\Documents and Settings\Administrator>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://ts:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl
서비스를 시작합니다..
OracleDBConsoleorcl 서비스를 시작할 수 없습니다.

시스템 오류가 발생했습니다.

시스템 오류 3이(가) 생겼습니다.

지정된 경로를 찾을 수 없습니다.


C:\Documents and Settings\Administrator>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://ts:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl
서비스를 시작합니다.................
OracleDBConsoleorcl 서비스가 잘 시작되었습니다.


C:\Documents and Settings\Administrator>


해결방법

C:\WINDOWS\system32\drivers\etc

의 host화일을 수정한다

현재 사용중인 pc 의 이름과 ip를 매칭시켜주면된다.


192.168.1.66 ts

이런식으로 추가하여준다.

Posted by 1010
02.Oracle/DataBase2009. 6. 24. 17:36
반응형

command파일엔 아래와 같은 식으로 하시구요

sqlplus sms/sms @C:\oracle\scripts\export_backup.sql
C:\oracle\scripts\export_backup_act.cmd


export_backup.sql 파일의 내용은 아래와 같습니다.

set feedback off
set head off
set linesize 1000
spool C:\oracle\scripts\export_backup_act.cmd

select 'exp *****/***** file=D:\ora_backup\full'||to_char(sysdate,'YYYYMMDD')
       ||'.dmp log=D:\ora_backup\full'||to_char(sysdate,'YYYYMMDD')||'.log full=y'
from dual;

select 'del D:\ora_backup\full'||to_char(sysdate-5,'YYYYMMDD')||'.*'||
       '>> D:\ora_backup\full'||to_char(sysdate,'YYYYMMDD')||'.log'
from dual union all
select 'del D:\ora_backup\full'||to_char(sysdate-4,'YYYYMMDD')||'.*'||
       '>> D:\ora_backup\full'||to_char(sysdate,'YYYYMMDD')||'.log'
from dual union all
select 'del D:\ora_backup\full'||to_char(sysdate-3,'YYYYMMDD')||'.*'||
       '>> D:\ora_backup\full'||to_char(sysdate,'YYYYMMDD')||'.log'
from dual;

spool off
exit


윈도우 예약작업을 걸실땐 맨위에 있는 command파일이 수행되게 스케줄 하시면 될듯.

Posted by 1010
반응형

제품 소개

Oracle Database 10g
Oracle Database 10g는 기업 정보를 관리할 수 있는 가장 유연하고 비용 효율적인 엔터프라이즈 그리드 컴퓨팅을 위해 설계된, 최초의 데이타베이스입니다.
이 제품을 사용하면 실현 가능한 수준에서 가장 높은 서비스 품질(QoS)을 제공할 수 있는 동시에 관리 비용 또한 절감할 수가 있습니다. Oracle Database 10g는 품질과 성능이 월등하게 강화된 점 외에도 간편한 설치, 간소화된 구성 및 관리 요구사항, 자동화된 성능 문제진단 및 SQL 튜닝 등의 장점을 지니고 있으며, Oracle Database 10g를 사용하면 무엇보다 IT 환경 관리에 드는 비용을 줄일 수가 있습니다. 이러한 자동화된 관리 기능은 DBA 및 개발자들의 생산성과 효율성을 높이는 데도 큰 역할을 할 수 있습니다 .
*최소 구매 수량은 10user 이상입니다.

주요기능


Oracle Database: Product Editions

Oracle Database는 Enterprise, Standard, Personal, Lite Edition 4가지 에디션으로 제공됩니다.


Oracle Database: Enterprise Edition

Oracle Database Enterprise Edition은 클러스터 및 단일 시스템 구성 모두에서 업계를 선도하는 확장성과 안정성을 제공합니다. 또한 OLTP 및 비즈니스 인텔리전스에 있어서 가장 포괄적인 기능을 제공하며 총소유 비용이 가장 저렴합니다. Enterprise Edition에는 다음이 포함됩니다 .
  • ETL, 데이터 웨어하우징, OLAP, 데이타 마이닝 등의 고성능 비즈니스 인텔리전스 서비스
  • SQL, Java, XML, 표준 웹 인터페이스를 통한 웹 서비스로의 종합적이고 개방적인 액세스
  • 시스템 오류, 사이트 오류, 사람으로 인한 오류, 계획된 유지 보수 등을 극복할 수 있는 지속적인 가용성
Oracle Database Enterprise Edition은 Windows와 Linux를 실행하는 소규모 서버에서 대형 UNIX 서버 및 메인 프레임에 이르기까지 각종 기록을 능가하는 시스템 성능과 확장성을 제공합니다.
그리고 오라클은 17개의 독립 보안 평가를 보유하고 있는 유일한 데이타베이스 업체이기도 합니다.



Oracle Database: Standard Edition

Oracle Database 10g Standard Edition은 업계 최고의 오라클 데이타베이스의 성능, 안정성, 보안성을 필요로 하는 중소 규모 비즈니스 또는 부서별 시스템에 이상적인 제품입니다. Oracle Database 10g Standard Edition은 단일 서버 및 클러스터링된 서버(최대 4프로세서)에서 사용할 수 있습니다. 여기에 포함된 사항은 다음과 같습니다 .
  • 필요시 확장 가능하고 서버 고장으로부터 보호해 주는 Oracle Real Application Clusters
  • 빠른 설치, 간편한 구성 및 자동화된 관리 기능
  • 효율적이고 덜 복잡한 데이타 및 디스크 관리를 위한 ASM(Automated Storage Management)
Oracle Database 10g Standard Edition 라이센스는 최대 4프로세서의 용량을 갖춘 단일 서버 환경에서, 그리고 클러스터당 최대 4프로세서를 지원하는 서버의 클러스터 환경에서 받을 수 있습니다.

Oracle Database 10g Standard Edition을 사용하면 트랜잭션 프로세싱, 데이타 웨어하우징, 타사 및 멀티미디어 애플리케이션을 비롯한 모든 유형의 애플리케이션을 비용 효율적으로 개발 및 배포할 수 있습니다.



Oracle Standard Edition One--중소 규모 기업을 위해 마련된 Oracle Database

오라클의 Global Practices, Global Pricing and Licensing Strategy 부사장인 Jacqueline Woods는 "Oracle Standard Edition One은 세계적 수준의 데이타베이스를 매력적인 가격으로 소규모 기업들과 파트너 커뮤니티에 제공해 줍니다."라고 말합니다.

Oracle Standard Edition One은 빠르고 쉬운 설치 및 단순화된 관리 등 중소 규모 기업들을 위한 많은 기능을 갖추고 있습니다. Standard Edition One은 전체 Oracle Database 제품군의 일부분으로서, 가장 큰 문제들을 다룰 수 있도록 완벽한 호환성과 확장성을 제공합니다. 고객들은 소규모로 시작하여 요구가 증가하게 될 때 확장할 수 있습니다.



Oracle Database: Personal Edition

Oracle Database Personal Edition은 전체 Oracle Database 제품군과의 완벽한 호환성을 필요로 하는 개인 사용자를 위한, 모든 기능이 갖춰진 Oracle Database 버전입니다.

Oracle Database Personal Edition은 사용하기 쉬운 만큼 고급 복제 및 배포 기능을 통해 PC의 사용을 극대화할 수 있으며, 오라클 엔터프라이즈 환경에서 작업을 쉽게 배포할 수도 있습니다.

기능 요약 Standard Edition One Standard Edition Enterprise or Personal
고가용성
Fail Safe
Microsoft Cluster Server와 통합되는 고가용성 소프트웨어를 통해 Windows 클러스터를 구성 및 확인하고 오라클 데이타베이스와 애플리케이션에 대한 장애 조치를 신속 및 정확하게 자동으로 수행하십시오.
플래시백 질의
시간이 오래 걸리는 복잡한 작업 없이 이전 버전의 데이타를 복구하십시오.
플래시백 테이블, 데이타베이스 및 트랜잭션 질의
단일 행에 대한 변경, 부적절한 트랜잭션에 의한 변경, 하나 이상의 테이블에 대한 변경(테이블 삭제 포함), 전체 데이타베이스 변경 등을 비롯한 오류를 진단하고 실행 취소하십시오.
Data Guard
프로덕션 데이타베이스의 여러 원격 대기 복사본을 자동으로 유지 관리하고 프로덕션 환경에서 대기 데이타베이스로 처리를 장애 조치하고 손상이 발생한 상황에서 다운타임을 대폭 줄이십시오.
확장성
Real Application Clusters
연결되었거나 "클러스터화된" 여러 서버에서 모든 패키지 또는 사용자 정의 애플리케이션을 변경 없이 실행하십시오.
Option
통합 클러스터웨어
내장된 공통 클러스터링 서비스 집합을 사용하여 데이타베이스 클러스터를 만들고 운영하십시오.
자동 작업 로드 관리
서비스 연결 요청을 로드량이 가장 적은 적절한 서버로 라우팅하십시오. 장애가 발생하면 서비스를 나머지 서버에 자동으로 재할당합니다.
Java, PL/SQL 기본 컴파일
데이타베이스에 배포되는 내장 프로시저를 Java 및 PL/SQL로 작성하십시오.
보안
암호 관리
기업 전체에서 하나의 사용자 이름과 암호를 사용하여 여러 데이타베이스에 연결하십시오.
암호화 툴킷
PL/SQL 패키지를 통해 저장된 데이타를 암호화 및 해독하십시오.
VPD(Virtual Private Database)
행 수준 보안을 프로그래밍하고 애플리케이션 컨텍스트를 보안하십시오.
Fine-Grained Auditing
잘못된 데이타 액세스 사용을 경고하는 기능이 포함된 특정 감사 정책을 정의하십시오.
애플리케이션 개발
Java 지원
Java 애플리케이션을 더 신속하게 실행하고, 기존 소프트웨어 자산을 통합하며, Java/J2EE 애플리케이션을 그리드 가능 데이타베이스에 연결하고, 웹 서비스를 통해 연결되지 않는 클라이언트를 지원하며, 로컬 데이타를 원격 및 동적 데이타와 연합하십시오.
HTML DB
신속한 웹 애플리케이션 개발 툴을 사용하여 빠르고 안전한 애플리케이션을 개발 및 배포하십시오.
포괄적인 XML 지원
W3C XML 데이타 모델 지원을 통해 XML을 기본적으로 저장 및 검색하고 표준 액세스 방법을 사용하여 XML을 탐색 및 질의하십시오.
PL/SQL 및 JSP(Java Server Page)
서버측 Java 및 내장 프로시저 언어를 사용하고 SQL을 통해 보안, 이식성 및 효율성을 제공하십시오.
COM 자동화, Microsoft Transaction Server/COM+ 통합, ODBC 및 OLE DB
여러 Windows 데이타 액세스 방법을 지원하십시오.
관리 용이성
Enterprise Manager
통합된 단일 콘솔을 통해 오라클 스택에 기초한 모든 애플리케이션 및 시스템을 관리하고 모니터링하십시오.
자동 메모리 관리
Oracle Database 인스턴스에 사용되는 공유 메모리의 관리를 자동화하십시오.
자동 저장소 관리
사용 가능한 모든 리소스에서 I/O 로드를 분산시키고, 수직으로 통합된 파일 시스템과 볼륨 관리자를 통해 성능을 최적화하여 수동 I/O 조정이 불필요해집니다.
자동 실행 취소 관리
모든 오라클 시스템에서 매개변수 설정, 보안 설정, 저장소 및 파일 공간 조건에 대한 구성을 모니터링하십시오.
서버에서 관리하는 백업 및 복구
Oracle Recovery Manager(RMAN)를 사용하여 백업 및 복구 작업을 단순화, 자동화 및 향상시키십시오.
데이타 웨어하우징
데이타 압축
질의 시간에 영향을 주지 않으면서 관계형 테이블에 저장된 데이타를 압축하고 디스크 시스템 비용을 줄이십시오.
오라클 분석 기능
OLAP(Online Analytical Processing)용의 내장된 분석 작업 영역을 사용하십시오.
크로스 플랫폼을 포함한 이동 가능한 테이블스페이스
테이블스페이스 집합을 특정 데이타베이스 내에서 또는 특정 데이타베이스에서 다른 데이타베이스로 이동하십시오.
스타 질의 최적화
사실 테이블과 다차원 테이블을 조인하십시오.
요약 관리 - 구체화된 뷰 질의 재작성
구체화된 뷰를 사용하여 요청을 충족할 수 있는 시점을 자동으로 인식하여 질의 성능을 향상시키고 구체화된 뷰를 사용하도록 요청을 투명하게 재작성하십시오.
통합
Oracle Streams
데이타베이스 내에서 또는 특정 데이타베이스와 다른 데이타베이스 사이에서 데이타 스트림의 데이타, 트랜잭션 및 이벤트를 전파 및 관리하십시오.
Advanced Queuing
대기열 기반의 게시/구독을 통해 데이타베이스 대기열이 지속적 메시지 저장소의 역할을 수행하도록 하십시오.
Workflow
완벽한 워크플로우 관리 시스템을 사용하여 비즈니스 프로세스 기반 통합을 지원하십시오.
분산 질의/트랜잭션
분산 데이타베이스의 둘 이상의 개별 노드에서 데이타를 질의하거나 업데이트하십시오.
컨텐트 관리
Ultra Search
오라클 데이타베이스, ODBC 호환 데이타베이스, IMAP 메일 서버, HTML 문서, 디스크의 파일 등을 비롯한 여러 저장소에서 데이타를 검색하십시오.
interMedia
풍부한 미디어를 가장 널리 사용되는 형식으로 포함하는 일반, 웹 및 무선 애플리케이션을 개발, 배포 및 관리하십시오.
Text
텍스트 질의 애플리케이션 및 문서 분류 애플리케이션을 작성하십시오.

Posted by 1010
반응형
특징/옵션 Standard Edition 및 Standard EditionOne Enterprise Edition 참고
고가용성 Oracle Data Guard - Redo Apply N Y z
Oracle Data Guard - SQL Apply N Y  
롤링 업그레이드(rolling Upgrades) - 패치 세트, 데이타베이스 및 O/S N Y z
패스트 스타트(Fast-start) N Y z
포괄적인 온라인 스키마재구성/재정의 N Y z
온라인 시스템 변경- CPU,디스크, 메모리 Y Y z
플래시백 질의(Flashback Query) Y Y z
플래시백 테이블(Fashback Table) N Y z
플래시백 데이타베이스(Flashback Database) N Y z
플래시백 트랜잭션 질의(Flashback Transaction Query) N Y z
블록 레벨 복구 N Y z
증분 백업 및 복구 N Y z
병렬 백업 및 복구 N Y z
포인트 인 타임(Point-in-time)
테이블스페이스 복구
N Y z
시험 복구 (Trial recovery) N Y z
Oracle Fail Safe Y Y Windows 만 해당
확장성 Oracle Real Application Clusters Y Y Enterprise Edition의 경우,추가 비용 요구. SE에는 포함되어 있지만,SE One에는포함되지 않음
통합 클러스터웨어 Y Y RAC 요구
자동 작업로드 관리 Y Y RAC 요구
Java, PL/SQL 기본 컴파일 Y Y z
보안 고급 보안 옵션 N Y 추가 비용 옵션
Oracle Label Security N Y 추가 비용 옵션
암호화 툴키트 Y Y z
Virtual Private Database(VPD) N Y z
상세한 수준의 감사 N Y z
암호 관리 Y Y z
개발 플랫폼 Java 지원 Y Y z
데이타베이스 웹 서비스 Y Y OracleProgrammer 요구
SQLJ Y Y z
JDBC 드라이버 Y Y z
데이타베이스에서의포괄적인 XML 지원 Y Y zz
오브젝트 및 확장성 Y Y z
Regular Expressions Y Y z
PL/SQL 저장 프로시저 및 트리거 Y Y z
COM 자동화, Microsoft T ti S/COM+ 트랜잭션 서버 /COM+통합, ODBC 및 OLE DB Y Y Windows만 해당
Microsoft Distributed TransactionCoordinator 통합 Y Y Windows만 해당
Oracle Objects for OLE (OO4O) Y Y Windows만 해당
VLM 지원, 4GB RAM 튜닝 Y Y Windows만 해당
OLE DB.NET 및 ODBC.NET 지원 Y Y Windows만 해당
Native. NET Data Provider -ODP.NET Y Y Windows만 해당
Windows, Linux 및 HP-UX에 대한64-bit Itanium 지원 Y Y z
세계화 지원 Y Y z
통합 웹 애플리케이션개발 환경 Y Y HTML DB
SQL*Plus/iSQL*Plus Y Y z
관리 용이성 Oracle Change Management Pack N Y 추가 비용 옵션
Oracle Configuration Management Pack N Y 추가 비용 옵션
Oracle Diagnostic Pack N Y 추가 비용 옵션
Oracle Tuning Pack N Y 추가 비용 옵션.
Diagnostic Pack
필요
Oracle Enterprise Manager Y Y z
자동 메모리 관리 Y Y z
자동 스토리지 관리 Y Y z
자동 실행 취소 관리 Y Y z
서버 매니지드 백업 및 복구 Y Y z
Legato Storage Manager Y Y z
이중 백업 세트 N Y z
Database Resource Manager N Y z
VLDB, 데이타 웨어하우징, 비즈니스 인텔리전스 Oracle Partitioning N Y 추가 비용 옵션
Oracle OLAP N Y 추가 비용 옵션
Oracle Data Mining N Y 추가 비용 옵션
데이타 압축 N Y z
분석 기능 Y Y z
비트맵 색인 및 비트맵조인 색인 N Y z
기능 기반 색인 Y Y z
병렬 질의/DML N Y z
병렬 통계 수집 N Y z
병렬 색인 빌드(build)/스캔(scan) N Y z
병렬 데이타 펌프(Data Pump)익스포트/임포트 N Y z
크로스 플랫폼(cross-platform)을포함한 이동 가능한 테이블스페이스 N Y z
스타 질의(star query) 최적화 Y Y z
샘플 스캔 Y Y z
요약 관리 - Materialized View질의 재작성 N Y  
Direct Path Load API Y Y  
외부 테이블 Y Y  
SQL 모델 Y Y  
동기화 변경 데이타캡처 Y Y  
비동기화 변경 데이타캡처 N Y  
통합 Oracle Streams N Y  
고급 큐잉 Y Y  
Oracle Workflow Y Y  
메시징 게이트웨이 N Y  
기본 복제 Y Y 업데이트 가능한Materialized View사이트
고급 복제 N Y 멀티매스터(multi-master)복제
질의 분산 Y Y  
트랜잭션 분산 Y Y  
이기종 서비스 Y Y  
네트워킹 연결 풀링(pooling) Y Y  
Oracle Connection Manager N Y  
Oracle Names Y Y  
Infiniband 지원 N Y  
컨텐트 관리 Oracle Spatial N Y 추가 비용 옵션
Oracle Database Workspace Manager Y Y  
병렬 텍스트 색인 작성 N Y  
Ultra Search Y Y  
interMedia Y Y  
Oracle Text Y Y  
기타
데이타베이스 특징
데이타베이스 이벤트 트리거 Y Y  
열 삭제하기 Y Y  
열 이름 바꾸기 및 제약 조건 바꾸기 Y Y  
IOT(Index-organized table) Y Y  
Instead-of triggers Y Y  
LOB (large object) 지원 Y Y  
LogMiner Y Y  
다중 블록 크기 지원 Y Y  
임시 테이블 Y Y




Posted by 1010
반응형
  Oracle 10g 설명 | 특장점 | 비교표

10g Standard Edition
Oracle Database 10g Standard Edition은 업계 최고의 오라클 데이타베이스의 성능, 안정성, 보안성을 필요로 하는 중소 규모 비즈니스 또는 부서별 시스템에 이상적인 제품으로서 단일 서버 및 클러스터링된 서버(최대 4프로세서)에서 사용할 수 있다.
라이센스는 최대 4프로세서의 용량을 갖춘 단일 서버 환경에서, 그리고 클러스터당 최대 4프로세서를 지원하는 서버의 클러스터 환경에서 받을 수 있다.
Oracle Database 10g Standard Edition을 사용하면 트랜잭션 프로세싱, 데이타 웨어하우징, 타사 및 멀티미디어 애플리케이션을 비롯한 다양한 유형의 애플리케이션을 비용 효율적으로 개발 및 배포할 수 있다.
  필요시 확장 가능하고 서버 고장으로부터 보호해 주는 Oracle Real Application Clusters
  빠른 설치, 간편한 구성 및 자동화된 관리 기능
  효율적이고 덜 복잡한 데이타 및 디스크 관리를 위한 ASM(Automated Storage Management)

10g Enterprise Edition
Oracle Database Enterprise Edition은 클러스터 및 단일 시스템 구성 모두에서 업계를 선도하는 확장성과 안정성을 제공하고 OLTP 및 비즈니스 인텔리전스에 있어서 가장 포괄적인 기능을 제공하며 총소유 비용이 가장 저렴하다.
특히 Windows와 Linux를 실행하는 소규모 서버에서 대형 UNIX 서버 및 메인 프레임에 이르기까지 각종 기록을 능가하는 시스템 성능과 확장성을 제공한다.
ETL, 데이타 웨어하우징, OLAP, 데이타 마이닝 등의 고성능 비즈니스 인텔리전스 서비스
SQL, Java, XML, 표준 웹 인터페이스를 통한 웹 서비스로의 종합적이고 개방적인 액세스
시스템 오류, 사이트 오류, 사람으로 인한 오류, 계획된 유지 보수 등을 극복할 수 있는 지속적인 가용성

10g Standard Edition One
Oracle Standard Edition One은 빠른 설치 및 단순화된 관리 등 중소 규모 기업들을 위한 많은 기능을 갖추고 있으며 전체 Oracle Database 제품군의 일부분으로서, 가장 큰 문제들을 다룰 수 있도록 완벽한 호환성과 확장성을 제공한다.
이제 중소 규모의 기업들은 745달러의 라이센스 비용으로 세계에서 가장 인기있는 데이타베이스를 얻을
  수 있음.
최대 2프로세서까지의 단일 서버에 비즈니스 크리티컬 애플리케이션을 구축 및 배포 하는데 필요한 모든
  것이 포함되어 있음.
Named User Plus 라이센스(최소 5명의 사용자)로 제공

10g Personal Edition
Oracle Database Standard Edition One, Oracle Database Standard Edition 및 Oracle Database Enterprise Edition과의 완벽한 호환성을 요구하는 단일 사용자 개발 및 배치를 지원한다. Oracle Database 10g의 기능을 개인 워크스테이션에 제공함으로써, 세계에서 가장 널리 사용되고 있는 Oracle Database의 강력한 성능과 데스크탑 제품에서 기대할 수 있는 사용 용이성 및 단순성 등 이점을 결합한 독보적인 데이터베이스이다.

10g Lite Edition
Oracle Database Lite는 모바일 데이타베이스 애플리케이션을 구축, 배포, 관리할 수 있는 종합적인 인프라로서, 모바일 및 소형 풋프린트 장치(핸드헬드, 랩탑, 커뮤니케이터 등) 상에서 로컬로 실행되는 애플리케이션을 효율적이고, 신뢰할 수 있고, 안전한 데이타 관리 기능을 제공한다. Oracle Database Lite는 장치 및 모든 Oracle Database 간의 확장 가능한 데이타 동기화를 지원할 뿐만 아니라, 사용자, 장치 및 애플리케이션을 완벽하게 관리한다.
Posted by 1010
반응형


GRID 솔루션


 




전사적 기업 그리드를 적용한 3가지 큰 효과





Q : 컴퓨터 파워, 누가 가지고 있습니까?
바로 당신입니다. 개별 어플리케이션에 묶여 있는 서버와 스토리지로 인해 당신은 사용하지 않는 컴퓨팅 파워에 비용을 지불하고 있습니까? 파워는 이미 손안에 있습니다. Oracle GRID Compution이 이 파워의 실현을 돕겠습니다.


Q : 어떻게 작용합니까?
GRID는 서버와 저장장치가 하나의 큰 컴퓨터로 작동하도록 연결합니다. 어플리케이션이 모든 컴퓨팅 파워를 활용하게 하십시오.


Q : 언제 가능합니까?
지금입니다. 오라클은 즉시 GRID 환경으로 이행할 수 있도록 소프트웨어 플랫폼을 완벽하게 제공합니다. GRID에 첫 발을 내딛으십시오.


Oracle Database 10g Standard Edition Include By Real Application Clusters( RAC )


Oracle Database 10g Standard Edition에 기본 장착( GRID )

별도 비용추가가 없이 RAC 구성(총소요 비용 감소 - 최대 4개 프로세서를 지원하는 서버 클러스터에 적용)

서버 Down, 서버추가, Disk추가, Upgrade시 무정지 서비스

고 가용성과 확장성 제공

Single Instance와 동일한 기능



 

Oracle Database 10g Standard Edition 특징


(1) High Availability : 고객의 미션 크리티컬한 시스템을 일주일 24시간 내내 가동할 수 있도록 하는 기능

- Oracle Fail Safe : Window 클러스터를 구성 및 검증하고, Oracle Database와 어플리케이션을 자동으로 복구합니다.
- Flashback Query : 오류가 있는 트랜잭션을 이전 데이터 상태로 복구함으로써 오류를 복구할 수 있다.
- Oracle Real Application Clusters : 클러스터 하드웨어 구성을 통해, 모든 패키지또는 사용자 정의 어플리케이션을
     위해 무제한의 확장성과 고가용성을 제공합니다.




(2) Intergration : 비즈니스 오퍼레이션을 자동화하기 위하여 데이터, 어플리케이션, 웹 서비스를 연결시키도록 하는 기능

- Oracle Workflow : 종합적인 워크플로우 관리 시스템이 비즈니스 프로세스 통합을 지원하며, 사용자 정의된 비즈
     니스 규칙에 따라 라우팅 정보, 모델링, 자동화, 지속적인 프로세스 개선등을 지원합니다.
- FOracle Dynamic Service : 서비스 지향적인 컴퓨터 모델 및 XML을 사용하는 표준 인터넷 프로토콜을 통해, 어플리
     케이션이 모든 웹 정보 소스와 상호 작용할 수 있도록 지원합니다.
- Oracle Ultra Search : Multisource 검색 기술이 강력한 검색을 위해 테이블 및 파일 데이터와 웹인덱스 데이터를 결
     합하여 줍니다.
- Open System Gateway : SQL을 통해 이기종의 비-오라클 분산 환경에서도 저장된 데이터에 대해 투명하게 엑세스
     할 수 있습니다.
- Mainframe Integration Gateway : 일반적인 종류의 메인프레임 기반 데이터를 오라클 환경으로 통합하여 줍니다.
- Enterprise Integration Gateway : IBM 환경의 데이터 및 트랜잭션을 오라클 환경으로 통합하여 줍니다.
- EDA/SQL Gateways : VSAM, IMS, CA-IDMS/DB, ADABAS, CA-DATACOM/DB, Model 204, System 2000, SUPRA,
     TOTAL, ISAM, QSAM, FOCUS, Infroman 등 다양한 종류의 메인프레임 기반 데이터에 SQL 기반으로 엑세스할 수
     있습니다.




(3) Manageability : 한 곳의 통제소에서 전체 인프라를 관리할 수 있도록 하는 기능

-Oracle Enterprise Manager : 종합적인 관리 프레임워크가 여러 개의 이기종 환경을 지원하며, 여기에는 단일 지점
     관리를 위한 중앙화된 콘솔, 실시간 모니터링, 분산된 데이터베이스 관리가 포함됩니다.
- 옵티마이저 통계 관리 : 모든 오라클 질의에 대한 실행을 관리하며, 모든 SQL문을 평가하고 이를 위한 최고의 실행
     계획을 만듭니다.






(4) Scalability & Performance : 최적의 일관된 성능을 작업 없이 보장할 수 있는 기능

- Oracle Test : 강력한 텍스트 검색 및 인텔리전트 텍스트 관리 기능을 추가할 수 있으며, 빠르고 정확한 검색을 추가
     하기 위해 모든 문서와 텍스트 콘텐츠를 인덱스 할 수 있습니다.




(5) Security : 고객의 가장 중요한 자산인 정보를 보호할 수 있는 기능

- 암호 관리 및 프록시 인증 : 암호 길이와 복잡성 수준을 강화하여, 역할을 포함한 모든 데이터베이스 보안 기능을
     사용할 수 있습니다.




(6) Development Platform : 글로벌화를 가능하게 하는 10g의 기능

- Java, XML 및 세계화 지원 : J2SE 1.3과 호환되는 Java Virtual Machine, 모든 드라이버상에서 JDBC 2.0에 대한 완전
     한 지원, JDBC 3.0에 대한 향상된 지원, 높은 성능, 네이티브 XML, 스토리지 및 검색 기술(W3C XML, 데이터 모델)
     을 제공합니다. 또한 세계화 지원을 통해 오라클 제품을 실행할 수 있도록 지원하며, 이에 따라 각 나라의 고유 언
     어와 배경으로 콘텐츠를 제시할 수 있습니다.
- 오라클 분석 가능 : 생산성이 높은 개발을 지원하고, 모든 종류의 분석 프로세싱 작업을 위한 성능을 향상시키며,
     비즈니스 인텔리전스를 강화합니다.
- Oracle Intermedia : 이미지, 오디오, 비디오 같은 멀티미디어 데이터를 다른 엔터프라이즈 정보와 함께 통합된 방식
     으로 관리할 수 있도록 미디어 어플리케이션을 만들수 있습니다.


 

Oracle Database 10g Edition 특징 요약표


특징/옵션

Standard Edition 및 Standard Edition One

Enterprise Edition

참고

고가용성

Oracle Data Guard - Redo Apply

N

Y


Oracle Data Guard - SQL Apply

N

Y


롤링 업그레이드(rolling Upgrades) -
패치 세트, 데이터베이스 및 O/S

N

Y


패스트 스타트(Fast-start)

N

Y


포괄적인 온라인 스키마재구성/재정의

N

Y


온라인 시스템 변경- CPU, 디스크, 메모리

Y

Y


플래시백 질의(Flashback Query)

Y

Y


플래시 백 테이블(Flashback Table)

N

Y


플래시 백 데이터베이스
(Flashback Database)

N

Y


플래시백 트랜잭션 질의
(Flashback Transaction Query)

N

Y


블록 레벨 복구

N

Y


증분 백업 및 복구

N

Y


병렬 백업 및 복구

N

Y


포인트 인 타임(Point-in-time)
테이블스페이스 복구

N

Y


시험 복구 (Trial recovery)

N

Y


Oracle Fail Safe

Y

Y

Windows 만 해당

확장성

Oracle Real Application Clusters

Y

Y

Enterprise Edition의 경우,추가 비용 요구. SE에는 포함되어 있지만,SE One에는 포함되지 않음

통합 클러스터웨어

Y

Y

RAC 요구

자동 작업로드 관리

Y

Y

RAC 요구

Java, PL/SQL 기본 컴파일

Y

Y


보안

고급 보안 옵션

N

Y

추가 비용 옵션

Oracle Label Security

N

Y

추가 비용 옵션

암호화 툴키트

Y

Y


Virtual Private Database(VPD)

N

Y


상세한 수준의 감사

N

Y


암호 관리

Y

Y


개발 플랫폼

Java 지원

Y

Y


데이터베이스 웹 서비스

Y

Y

OracleProgrammer 요구

SQLJ

Y

Y


JDBC 드라이버

Y

Y


데이타베이스에서의포괄적인 XML 지원

Y

Y


오브젝트 및 확장성

Y

Y


Regular Expressions

Y

Y


PL/SQL 저장 프로시저 및 트리거

Y

Y


COM 자동화, Microsoft T it S/COM+ 트랜잭션 서버 /COM+통합, ODBC 및 OLE DB

Y

Y

Windows 만 해당

Microsoft Distributed Transaction Coordinator 통합

Y

Y

Windows 만 해당

Oracle Objects for OLE (OO4O)

Y

Y

Windows 만 해당

VLM 지원, 4GB RAM 튜닝

Y

Y

Windows 만 해당

OLE DB.NET 및 ODBC.NET 지원

Y

Y

Windows 만 해당

Native. NET Data Provider -ODP.NET

Y

Y

Windows 만 해당

Windows, Linux 및 HP-UX에 대한64-bit Itanium 지원

Y

Y


세계화 지원

Y

Y


통합 웹 애플리케이션개발 환경

Y

Y

HTML DB

SQL*Plus/iSQL*Plus

Y

Y



관리 용이성

Oracle Change Management Pack

N

Y

추가 비용 옵션

Oracle Configuration Management Pack

N

Y

추가 비용 옵션

Oracle Diagnostic Pack

N

Y

추가 비용 옵션

Oracle Tuning Pack

N

Y

추가 비용 옵션.
Diagnostic Pack필요

Oracle Enterprise Manager

Y

Y


자동 메모리 관리

Y

Y


자동 스토리지 관리

Y

Y


자동 실행 취소 관리

Y

Y


서버 매니지드 백업 및 복구

Y

Y


Legato Storage Manager

Y

Y


이중 백업 세트

N

Y


Database Resource Manager

N

Y


VLDB, 데이타 웨어하우징, 비즈니스
인텔리전스

Oracle Partitioning

N

Y

추가 비용 옵션

Oracle OLAP

N

Y

추가 비용 옵션

Oracle Data Mining

N

Y

추가 비용 옵션

데이타 압축

N

Y


분석 기능

Y

Y


비트맵 색인 및 비트맵조인 색인

N

Y


기능 기반 색인

N

Y


병렬 질의/DML

N

Y


병렬 통계 수집

N

Y


병렬 색인 빌드(build)/스캔(scan)

N

Y


병렬 데이타 펌프(Data Pump)익스포트/
임포트

Y

Y


크로스 플랫폼(cross-platform)을
포함한 이동 가능한 테이블스페이스

N

Y


스타 질의(star query) 최적화

Y

Y


샘플 스캔

Y

Y


요약 관리 - Materialized View질의 재작성

N

Y


Direct Path Load API

Y

Y


외부 테이블

Y

Y


SQL 모델

Y

Y


동기화 변경 데이타캡처

Y

Y


비동기화 변경 데이타캡처

N

Y


통합

Oracle Streams

N

Y


고급 큐잉

Y

Y


Oracle Workflow

Y

Y


메시징 게이트웨이

N

Y


기본 복제

Y

Y

업데이트 가능한Materialized View
사이트

고급 복제

N

Y

멀티매스터(multi-master)복제

질의 분산

Y

Y


트랜잭션 분산

Y

Y


이기종 서비스

Y

Y


네트워킹

연결 풀링(pooling)

Y

Y


Oracle Connection Manager

N

Y


Oracle Names

Y

Y


Infiniband 지원

N

Y


컨텐트 관리

Oracle Spatial

N

Y

추가 비용 옵션

Oracle Database Workspace Manager

Y

Y


병렬 텍스트 색인 작성

N

Y


Ultra Search

Y

Y


interMedia

Y

Y


Oracle Text

Y

Y


기타데이타
베이스 특징

데이타베이스 이벤트 트리거

Y

Y


열 삭제하기

Y

Y


열 이름 바꾸기 및 제약 조건 바꾸기

Y

Y


IOT(Index-organized table)

Y

Y


Instead-of triggers

Y

Y


LOB (large object) 지원

Y

Y


LogMiner

Y

Y


다중 블록 크기 지원

Y

Y


임시 테이블

Y

Y



 

Oracle Database 10g Standard Edition 라이센스 안내


(1) Oracle Database 10g Standard Edition One : 저렴한 가격 / 최대 2개 프로세서 용량을 장착한 서버에만 적용. (2 Processor 까지 확장가능한 서버급에만 적용)
- 소규모 기업, 사업부, 분산된 지점 환경에 적합
- 1 CPU당 최소 10 Named User Plus 단위로 구매
- 최소 5 Named User Plus Licensing 기능
- Named User 산정 및 Processor License의 두 가지 산정 방법




(2) Oracle Database 10g Standard Edition : 최대 4개 프로세서 용량을 장착한 서버만 적용. (4 Processor 까지 확장가능한 서버급에만 적용)
- 매우 낮은 비용으로 Oracle Database 10g Standard Edition의 표준기능인 RAC
   를 사용
- 중소규모 기업, 사업부, 분산된 지점 환경에 적합
- 1 CPU당 최소 10 Named User Plus 단위로 구매
- Named User 산정 및 Processor License의 두 가지 산정방법법




(3) Oracle Database 10g Enterprise Edition : 업계 최고의 성능과 확장성, OLTP상의 안정성, 의사결정지원 기능
- 대용량 OLTP(On-Line Transaction Processing)환경, 질의 집약적인 데이터 웨어하우스 및 성능 요구치가 높은 인터넷 어플리케이션과 같은 미션크리티컬 어플리케이션을 위한 신뢰할 수 있고 안전하며 효율적인 데이터 관리를 제공합니다.
Oracle Database 10g Enterprise Edition은 다양한 옵션 및 팩을 구매함으로써 그 기능을 한층 개선할 수 있습니다.
Oracle Database 10g Enterprise Edition은 사용자 수가 많고 대용량 온라인 트랜잭션 처리 및 질의 중심 데이터 웨어하우징 어플리케이션을 지원하는 데이터베이스를 운영하는 대기업에 적합한 제품으로 고가용성, 성능, 확장성, 보안성, 자체 관리면에서 최고의 성능을 발휘합니다.




(4) Named User Plus : 1 CPU당 최소 10 Named User Plus 단위로 구매 실사용 USER 수가 많을 경우 사용 User로 산정
- 2 CPU에 실사용 User수가 30명일 때 = 30 User
- 2 CPU에 실사용 User수가 15명일 때 = 20 User


(5) Processor License : 1 CPU당 Processor 단위로 구매( Unlimited ) 웹 서비스나 사용 User수가 많은 경우 (불특정 다수)



 

Oracle Database 10g Edition 운영 환경


Oracle Database 10g Edition은 Intel 계열과 RISC 계열의 CPU를 지원합니다.


CPU 타입

Operating system

Hardware

Intel / RISC 계열

Linux x86/itaniumMicrosoft windows(32-bit/64-bit itanium)Sun sparc solaris(64-bit)IBM ALX5LHP-UX(PA-RISC/itanium)Hp tru64 unixIBM z/OS

HP PA-RISC/itaniumIBM x/p/z seriesSun ultra-sparc series기타 Intel-based하드웨어



제품명 : Oracle9i Database



Oracle9i Database 특징


Oracle9i Standard Edition

Oracle9i Enterprise Edition

워크 그룹, 부서 단위, 인터넷 또는 인터넷 애플리케이션에 있어서 지금까지 없었던 사용성, 파워, 가격 대비 성능을 발휘하며 Oracle9i Database Standard Edition에는 완전히 통합되어 사용이 용이한 관리 툴 및 분산된 애플리케이션, Web 기능이 탑재되어 있다. 소규모 비즈니스용 서버 환경에서부터 고도의 분산 환경에 이르기까지 비즈니스 크리티컬 애플리케이션 구축에 필요한 모든 기능이 갖춰져 있다.

Oracle9i Database는 오브젝트 관계형 데이타베이스에 속한 최첨단 제품으로서. PC Magazine의 Editors Choice 상을 받았으며 Linux Journal에서 Linux를 위한 #1 데이타베이스로 뽑힌바 있는 Oracle9i Database는 최고의 확장성과 기능성을 제공한다. 사이트, 패키지형 애플리케이션, 데이타 웨어하우스, OLTP 애플리케이션 등 모든 분야에서 사용할 수 있어 전문 컴퓨팅 환경 구축에 부족함이 없다.

구성요소

- Oracle HTTP Server Power by Apache
- Perl Interpreter  
- Oracle9i AS Java  
- Oracle9i AS Developer Kits  
- Oracle Internet File System  
- Oracle9i AS Portal  
- Oracle Advanced Security  
- Oracle Enterprise Manager (console only)

- Oracle9i AS Cache  
- Oracle9i AS PL/SQL  
- Oracle9i AS Forms  
- Oracle9i AS Reports  
- Oracle9i AS Discoverer Viewer  
- Oracle Enterprise Manager
  (console and Management Server)

기술지원

1. Up Date & Product Support 지원않음
2. Premium Support 당사와 별도 계약
3. EPPC(교육) : 지원하지 않음

1. Up Date & Product Support 1년 무상 지원
2. Premium Support 당사와 별도 계약
3. EPPC(교육) : 별도 구매 => 선불

Posted by 1010
반응형
Posted by 1010
반응형
웹 개발할 때 notepad 하나만 있어도 되겠지만, 그래도 나름대로 있으면 편하다는 tool 몇가지를 소개하고자 한다.

1. editplus
말이 필요 없다..
editplus : http://www.editplus.com/kr/

2. IE Developer Toolbar
현재 보여지는 페이지의 정보를 보거나 HTML, CSS 등을 수정해 어떻게 변하는 지 확인할 있다.
IE 8에서부터는 기본으로 들어가는 듯 보인다.
IE Developer Toolbar : http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en

3. Microsoft Script Debugger
MS visual studio에 기본으로 내장되어 있는 도구이나, VS를 설치 하지 않았다면, 별도로 설치해야한다.
Tool 은 해당 페이지에서 스크립트 에러가 발생 되면 오류난 부분에 대해서 break-point 가 걸린 상태로
해당 소스를 보여주는 tool 이다.
에러나는 페이지를 일일이 열어서 해당 라인을 찾아가는 거 보다는 쉽게 에러나는 곳을 찾아갈 수 있다.
또 에러나는 시점에서 data값을 확인할 수도 있다.
- 하나 더 : Companion JS 라는 프로그램을 설치하면, MS Script Debugger 가 IE의 addon 형태로 나온다.
Script Debugger : http://www.microsoft.com/downloads/details.aspx?FamilyID=2f465be0-94fd-4569-b3c4-dffdf19ccd99&DisplayLang=en
Companion Js : http://www.my-debugbar.com/wiki/CompanionJS/HomePage

※ firefox 상에서는 firebug가 있다고 합니다.

4. Fiddler
HTTP가 오고 가는 전송데이터들을 확인할 수 있다.
TCP 전송라인을 trace 하는 tool 이라고 보면 될 것이다.
fiddler : http://www.fiddlertool.com/fiddler/

이정도 가지고 있으면..
왠만한 깔끔하게 만들 수 있지 않을까? +_+;

-- 2009.06.11 추가
IE 8.0 이후로는 IE developer toolbar(이하, IEDT)와 MS Script Debugger(이하, MSSD)가 필요가 없을 듯 싶네요
IEDT와 MSSD는 IE8.0에 새로운 IEDT로 통합 흡수가 되었습니다.
마치 Firefox 의 plug-in 기능인 firebug와 같은 형태이지요..

이로써, IE 8.0 의 IEDT, Firefox의 firebug, Chrome 의 자체 디버거..
각 브라우저 별로 디버거를 구축해놨으니 이제 개발자는 신나게 개발만 하면 되는거겠죠? ㅜ ㅡ...
Posted by 1010
98..Etc/70.JEUS2009. 6. 22. 14:04
반응형

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

tail_log_ajax.jsp

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


<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.io.*" %>
<%!
public String toKorean(String param) {
 try{
  //param=new String(param.getBytes("ISO-8859-1"),"EUC-KR");
 }catch(Exception e){
 }
 return param;
}
%>

<%
response.setHeader("Pragma","No-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0);
response.setHeader ("Cache-Control", "no-cache");
%>

<%
//로그파일명
String log_filename = request.getParameter("log_filename") == null ? "": request.getParameter("log_filename");
long end_point = (request.getParameter("end_point")==null)? 0:Long.parseLong(request.getParameter("end_point")+"");
//로그파일이 있는 디렉토리
String log_dir = request.getParameter("log_dir");
if(log_dir==null||log_dir.length()==0){
 log_dir = "/home/jeus5/logs/vmstest/";
}

StringBuffer sb = new StringBuffer();
RandomAccessFile read_file = new RandomAccessFile(log_dir+"/"+log_filename, "r");
long str_length = read_file.length();
long start_point = (end_point>0)?end_point:str_length;
read_file.seek(start_point);  
String str;
long file_point = start_point;
while((str = read_file.readLine()) != null){
 sb.append(toKorean(str)+"\n");
 file_point = read_file.getFilePointer();
 read_file.seek(file_point);  
}
read_file.close();
String log_data = sb.toString();
out.print(file_point+","+log_data);
%>



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


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

tail_log.jsp

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


<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.io.*" %>
<%!
public String toKorean(String param) {
 try{
  //param=new String(param.getBytes("ISO-8859-1"),"EUC-KR");
 }catch(Exception e){
 }
 return param;
}
%>

<%
//로그파일이 있는 디렉토리
String log_dir = request.getParameter("log_dir");
if(log_dir==null||log_dir.length()==0){
 log_dir = "/home/jeus5/logs/vmstest/";
}

//화면에 나타낼 로그파일 길이
long log_length = 100000;
//로그파일명
String log_filename = request.getParameter("log_filename") == null ? "": request.getParameter("log_filename");

// 디렉토리인 객체를 생성
File myDir = new File(log_dir);
// 디렉토리의 내용 구하기
File[] list_files = myDir.listFiles();

//파일시작위치
long start_point = 0;
//파일끝위치
long end_point = 0;
//파일내용
String log_data = "";
if(!log_filename.equals("")){
 StringBuffer sb = new StringBuffer();
 RandomAccessFile read_file = new RandomAccessFile(log_dir+"/"+log_filename, "r");
 //파일 길이를 구한다.
 long str_length = read_file.length();
 //파일을 읽을 위치를 정한다.
 start_point = (str_length<log_length)?0:(str_length-log_length);
 read_file.seek(start_point);  
 String str;
 end_point = str_length;
 while((str = read_file.readLine()) != null){
  sb.append(toKorean(str)+"\n");
  //파일을 읽고 마지막 위치를 알아낸다.
  end_point = read_file.getFilePointer();
  read_file.seek(end_point);  
 }
 read_file.close();
 //파일내용
 log_data = sb.toString();
}
%>

<HTML>
<HEAD>
<title>로그파일보기</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type="text/css">
<!--
a {text-decoration:none; color: black;}
a:link {text-decoration:none; color: black;}
a:visited {text-decoration:none; color: black;}
a:active {text-decoration:none; color: black;}
a:hover {text-decoration:none; color:black;}
body,table,tr,td {  font-family: "굴림"; font-size: 9pt; font-style: normal; color: black;}
-->
</style>
<script>
 //ajax를 위한 함수입니다.
 function getXmlHttpRequest(){
  var xmlhttp = false;
  // Mozilla/Safari
  if (window.xmlhttpuest) {
    xmlhttp = new xmlhttpuest();
  }
  // IE
  else if (window.ActiveXObject) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  return xmlhttp;
 }
</script>
</head>

<body>
<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%">
 <tr height="10%">
  <td align="left" valign="bottom">
   <table border="0" cellspacing="0" cellpadding="0">
   <form name="fileform" method="post" action="tail_log.jsp">
    <tr>
     <td align="left" valign="bottom" height="20">
      로그파일을 tail -f 명령어 처럼 보여줍니다.
     </td>
    </tr>
    <tr>
     <td>
      <select id="log_dir" name="log_dir" onChange="window.Location='tail_log.jsp?log_dir='+this.options[this.selectedIndex].value">
      <option value="/home/jeus5/logs/vmstest/">개발서버      
      </select><script>document.fileform.log_dir.value="<%=log_dir%>";</script>
      <select name="log_filename">
       <option value="">파일선택</option>
       <%
       if (list_files != null) {
        for (int i = 0; i < list_files.length; i++) {
         if(!list_files[i].isDirectory()){
          String filename = list_files[i].getName();
          filename = filename.substring(filename.lastIndexOf("/")+1,filename.length());
       %>
       <option value="<%=filename%>" <%=log_filename.equals(filename)?"selected":""%>><%=filename%></option>
       <%
         }
        }
       }
       %>
      </select>
     </td>
     <td>
      <input type="submit" value="로그파일보기">
     </td>
    </tr>
   </form>
   </table>
  </td>
 </tr>
 <tr height="90%">
  <td>
   <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%">
   <form name="logform">
    <tr>
     <td><!--textarea id="log_data_area" name="log_data" style="width:100%;height:100%;"></textarea--><xmp id="log_data" name="log_data" style="text-overflow:ellipsis;overflow:auto;border:1 solid #000000;width:1300;height:100%"><%=log_data%>
     </xmp></td>
    </tr>
   </form>
   </table>
  </td>
 </tr>
</table>
<%
if(!log_filename.equals("")){
%>
<script>
 var end_point = <%=end_point%>;
function include_ajax_repeat(){
  var url = 'tail_log_ajax.jsp?log_filename=<%=log_filename%>&end_point='+end_point;
  //alert(url);
  var xmlhttp = getXmlHttpRequest();
  if(url){
   xmlhttp.open("GET", url, true);
   xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
      var resText = xmlhttp.responseText;
      //마지막 위치
      end_point = resText.substring(0,resText.indexOf(','));
      //새로운 로그 데이타
      var data = resText.substring(resText.indexOf(',')+1,resText.length);
      log_data.innerText = log_data.innerText + data;
      //일정한 양의 로그데이타만 남긴다.
      if(log_data.innerText.length><%=log_length%>) log_data.innerText = log_data.innerText.substring(log_data.innerText.length-<%=log_length%>);
      //스크롤 이동
      document.getElementById('log_data').scrollTop=document.getElementById('log_data').scrollHeight+<%=log_length%>;
      xmlhttp = null;
     } else {
      //alert("Error loading "+url+", "+xmlhttp.status+"("+xmlhttp.statusText+")");
      top.window.title="Error loading "+url+", "+xmlhttp.status+"("+xmlhttp.statusText+")";
      xmlhttp = null;
     }
    }
   }
   xmlhttp.send(null);
  } 
  setTimeout("include_ajax_repeat()", 2000);//msec 마다 서버와 통신함
  return false;
 }
 function include_ajax_repeat_old(){
  var url = 'tail_log_ajax.jsp?log_filename=<%=log_filename%>&end_point='+end_point;
  //alert(url);
  var xmlhttp = getXmlHttpRequest();
  if(url){
   xmlhttp.open("GET", url, true);
   xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
      var resText = xmlhttp.responseText;
      //마지막 위치
      end_point = resText.substring(0,resText.indexOf(','));
      //새로운 로그 데이타
      var log_data = resText.substring(resText.indexOf(',')+1,resText.length);
      document.logform.log_data.value = document.logform.log_data.value + log_data;
      //일정한 양의 로그데이타만 남긴다.
      if(document.logform.log_data.value.length><%=log_length%>) document.logform.log_data.value = document.logform.log_data.value.substring(document.logform.log_data.value.length-<%=log_length%>);
      //스크롤 이동
      document.getElementById('log_data_area').scrollTop=document.getElementById('log_data_area').scrollHeight+<%=log_length%>;
     } else {
      //alert("Error loading "+url+", "+xmlhttp.status+"("+xmlhttp.statusText+")");
      top.window.document.title="Error loading "+url+", "+xmlhttp.status+"("+xmlhttp.statusText+")";
     }
    }
   }
   xmlhttp.send(null);
  }
  setTimeout("include_ajax_repeat()", 2000);//msec 마다 서버와 통신함
  return false;
 }
 include_ajax_repeat();
</script>
<%
}
%>
</body>
</html>


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


출처 : http://realcool.egloos.com/4778358

*** 주의사항

Clustering 환경에서는 경로를 반드시 파일로 부터 읽어 와야 한다.

안그럼 무자게 많은 error 가 발생함.

Posted by 1010
98..Etc/70.JEUS2009. 6. 22. 14:00
반응형

JEUS 5.0을 버전을 기준으로 하고 설치시 입력한 JEUS 관리자의 비밀번호는 jeusadmin이라고 전제한다.

JEUS 구동

주로 jboot, jdown이란 이름으로 스크립트를 작성하여 실행한다. 이 파일들의 실제 명령행은 다음과 같다.

  • jboot: jeus -Uadministrator -Pjeusadmin
  • jdown: jeusadmin -Uadministrator -Pjeusadmin jeusexit

jeusadmin console

jeusadmin 콘솔툴을 이용하여 JEUS 컨테이너기동/종료, 엔진리스트확인 등 JEUS 엔진의 상태를 제어 및 점검한다.

  • 콘솔 실행: jeusadmin 'hostname' -Uadministrator -Pjeusadmin
  • 명령 목록
    • allenglist: jeusadmin의 allenglist 명령은 현재 각 컨테이너의 엔진기동 상태를 보여준다.
    • downcon <container-name>: 지정된 컨테이너를 종료시킨다.
    • startcon <container-name>: 지정된 컨테이너를 기동시킨다.
    • pidlist: JEUS의 엔진 프로세스를 확인한다.

webadmin console

webadmin 콘솔은 JEUS의 컨테이너 내부에 기동된 서블릿 엔진의 상태를 모니터링하기 위한 명령프롬프트이다.

  • 콘솔 실행: webadmin <container-name> -Uadministrator -Pjeusadmin
  • 명령 목록
    • ti: ti는 Thread Information의 약자로 JEUS 서블릿 엔진의 컨텍스트그룹 내부의 Worker Thread의 상태를 체크하기 위한 명령어이다.
    • st -m: 현재 Container의 JVM Memory 사용 현황
    • st -r: 설정한 Context로 들어온 요청 count와 평균처리시간
    • st -s: 현재 유지하고 있는 세션 객체의 수

webadmin 반복 모니터링

webadmin 내의 모니터링 명령어를 주기적으로 자동실행하게 하려면 다음과 같은 형식으로 명령어를 실행한다.

  • <command> -i 주기(초) -k 횟수
  • 예) ti -i 2 -k 10 : ti 명령어를 2초 간격으로 10번 수행

dbpooladmin console

dbpooladmin 콘솔은 컨테이너별로 할당된 Database Pool의 상태를 모니터링하기 위한 명령프롬프트이다.

  • 콘솔 실행: dbpooladmin<container-name> -Uadministrator -Pjeusadmin
  • 명령 목록
    • Info: 해당 컨테이너에서 관리되고 있는 Database Pool의 정보가 표시된다.
    • min, max 값은 JEUSMain.xml에 설정한 Pool의 최소/최대값이며 current는 현재 풀에 보관되고 있는 실제 커넥션의 수, idle의 풀에 보관되고 있는 커넥션중, 사용가능한 개수를 의미한다.

JEUS 웹 관리자

http://hostname:9744/webadmin 로 접속하여 administrator/jeusadmin 계정으로 로그인한다.

사용자 삽입 이미지

JEUS 웹 관리자

JEUS 장애 처리

JEUS 프로세스ID (PID) 확인

JEUS의 엔진 프로세스는 다음과 같이 2가지 방법으로 확인할 수 있다.

  • ps -ef | grep java
    • -Xmx512m 이후 부분을 확인하여 JEUS Manager 프로세스임을 확인한다.
    • [-D컨테이너이름]을 이용하여 컨테이너 프로세스임을 확인한다.
  • jeusadmin 콘솔툴을 이용한 PID 확인
    • pidlist: pidlist 명령을 사용하여 PID를 확인한다.

JAVA Dump

  • 덤프 생성: kill -3 [JEUS-PID]
  • 덤프 확인: JEUS JAVA프로세스에서 생성한 덤프는 JeusServerLog에서 확인한다.
    • 예) vi $JEUS_HOME/logs/`hostname`/JeusServer_20070201.log
WebtoB 운영 및 관리

WebtoB 구동

  • wsboot
  • wsdown-I : ps -ef을 이용하여 wsm, hth, htl, html 등의 프로세스가 나타나지 않으면 정상 종료

wsadmin console

WebtoB 시스템을 관리하기 위해서 wsadmin이라는 프로그램이 제공된다. wsadmin 프로그램은 UNIX 환경의 shell과 비슷한 Command Interpreter 이다. 즉, 항상 프롬프트상태로 대기중이다가 입력되는 명령어를 해석하여 이를 실행하게 된다. 여러 Node를 한 Domain으로 사용하는 경우 wsadmin으로 전체를 중앙관리가 가능하며 각 Node 별로 로컬에서만도 관리가 가능하다.

  • wsadmin
  • 명령 목록
    • ci: 요청에 대한 현재 클라이언트 정보를 표시한다. HTH당 접속한 클라이언트의 KeepAlive 되어있는 개수를 보여준다. WebtoB단에 요청을 보내고 HTTP Session의 KeepAliveTimeout 전까지 유지되고 있는 클라이언트의 총 개수 정보이다.
    • ci -s: 현재 클라이언트의 전체 수를 표시한다.
    • si: 웹서버 환경설정 파일에서 *SERVER 절에 선언한 서버들의 수행정보를 보여준다.
    • st -s: 웹서버 환경설정 파일에서 *SERVER, *URI, *EXT 절에 설정한 서비스의 상태가 보인다.
    • st -p: WebtoB 프로세스의 상태를 표시한다. 주로 JEUS-WebtoB간 연동 상태를 확인할 때 사용한다.

wsadmin 명령 연속 보기

ci, st -s, st -p, si 등의 명령어를 다음과 같이 수행하면 주기적으로 WebtoB의 상태를 모니터링할 수 있다.

  • r -i <시간(초)> -k <횟수> <명령>
  • 예) r -i 1 -k 1000 st -s
JEUS alias 설정

.profile 참고

...
export JEUS_HOME=/jeus
...
#### JEUS alias ####
alias ja='jeusadmin `hostname` -Uadministrator -Pjeusadmin'
alias ea='ejbadmin `hostname`_ejb_engine1 -Uadministrator -Pjeusadmin'
alias wa='webadmin `hostname`_container1 -Uadministrator -Pjeusadmin'
alias da='dbpooladmin `hostname`_container1 -Uadministrator -Pjeusadmin'
alias ti='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin ti -i 3 -k 100000'
alias ss='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin st -s -i 3 -k 100000'
alias sd='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin st -d -i 3 -k 100000'
alias di='dbpooladmin `hostname`_container1 -Uadministrator -Pjeusadmin info -i 3 -k 100000'

alias jcfg='cd ${JEUS_HOME}/config/`hostname`'
alias jbin='cd ${JEUS_HOME}/bin'
alias scfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_servlet_engine1'
alias ecfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_ejb_engine1'

alias jhome='cd ${JEUS_HOME}'
alias lhome='cd ${JEUS_HOME}/logs'

alias jlog='tail -f ${JEUS_HOME}/logs/`hostname`/JeusServer_`date +%Y%m%d`.log'
alias alog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/accesslog/access_`date +%Y%m%d`.log'
alias elog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/errorlog/error_`date +%Y%m%d`.log'
alias ulog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/userlog/user_`date +%Y%m%d`.log'

...
http://kyungseo.pe.kr/blog/102 
Posted by 1010
반응형
회사에서 기본 브라우저를 구글 크롬으로 변경해놨는데..
다시 IE로 변경해야하는 일이 생겨서 레지스트리를 구하던 중
변경해주는 프로그램이 있어서 올립니다.^^

사용하기 편하더군요...
MS MVP 모임에서 만든거 같네요...
URL이 막혀있는걸 보니..^^

기본 브라우저로 변경할때 여러가지 레지스트리를 건드리는데..
이거 하나만 있으면 한방에 되네요..

참고로 지원하는 브라우저는



이거 입니다..^^
그럼 수고하세욤 =:)


   defaultbrowser_1_6.zip (29.8K)   다운로드 : 16




출처 : http://simples.kr/bbs/board.php?bo_table=04_4&wr_id=105
Posted by 1010
반응형
프로그램은 익히 들어서 알고 계신분도 있겟지만, 이름을 종종 까먹어서 물어보는 사람이 있으니 올려놓습니다.

실시간 프로세스 별 트래픽 감시가 가능합니다.
그 외는 MS에서 만들었으니 믿고 써봅시다 ㅋ

화면은 이렇게 생겼고, 툴은 MS사의 링크를 걸어두었으니 사이트에서 받아서 쓰면 됩니다.


(국내최고의 툴인 오픈캡쳐를 통한 캡쳐와 설명글을 삽입)

그리고 마지막으로 버그트럭에서 matt님께서 이 툴의 장점에 대해서 자세히 설명한 내용도 있어서 살짝 첨부합니다.

=================================================
제일 감동적인 부분은 뭐니 뭐니 해도 프로세스 별로 캡쳐가 뜬다는 것이고, 그렇게 저장된 파일은 wireshark에서도 읽힌다는. 뭔가
pcap에다 추가적인 필드를 만들어서 사용하는 듯 함.
프로세스 별로 캡쳐가 되고, 캡쳐시에 퍼포먼스 로드가 거의 없어서 그냥 켜놓고 패킷 캡쳐 해 놓고 샘플 모으기에 좋습니다.
RPC 트래픽도 잘 파싱해서 보여주니 더 좋군요. 전 고객들 문제 해결을 위해서 주로 wireshark덤프를 요구하고는 하는데 아예 이
기회에 NetMon으로 덤프해 달라고 해야하겠네요.
프로세스 정보까지 보이니 디버깅용으로 최적인듯...

파서도 웬만한 건 다 들어 있어서 따로 파서를 짜야 할 필요는 없을 것 같은데, expert라고 C++이나 C#으로 플러그인을 짤 수
있는 기능이 있네요.
요놈이 꽤 요긴할 것 같다는...

Network Monitor API라는 것을 쓰면 그냥 NetMon엔진을 쓸 수 있군요.
http://blogs.technet.com/netmon/archive/2008/10/29/intro-to-the-netwo...

pcap이나 winpcap쓰는 것보다는 더 간편할 것 같네요. 파서도 듬뿍 지원하고 파서 스크립트를 짜면 대부분의 패킷 파싱도 코딩하지
않고 해결 가능하고... 뭐 만들 일 있으면 WinPCAP대신 NetMon API로 가는 것도 괜찮을 것 같네요.
   http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyI…  클릭수 : 150
Posted by 1010
반응형

Commons Lang


 

I. Commons Lang란?


Commons-Lang은 java.lang에 있는 클래스처럼 기능적으로 필요한 유틸리티들을 모아놓은 클래스들의 집합입니다. 아마도 여러분들 역시 직접 유틸리티 클래스들을 만들어 사용하고 있을겁니다. 즉 코딩을 하다보면 이렇거 있었으면 좋겠다 싶은것들이 Commons Lang에 다 있다고 생각하시면 됩니다 ^^



II. 다운로드 및 설치


http://jakarta.apache.org/site/downloads/downloads_commons-lang.cgi 에서 다운받자!

설치는 각 어플리케이션의 클래스 패스에 복사합니다.



III. org.apache.commons.lang.SystemUtils


SystemUtils는 java.lang.System 클래스 처럼 시스템에 관련된 기능을 쉽게 이용 할 수 있도록 하는 시스템 관련 유틸리티입니다.

시스템 변수들을 가져올 때 매번 System.getProperty("JAVA_HOME")를 하기보다 SystemUtils.JAVA_HOME하면 간단하기 때문에 SystemUtils가 쓸만합니다.

SystemUtils의 변수들은 모두 static 변수이기 때문에 SystemUtils 객체생성 없이 SystemUtils.XXX로 바로 사용할 수 있습니다.


예) System.out.println("SystemUtils.FILE_ENCODING : "+SystemUtils.FILE_ENCODING);


반환값 변수명 설명
String SystemUtils.FILE_ENCODING System.getProperty("file.encoding")
String SystemUtils.FILE_SEPARATOR System.getProperty("file.separator")
String SystemUtils.JAVA_CLASS_PATH System.getProperty("java.class.path")
String SystemUtils.JAVA_CLASS_VERSION System.getProperty("java.class.version")
String SystemUtils.JAVA_COMPILER System.getProperty("java.compiler")
String SystemUtils.JAVA_EXT_DIRS System.getProperty("java.ext.dirs")
String SystemUtils.JAVA_HOME System.getProperty("java.home")
String SystemUtils.JAVA_IO_TMPDIR System.getProperty("java.io.tmpdir")
String SystemUtils.JAVA_LIBRARY_PATH System.getProperty("java.library.path")
String SystemUtils.JAVA_RUNTIME_NAME System.getProperty("java.runtime.name")
String SystemUtils.JAVA_RUNTIME_VERSION System.getProperty("java.runtime.version")
String SystemUtils.JAVA_SPECIFICATION_NAME System.getProperty("java.specification.name")
String SystemUtils.JAVA_SPECIFICATION_VENDOR System.getProperty("java.specification.vendor")
String SystemUtils.JAVA_SPECIFICATION_VERSION System.getProperty("java.specification.version")
String SystemUtils.JAVA_VENDOR System.getProperty("java.vendor")
String SystemUtils.JAVA_VENDOR_URL System.getProperty("java.vendor.url")
String SystemUtils.JAVA_VERSION System.getProperty("java.version")
String SystemUtils.JAVA_VM_INFO System.getProperty("java.vm.info")
String SystemUtils.JAVA_VM_NAME System.getProperty("java.vm.name")
String SystemUtils.JAVA_VM_SPECIFICATION_NAME System.getProperty("java.vm.specification.name")
String SystemUtils.JAVA_VM_SPECIFICATION_VENDOR System.getProperty("java.vm.specification.vendor")
String SystemUtils.JAVA_VM_SPECIFICATION_VERSION System.getProperty("java.vm.specification.version")
String SystemUtils.JAVA_VM_VENDOR System.getProperty("java.vm.vendor")
String SystemUtils.JAVA_VM_VERSION System.getProperty("java.vm.version")
String SystemUtils.LINE_SEPARATOR System.getProperty("line.separator")
String SystemUtils.OS_ARCH System.getProperty("os.arch")
String SystemUtils.OS_NAME System.getProperty("os.name")
String SystemUtils.OS_VERSION System.getProperty("os.version")
String SystemUtils.PATH_SEPARATOR System.getProperty("path.separator")
String SystemUtils.USER_COUNTRY System.getProperty("user.country") != null ? System.getProperty("user.country") : System.getProperty("user.region")
String SystemUtils.USER_DIR System.getProperty("user.dir")
String SystemUtils.USER_HOME System.getProperty("user.home")
String SystemUtils.USER_LANGUAGE System.getProperty("user.language")
String SystemUtils.USER_NAME System.getProperty("user.name")
float JAVA_VERSION_FLOAT 자바 버젼을 float형으로
int JAVA_VERSION_INT 자바 버젼을 int형으로
boolean IS_JAVA_1_1 자바버젼이 1.1인가?
boolean IS_JAVA_1_2 자바버젼이 1.2인가?
boolean IS_JAVA_1_3 자바버젼이 1.3인가?
boolean IS_JAVA_1_4 자바버젼이 1.4인가?
boolean IS_JAVA_1_5 자바버젼이 1.5인가?
boolean IS_OS_AIX 운영체제가 AIX인가?
boolean IS_OS_HP_UX 운영체제가 HP Unix인가?
boolean IS_OS_IRIX 운영체제가 IRIX인가?
boolean IS_OS_LINUX 운영체제가 LINUX인가?
boolean IS_OS_MAC 운영체제가 MAC인가?
boolean IS_OS_MAC_OSX 운영체제가 MAC OSX인가?
boolean IS_OS_OS2 운영체제가 OS2인가?
boolean IS_OS_SOLARIS 운영체제가 SOLARIS인가?
boolean IS_OS_SUN_OS 운영체제가 SUN인가?
boolean IS_OS_WINDOWS 운영체제가 WINDOW인가?
boolean IS_OS_WINDOWS_2000 운영체제가 WINDOW 2k인가?
boolean IS_OS_WINDOWS_95 운영체제가 WINDOW 95인가?
boolean IS_OS_WINDOWS_98 운영체제가 WINDOW 98인가?
boolean IS_OS_WINDOWS_ME 운영체제가 WINDOW ME인가?
boolean IS_OS_WINDOWS_NT 운영체제가 WINDOW NT인가?
boolean IS_OS_WINDOWS_XP 운영체제가 WINDOW XP인가?

이를 바탕으로 제 컴(win2k)에서 출력한 결과입니다.


변수명 출력결과
SystemUtils.FILE_ENCODING MS949
SystemUtils.FILE_SEPARATOR \
SystemUtils.JAVA_CLASS_PATH C:\Tomcat 4.1\bin\bootstrap.jar
SystemUtils.JAVA_CLASS_VERSION 48.0
SystemUtils.JAVA_COMPILER null
SystemUtils.JAVA_EXT_DIRS C:\j2sdk1.4.2_06\jre\lib\ext
SystemUtils.JAVA_HOME C:\j2sdk1.4.2_06\jre
SystemUtils.JAVA_IO_TMPDIR C:\DOCUME~1\kitty1\LOCALS~1\Temp\
SystemUtils.JAVA_LIBRARY_PATH C:\j2sdk1.4.2_06\bin;.;C:\WINNT\system32;C:\WINNT;
SystemUtils.JAVA_RUNTIME_NAME Java(TM) 2 Runtime Environment, Standard Edition
SystemUtils.JAVA_RUNTIME_VERSION 1.4.2_06-b03
SystemUtils.JAVA_SPECIFICATION_NAME Java Platform API Specification
SystemUtils.JAVA_SPECIFICATION_VENDOR Sun Microsystems Inc.
SystemUtils.JAVA_SPECIFICATION_VERSION 1.4
SystemUtils.JAVA_VENDOR Sun Microsystems Inc.
SystemUtils.JAVA_VENDOR_URL http://java.sun.com/
SystemUtils.JAVA_VERSION 1.4.2_06
SystemUtils.JAVA_VM_INFO mixed mode
SystemUtils.JAVA_VM_NAME Java HotSpot(TM) Client VM
SystemUtils.JAVA_VM_SPECIFICATION_NAME Java Virtual Machine Specification
SystemUtils.JAVA_VM_SPECIFICATION_VENDOR Sun Microsystems Inc.
SystemUtils.JAVA_VM_SPECIFICATION_VERSION 1.0
SystemUtils.JAVA_VM_VENDOR Sun Microsystems Inc.
SystemUtils.JAVA_VM_VERSION 1.4.2_06-b03
SystemUtils.LINE_SEPARATOR  
SystemUtils.OS_ARCH x86
SystemUtils.OS_NAME Windows 2000
SystemUtils.OS_VERSION 5.0
SystemUtils.PATH_SEPARATOR ;
SystemUtils.USER_COUNTRY KR
SystemUtils.USER_DIR C:\Tomcat 4.1
SystemUtils.USER_HOME C:\Documents and Settings\kitty1
SystemUtils.USER_LANGUAGE ko
SystemUtils.USER_NAME kitty1
JAVA_VERSION_FLOAT 1.42
JAVA_VERSION_INT 142
IS_JAVA_1_1 false
IS_JAVA_1_2 false
IS_JAVA_1_3 false
IS_JAVA_1_4 true
IS_JAVA_1_5 false
IS_OS_AIX false
IS_OS_HP_UX false
IS_OS_IRIX false
IS_OS_LINUX false
IS_OS_MAC false
IS_OS_MAC_OSX false
IS_OS_OS2 false
IS_OS_SOLARIS false
IS_OS_SUN_OS false
IS_OS_WINDOWS true
IS_OS_WINDOWS_2000 true
IS_OS_WINDOWS_95 false
IS_OS_WINDOWS_98 false
IS_OS_WINDOWS_ME false
IS_OS_WINDOWS_NT false
IS_OS_WINDOWS_XP false

위의 결과값을 보니 너무 유용하게 사용되겠죠? ^^

<PRE></PRE>

Commons-Lang



IV. org.apache.commons.lang.StringUtils


java api의 String을 보면 문자열 처리하기에는 제공하는 기능들이 너무 빈약합니다.

그래서 프로그래머들은 자기 나름데로의 독특한 Utils를 만들어 사용하지요.

하지만 Commons-lang에서 제공하는 StringUtils를 사용한다면 더이상 자신만의 Utils를 사용할 필요가 없습니다.

여기 모두 ㄷ ㅏ ~ 있기 때문이지요 ^^

한가지 더 장점이 있다면 String의 null 값때문에 더이상 NullPointerException을 생각하지 않아도 된다는 것입니다.

StringUtils에서 ㄷ ㅏ ~ 알아서 해주기 때문입니다.


그럼 어떠한 기능들의 함수가 있는지 알아봅시다


반환값 함수명 파라미터
String abbreviate String str, int maxWidth
"…"를 포함한 지정한 사이즈로 문자열을 축소한다 maxWidth은 4보다 커야한다
String abbreviate String str, int offset, int maxWidth
"…"를 포함한 지정한 사이즈로 문자열을 앞/뒤로 축소한다 offset은 7보다 커야한다
String capitalise String str
deprecated
String capitaliseAllWords String str
deprecated
String capitalize String str
문자열중 첫번째 문자를 대문자로 만든다
String center String str, int size
str의 길이가 size가 되도록 문자열 좌우에 공백문자를 하나씩 추가한다 (우측부터 시작한다)
String center String str, int size, char padChar
str의 길이가 size가 되도록 문자열 좌우에 padChar를 하나씩 추가한다 (우측부터 시작한다)
String center String str, int size, String padStr
str의 길이가 size가 되도록 문자열 좌우에 padStr을 하나씩 추가한다 (우측부터 시작한다)
String chomp String str
문자열 맨 끝에있는 '\n' , '\r', '\r\n'을 제거한다
String chomp String str, String separator
문자열 맨 끝에 separator가 있으면 이를 제거한다
String chompLast String str
deprecated
String chompLast String str, String sep
deprecated
String chop String str
문자열 맨 끝에있는 문자 하나를 제거한다
String chopNewline String str
deprecated
String clean String str
deprecated
String concatenate Object array[]
deprecated
boolean contains String str, char searchChar
str이 searchChar를 포함하고 있으면 true
boolean contains String str, String searchStr
str이 searchStr을 포함하고 있으면 true
boolean containsNone String str, char invalidChars[]
str이 invalidChars의 각 문자를 모두 포함하고 있지 않으면 true
boolean containsNone String str, String invalidChars
str이 invalidChars를 모두 포함하고 있지 않으면 true
boolean containsOnly String str, char valid[]
str이 valid의 각 문자들만 포함하고 있어야 true
boolean containsOnly String str, String validChars
str이 validChars 들만을 포함하고 있어야 true
int countMatches String str, String sub
str중에 sub가 포함되어있는 갯수를 반환한다
String defaultString String str
str이 null이면 ""를 반환하고 아니면 str을 반환한다
String defaultString String str, String defaultStr
str이 null이면 defaultStr을 반환하고 아니면 str을 반환한다
String deleteSpaces String str
deprecated
String deleteWhitespace String str
문자열중 공백문자가 있으면 모두 제거한다
String difference String str1, String str2
str1과 str2를 비교하여 다른부분을 반환한다 (str2의 부분을 반환)
boolean equals String str1, String str2
str1이 null이면 str2가 null인지 유무를 반환하고 str1이 null이 아니면 str1과 str2의 equals를 반환
boolean equalsIgnoreCase String str1, String str2
equals와 동일하며 대소문자를 무시하고 비교한다
String escape String str
deprecated
String getChomp String str, String sep
deprecated
String getNestedString String str, String tag
deprecated
String getNestedString String str, String open, String close
deprecated
String getPrechomp String str, String sep
deprecated
int indexOf String str, char searchChar
str에서 첫번째 searchChar의 인덱스를 반환한다
int indexOf String str, char searchChar, int startPos
str의 startPos 인덱스부터 첫번째 searchChar의 인덱스를 반환한다
int indexOf String str, String searchStr
str에서 첫번째 searchStr의 인덱스를 반환한다
int indexOf String str, String searchStr, int startPos
str의 startPos 인덱스로부터 첫번째 searchStr의 인덱스를 반환한다
int indexOfAny String str, char searchChars[]
str에서 searchChars중 포함하고 있는 문자의 첫번째 인덱스를 반환한다
int indexOfAny String str String searchChars
str에서 searchChars중 포함하고 있는 문자열의 첫번째 인덱스를 반환한다
int indexOfAny String str, String searchStrs[]
str에서 searchStr중 포함하고 잇는 문자열의 첫번째 인덱스를 반환한다
int indexOfAnyBut String str char searchChars[]
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다
int indexOfAnyBut String str, String searchChars
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다
int indexOfDifference String str1, String str2
str1과 str2를 비교하여 문자열이 틀려지기 시작하는 인덱스를 반환한다
boolean isAlpha String str
문자열이 모두 Character.isLetter 이면 true (모두 문자이면 true)
boolean isAlphanumeric String str
문자열이 모두 Character.isLetterOrDigit 이면 true (문자거나 숫자이면 true)
boolean isAlphanumericSpace String str
문자열이 모두 Character.isLetterOrDigit 이거나 공백이면 true
boolean isAlphaSpace String str
문자열이 모두 Character.isLetter 이거나 공백문자이면 true
boolean isBlank String str
문자열이 공백문자이거나 길이가 0이거나 null인경우 true
boolean isEmpty String str
문자열이 길이가 0이거나 null인경우 true
boolean isNotBlank String str
문자열이 공백문자도 아니고 길이가 0도 아니고 null도 아니면 true
boolean isNotEmpty String str
문자열이 길이가 0이 아니고 null도 아니면 true
boolean isNumeric String str
문자열이 모두 Character.isDigit 이면 true (모두 숫자이면 true)
boolean isNumericSpace String str
문자열이 모두 Character.isDigit 이거나 공백문자이면 true
boolean isWhitespace String str
문자열이 모두 Character.isWhitespace 이면 true (모두 공백이면 true)
String join Object array[]
array에서 문자열을 읽어와 모두 연결시킨다
String join Object array[], char separator
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다
String join Object array[], String separator
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다
String join Iterator iterator, char separator
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다
String join Iterator iterator, String separator
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다
int lastIndexOf String str, char searchChar
str에서 마지막 searchChar의 인덱스를 반환한다
int lastIndexOf String str, char searchChar, int startPos
str의 startPos 인덱스부터 마지막 searchChar의 인덱스를 반환한다
int lastIndexOf String str, String searchStr
str에서 마지막 searchStr의 인덱스를 반환한다
int lastIndexOf String str, String searchStr, int startPos
str의 startPos 인덱스부터 마지막 searchStr의 인덱스를 반환한다
int lastIndexOfAny String str, String searchStrs[]
str에서 searchStr의 문자열들중 포함하고 있는 문자열의 마지막 인덱스를 반환한다
String left String str, int len
str의 좌측에서 len 길이만큼 문자열을 구한다
String leftPad String str, int size
str의 길이가 size가 되도록 문자열 왼쪽에 ' '을 추가한다
String leftPad String str, int size, char padChar
str의 길이가 size가 되도록 문자열 왼쪽에 padChar를 추가한다
String leftPad String str, int size, String padStr
str의 길이가 size가 되도록 문자열 왼쪽에 padStr을 추가한다
String lowerCase String str
str을 소문자로 변환한다
String mid String str, int pos, int len
str의 pos 인덱스부터 len 길이만큼의 문자열을 구한다
String overlay String str, String overlay, int start, int end
str의 start부터 end까지overlay로 변환한다
String overlayString String text, String overlay, int start, int end
deprecated
String prechomp String str, String sep
deprecated
String repeat String str, int repeat
str을 repeat만큼 반복하여 반환한다
String replace String text, String repl, String width
text에서 모든 repl을 width로 변환한다
String replace String text, String repl, String width, int max
text에서 모든 repl을 width로 변환하는데 최대 max개만큼 변환한다
String replaceChars String str, char searchChar, char replaceChar
str에서 searchChar를 replaceChar로 모두 변환한다
String replaceChars String str, String searchChars, String replaceChars
str에서 searchChars를 replaceChars로 모두 변환한다
String replaceOne String text, String repl, String width
text에서 repl를 width로 변환하는데 첫번째 하나만 변환한다
String reverse String str
문자열을 앞뒤 순서를 바꾼다
String reverseDelimited String str, char separatorChar
separatorChar를 구분으로 문자열을 나눈 후 나눠진 단어들을 역순으로 바꾼다
String reverseDelimitedString String str, String separatorChars
deprecated
String right String str, int len
str의 len길이만큼 우측에서 문자열을 구한다
String rightPad String str, int size
str의 길이가 size가 되도록 문자열 오른쪽에 ' '을 추가한다
String rightPad String str, int size, char padChar
str의 길이가 size가 되도록 문자열 오른쪽에 padChar를 추가한다
String rightPad String str, int size, String padStr
str의 길이가 size가 되도록 문자열 오른쪽에 padStr을 추가한다
String[] split String str
공백문자를 구분자로 사용하여 분리한다
String[] split String str, char separatorChar
separatorChar를 구분자로 사용하여 분리한다
String[] split String str, String separatorChars
separatorChars를 구분자로 사용하여 분리한다
String[] split String str, String seperatorChars, int max
separatorChars를 구분자로 사용하여 분리한며 최대 max개 만큼한다. 배열의 크기는 max가 된다
String strip String str
문자열 좌우에 있는 공백문자를 제거한다 trim과 동일하다
String strip String str, String stripChars
문자열 좌우에 stripChars에 존재하는 문자를 제거한다
String[] stripAll String strs[]
배열에 있는 모든 문자열 좌우에 있는 공백문자를 제거한다
String[] stripAll String strs[], String stripChars
배열에 있는 모든 문자열 좌우에 stripChars에 존재하는 문자를 제거한다
String stripEnd String str, String stripChars
문자열 우측에만 strip 한다
String stripStart String str, String stripChars
문자열 좌측에만 strip 한다
String stripToEmpty String str
str이 null이면 ""를 반환하고 아니면 strip 한다
String stripToNull String str
str이 null이면 null을 반환하고 아니면 strip 한다
String substring String str, int start
str의 start 인덱스부터 문자열을 구한다
String substring String str, int start, int end
str의 start 부터 end 인덱스 까지 문자열을 구한다
String substringAfter String str, String separator
str의 처음 separator 부분부터 문자열을 구한다
String substringAfterLast String str, String separator
str의 마지막 separator부분부터 문자열을 구한다
String substringBefore String str, String separator
str의 처음 separator 부분까지 문자열을 구한다
String substringBeforeLast String str, String separator
str의 마지막 separator부분까지 문자열을 구한다
String substringBetween String str, String tag
str에서 tag 사이에 있는 문자열을 구한다
String substringBetween String str, String open, String close
str에서 open부터 close 까지 사이에 있는 문자열을 구한다
String swapCase String str
대문자는 소문자로 변환하고 소문자는 대문자로 변환한다
String trimToNull String str
str이 null이거나 length가 0이면 null을 반환하고 그렇지 않으면 좌우 공백문자를 제거한다
String trim String str
문자열 좌우 공백문자를 제거한다
String trimToEmpty String str
str이 null이면 ""를 반환하고 그렇지 않으면 좌우 공백문자를 제거한다
String uncapitalise String str
deprecated
String uncapitalize String str
문자열의 첫문자를 소문자로 변환한다
String upperCase String str
str을 대문자로 변환한다

사용법

모두 static 함수이기때문에 다음과 같이 사용하면 됩니다.

String text = StringUtils.replace(str, repl, width);


=============================================

본문서는 자유롭게 배포/복사 할수 있지만

이문서의 저자에 대한 언급을 삭제하시면 안됩니다

저자 : GoodBug (unicorn@jakartaproject.com)

최초 : http://www.jakartaproject.com 

=============================================



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

Lang Downloads

We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be available from the mirrors.

You are currently using http://mirror.khlug.org/apache. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available.

Other mirrors:

The KEYS link links to the code signing keys used to sign the product. The PGP link downloads the OpenPGP compatible signature from our main site. The MD5 link downloads the checksum from the main site.

For more information concerning Lang, see the Lang site.




Posted by 1010
98..Etc/Tomcat2009. 6. 21. 04:52
반응형




JSP를 처음 접하고 Connection Pool 부분에서 막히더군요. 거의 이틀 동안 삽질한듯 싶네요 ㅠ.ㅜ.

이러한 일이 다시 일어나지 않기를 기원하며 이렇게 글을 올립니다.

다른 강좌들 보단 최대한 자세히 쓰려고 노력했으니 분명히 도움이 되시리라 생각됩니다.

 

그리고 이 문제로 몇 일동안 힘들어했던 저에게 정말 많은 도움을 주셨던 기로로님에게 감사의 말씀을 드립니다.

 

 

 

 

 

 

 

 

본 강좌는 Eclipse J2EE, Tomcat 6.0 과 My-SQL 기준으로 작성된 것임을 미리 알려드립니다.

그리고 Tomcat의 버전이 맞지 않으면 설정 환경이 조금씩 다를 수 있다는 것 또한 알려드립니다.




1. 첨부된 파일들을 다운 받는다.

   



2. 다음 순서대로 받은 파일들을 해당 폴더에 넣는다.

 


commons-collections-3.1.jar

commons-dbcp-1.2.1.jar

commons-pool-1.2.jar

 

이 파일들을 자신이 이클립스에서 만들어둔 프로젝트/WebContent/WEB-INF/lib 폴더에 복사한다..


mysql-connector-java-3.0.14-production-bin.jar

 

그리고 위의 JDBC 라이브러리는 설치된 톰캣의 lib 폴더 안에 복사한다.

 



3. 프로젝트/WebContent/META-INF 폴더에 context.xml 파일을 생성한다.

 

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/프로젝트" docBase="프로젝트" reloadable="true">
   
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

   

    <Resource name="jdbc/임의의 DBCP명"
               auth="Container"
               type="javax.sql.DataSource"
               driverClassName="드라이브명"
               url="DB URL"

               username="DB 아이디"
               password="DB 비밀번호"

               <!-- 사용 하고 있는 커넥션의 최대수 -->
               maxActive="20"
               <!-- 사용 안하고 있는 커넥션의 최대수 -->

               maxIdle="10"

               <!-- 커넥션을 열기위해 최대 기다리는 시간 "-1" 이라면 무기한 기다림 -->
               maxWait="-1"
    />
   
</Context>



4. 프로젝트/WebContent/WEB-INF 폴더에 web.xml 파일의 web-app 태그 안에 코드를 추가한다.


<web-app .... 이하 중략...>

<resource-ref>        
    <description>MySQL DB Connection</description>        
    <res-ref-name>jdbc/임의의 DBCP명</res-ref-name>        
    <res-type>javax.sql.DataSource</res-type>        
    <res-auth>Container</res-auth>   
</resource-ref>


</web-app>



 

5. DBCPTest.jsp 실행하기.


<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.sql.*, javax.naming.*, javax.naming.Context, javax.naming.InitialContext, javax.sql.DataSource" %>
<html>
<head>
    <title>DBCP Test</title>
</head>
<body>
<%
    Statement stmt = null;
    ResultSet rs = null;
    Connection conn = null;
   
    try {
        Context initCtx = new InitialContext();
        Context envCtx = (Context)initCtx.lookup("java:/comp/env");
        DataSource ds = (DataSource)envCtx.lookup("jdbc/임의의 DBCP명");       
        conn = ds.getConnection();
       
        out.write("DBCP Connection..<br><br>");
       
        String sQuery = "select 1 + 1";
        stmt = conn.createStatement();
        rs = stmt.executeQuery(sQuery);
       
        while (rs.next())
        {
            out.write("1 + 1 = " + rs.getString(1) + "<br>");
        }
    } catch(Exception ex) {
        ex.printStackTrace();
    } finally {
        if (rs != null) try {rs.close(); } catch (Exception ex2) {}
        if (stmt != null) try {stmt.close(); } catch (Exception ex3) {}
        if (conn != null) try {conn.close(); } catch (Exception ex4) {}
    }

%>
</body>
</html>

 


[ 결과 화면 ]

 




Posted by 1010
01.JAVA/Java2009. 6. 21. 04:47
반응형
class ThrowableTest {
 public static void main(String[] args) {
  try {
   main(null);
  } catch (Exception e) {
   System.out.println("Exception");
  } catch (StackOverflowError soe) {
   System.out.println("StackOverflowError");
  } catch (Error err) {
   System.out.println("Error");
  } catch (Throwable t) {
   System.out.println("Throwable");
  }
 }
}
Posted by 1010
98..Etc/Etc...2009. 6. 21. 04:31
반응형

사용자 삽입 이미지
ucilist.txt등을 만들기 위해 텍스트 편집할 때 여러 줄의 값을 동시에 편집할 때 유용한 팁입니다.

 

활용팁 같은 게시판에 올려야 하는데, 권한이 없어 글쓰기가 안되네여.

D2용도외에도 유용히 사용하세요.


만약 다음 내용의 앞에 특정 문자열을 추가한다고 하면,
d2jam
haptic

iTouch Style CA

iTouch Style NCA 
 
[UltraEdit]
1.       Alt+C 키 누름
2.       마우스로 맨 앞을 여러줄 선택
3.       메뉴의 [열]-[열 삽입/채우기]
4.       입력박스에 삽입할 내용 입력 : 예) <UCI name="
5.       편집결과는 아래와 같습니다.
<UCI name="d2jam
<UCI name="haptic
<UCI name="iTouch Style CA
<UCI name="iTouch Style NCA


 
[EditPlus]
1.       Editplus는 따로 단축키를 아래와 같이 먼저 설정해줘야 합니다.(최초 한번)
A.        메뉴의 [도구]-[기본설정]에서 키보드의 [편집] 유형에서 [EditFillColumn]을 선택합니다.
B.       새 단축키 누르기를 클릭한 후 Ctrl+Shift+Z 키를 누릅니다.
C.       [할당] 버튼을 클릭하고 [확인] 버튼을 눌러서 닫습니다.

사용자 삽입 이미지

명령이 한글로 나올 경우 아래와 같이 나옵니다.

2.       Alt+C를 누르면 현재 커서부터 마우스를 이동한 줄까지 영역이 선택됩니다.
3.       Ctrl+Shift+Z 키를 누릅니다.
4.       문자열 입력박스에 삽입할 내용 입력 : 예)  <UCI name="

5.       편집결과는 아래와 같습니다.
<UCI name="d2jam
<UCI name="haptic
<UCI name="iTouch Style CA
<UCI name="iTouch Style NCA

Posted by 1010
02.Oracle/DataBase2009. 6. 21. 04:23
반응형
Posted by 1010
02.Oracle/DataBase2009. 6. 21. 04:19
반응형
오라클의 경우 MYSQL과 같이 LIMIT 기능을 제공하지 않아 페이징 처리하는데 어려움이 따른다.

일반적으로 사람들이 가장 많이 사용하는 방법을 먼저 소개하도록 하겠다.

이 방법은 일방적인 데이터의 양에서는상당히 괜찮은 속도를 보장해준다.
 
그러나 대용량의 경우 부족한 성능을 보다.


1. 일반적인 오라클 페이징 처리

 
01.SELECT * FROM (
02.     SELECT A.*, 
03.                 ROWNUM AS RNUM,
04.                 FLOOR((ROWNUM-1)/{디스플레이수}+1) AS PAGE,
05.                 COUNT(*) OVER() AS TOTCNT FROM (
06.          {검색쿼리 - 정렬이 필요할 경우 정렬조건 포함}
07.    ) A
08.) WHERE PAGE = {페이지번호};
09.  
10.OR
11.  
12.SELECT * FROM (
13.     SELECT A.*, 
14.                 ROWNUM AS RNUM,
15.                 COUNT(*) OVER() AS TOTCNT FROM (
16.          {검색쿼리 - 정렬이 필요할 경우 정렬조건 포함}
17.    ) A
18.) WHERE RNUM > {범위부터} AND RNUM <= {범위까지};


2. 오라클 대용량 페이징 처리

 
01.SELECT * FROM (
02.     SELECT ROWNUM AS RNUM, A.* FROM (
03.          {검색쿼리 - 정렬이 필요할 경우 정렬조건 포함}
04.    ) A WHERE ROWNUM <= {범위까지}
05.) WHERE RNUM > {범위부터};
06.  
07.OR
08.  
09.SELECT * FROM (
10.     SELECT /*+ INDEX_ASC or INDEX_DESC(A {정렬조건 인덱스명}) */
11.                 ROWNUM AS RNUM, A.*  FROM (
12.          {검색쿼리 - 정렬이 필요한 경우 정렬조건을 포함하지 않고 ORACLE 힌트사용}
13.     ) A WHERE ROWNUM <= {범위까지}
14.) WHERE RNUM > {범위부터};
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 21. 04:17
반응형




이클립스 디컴파일러인 JAD를 설치하는 방법입니다.


이클립스로 개발을하다보면 F3버튼으로 열심히 따라가는 경우가생깁니다.


그러다 라이브러리로 묶여있는 클래스파일들을 로딩하게되면 읽긴읽되 내용을 분석하지못하죠~


그래서 디컴파일러 ~ 컴파일한클래스파일을 다시 자바파일로 보여주는 도구를 설치하게되면


클래스파일도 자바파일처럼 열수있게됩니다^^~



우선 jad.exe, jadclipse_3.1.0.jar를 다운로드 합니다.


jad.exe파일은 이클립스 폴더에 jadclipse_3.1.0.jar파일은 플러그인 폴더에 카피합니다.


window->preference->general->editors->file assosiationsd에서 *.class선택후


하단의 JadClipse Class File Viewr 를 선택후 default 를 선택합니다.


window->preference->java->JadClipse를 선택한후 ignore existing source를 체크해줍니다.


이렇게하시고 이클립스를 실행시키시면 *.class파일을 찾아갈경우 자동으로 디컴파일해줍니다~



ps. 제가 올리는 버전은 jdk1.4.2버전, eclipse 3.1버전의 디컴파일러입니다.


jaclipse버전은 아래링크에서 맞는버전으로 다운로드하시면 됩니다.

http://sourceforge.net/projects/jadclipse


문의는 이메일로요...

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 21. 04:15
반응형






아실만한 분들은 다 아시는 TIP이라 중복될지도 모르겠지만 제가 아는게 이거 하나라 올려보겠습니다..^^;;


우선 바탕화면이나 빠른실행에 있는 eclipse의 바로가기 아이콘의 등록정보를 열면


바로가기 대상이 있습니다. 이것을 설정하여 workspace와 memory를 조절할 수 있는 팁입니다.


기본 적으로 다음과 같이 되어 있습니다.


C:\eclipse\eclipse.exe


여기서 몇가지 항목을 추가하겠습니다.


-data : workspace로 지정할 디렉토리를 절대경로로 지정.

예) -data C:\workspace\

-vmargs : momory를 얼마나 지정할 것인지 최소 값과 최대값을 지정.

예) 최소값 128M, 최대값 256M : -vmargs -Xms128m -Xmx256m


보통 workspace는 기본으로 사용하지만 특정 디렉토리를 정해서 프로젝트를 관리할때


위와 같이 지정해 주면 편리하죠.


또한 이클립스가 무거운 editor로 유명하지만 메모리를 충분히 늘려준다면


코딩하다가 이클립스가 죽어버리는 경우를 미연에 방지할 수 있으니 유용한 팁이라 생각합니다.


추가로 이클립스에서 메모리를 관리하는 plugin하나 추가합니다.


사용법은 압축을 풀어주시고 단순히 플러그인 폴더에 추가하신뒤에


이클립스를 다시 로딩시키시면 추가됩니다.


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


메모리 확인 Plugin

다운로드 사이트정보


 http://www.kyrsoft.com/downloads/downloads.html
    >  다양한 플러그인들을 확인할수 있다.


설치된 Eclipse 폴더에 덮어 씌운후.. 이클립스 실행하면 다음과 같이 화면 하단에 추가된다.

사용자 삽입 이미지



Posted by 1010
01.JAVA/Java2009. 6. 21. 04:10
반응형




.class 파일을 java 파일로 디컴파일 해주는 프로그램입니다.

jad실행 - open - .class 선택

Posted by 1010
01.JAVA/Java2009. 6. 21. 03:27
반응형

Exception in thread 'main' java.lang.NoClassDefFoundError

도스창이나, eclipse 등등 자바 실행시 이런 문구가 떠서

당황해본 경험이 있다. OTL...

이런 메세지가 뜨는 것에는 2가지 이유가 있다.

자바실행시, 파일명을 잘못 입력했던가

아니면, classpath 를 잘못 지정했기 때문이다.


1. 자바실행시 잘못된 파일명 입력

예를 들어, 도스창에서 자바파일을 컴파일하고, (javac Hello.java)

실행을 시킬 때, (파일명 : Hello.java , Hello.class)

java Hello.java                 <- 이렇게 하면 당연히 위에 메시지가 뜬다 ㅡㅡ;;...

java hello.java                 <- 이렇게해도 당연히 뜬다 ㅡㅡ....

java Hello                        <- 이렇게 해야한다!! ^^


java 실행시 대소문자를 구분하고, 컴파일된 것을 실행시키는 것이기 때문에,

*.java를 실행시키려는 무모한 도전은 자제를 부탁한다.


<여기서 잠깐!! 자바프로그램 실행의 기본적인 개념>

 

※ 컴파일(compile)이 뭐죠?

 

- 컴파일(compile)이란 사람이 알아 볼수있게 만든 프로그램소스를 기계가 알아 볼수있게

  만들어주는 작업입니다. 사람은 십진수를 쓰고, 영어를 사용하지만, 컴퓨터는 2진수에

  영어도 쓸줄 모르잖아요. ^^ 그래서, 컴퓨터가 쉽게 이해할수 있게 컴파일을 하는 것입니다.

  결국 프로그램을 실행시켜주는 것은 사람이 아니라, 컴퓨터니까요.

 

※ java파일과 class파일의 차이가 뭐죠?

 

- 자바를 실행시킬 때, 컴파일을 합니다. 그러면, *.java파일이 컴파일되어서 *.class파일이

  생겨납니다. 컴퓨터가 처리할수 있는 파일은 *.class파일이기 때문에 자바에서 실행시

  명령어를 [java 파일명] 으로 쓰는 것입니다. 확장자 java를 붙이면 안되는 거죠. ^^

  결국, java파일은 사람이 만들고 쓰는 것이고, class파일은 컴퓨터가 만들고 처리하는

  것이죠.


2. classpath지정이 잘못 되어있을 경우
 보통 jdk1.5이상의 버전을 설치하면, 자동으로 환경변수를 설정해주기 때문에,
 문제가 발생하지 않아야하는데, 종종 이러한 문제가 발생한다 ㅡㅡ...
 이유는 나도 모른다. ㅠ_ㅠ...
 어쨌든!!
 이것을 해결하는 방법은
 "내컴퓨터에서 마우스 오른쪽키 " -> "속성" -> "고급 탭" - > "환경변수"
 에 들어가서,
 아래쪽 부분에 있는 "CLASSPATH" 부분을 '편집"을 통해 수정해줘야 한다는 것이다.
 jdk가 설치된 디렉토리의 경로를 적어주는데, 조심해야  할 점이 있다.
 .;C:\Program Files\Java\jdk1.6.0_01\bin;
 이렇게 제일 앞부분에 .; <- 이게 꼭 들어가야한다는 것이다.
 (. 은 보통 현재 위치를 가리키는 표시)

 
이 그림 처럼 해주면 된다.
 
그러면 문제없이 잘 실행된다. ^^


Exception in thread "main" java.lang.NoClassDefFoundError:xxxxx


대략 이런식으로 에러 뜰떄는 클래스를 못찾는거다

CLASSPATH=.;    <=이걸 추가시켜줘야 한다
( 현재폴더를 classpath에 추가하는걸 의미한다)
Posted by 1010
01.JAVA/Java2009. 6. 20. 13:29
반응형

// 시작 부분에 아래처럼 현재 시간을 계산하고

long start = System.currentTimeMillis();


// 프로그램 본문


// 끝에 아래와 같이 삽입

long end = System.currentTimeMillis();

System.out.println( "실행 시간 : " + ( end - start )/1000.0 );

Posted by 1010
01.JAVA/Java2009. 6. 20. 13:27
반응형

독자적인 환경 설정 파일을 구축하려 할 때 WEB-INF 밑에 넣어놓기 마련인데

경로 때문에 컨텍스트 이전시 문제가 될수 있다.


  ClassLoader loader = Thread.currentThread().getContextClassLoader();
  File file = new File(loader.getResource("").getFile());

  file = new File(file.getParent() + File.separator
    + "gh-config.xml" );


위와 같이 정의하면 WEB-INF\gh-config.xml 을 가져올 수 있다.


원래의 아래와 같은 소스라면 WEB-INF\classes\gh-config.xml 을 가져오도록 되있다.


  ClassLoader loader = Thread.currentThread().getContextClassLoader();
  File file = new File(loader.getResource("gh-config.xml").getFile());

Posted by 1010
반응형

function getParameter( name )
{
 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

 var regexS = "[\\?&]" + name + "=([^&#]*)";
 var regex = new RegExp( regexS );
 var results = regex.exec( window.location.href );

 if( results == null )
  return "";
 else
  return results[1];
}


출처 : http://www.netlobo.com/url_query_string_javascript.html

Posted by 1010
반응형
 

보통 브라우저명을 체크할 때 아래 코드를 많이 사용합니다.

var DOM = (document.getElementById) ? true : false; // W3C 표준
var IE4 = (!DOM && document.all) ? true : false; // IE4
var IE5 = (DOM && (navigator.userAgent.indexOf("MSIE")>-1)) ? true : false; // IE5 >= 5
var NS4 = (!DOM && document.layers) ? true : false; // NN4
var NS5 = (DOM && (navigator.userAgent.indexOf("Gecko")>-1)) ? true : false // NN5 >= 5

또는,
navigator.appName == "Microsoft Internet Explorer"
navigator.appName == "Netscape"

위처럼 하면 한 가지 문제가 생기는데 바로 NS와 FF 입니다.
알다시피 FF 도 모질라의 뿌리를 갖고 있으므로 Netscape 를 브라우저명에 같이 출력합니다.
그래서 위처럼 하게되면 근래들어 급속한 사용자증가를 보이고 있는 FF 를 제대로 가려낼 수가 없습니다.
또한 FF 는 왠만한 부분은 IE6과 비슷합니다.  하다못해 스크롤링 되는 레이어도 같은 코드로 지원합니다.  그러나 NS 는 분명히 다릅니다.  IE와 FF 에서 스크롤되는 레이어도(예를 들어 영카트1에 있는 오른쪽 움직이는 스크롤처럼) NS에서는 지원되지 않으며, 영카트의 스크롤 레이어가 브라우저명에서 NS 를 기준으로 체크하므로 FF에서는 스크롤이 움직이지 않습니다.

위와 같은 경우의 해결책이며..사실 해결책이라기 보다는 가장 정확한 브라우저명을 체크하는게 아닌가 싶습니다.

//브라우저 이름으로 브라우저 구분 : Netscape Firefox MSIE
if(new RegExp(/Firefox/).test(navigator.userAgent)){
    FF (파이어폭스)
}else if(new RegExp(/Netscape/).test(navigator.userAgent)){
    NS (넷스케이프)
}else if(new RegExp(/MSIE/).test(navigator.userAgent)){
  IE (익스플로러)
}

위와 같이 정확한 브라우저명을 체크할 수 있으며, 버젼까지 체크할 경우는
navigator.appVersion.indexOf 를 이용하여 정확히 체크할 수 있습니다.

 

=========================================================================

//브라우저 명

var user_app_name = "";

if(new RegExp(/Firefox/).test(navigator.userAgent)){
 user_app_name = "FF";
}else if(new RegExp(/Netscape/).test(navigator.userAgent)){
 user_app_name = "NS";
}else if(new RegExp(/MSIE/).test(navigator.userAgent)){
 user_app_name = "IE";
}else if(new RegExp(/Opera/).test(navigator.userAgent)){
 user_app_name = "OP";
}

 

머 이렇게 쓰면 될려나...ㅋㅋ

Posted by 1010