반응형
$ uname -srvm
Linux 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:45:36 UTC 2010 x86_64

$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

SOA Suite 11.1.1.4.0 (soa_server1, soa_server2 클러스터 구성)

JDeveloper 에서 SOA 서버로 배치(deploy)를 하려고 할때 "java.io.IOException: Too many open files" 에러가 났습니다.

soa나 jdeveloper의 문제가 아니고 OS 환경 설정의 문제더군요....

SOA를 구동하는 계정으로 로그인해서 'ulimit -a' 를 입력합니다.

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

값을 설정하지 않았다면 1024로 설정 됩니다.

root 계정으로 /etc/security/limits.conf 파일을 수정합니다.

# vi /etc/security/limits.conf

# 아래에 추가 (계정명: weblogic)
weblogic        soft    nofile  4096
weblogic        hard    nofile  4096

마지막 숫자를 적당한 값으로 설정합니다.

이제 SOA 구동시킬 계정으로 로그인 후 'ulimit -a' 입력

$ ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 4096
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

이제 weblogic(admin), soa, bam 등등 다시 시작 후 배치(deploy) 하니 잘 되는군요.. ㅎㅎ

반응형
//

프로젝트 구조가 이상해질 때!!!

Posted at 2010. 4. 27. 17:52 | Posted in Oracle Solution/BPEL
반응형
JDeveloper 11g

후... 열심히(진짜루..) 일하고 있는 갑자기 프로젝트 구조가 갑자기 아래와 같이 바뀔 때가 있습니다. ㄷㄷ!



이런
같은 경우가 ㅠㅠ

첨에는 당황해서 지우구 다시 만들었는데(ㅠ_ㅠ) 계속 이러길래 이것저것 해본 결과!!

프로젝트 정보가 좀 깨져서 SOA의 정보가 날라간거 같습니다. 왜 그런지는 몰름! ㅠ_ㅠ



예] 프로젝트 경로 : D:\workspace\samyang\EDAS_SYC\EDAS_SYC_F0006

먼저 프로젝트에서 마우스 오른쪽 버튼 클릭 후 Project Properties... 선택



Project Source Paths에서 "{프로젝트 경로}\SCA-INF\src" 경로를 하나 더 추가해 줍시다!



SOA Content 에서 SOA Directory Name 부분에 {프로젝트 경로}를 설정합니다.



Resources 에서 기존에 지정되어있는 경로를 삭제 합니다.





Waaagh!! 다시 원상태로 돌아왔습니다. ㅠ_ㅠ



하지만 배치(Deploy)하려고 보니까 배치 정보가 없군염 ㅠㅠ

새 배치 프로필을 생성 합시다



SOA-SAR File 선택



보통 프로젝트 이름을 사용 하죠~



그냥 OK 클릭



Project Properties 창이 다시 열리고 Deployment 에 프로필이 생겼습니다.



이제 이상해지기 전의 프로젝트 상태로 복구(?) 되었습니다. 휴우~
반응형

'Oracle Solution > BPEL' 카테고리의 다른 글

Transform에서 for-each 주의사항!  (1) 2010.04.29
Database Adapter  (0) 2010.04.19
//
반응형
Introductioin

Database AdapterMediator 컴포넌트를 이용한 카드 검사 서비스를 만들겠습니다.



Creation a new application

메뉴에서 File → New 클릭

왼쪽 트리메뉴에서 General 선택 - Generic Application 선택



Application Name : CreditCardValidation

Next 클릭



어플리케이션의 프로젝트를 만듭니다.

한 어플리케이션에 여러개의 프로젝트를 만들 수 있습니다.

Project Name : validationForCC

왼쪽 Available 목록 중에 SOA 를 선택해서 오른쪽으로 옮깁니다.



아무것도 없는 빈 프로젝트로 생성합니다.



첫 프로젝트를 만들었습니다. 두둥!

이클립스랑 비슷하면서도 다른 -_- FlexBuilder 랑 조금 더 비슷한듯 하네용 ㅎㅎ





Adding the database adapter

오른쪽 컴포넌트 중에서 Database Adapter(이하 DbAdapter) 를 External References 공간에 드래그 앤 드랍 합니다.




Service Name : getCreditValidation



크게 Connection 부분과 JNDI Name, Data Source 부분이 있는데..

