블로그 이미지
OSSW(Open Source System SoftWare

calendar

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        

Notice

[config/magnus.conf]
Init fn="stats-init" profiling="on"

[config/obj.conf]
<Object name=default>
...
NameTrans fn="assign-name" name="perf" from="/.perf"
NameTrans fn="assign-name" name="stats-xml" from="(/stats-xml|/stats-xml/*)"
NameTrans fn="document-root" root="$docroot"
...
</Object>

<Object name="stats-xml">
Service fn="stats-xml"
</Object>

<Object name="perf">
Service fn="service-dump"
</Object>

 

 

호출 방법 : http://localhost/.perf

 

 

by 차규철

posted by lovelywas

 tuxedo 디바이스 관리 명령

 명령어(약어)

 설명

 비고

 dsdl

 전에 존재하지 않는 디바이스를 생성

>crdl -b blocks -z config -0 configoffset

 

 initdl(indl)

 디바이스를 없앤다

> initdl (indl) [-yes] -z config [-o offset] dlindex

 

 lidl

 디바이스 리스트의 항목을 보여준다

> lidl -z config [-o offset] [dlindex]

 

 livtoc

 모든 VTOC(Volume Table of Contents) 테이블의 항목에 대한

정보를 보여준다

> livtoc -z config [ -o offset]

 

   

 

by 김영준

 

posted by lovelywas

간혹가다가 Oracle JDBC의 버전을 빠르게 확인해야 하는 경우가 있다. JAVA code를 작성해서 버전을 확인하는 방법도 있지만 시간이 많이 소요되므로 다음과 같이 확인해 보자


 1. MAINFEST.MF 파일 확인하기

    1) ojdbc6.jar 파일의 압축을 해제한다.

    2) META-INF/MAINFEST.MF 파일을 오픈하여 jdbc 버전을 확인한다.

        Manifest-Version: 1.0

        Ant-Version: Apache Ant 1.6.5

        Created-By: 1.5.0_51-b10 (Sun Microsystems Inc.)

        Implementation-Vendor: Oracle Corporation

        Implementation-Title: JDBC

        Implementation-Version: 11.2.0.4.0 ==> JDBC 버전 확인

        Repository-Id: JAVAVM_11.2.0.4.0_LINUX.X64_RELEASE

        Specification-Vendor: Sun Microsystems Inc.

        Specification-Title: JDBC

        Specification-Version: 4.0

        Main-Class: oracle.jdbc.OracleDriver

       sealed: true


by 이환호

posted by lovelywas

● 환경 설정

 명령어(약어)

 설명

비고

 echo(e)

 입력된 명령을 화면에 보여준다

 

 help(h)

 도움말 (사용 가능한 명령과 그 설명)을 보여 준다.

 

 verbose(v)

 시스템 정보를얻는 명령(pd,pt..)에 대한 상세한 정보를 보여준다.

 

 paginate(page)

 출력의 페이징 기능을 토글 시킨다.

 

 !

쉘 명령어를 수행한다.

 

 !!

직전에 수행한 쉘 명령을 반복하여 수행한다.

 

 <CR>

직전에 수행한 명령을 반복하여 수행한다.

 

 default(d)

기본 설정값을 재 설정하거나, 옵션이 없는 경우는 설정 값을 보여줌.

default [-d local domain name]

 

 

● 트랜잭션 처리 및 서비스 정보변경 관련 명령

 명령어(약어)

 설명

 비고

 printtrans(pt)

 현재 수행 중인 트랜잭션의 상태를 글로벌 트랜잭션 테이블로부터

정보를 출력한다.

>printtans(pt) -d local_domain_name

다음과 같은 형태로 트랜잭션 관련 정보가 출력된다.

process ID:local domain name: remote domain name:service

name:local GRTID:remote GTRID:record type:timestamp

 

 gorgettrans(ft)

로컬 도메인과 관련된 트랜잭션을 잊어 버림.

> forgettrans(ft) -d local_domain_name [ -t tran_id]

트랜잭션 식별자인 tran_id는 printtrans 명령어 또는 ULOG 파일에서 얻을수 있다.

 

 

                                                                                                                    by 김영준

 

 

 

 

 

posted by lovelywas

1 Transaction
1.1 JEUS Interposed Transaction Manager 기능
WebLogic Transaction Manager에 JEUS Transaction Manager를 XAResource 로 등록하여, WebLogic에서 JEUS의 Transaction Manager를 XAResource로 사용할 수 있는 기능이 추가 되었다.
이렇게 Transaction Manager를 XAResource로 사용할 수 있도록 한 것을 Interposed Transaction Manager라고 한다.
사용 방법은 다음과 같다.
WebLogic의 Transaction 관련해서 import 받는 WebLogic 클래스는 다음과 같다.
...
import WebLogic.transaction.TxHelper;
import WebLogic.transaction.TransactionManager;
import WebLogic.transaction.TransactionHelper;
...

