1 쪽중 1 쪽 WebLogic Server 8.1 Tutorials 03 - 리소스 (JDBC, JMS 등 ) 설정 본문서에서는 MedRec 애플리케이션을디플로이하고서비스하기위해서필요한 WebLogic Server 의리소스들을설정하는방법에대하여설명할것이다. 1. JDBC(Java Database Connectivity) Connection Pool 과 Data Source 설정 2. JMS(Java Message Service) 의 Persistent Store, JMS 서버, Queue 그리고커넥션팩토리 (Connection Factory) 3. JavaMail 의메일세션 1. 전제사항 본문서를시작하기전에다음의문서를참조하여미리 Domain, Server 생성및 Pointbase 데이터베이스를 Start 작업을해놓아야한다. 1. WLS81 개발 Tutorial 1-Domain 및 Server 생성 2. WLS81 개발 Tutorial 2-DB(Point Base) Start 2. JDBC Connection Pool 생성 1. MedRec Server 를 Start 해놓는다. 2. Pointbase Database 를 Start 해놓는다. 3. 웹브라우져를오픈하여 URL 부분에다음과같이입력하여 Server 의어드민콘솔을호출한다. http://localhost:7101/console 또는 http://127.0.0.1:7107/console 4. 콘솔로그인화면이보이면 username 과 password 를입력한다. (weblogic/weblogic 을입력한다.)
2 쪽중 2 쪽 5. 어드민콘솔로로그인하고나면다음과같은화면이보일것이다. 6. 어드민콘솔의화면왼쪽탐색트리부분에서다음의항목을순서대로선 택해준다. Services JDBC Connection Pools 7. Connection Pools 항목의오른쪽설정부분에서 Configure a net JDBC Connection Pool 링크를선택한다. 8. Database Driver 에서 Pointbase s Driver(Type 4) versions:4.x 를선택한후 <Continue> 버튼을클릭한다.
3 쪽중 3 쪽 9. Configure a JDBC Connection Pool 의 Define connection properties 화면이보이면아래와같이각항목에필요한속성값을정 의해주고 <Continue> 버튼을클릭한다. Name : MedRecPool-PointBase Database Name : demo Host Name : localhost Port : 9092 User Name : medrec Password : medrec Confirm Password : medrec 10. Test database connection 화면이보이면설정값의내용을확인한후 화면하단의 <Test Driver Configuration> 버튼을클릭하여테스트하여본 다. ( 참고 : 이부분을진행하기위해서는꼭 Pointbase 데이터베이스가 Start 되어있어야한다.) 11. 아래의화면처럼테스트를성공했다는화면이보이면하단부분의 <Create and Deploy> 버튼을클릭한다.
4 쪽중 4 쪽 12. 정상적으로 Connection Pool 이생성되면아래의화면처럼어드민콘솔의 왼쪽부분에 Connection Pool 의이름으로노드가하나생성된다. 3. JDBC DataSource 생성 클라이언트및서버사이드 JDBC 애플리케이션은 DBMS 커넥션을 DataSource 를통하여얻을수있다. DataSource 는애플리케이션과 JDBC Connection Pool 사이의인터페이스역할을하게된다. 1. 어드민콘솔화면의왼쪽트리부분에서다음항목을순서대로선택한다. Services JDBC DataSources 2. DataSource 항목을선택하면보이는오른쪽설정부분에서 Configure a new JDBC Data Source 링크를선택한다. 3. 각항목에아래와같이입력하여준후 <Continue> 버튼을클릭한다. Name : MedRecTxDataSource JNDI Name : MedRecTxDataSource Honor Global Transaction : 선택
5 쪽중 5 쪽 4. 다음에보이는 Connect to Connection Pool 화면에서는 Pool Name 항목드롭다운메뉴에서조금전에만든 connection Pool 인 MedRecPool-PointBase 를선택한후 <Continue> 버튼을클릭한다. 5. Target to DataSource 화면이보이면, 지금만든데이터리소스가디플로이되기를원하는서버즉 MedRecServer 를선택한후 <Create> 버튼을클릭한다. DataSource 가정상적으로만들어지면다음과같은화면이보일것이다. 6. 위의그림과같이 JDBC Data Source 리스트가보이면, Name 항목에서 MedRecTxDataSource 링크를마우스로클릭하여선택한다. 7. 다음화면의하단부분중 Advanced Options 의오른쪽부분에서 Show 링크를클릭한다. 8. Advanced Options 화면이보이면하단부분의 Emulate Two-Phase
6 쪽중 6 쪽 Commit for non-xa Driver 부분의체크박스를선택하고 <Apply> 버 튼을클릭한다. 4. JMS JDBC Store 생성 이번과정은 JMS 의메시지의 Persistent 를위해서 JMS Store 를 JDBC 를이 용하여설정하는과정이다. 1. 어드민콘솔의화면왼쪽트리부분에서 Service JMS Store 항목을 선택한다. 2. 선택된 Store 항목의오른쪽화면에서 Configuration a new JMS JDBC Store 링크를선택한다. 3. Configuration 화면이보이면다음과같이각항목에입력한후 <Create> 버튼을클릭한다. Name : MedRecJMSJDBCStore Connection Pool : MedRecPool-PointBase Prefix Name : MedRec 4. 콘솔화면의왼쪽탐색트리부분에다음과같이 JMS Store 가생성되었는 지확인해본다.
7 쪽중 7 쪽 5. JMS Server 생성 JMS Server 는 JMS 클라이언트를위하여커넥션과메시지요청을관리하는역 할을하게된다. 1. 어드민콘솔의왼쪽트리부분에서다음항목을순서대로선택한다. Services JMS Servers 2. 화면오른쪽에서 Configure a new JMS Server 링크를선택한다. 3. 다음화면에서아래와같이두가지항목을입력한후, 나머지항목은디폴 트상태로놓아두고 <Create> 버튼을클릭한다. Name : MedRecJMSServer Persistent Store : MedRecJMSJDBCStore 4. 다음화면에서보이는 Target 리스트박스에서 MedRecServer 를선택 한후 <Apply> 버튼을클릭한다.
8 쪽중 8 쪽 6. JMS Queue 생성 본과정에서의 JMS Queue 는 PTP(Point-to-Point) 모델을기반으로한다. PTP 모델은정확히한명의메시지받을사람에게만메시지를전달하게된다. Queue Sender(Producer) 는메시지를임의의 Queue 로보내게되며 Queue Receiver(Consumer) 는메시지를그 Queue 로부터받아오게된다. 다음의과정은 3 개의 JMS Queue 를어떻게만드는지보여주게될것이다. 이 3 개의 Queue 는 MedRec 애플리케이션의새로운사용자를등록하고, 메일을 핸들링하고 XML 파일을업로드할때사용될것이다. 1. 어드민콘솔의왼쪽트리부분에서다음과같은순서로각항목을선택하여준다. Services JMS Servers MedRecJMSServer Destinations 2. Destinations 항목을선택하고나면화면오른쪽에보이는 Configure a new JMS Queue 링크를마우스로클릭한다. 이 Queue 는 Message Driven Bean 을등록하기위한 Queue 이다. 3. 다음과같이각항목에값을입력한후, 나머지항목은디폴트상태로두고 <Create> 버튼을클릭한다. Name : jms/registration_mdb_queue JNDI Name : jms/registration_mdb_queue 4. 이번에는 Email Message Driven Bean 을위한 Queue 를생성할것이다. 화면왼쪽의 Destinations 를선택한후, 오른쪽의설정화면에서 Configure a new JMS Queue 를선택한다.
9 쪽중 9 쪽 5. 다음화면에서아래와같이각항목을입력한후 <Create> 버튼을클릭한 다. Name : jms/mail_mdb_queue JNDI Name : jms/mail_mdb_queue 6. 이번에는 XML 업로드 Message Driven Bean 을위한 Queue 를생성할것 이다. 화면왼쪽의 Destinations 를선택한후, 오른쪽의설정화면에서 Configure a new JMS Queue 링크를선택한다. 7. 다음화면에서아래와같이각항목을입력한후 <Create> 버튼을클릭한 다. Name : jms/xml_upload_mdb_queue JNDI Name : jms/xml_upload_mdb_queue 8. 다음의그림과같이 3 개의 JMS Queue 가생성된것을확인할수있을것 이다. 7. JMS Connection Factory 생성 Connection Factory 는 JMS 클라이언트가 JMS 커넥션을생성할수있도록하는객체이다. Connection Factory 는동시객체접근을위한멀티쓰레딩을할수있도록동시사용을지원한다. 1. 어드민콘솔의왼쪽트리부분에서다음의순서로각항목을선택한다. Services JMS Connection Factory 2. Connection Factory 부분을선택한후, 화면오른쪽에 Configure a new JMS Connection Factory 링크를선택한다. 3. 다음과같이각항목을입력한후, 나머지항목은디폴트상태로두고 <Create> 버튼을클릭한다.
10 쪽중 10 Name : jms/medrecqueueconnectionfactory JNDI Name : jms/medrecqueueconnectionfactory 4. 다음화면이보이면 Targets 의 MedRecServer 를선택한후 <Apply> 버튼을클릭한다. 5. Configuration 탭, Transactions 탭을순서대로선택한다. 6. XA Connection Factory Enabled 항목의체크박스를선택한후 <Apply> 버튼을클릭하여준다. 8. MedRec 애플리케이션에 E-mail 기능추가 WebLogic Server 는 Sun Microsystems 의 Java Mail API 버전 1.1.3 을포함하고있다. 그렇기때문에이 JavaMail API 를이용하여 WebLogic Server 애플리케이션에 E-Mail 기능을추가하여사용할수있다. WebLogic Server 에포함된 JavaMail 을사용하기위해서는약간의설정이필요하다. WebLogic Server 어드민콘솔에서 Mail Session설정을해주면된다. Mail Session 설정을통하여서버사이드컴포넌트와애플리케이션들을 JNDI Look-Up 을통하여 JavaMail 서비스를사용할수있도록도와주기때문이다. 1. 어드민콘솔화면의왼쪽트리노드부분에서 Service Mail 을순서대 로선택한후, 화면오른쪽의설정부분에서 Create a New Mail Session 링크를클릭한다.
11 쪽중 11 2. 다음과같이각항목을입력할후 <Create> 버튼을클릭한다. Name : jms/medrecmailsession JNDI Name : jms/medrecmailsession Properties : mail.user=user1;mail.host=mail.mycompany.com 3. 다음화면에서 Targets 설정하는화면이보이면 MedRecServer 부분 에선택표시를하고 <Apply> 버튼을클릭한다. 9. MedRec Sample Authenticator 설정 MedRec Sample Authenticator 는애플리케이션으로로그인할때주어진 username 이 PointBase RDBMS 에설정된내용과부합되는지를검증해준다. 1. 어드민콘솔의왼쪽트리노드부분에서다음과같은순서로각항목을오픈하여준다. Security Realms myrealm Providers Authentication 2. Authentication 항목을선택한후보이는오른쪽설정화면에서 Configure a New MedRec Sample Authenticator 링크를선택한 다. 3. 오른쪽화면의 General 탭에서다음항목을입력하여준후 <Create> 버튼을눌러다음과정으로진행한다. Name : MedRecSampleAuthenticator Control Flag : SUFFICIENT
12 쪽중 12 SUFFICIENT 컨트롤플래그는인증할때 LoginModule 이필요하지않음을의미한다. 만약인증을성공한다면제어권이애플리케이션으로넘어가게되고성공하지못하게되면 Server 는다시다른 Authentication Provider 의설정에대하여시도하게된다. 4. 어드민콘솔의왼쪽트리노드부분에서다음의순서대로노드를오픈한다. Security Realms myrealm Providers Authentication DefaultAuthenticator 5. DefaultAuthenticator 노드를선택한후화면오른쪽의설정부분에서 Control Flag 부분을 SUFFICIENT 로바꾸어준다. 6. <Apply> 버튼을클릭한다. 7. Weblogic Server 의주기는인증 Provider 를통하도록되어있기때문에 Pointbase DBMS 가매번로그인을시도할때마다쿼리를하지않도록 Provider 목록을재조정하여야한다. 다음의순서로콘솔화면의왼쪽노드를오픈한다. Security Realm myrealm Providers Authentication 8. Authentication 노드를선택한후, 화면오른쪽하단부분에서 Reorder the Configure Authentication Provider 링크를선택한다.
13 쪽중 13 9. Authentication Provider 를선택하는화면에서상, 하화살표버튼을 이용하여 Authenticator 의순서를다음그림과같이조정한다. 10. <Apply> 버튼을클릭한다 10. 참고 JDBC DataSource 를생성시주의사항으로서, 애플리케이션에서트랜잭션 서비스를지원할수있게하고자한다면어드민콘솔에서 DataSource 설정부 분의 Honor Global Transaction 이라는항목을선택하여주면된다. 관련된문서의위치 Introduction to WebLogic JDBC JDBC Connection Pools WebLogic JMS Fundamentals Configuring JMSUsing JavaMail with WebLogic Server Applications