Connection 지금 현재 이 DbAdapter 를 세팅하는데 필요한 디비의 정보고,

JNDI Name 이나 Dat Source 는 실제 서버에 배치 시킨 후 사용하게 될 리소스 입니다.

곧! Connection 의 디비 정보와 JNDI Name(또는 Data Source)의 정보가 똑같아야 합니다.



데이터베이스 정보를 입력합니다.

Test Connection 클릭 했을때 "Success!" 가 떨어지면 ㅇㅋ!

잘 보면 전 튜토리얼에서 설정한 Data Source 설정과 같다는 것을 알 수 있습니다.



OK 누르게 되면 JNDI Name 에 eis/DB/[Connection이름] 이 자동으로 입력된 것을 알 수 있습니다.

eis/DB/[이름] 은 전 튜토리얼에서 DbAdapter 설정한 JNDI Name 이라는 것을 알 수 있습니다.



어떤 작업을 할건지 선택합니다.

Perform an Operation on a Table 선택 - Select만 체크



어떤 테이블의 정보를 가져올 것인지 선택합니다.

아직 등록된 테이블 정보가 없으므로 Import Tables 클릭



Query 클릭하면 테이블의 목록을 가져옵니다.

Available 리스트에서 CREDITCARDINFO 테이블을 오른똑으로 선택합니다.



테이블이하나 선택되었습니다.



기본키를 지정합니다. CCNUMBER 칼럼을 선택



테이블 관계를 설정합니다. 관계 없으므로 -_- Next 클릭



어떤 칼럼만 가져올지 필터링 합니다. status만 체크



조건을 정의하는 부분입니다.

파라미터(입력)를 하나 추가합니다. Add 클릭 ccnb 입력

Edit 클릭



조건을 만듭니다.

Add 클릭

Query Key : ccnumber
Operator : EQUAL(=)
Second Argument : Parameter 선택



ccnb 파라미터를 하나 받아서 select 쿼리를 날리는 쿼리가 완성되었습니다. Finish 클릭



Database Adapter가 만들어졌습니다.





Adding the Meditator Component

이번에는 Mediator 컴포넌트를 Components 영역에 드래그 앤 드랍 합니다.

Mediator(중재자)는 분기, 값 전달 같은걸 합니다. (맞나?...)



Name : RouteRequest
Templete : Define Interface Later



이번에는 Web Service 컴포넌트를 Exposed Services 영역에 드래그 앤 드랍 합니다.

Web Service 컴포넌트는 외부와의 입/출력을 담당하는 컴포넌트 입니다.



Name : getStatusByCC

원래는 입/출력 스키마를 다 만들어줘야 하지만

이번 튜토리얼은 Web Service 가 목적이 아니므로 기존의 스키마를 불러옵니다.

WSDL URL 옆의 Generate WSDL from schema(s) 버튼(+)을 클릭합니다.



Request 탭에서 URL 오른쪽의 browse for schema file 아이콘 클릭



Import Schema File... 버튼 클릭



Browse Resources... 로 스키마 파일을 찾습니다.



OK 클릭



Maintain original directory structure for imported files 체크 해제

OK 클릭



Type 에 creditcheck.xsd 가 추가된 것을 볼 수 있습니다.

creditcardStatusReqeust 선택



이번에는 Reply 탭에서 creditcardStatus 를 선택합니다.

한번 스키마 파일을 불러(import)왔기 때문에 다시 파일을 일지 않고 선택하면 됩니다.



Fault 탭도 마찬가지로 error를 선택해줍니다.



OK 클릭



이제 getStatusByCC 와 RouteRequest 를 이어줍니다.



RouteRequest 와 getCreditValidation 을 이어줍니다.



잘 이어졌습니다~! >_<





Adding a transformation to the Mediator component

getStatusByCC 에서 받은(request) 입력에서 getCreditValidtion의 입력으로,

getCreditValidation 에서 나온 출력에서 getStatusByCC의 출력으로 값을 매핑시켜주는 Mediator를 설정해보겠습니다.


RouteRequest 를 더블클릭합니다.




첫번째 Transform Using 필드(입력 매핑)에서 오른쪽의

Select an existing mapper file or create a new one 버튼을 클릭합니다.




Create New Mapper File 을 선택하고 OK 클릭