1. XAResource 등록
먼저, WebLogic 의 startup class 등을 사용해서 JEUS Transaction Manager를 XAResource 에 등록한다.
반드시 startup class 에 등록할 필요는 없지만 WebLogic Transaction Manager 의 Transaction을 시작하기 전에, JEUS Interposed Transaction Manager를 WebLogic 의 XAResource 에 등록해야 한다.
다음과 같이 한다.
TransactionManager tm = TxHelper.getTransactionManager();
jeus.transaction.client.InterposedTransactionManager xar1 = new jeus.transaction.client.InterposedTransactionManager();
tm.registerResource("jeusTx", xar1); // jeusTx는 아무 이름이나 사용 가능


2. XAResource의 enlist/delist
WebLogic의 Transaction에서 다음 코드처럼 JEUS의 Interposed Transaction Manager를 enlist/delist해 준다.
...
utx.begin();
// enlist XAResource TransactionHelper.getTransactionHelper().getTransaction().enlistResource(xar1);
...
// Looks up EJB on JEUS and calls it.
initialcontext1 = new InitialContext(env);
home = initialcontext1.lookup(“...”);
home.create(“...”);
...
// delist XAResource TransactionHelper.getTransactionHelper().getTransaction().delistResource(xar1, XAResource.TMSUCCESS);
utx.commit();

3. XAResource 제거
더 이상 JEUS의 Interposed Transaction Manager를 사용하지 않는다면, WebLogic에서 XAResource를 등록 해제한다. 일반적으로 Shutdown Class 에서 제거해 준다.
TxHelper.getTransactionManager().unregisterResource("jeusTx");
반드시 제거해 줄 필요는 없지만, 해제해 주기를 권장한다.
참고로 tm.registerStaticResource("jeusTx", xar1); 을 사용하면 WebLogic이 모든 Transaction에 대해 자동으로 enlist, delist를 해주므로 application code에서 따로 해줄 필요가 없다 (recommend하는 사용법).
그외 사항은 WebLogic Programming JTA chapter 8장을 참고하기 바란다.

1.2 WebLogic의 Interposed Transaction Manager 사용법
WebLogic에서 JEUS의 Interposed Transaction Manager를 사용할 수 있듯이, JEUS에서도 WebLogic의 Interposed Transaction Manager를 사용할 수 있다.
다음 순서대로 사용한다.

1. WebLogic의 Interposed Transaction Manager 얻기
다음 예제처럼 WebLogic의 Interposed Transaction Manager를 얻어온다.
import jeus.transaction.*;
import weblogic.transaction.*;
...
UserTransaction ut;
Hashtable env;
XAResourceWrapper wlResource;
InterposedTransactionManager wlITM;
...
ut.begin // Begin transaction
...
env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");
initialCtx = new InitialContext(env);
wlITM = TxHelper.getClientInterposedTransactionManager(initialCtx, "myserver");

2. WebLogic의 XAResource를 추출한다.
WebLogic의 Interposed Transaction으로부터 XAResource를 가져온다. 그리고, 이 XAResource를 jeus.transaction.XAResourceWrapper클래스로 Wrapping한다.
wlResource = new XAResourceWrapper(wlITM.getXAResource());

