Solution/EAI

webMethods Adapter for JDBC

유가엘 2020. 2. 19. 11:35

Integration Server 설치 후 , JDBC Driver를 아래 경로에 넣어야 Adapter가 정상 작동됩니다.

webMethod Version  9.5 이상부터는 instances 안에 ojdbc를 저장 
경로 : {IntegrationServer Directory}\instances\default\packages\WmJDBCAdapter\code\jars

    

webMethod Version  9.5 이하부터는 packages에 저장 
경로 : {IntegrationServer Directory}\packages\WmJDBCAdapter\code\jars

 

JDBC Connection 설정 및 생성 화면

 

 

Connection Properties

 

Package : Connection 이 생성될 패키지 선택합니다.

Folder Name : Connection 이 생성될 폴더 경로를 입력합니다.

Connection Name : Connection 이 생성될 명칭을 지정합니다. [ 사용되는 DB 명칭을 넣어주는것이 좋습니다.]


Transaction Type : 

  • Local Transaction : 일반적으로 start,commit,rollback Transaction 을 선언하여 사용합니다.

  • XA - Transaction : 이 기종간의 (예시, Oracle,Mssql) 데이터베이스가 하나의 서비스에 사용될때 사용됩니다.

  • No Transaction : 묵시적으로 Transaction을 진행합니다.

  • 만일 Local Transaction 을 사용하더라도 패지키를 사용하지 않으면 묵시적으로 Commit 됩니다.

DataSource class : 데이터베이스 드라이버 및 Transaction 종류에따라 다르게 사용됩니다.

  • Oracle Thin Driver [No Transaction , Local Transaction ]: oracle.jdbc.pool.OracleDataSource

  • MSSQL [No Transaction , Local Transaction ]: com.microsoft.sqlserver.jdbc.SQLServerDataSource

Server Name : 데이터 베이스가 존재하는 서버의 Ip를 기재합니다.


Minimum Pool Size :연결 풀링이 활성화 된 경우이 필드는 연결이 활성화 될 때 만들 연결 수를 지정합니다.

                             [해당 설정을 0으로 지정하는 이유는 오류 발생된 세션 Pool이 남아있어 메모리를 차지하는 경우가 존재하기 때문입니다.]
Maximum Pool Size : 
연결 풀링이 활성화 된 경우이 필드는 연결 풀에 한 번에 존재할 수있는 최대 연결 수를 지정합니다.
Pool Increment Size : 
연결 풀링이 활성화 된 경우이 필드는 연결이 필요한 경우 최대 풀 크기까지 풀을 증분 할 연결 수를 지정합니다.
Block TimeOut :
 IS 서버가 DB 연결을 위해 대기하는 시간 지정합니다. [ 초 단위 - 일반적으로 5000까지 기다려줍니다. ]

Expire TimeOut : Pool이 활성화 되었지만, 연결 중인 DB가 대기 상태일때 제거합니다. [ 초 단위]
Startup Retry Count : 
초기 시도가 실패한 경우 시스템이 시작시 연결 풀을 초기화하려고 시도하는 횟수입니다. 기본값은 0입니다.
Startup BackoffTimeout : 
시스템이 연결 풀 초기화 시도 사이에 대기해야하는 시간 (초)입니다.


Designer 에서 어댑터의 종류

CustomSQL : SQL 구문을 직접 입력하여 쿼리를 실행 시킬 수 있습니다.

DynamicSQL : CustomSQL과 동일한 기능을 하나 SQL문, 테이블, 조건 등을 모두 변수로 처리할 수 있습니다.

                    해당 SQL실행시, Return 값으로 statement 에는 실행된 SQL문이, results 라는 DocumentList에 결과값이 담깁니다.

InsertSQL : 데이터를 1건만 삽입하며 일반적으로 Loop를 통한 Update - Insert 시 주로 사용합니다.

BatchInsertSQL : 데이터가 여러건일 경우, 한번에 삽입을 하며, 결과 또한 전부 성공하거나 실패로 이뤄집니다.

StoredProcedureWithSignature : 저장 되어있는 프로시저를 호출합니다. Param 값 또한 프로시저 내 저장된 값을 가져옵니다.

Batch 의 장점은 한개의 문제가 존재하면 나머지는 진행하지 않으므로 처리 속도가 빠릅니다.

Upsert는 결과값이 건바이건 이기때문에 어느 부분에서 에러가 발생하는지 확인하기 쉽습니다.


Integration Server 에 등록된 Adapter 중 outbound password store 에 저장되었을때 비밀번호 추출방법

 

  • Is Admin Page > Extended > watt.security.ope.AllowInternalPasswordAcess = true 를 설정합니다.

  • Is 를 Restart 합니다.

  • 디자이너에서 pub.security.outboundPassword:listKeys 를 실행하여 isInternal:true 로 변경합니다.

  • 해당 서비스를 실행시키면 등록되어있는 Adapter List 가 출력됩니다.

  • 4번에서 출력된 리스트를 pub.security.outboundPassword:getPassword 에 넣어줍니다.

  • 만약 pub.security.outboundPassword:getPassword만 사용할 경우에는 wm.is.art.password.(Connection Path)에 옵션 :True로 진행합니다.

 

 

추가 정리예정

 

 

Oracle                 MSSQL

NVL(?,' ')              ISNULL(?,' ')

SYSDATE             GETDATE()

REPLACE(?,'_','')

 

MSSQL에서 Java.util.date 를 쓸떄 pub.date:formateDate로 변경하여 Oracle에 넣는다.