왼쪽(getStatusByCC)의 inp1:CCNumber를 오른쪽(getCreditValidation)의 top:ccnb까지 드래그 합니다.




다시 RouteRequest Mediator. 두번째 Transform Using 필드(출력 매핑)에서 오른쪽의

Select an existing mapper file or create a new one 버튼을 클릭합니다.





입력 매핑과 똑같은 방법으로

getCreditValidation의 top:status와 getStatusByCC의 inp1:creditcardStatus를 이어줍니다.




모두 저장 합시다.



DeployIng the application

일단 서버(어플리케이션 커넥션)를 하나 등록해야 합니다.

New... (Ctrl-N)




왼쪽 카테고리에서 Connection을 선택 오른쪽 아이템 중에 Application Server Connection을 선택합니다.




커넥션 이름을 지정합니다.




커넥션의 Username과 Password를 지정합니다.




어드민 서버(WebLogic)의 정보와 도메인명을 입력합니다.




Test Connectino 에서 모두 "success" 가 나와야 합니다.




서버 커낵션을 하나 만들었습니다.



여기까지는 한번만 하면 됩니다.


프로젝트에서 마우스 오른쪽 버튼 - Deploy - [프로젝트명]... 클릭




Deploy to Application Server 선택




Overwrite any existing composites with the sam revision ID. 체크 해제

배치를 올릴때마다 버젼 번호가 붙게 되는데 체크를 하게 되면 전의 번호와 같은 번호로 덮어서 배치하게 됩니다.

개발용으로 할때는 하나로 계속 하는게 좋겠죠? 안좋나 -_-;;




아까 전에 만들었던 서버 커넥션을 선택합니다.




SOA 서버 선택




배치 요약 확인




컴파일이 정상적으로 끝나고, 배치를 시작할때 웹로직 암호를 물어봅니다.




배치가 되면 대충 이런 메세지가 콘솔로 나오게 됩니다.

[01:19:02 PM] >>>>  Warning:  Unable to determine the target platform from the Profile.  Using default...
[01:19:02 PM] ----  Deployment started.  ----
[01:19:02 PM] Target platform is  (Weblogic 10.3).
[01:19:02 PM] Running dependency analysis...
[01:19:02 PM] Building...
[01:19:10 PM] Deploying profile...
[01:19:10 PM] Updating revision id for the SOA Project 'validationForCC.jpr' to '1.0'..
[01:19:10 PM] Wrote Archive Module to C:\JDeveloper\mywork\CreditCardValidation\validationForCC\deploy\sca_validationForCC_rev1.0.jar
[01:19:10 PM] Deploying sca_validationForCC_rev1.0.jar to soa_server1 [Antop-PC:8001] 
[01:19:10 PM] Processing sar=/C:/JDeveloper/mywork/CreditCardValidation/validationForCC/deploy/sca_validationForCC_rev1.0.jar
[01:19:10 PM] Adding sar file - C:\JDeveloper\mywork\CreditCardValidation\validationForCC\deploy\sca_validationForCC_rev1.0.jar
[01:19:10 PM] Preparing to send HTTP request for deployment
[01:19:10 PM] Creating HTTP connection to host:Antop-PC, port:8001
[01:19:10 PM] Sending internal deployment descriptor
[01:19:10 PM] Sending archive - sca_validationForCC_rev1.0.jar
[01:19:31 PM] Received HTTP response from the server, response code=200
[01:19:31 PM] Successfully deployed archive sca_validationForCC_rev1.0.jar to soa_server1 [Antop-PC:8001] 
[01:19:31 PM] Elapsed time for deployment:  29 seconds
[01:19:31 PM] ----  Deployment finished.  ---- 



Testing the application

Enterprise Manager에 접속 - validationForCC 선택




테스트 클릭




카드번호를 입력 후 웹 서비스 테스트 클릭




결과가 나왔습니다. 두둥!

메시지 흐름 추척 실행 링크를 누르면 어떤 순서로 실행 되었는지 확인할 수 있습니다.




처리 순서가 나옵니다. 여기서 또 파란색 글씨 부분을 누르면 그 컴포넌트에서 어떻게 처리 되었는지 볼 수 있습니다.



파란색 링크(RouteRequest)를 클릭하면 더 자세한 정보를 볼 수 있습니다.



아래는 실제 테이블에 들어있는 데이터 입니다.







반응형
//