posted by DB,MW,OS OSSW(Open Source System SoftWare

TCP/IP Kernel Parameter

일반적으로 최초설치(Install) 운영체제(Operating System) 범용의 목적하에 Kernel Parameter 설정이 이루어지게 됩니다.. 따라서 Web Service만을 위한Kernel Parameter값은 반드시 최적화 시켜야 합니다. 특히 웹서버의 성능에 영향을 많이 주는 TCP/IP parameter setting 20~30% 정도의 성능 향상을 가져 있을 정도로 중요합니다. FAQ 문서에서는 웹서버의 형태로 운용되는 유닉스 서버의 TCP/IP 일반과 Tuning 관한 내용을 기술합니다.

TCP connection initiation background

TCP reliable connection oriented protocol 입니다. 2개의 machine사이에 데이터를 주고 받기 전에 connection 이뤄지는 것입니다.

Adrian Cockcroft(SunPerformance and Tuning, Java and the Internet, 2ndEdition의저자) TCP connection의설명을 Phone Call 비유를 하였씁니다. (dialing, talking, hanging up). Incoming Call 수동적으로(passive) open되고( Server Part에서 아무런동작 없이 일어남.) 그러나 ServerCall Accept하기 위해서 특별한 프로그램이 동작하고 있어야 합니다. Outgoing Call Server에서 시작되는데, 이것은 능동적인(active) open으로 분류됩니다. 이러한 경우의 예로서 다른host rlogin하는 경우에 해당이 됩니다. Connection 시작은 3-way handshake sequence 구성이 됩니다. 이러한 handshake process round-trip 시간과 모든 delay 영향을 받게 됩니다. 최초의 handshake SYN(synchronizesequence numbers) 구성된 incoming packet 입니다. Server 자신의 listen queue(tcp_conn_req_max_q0on solaris, tcp_syn_rcvd_maxon HP-UX) entry 만들고 connection SYN_RCVD 상태로 남게 됩니다. Server 고유한 SYN 포함하는 acknowledges(ACK) 가지고 SYN packet 응답을 합니다. Client에서 오는 다음 packet second SYN 대한acknowledge입니다. 두번째 SYN/ACK client로부터 받고 다음에 connectionaccepted listen queue (tcp_conn_req_max_qon Solaris, tcp_conn_request_maxon HP-UX) 이동합니다.



[
그림1.]TCP 흐름

 

만약 client SYN 보내기만 하고 어떤 ACK 받지 않으면 time out 때까지SYN_RCVD 상태로 남게 됩니다. 이러한 TCP 작동원리는 웹서버에서 권장하는 tcp파라메타를 이해하는데 충분한 설명 것입니다.

TCP Kernel Parameter의튜닝

UNIX 사용자가 tune 있도록 하고 있으며, 시스템 운영중에도 TCP/IP stack 관련한 다양한 파라메타는 set reset 가능합니다. 이러한 작업은 ‘ndd’명령어(network device driver) 가능합니다. Ndd명령은 시스템 재부팅 없이 변경이 가능하지만, 변경한 내용은 시스템 재부팅시 default 값이 되기 때문에 시스템start script 넣어주어야 합니다.

For Solaris Startup see : /etc/rc2.d/S69inet

For HP/UX 11.x Startup see : /etc/rc.config.d/nddconf

본문서에서 언급하는 파라메타는 time interval입니다. 모든 interval milisecond단위입니다.(e.g. 1000=1 second).

현재설정된TCP 커널파라미터의값확인

# ndd/dev/tcp\?

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

Tuxedo 구성정보 모니터링  (0) 2014.07.31
WebLogic JEUS 간 Global Transaction  (0) 2009.06.16
Web System 튜닝을 위한 TCP 파라미터설명  (0) 2009.06.08
EJB 개념  (0) 2009.06.05
WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare
TAG kernel, tcp, Tuning, web

정의

  EJB 아키텍쳐는 객체지향 분산 엔터프라이즈 어플리케이션의 개발 분산 배치를 위한 컴포넌트 아키텍쳐입니다. 엔터프라이즈 자바 빈즈 아키텍쳐를 이용해 만들어진 어플리케이션은 확장성이 있고, 트랜잭션을 보장하며 다수 사용자 환경에서도 안전합니다. 어플리케이션은 작성되면 엔터프라이즈 자바 빈즈 스펙을 지원하는 어떤 서버 플랫폼에서도 배치되고 운영될 있습니다.

구성  

EJB Server, EJB Container

EJB Component 설치할 있는 환경 제공

여러가지 시스템 레벨의 기능 처리해준다.

Deployment Descripter검사로 EJB Component 작동환경 설정

Client Access요청 접수

데이터베이스, 트랜잭션등의 Container에서 필요한 여러 서비스 제공

운영체제개념

EJB Component

Business Logic 담고 있는 객체

Session Bean

Entity Bean

 EJB Container 역할

Session Bean Entity Bean 작동환경 제공

트랜잭션 처리

엔터프라이즈 빈에 대한 보안 관리

엔터프라이즈 빈의 Pooling기능

컨테이너간의 호환성

엔터프라이즈 빈에 대한 Customizing가능 제공

 엔터프라이즈 구성요소  

리모트 인터페이스

  엔터프라이즈 빈의 리모트 인테페이스는 빈이 어떤 일을 수행하기 위해서 외부 세계에 제공하는 빈의 비즈니스 메소드를 정의합니다. 리모트 인터페이스는java.rmi.Remote 계승한 javax.ejb.EJBObject 상속받고. 실제로 인터페이스는 EJB Container 의해서 자동으로 구현되게 됩니다. 이때 구현된 실체를 EJB 객체라 부르고. EJB 개발자는 Remote Interface 인터페이스를 제작하여 설치하면 Container 뒤에 Bean Class Composite 연결하여 인터페이스를 Implement 하게 됩니다.

인터페이스

  인터페이스는 새로운 빈을 생성하고, 제거하고, 찾아내는 등의 빈의 사이클 메소드를 정의합니다. 이는 java.rmi.Remote 계승한 javax.ejb.EJBHome 상속 받고. 리모트인터페이스와 마찬가지로 EJB Container 의해서 자동으로 구현되게 됩니다. 이때 구현된 실체를 EJB 홈이라 부릅니다.

클래스

  클래스는 실제로 빈의 비즈니스 메소드를 구현합니다. 그런데 놀랍게도 클래스는 일반적으로 빈의 홈이나 리모트 인터페이스를 Implement 하지 않고, 다만 클래스는 반드시 리모트 인터페이스에 정의된 메소드들과 대응하는 메소드들을 가져야 합니다. 리모트 인터페이스와 인터페이스의 구현은 Java Beans 메커니즘에 의해서 이루어지게 되는데 이에 대해서는 이후에 언급하겠습니다. 엔터프라이즈 빈이 Entity Bean 경우 javax.ejb.EntityBean 구현하여야 하며 세션빈은 javax.ejb.SessionBean 구현하여야 합니다.

프라이머리

  프라이머리 키는 데이터 베이스로의 포인터를 제공하는 매우 단순한 클래스입니다. 프라이머리 키는 엔티티 빈에만 필요하며, 클래스가 반드시 갖추어야 요건 한가지는 Serializable 인터페이스를 구현하여야 합니다.

 엔터프라이즈 빈의 작동원리

  서버에 의해 자동으로 생성된 EJB Object Remote Interface implement 하고 있고, 또한 Bean Class 대해서 참조점을 유지하고 있습니다. Composite 패턴으로 BeanClass 확장한다는 것입니다.(Entity Bean 경우)


          

[그림1]. EJB 동작 원리

 Client EJB 상호작용  



[
그림2]. EJB 상호작용

 

  먼저 Client JNDI 객체의 위치를 파악합니다 . JNDI 처음의 기반기술에서 언급한 기술로써 네트웍상의 리소스에 대한 위치파악과 검색 서비스를 제공하는 API입니다. JNDI 또한네트웍상의 객체의 참조에서도 쓰이고. Client JNDI HomeInterface 구현한 객체를 가져 오게 됩니다. HomeInterface 구현한 객체는 서버에 의하여 자동으로 만들어 것이고 Client에서는 이의 Interface만을 인지하고 있으면 되므로 다음과 같이 가져올 있습니다. 이렇게 HomeInterface 가져온 홈인터페이스를 이용하여 EJBObject Create하거나 remove 또는 검색합니다. 이후 Client 에서 Remote Interface 메소드를 호출하면 Server에서 Bean Class 호출하여 Business Logic 수행하게 됩니다.

 Bean Class  

Entity Bean

  대량의 데이터를 처리하기 위해서 보통 DB 사용합니다. 전통적으로 개발자들은 DBMS에서 제공하는 여러 가지 API 이용하여 직접 DB 데이터를 저장하고 가져오게 됩니다. 예를 들어 1000개의 Record 있는 데이터가 있는 경우 DB에서 원하는 정보를 가지고 오는 메소드를 작성하고 가져온 데이터를 처리하게 됩니다. Entity Bean 이것과는 다른 상소한 개념을 가지고 있고 Entity Bean DB Record 대표하게 됩니다. DB 1000개의 레코드가 있다면 Entity Bean 인스턴스가 1000개가 존재하는 것으로 생각하면 됩니다. 다르게 말하자면 Entity Bean DB Schema 대표하고 Entity Bean 인스턴스는 Schema DB Record 대표하는 것입니다..
 
개발자는 다량의 Entity Bean 원하는 Entity Bean 검색한다면 DB에서 원하는 Record 검색하는 것과 같은 의미를 띄게 됩니다. Pooling 설명할 언급했듯이 Entity Bean Container-managed Entity Bean Bean -Managed Entity Bean 가지로 나눌 있습니다
.
 
방법은 Entity Bean 내의 필드관리는 누가 맡게 되느냐에 따라 차이를 두게 되고 Container-managed Entity Bean 개발자가 프로그래밍을 하지 않더라도 Container 직접 Entity Bean 필드관리를 맡습니다. Client 특정 Entity Bean Search하는 작업을 수행한다면 Server 측에서 이를 DB에서 검색하여 Entity Bean 필드로 값을 전달하고 Client 이를 리턴하게 되는데 DB와의 연동작업을 Container 알아서 해준다는 것입니다. 이에 반하여 Bean -Managed Entity Bean 직접 코드를 작성해 줘야 합니다
.
 
만약 주식거래 시스템을 구현한다면 Entity Bean 해당하는 요소는 주식 , 고객 실제로 어떠한 실체를 가진 것이 것입니다.

Session Bean

  Session Bean 비즈니스 로직을 담고 있는 Bean이고 Client 주로 Session 빈을 이용하여 Entity Bean 접근하고 여러 가지 작업을 수행하게 됩니다.
 
일반적으로 Session Bean 내부에는 필드를 만들지 않는 것이 좋습니다. 개의 메소드로 수행될 있는 작업들만을 Session Bean 내에 생성하는 것을 권장합니다. SessionBean 내에 필드를 두어 Client 측에서 2 이상의 메소드를 수행하여야 한다면 ( 상태를 가져 상태에 따라 같은 메소드로 다른 것을 수행한다면) Pooling 되었을 때를 대비하여 상태를 저장하는 코딩이 추가되어야 합니다.

 Deployment Descriptor

  Deployment Descriptor Text 파일로서 내부에는 XML Schema 구성되어 있습니다. 파일은 Entity Bean 경우 EntityDescriptor라는 객체 인스턴스에 여러 설정사항을 메소드를 호출하여 설정한 이를 직렬화하면 생성되게 됩니다. 처음에 언급한 XML 형식의 직렬화를 구현한 객체입니다. 또한 SessionBean 경우도 비슷하게 SessionDescriptor 라는 클래스를 직렬화 하면 파일을 생성할 있습니다. 대부분의 EJB Server 제품은 것을 자동화하는 여러 가지 툴을 제공합니다.

 Jar

  자바의 표준 압축파일은 jar 여러 클래스들을 내부에 압축하고 모아둘 있고 자바버츄얼머신에서도 이를 지원하여 압축을 풀지 않고도 jar 내부의 클래스들을 조사하고 사용할 있습니다. 엔터프라이즈 자바빈을 Container 설치할 때는 바로 jar 파일을 이용하게 됩니다. jar 파일내부에는 manifest라는 파일을 포함하여야 한다. manifest jar 압축된 파일 어떤것이 Deployment Descriptor인지 명시 해놓는다. jar 파일을 EJB Container 설치할 Container jar 파일내부의 manifest 파일을 찾게 되고 파일 parsing하여 Deployment Descriptor 찾게 됩니다. Container 파일을 파싱하여 홈인터페이스, 리모트 인터페이스, 클래스 파일의 이름을 알아내고 jar 내부의 파일들을 적합한 위치에 설치하게 됩니다.

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

WebLogic JEUS 간 Global Transaction  (0) 2009.06.16
Web System 튜닝을 위한 TCP 파라미터설명  (0) 2009.06.08
EJB 개념  (0) 2009.06.05
WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05
WebtoB Vhost 설정  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare

URI절은 Client 요구의 URI(Uniform Resource Identifier) 값에 따라 이를 처리하는 서비스를 구분 있도록 합니다. , 특정 URI 입력으로 들어온 경우, 이를 특정 서비스에서 처리하도록 있다는 것입니다. 보통 URI절은 CGI 이용하는 경우에 많이 이용됩니다. 예를들어 http://www.tmax.co.kr/cgi-bin/test.cgi 같은 것을 호출 하였을 /cgi-bin/ URI CGI등의 서비스로 정의 하여 이용 있습니다.

Alias절은 실제 Server안의 물리적 디렉토리 경로와 URI Alias 시키도록 설정 있습니다. , 어떤 특정한 URI 대한 요구가 들어오면 이를 실제의 물리적인 디렉토리에 매핑시켜서 이곳에서 원하는 자원을 찾아 처리하게 하는 방식입니다. 이는 사용자가 Document root 상관없이 지정 있기 때문에 관리하는 입장에서 매우 편리 합니다.

URI Alias 형식은 아래와 같습니다.

URI 형식

URI name URI, SVRTYPE

              [,SVRNAME][,NodeName][,VhostName][,Redirect]

              [,SVCNAME][,RedirectStatus][,AuthentName][,Option]

              [,AccessName]

 

사용예

*URI

uri1   Uri = "/cgi-bin/", SVRTYPE = CGI

uri2   Uri = "/cgi/", SVRTYPE = CGI

uri3   Uri = "/test/", SVRTYPE = CGI

uri4   Uri = "/jsv/", SVRTYPE = JSV

 

Alias 형식

Alias name     URI, REALPATH

               [,SVRTYPE][,NodeName][,VhostName]

 

사용예

*ALIAS

alias1 URI = "/cgi-bin/",

       RealPath = "/usr/local/webtob/cgi-bin/"

alias2 URI = "/tpsvc/",

       RealPath = "/usr/local/webtob/ap/"

 

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

Web System 튜닝을 위한 TCP 파라미터설명  (0) 2009.06.08
EJB 개념  (0) 2009.06.05
WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05
WebtoB Vhost 설정  (0) 2009.06.05
Apache JEUS 연동  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare

WebtoB Web 서버에서 인증서(128bit 암호화 제공) 사용하기 위해 CSR 생성하는 방법 입니다.

초기 설정

CSR 생성하기 전에 다음의 가지 사항을 필히 확인해야 합니다.

부팅 path 환경변수를 일일이 설정하지 않기 위해 초기 설정파일을 사용하여 로그인 시에 자동으로 실행되도록 합니다. 그러나 간혹 초기 설정파일이 실행되지 않아서 에러가 생기는 경우가 있는데 이럴 경우에 초기 설정파일을 다시 한번 실행시킵니다.

리눅스의 경우

bash : .bash_profile

c : .cshrc

User 임의로 .bash_profile 실행시켜주면 되는데 리눅스의 경우 . .bash_profile

혹은 . /root/.bash_profile 실행시켜 주면 됩니다.

 

비밀키 CSR생성

(1) 보통 path/ssl 에서 CSR 생성한다.

$ CA -newreq

( newreq라는 Commend CSR 생성하는 option입니다. 예로 인증서를 만드는

옵션은 newcert입니다.)

위를 실행시키면

Using configuration from path/to/ssl/wbssl.cnf

Generating a 1024 bit RSA Private key

라는 메시지라 뜹니다.

암호 입력

ex) Enter PEM pass phase :

verifying password – Enter PEM pass phase :

Private key 생성.

암호문을 잊어버리면 키를 사용할 없으므로 주의하세요.

Private key 백업 복사본을 만들어 안전한 장소에 보관하여 비밀키가 손실

또는 분실되었을 경우 백업을 가지고 사용합니다..

CSR 정보입력

다음 정보를 입력하라는 메시지가 나타난다.

Country Name <2 letter code> [AU] : KR

국가코드 - 국가에 해당하는 글자의 ISO 약어(: 호주는 au, 영국은 gb,

멕시코는 mx) 입력한다.

States or province Name <full name> [some-state] : Seoul

State/province (/도의 전체 이름) - 완전한 이름을 입력한다.

(예를 들면 NSW 아닌 New South Wales).

Locality Name <eg. city> [] : Seocho

Locality(, , 등의 이름)

Organization Name <eg. company> [Internet widgets Pty Ltd] : KECA, Inc.

Organization(소속 단체/회사 이름) - 도메인 이름(CrossCert 등록 과정의

단계 1) 소유하고 해당 권한 입증(CrossCert 등록 과정의 단계 2) 있는

단체이어야 한다.

Organization Unit Name <eg. section> [] : CS Team

Organization Unit(단체 내의 소속 부서(예를 들면 마케팅, 판매, MIS ) )

Common Name <eg. Your name or your servers hostname> []

: www.crosscert.com

Common Name - 해당 사이트(: www.bookstore.com) 승인된 전체 도메인

이름을 입력한다. 이름은 사용하려는 https URL 일치해야 한다. 이름도

소속 단체가 소유하는 도메인 이름으로 끝나야 한다.

Email Address [] : helpdesk@crosscert.com

"추가 속성" 입력하라는 메시지가 나타나면 skip 하셔도 무관하다.

Ex) A challenge password [] :

An optional company name [] :

Request <and Private key> is in newreq.pem

CSR 제출

위의 단계가 성공적으로 이뤄지면 CSR파일이 생성됩니다.

newreq.pem 내용은 다음과 같은 형식으로 나타납니다.

-----BEGIN CERTIFICATE REQUEST-----

MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh

MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNAQkB

FgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV1LQG

fcSh8nehEOIxGwmCPlrhTP87PaA0XvGpvRQUjCGStrlQsd8lcYVVkOaytNUCAwEA

AaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9

BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg==

-----END CERTIFICATE REQUEST-----

CSR 전체 내용을 복사하여 등록 폼에 붙여 넣습니다.


'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

EJB 개념  (0) 2009.06.05
WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05
WebtoB Vhost 설정  (0) 2009.06.05
Apache JEUS 연동  (0) 2009.06.05
WebtoB JEUS 연동  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare

WebtoB 에서는 하나의 Node 에서 여러 개의 Domain name 혹은 Port 지원하기 위하여 Apache <Virtualhost> 절을 WebtoB vhost절을 이용하여 동일하게 구성할 있습니다.

가상 호스트는 현재 HTTP 1.1 지원하는 브라우저에서 적용할 있는 Web Server 기능으로 하나의 Web Server 이용하여 마치 여러 대의 Web Server 운영되고 있는 것과 동일한 효과를 있도록 하는 것입니다.. WebtoB에서는 가상 호스팅 기능을 제공합니다.

상에서 새로운 서비스를 시작하고, 서비스는 인터넷 신문사인 “WebtoB Times” 라고 가정해 . 서비스를 하나의 IP 주소와 도메인 이름, 그리고 한대의 Web Server 이용해서 운영할 수도 있습니다. 그러나, 당신은 하나의 IP 사용하면서도 개의 도메인 이름으로 분리하여 서비스를 제공한다면 이용자도 알기 쉽고 관리 차후 확장에도 용이할 것이라는 판단 하에 다음과 같은 개의 서비스로 분리하고자 합니다.

webtobtimes.com: 메인 페이지

society.webtobtimes.com: 사회면 기사를 다루는 섹션

sports.webtobtimes.com: 스포츠 기사를 다루는 섹션

위와 같이 분리하여 HTML문서도 만들고 기타 서비스도 제공합니다. (실제로 많은 대형 사이트를 방문해 보면 위와 같은 구성으로 되어 있음을 확인할 있습니다. )

Web Server에서는 위와 같은 설정을 적용하기 위해 개의 Virtual Host 할당하여 각각 society sports 적용해 주면 됩니다. 이렇게 하면 이들 서비스는 메인 페이지와는 다른 Web Server에서 운영되는 것과 같은 효과를 있으며, 실제 Web Server 내에서도 document 문서의 경로 기타 모든 설정들을 분리하여 사용할 있습니다. 이렇게 도메인 이름을 분리하여 하나의 IP 서비스 하는 방식을 Name Based Virtual Host 합니다.

이와 구별되는 방식으로는 IP Address Based Virtual Host 있는데 방식은 다른 IP 사용하므로 사실상 별개의 도메인이라 있어, 설정에 있어서도 다른 IP 사용하면 되고 크게 쓰이지 않는 방식입니다. (왜냐하면 사이트가 다량의 IP 확보하기는 힘들기 때문이다. )

가상 호스트의 구조를 그림으로 나타내어 보면 다음과 같습니다.


[
그림1.]vhost 구조

위와 같이 하나의 IP 한대의 Web Server 이용해 도메인의 서비스를 있으며, 동일 IP 다른 이름으로 호출된 서비스를 WebtoB 가상 호스트가 구분하여 서비스하게 됩니다.

아래의 예는 위의 Web Times 가상의 사이트를 바탕으로 구축한 가상 호스트의 예제이다.

*VHOST

vhost1 DOCROOT = "/usr/local/webtob/docs/vhost1_docs",

       NODENAME = webtob1,HOSTNAME = "society.webtobtimes.com",PORT = "8080",

       UsrLogDir = “/usr/local/webtob/vhost1/log/usrlog",

       IconDir = “/usr/local/webtob/vhost1/icons",

       UserDir = “/usr/local/webtob/vhost1",

       EnvFile = vhost1_env,

       IndexName = "v1_index1.html",

       LOGGING = "v1_log1",

       ERRORLOG = "v1_log2"

 

vhost2 DOCROOT = "/usr/local/webtob/docs/vhost2_docs",

       NODENAME = webtob1,HOSTNAME = "sports.webtobtimes.com",PORT = "8080",

       UsrLogDir = “/usr/local/webtob/vhost2/log/usrlog”,

       IconDir = “/usr/loccal/webtob/vhost2/icons",

       UserDir = “/usr/loccal/webtob/vhost2",

       EnvFile = vhost2_env,

       IndexName = "v2_index.html",

       LOGGING = "v2_log1",

       ERRORLOG = "v2_log2"


'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05
WebtoB Vhost 설정  (0) 2009.06.05
Apache JEUS 연동  (0) 2009.06.05
WebtoB JEUS 연동  (0) 2009.06.05
JEUS Class Loader  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare

Apache JEUS 연동 방식은 Jserv mod_jk 이용하는 방식이 있습니다. FAQ 문서에서는 mod_jk2 이용하는 방식만 다룰 것입니다.

 

Apache 다운 로드

http://httpd.apache.org/download.cgi

에서 Unix Source: httpd-2.2.4.tar.gz 다운로드

Apache 설치

[jeus@chyeo apache]$ tar -zxvf httpd-2.2.4.tar.gz

………………………….

[jeus@chyeo apache]$ cd httpd-2.2.4

Apache DSO 모드로 설치 해야 합니다.

[jeus@chyeo httpd-2.2.4]$ ./configure --prefix=/home/jeus/apache --enable-rule=SHARED_CORE --enable-module=so

.......................

[jeus@chyeo httpd-2.2.4]$ make

.......................

[jeus@chyeo httpd-2.2.4]$ make install

mod_jk2 다운로드

http://tomcat.apache.org/download-connectors.cgi

에서 JK2 2.0.4 Source Release tar.gz 다운로드

mod_jk2 압축풀기 설정

[jeus@chyeo jk]$ tar -zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz

jk2 모듈 컴파일

[jeus@chyeo native2]$ cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/ native2

[jeus@chyeo native2]$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs

[jeus@chyeo native2]$ make
[jeus@chyeo native2]$ cd ../build/jk2/apache2

[jeus@chyeo native2]$ /home/jeus/apache/bin/apxs –n jk2 -i mod_jk2.so

apache httd.conf 모듈추가

LoadModule jk2_module modules/mod_jk2.so

연동을 위한 apache 구성

파일생성 workers2.properties 내용 추가

[channel.socket:localhost:8009]

  port=8009

  host=127.0.0.1

 

  [ajp13:localhost:8009]

  channel=channel.socket:localhost:8009

 

  [uri:/*]

  worker=ajp13:localhost:8009

연동을 위한 JEUS WEBMain.xml구성

<ajp13-listener>

                <listener-id>apache-listener1</listener-id>

                <port>8009</port>

                <output-buffer-size>16384</output-buffer-size>

                <thread-pool>

                    <min>10</min>

                    <max>20</max>

                    <step>4</step>

                    <max-idle-time>60000</max-idle-time>

                    <max-wait-queue>2</max-wait-queue>

                    <max-queue>50</max-queue>

                 </thread-pool>

  </ajp13-listener>

Apache-JEUS 연동확인

[jeus@chyeo jeus]$ webadmin `hostname`_container1

Login name>administrator

Password>

-- Welcome to JEUS Web Container(vJEUS 5.0 (fix #18)) Admin --

$$0 [chyeo] >ti

** container [chyeo_container1] **

-- Thread State [apache-listener1] --

[apache-listener1-w00][waiting, wt=100034 ms]

[apache-listener1-w01][waiting, wt=99901 ms]

[apache-listener1-w02][waiting, wt=99901 ms]

[apache-listener1-w03][waiting, wt=99901 ms]

[apache-listener1-w04][waiting, wt=99902 ms]

[apache-listener1-w05][waiting, wt=99774 ms]

[apache-listener1-w06][waiting, wt=99774 ms]

[apache-listener1-w07][waiting, wt=99774 ms]

[apache-listener1-w08][waiting, wt=99774 ms]

[apache-listener1-w09][waiting, wt=99629 ms]

[total : 10    active : 0    idle : 10    blocked : 0    reconnecting : 0]

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

WebtoB CSR 생성  (0) 2009.06.05
WebtoB Vhost 설정  (0) 2009.06.05
Apache JEUS 연동  (0) 2009.06.05
WebtoB JEUS 연동  (0) 2009.06.05
JEUS Class Loader  (0) 2009.06.05
JEUS Startup class 등록  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare


[
그림1]WebtoB-JEUS 연동 메커니즘

WebtoB JEUS 연동 JEUS Container 상의 servlet_engine 상에서 이루어 지며 servlet-engine <webtob-listener> 태그로 간단하게 연동을 진행 있습니다.

<webtob-listener> registration-id WebtoB 상의 *SERVER 매핑이 되며 이에 대한 확인은 WebtoB 상의 wsadmin 정보와 JEUS webadmin 에서 학인이 가능합니다.

WebtoB JEUS 연동 경우는 다른 웹서버군과 달리 WebtoB 서버가 되며 JEUS boot WebtoB 엔진에 등록된 태그에 따라서 WebtoB Server registration id 이용하여 JSVPORT thread 개수만큼 연결을 맺게 되며 연결을 맺은 후에는 이미 맺어진 세션이기 때문에 상호 통신이 가능합니다.


[
그림2]WebtoB-JEUS 연동시 Connection

WebtoB wsadmin에서의 확인

[jeus@chyeo chyeo]$ wsadmin

--- Welcome to WebtoB Admin (Type "quit" to leave) ---

 

$$1 chyeo (wsadm): si

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

 hth   svrname (svri)   status     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt

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

   0  html       (  0)   RDY           0     0        0     0     0     0     0

   0  cgi        (  1)   RDY           0     0        0     0     0     0     0

   0  ssi        (  2)   RDY           0     0        0     0     0     0     0

   0  MyGroup    (  3)   RDY           0     0        0     0     0     0     0

JEUS webadmin 에서의 확인

[jeus@chyeo chyeo]$ webadmin `hostname`_container1

Login name>administrator

Password>

-- Welcome to JEUS Web Container(vJEUS 5.0 (fix #18)) Admin --

$$0 [chyeo] >ti

-- Thread State [webtob1-hth0(localhost_9900)] --

[webtob1-hth0(localhost:9900)-w0][waiting, wt=284380 ms]

[total : 1    active : 0    idle : 1    blocked : 0    reconnecting : 0]

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

WebtoB Vhost 설정  (0) 2009.06.05
Apache JEUS 연동  (0) 2009.06.05
WebtoB JEUS 연동  (0) 2009.06.05
JEUS Class Loader  (0) 2009.06.05
JEUS Startup class 등록  (0) 2009.06.05
DB2 Net Driver 와 App Driver  (0) 2009.06.05
posted by DB,MW,OS OSSW(Open Source System SoftWare
prev 1 2 next