라벨이 EAI인 게시물 표시

Oracle Weblogic(SOA) UMS Adapter Transaction

이미지
When you use UMS( User Messaging Service ) Adapter, you should consider transaction. In Oracle's docs..you can find this.. UMS does not participate in any global transactions. Note that the UMS Adapter does not support XA Transactions on the Outbound message transactions. Please refer to bellow picture. You can get it easily. (BPEL send data to Global Transaction Database and UMS - Email Adapter) This means that UMS adapter can not working with global transaction. Many thanks :)

Oracle SOA for Refresh SAP JCO Adapter RFC Cache

SAP RFC is too strong !! Why I recommend SAP EAI(XI,PI,PO) with SAP ERP(ECC) is that.. -> https://eaixipipo.blogspot.com/2018/08/why-sap-eai.html I think SAP Proxy is better than SAP RFC. Almost of all EAI's solutions can connect SAP ERP(ECC) by SAP JCO adapter.  Sometimes, if SAP ERP(ECC)'s RFC structure was changed, EAI should do something. It could be refresh SAP JCO adapter. SAP EAI have above things. Thanks Google :) In this post, I introduce how to refresh SAP RFC structure on Oracle SOA. Before I introduce that..Oracle must give main solutions !! Shortly, you can refer as following as steps.. Step 1. Open the sapjco3.jar file. (I used Jd-gui) Step 2. Open JCoRepository.class in the jar file. Step 3-1. (Refresh SAP RFC function) Use  removeFunctionTemplateFromCache and then, Use  getFunctionTemplate Step 3-2. (Refresh SAP RFC function's table -> Structure) Use  removeRecordMetaDataFromCache and then, Use  getRecordMetaData I will share detail information next ti

Oracle SOA(EAI) Rest Adapter Access-Control-Allow-Origin

이미지
When you use rest api getting data(JSON) from SOA(EAI) or something on web browser like Chrome, you may get error as following as.. Access to ---- at 'URL----' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource Why..? Security Issue!! .. Thanks Google :P For this error, you should use property as following as.. rest.binding.http.Access-Control-Allow-Origin : * For example on SOA BPEL bellow picture.. It could not be difficult using this on other solution's adapter. Or.. you could set this property in server, if you do not care security.. Thanks~~ :)

Decode Base64 in SOA XSLT Mapping

1. Add  xmlns:dc64="http://www.oracle.com/XSL/Transform/java/oracle.soa.common.util.Base64Decoder in xsl:stylesheet (root). 2. Mapping <tns:Target Field> <xsl:value-of select="dc64:decode(Source Field)"/> </tns:Target Field> Very Easy :)

Oracle SOA(EAI) G1GC

이미지
<Environment> ■ SOA Version : Oracle Cloud SOACS 12.2.1.4 (Market Place) ■ java version 1.8.0_261 ■ Java Memory Garbage Collection Type : G1GC ----------------------------------------------------------------------------------------------------- In this post, I will compare between  Parallel  GC and G1 GC for Oracle SOA(EAI). For this, you need to know something as bellow.. EAI - Enterprise Architecture Integration What is Java Memory Garbage Collection (GC)? - Memory management - Delete unused memory automatically Java Memory Garbage Collection Types - Serial Garbage Collector - Parallel Garbage Collector -> Default GC below 1.9 - CMS Garbage Collector - G1(Garbage First) Garbage Collector -> Default GC above 1.9 GC types - Minor and Major GC During GC - Stop the World : A ll application threads are stopped ----------------------------------------------------------------------------------------------------- Let's start!! Parallel   Garbage Collector Logic Shortly, Memor

Oracle SOA(EAI) HA(High-availability) Configuration

이미지
I will share this posting about Oracle SOA(EAI) HA(High-availability) Configuration. I'm not sure this is perfect for HA, but I hope this will help for you. I configured the HA for SOA in Oracle Cloud. There are two case for the HA. Case 1 . With Web Server Case 1 . Without Web Server Both of them are working well. (It's just of my thought but I tested many of times) Web Servers can redirect interface message to another, if one of managed servers is shut down. However, web servers should be managing point. So... In my point, you can use this URL on load balance.   -> http://IP:Port/soa-infra/services/isSoaServerReady I think it's enough for the HA even though health check interval is 1000 ms. (Min interval is 1000 ms in Oracle Cloud LB ). This posting is the last in this year(2020). Merry Christmas and Happy New Year !!

EAI Interface with Gitlab

이미지
Oracle Cloud SOA(SOACS) 구축 프로젝트를 하며, Gitlab을 이용하였습니다 통칭 Git 이라고 하며, 그 중 Gitlab이란 오픈 소스 소프트웨어를 사용했습니다 (물론, Free Version Gitlab을 사용) EAI만 10년 넘게 경력을 가지고 있는데, Git을 통해 한 건 이번이 처음이였는데, EAI를 사용하는 사람들에게 강력하게 추천 드립니다 !!! 이번 Posting은 EAI Interface with Gitlab 입니다 :) EAI와 Gitlab을 접목 시킨것에 대해 소개하기 전에, 간단하게 Git에 대해 설명 드리자면.. Git이란? 1. 분산형 버전 관리 시스템 (DVCS) 2. Issue Tracker 3. CI/CD (지속적 통합 및 배포) 4. Wiki 5. Label 6. API 제공 7. Milestones 입니다. 자세한 사항은 Googling Go Go Go ! 그럼 EAI와 Gitlab을 어떻게 접목 시켰는지 소개 드립니다 !!! 1. 분산형 버전 관리 시스템 (DVCS) -> Gitlab은 Repository라는 항목이 있습니다     EAI의 개발 소스를 Gitlab의 Repository와 동기화(Clone) 하여 사용 합니다     Repository의 최상위 Branch는 Master이며, 버전 관리를 위해 Master에      소스를 Commit & Push하여 사용 합니다 -> Git Branch (개별 작업)     EAI는 특성상 Interface마다 개발 소스가 다릅니다     그래서, 개인적으로 생각 한 방법이 Interface마다 Master 에서 Branch를 생성해서     사용하는게 좋을 것 같다고 생각합니다 2. Issue Tracker -> Git에는 Issue를 생성하여 Tracker를 할 수 있습니다     Issue 하나가 Interface 하나로 생성하여 사용하는게 좋습니다 -> Interface Issue를 생성하여, Source 와 Targe

Stop Thread on IBM JT400(as400) JDBC Adapter

2019년..이직을 하게 되어 SAP EAI(PO)에서 Oracle EAI(SOA)로 전환 !! 경력에 한줄이 더 생기게 되어 좋은 경험이라 생각하고 있고, 현재 Oracle Cloud 내 SOA를 구축 후 운영하고 있다 통칭 SOACS 라고 한다 :) SOACS 운영 중, IBM JT400(as400) JDBC Driver 사용 시 Weblogic Server 의 Thread가 Pool이 차는 상황이 발생 !! (Link : SOACS Weblogic -> 작성 중) Bug 라기 보다는 결국엔..Connection Configuration 문제.. 간단하게 생각하면, Thread가 Pool이 차는 이유는 Connection 을 JDBC Driver가 반환을 하지 못하여 발생하는 문제가 아닐까 생각했고.. Search on Google !!!! ... lol Google !!!! 아래 설정이 필요하다 1. socket timeout= <num millis> -> You know what this means.. 2. thread used=false -> 위 socket timeout만 설정 시, 예를들어 30000(30 Sec) 이라 설정 하면, 30초마다 새 연결 요청을 만들어 낸다. 그러나 thread used를 false로 설정하게 되면 요청이 발생 되지 않기 때문에 thread를 낭비 하지 않게 된다 3. Properties 부분에 넣거나, URL에 직접 입력 ->  jdbc:as400:// my.400.com;socket timeout = 30000; thread used = false Thanks~~ 이직하고, EAI 구축하느라 바빠서 글이 뜸 했지만..주에 1개씩은 올려봐야지.. :P

How to deploy the external drivers for Axis/JDBC/JMS Adapter

이미지
보통 Axis/JDBC/JMS Adapter 를 SAP EAI(PI)에 설치 시 SUM( Software Update Manager) 을 사용했을겁니다 이번에 Maria JDBC Receiver 사용이 필요하게 되어 Search를 하였더니, SUM 외에도 여러가지 방법이 있었습니다 전 NWDS를 사용하여 Deploy 했고 실제로 무리 없이 잘 설치가 되었으며, 소요시간도 약 10분 밖에 걸리지 않았고 SUM을 사용했을때 보다 더 간편하였습니다 아래 Link를 가서 절차대로 하면 됩니다 lol https://gad5158842f.us2.hana.ondemand.com/dtp/viewer/#/tree/1433/actions/17943 NWDS 사용 시 SAP EAI 시스템에 연결이 안되는 경우는 아래와 같이 연결을 시키면 됩니다

SAP PI HA (High Availability) Configuration with HP / SAP PI HA 구성

이미지
SAP PI HA (High Availability) Configuration with HP / SAP PI HA 구성 제가 운영하고 있는 SAP PI는 HP Unix 서버에서 Active-Active로 운영중이고, HA를 위해 서비스가드를 가지고 있습니다 (독단적인 Database 서버를 가지고 있지 않습니다) -SAP PI with HP Serviceguard- PI의 구성은 아래와 같습니다 여기서 중요한 점이 DBCI 서버의 DVEBMGS의 Instance Number와 AP(CI) 서버의 Dialog Instance Number는 동일해야 합니다 또한, AP(CI) 서버에 ERS가 설치 되어야 합니다 -> HA 구성 시 자동 설치 됨 그럼 HA는 아래와 같이 이뤄지게 됩니다 (V host는 대표 Logical Host 입니다) 위와 같이 구성 시 HA 소요 시간은 5분 이내이고 서비스는 계속해서 작동하게 됩니다 lol

SAP Netweaver Developer Studio with PI

이미지
SAP에서는 NWDS(Netweaver Developer Studio)라는 Eclipse 환경의 Tool을 제공합니다 NWDS를 사용하여 SAP PI와 연결하여 Enterprise Services Builder를 유용하게 관리 할 수 있습니다 물론 PI 자체에서 JAVA Web 환경을 제공하지만, NWDS 만의 강점이 있습니다 그 강점은 나중에 다시 설명 드리겠습니다 일단 PI 자체 JAVA Web을 호출하는 방법은 간단합니다 PI URL(http://host:port/dir/start/index.jsp) 호출 후 Enterprise Services Builder를 Click 하시고 들어가시면 됩니다 그러면 아래와 같은 Enterprise Services Builder가 나오게 됩니다 그럼, NWDS에서 PI를 연결하는 방법을 알려드리겠습니다 lol SAP에서는 PI와 같은 버젼의 NWDS를 사용하시 길 권장드린다고 하네요 1. NWDS 실행 후 상단에 Window -> Preferences Click 2. Web Services -> Enterprise Service Browser Click 후 접속 정보를 입력 하시면 됩니다    이러면 Setting이 완성됩니다 3. Window -> Show View -> Other Click 4. Web Services -> Enterprise Service Browser Click 후 OK 5. Click Connect to ESR and input PI's USER and Password 6. Finish 이러면 PI 자체 Enterprise Services Builder와 비슷한 화면으로 나오게 됩니다 이제 SAP EAI는 ABAP + JAVA Dual Stack이 아닌, Only JAVA 환경으로 나오게 됩니다 이러면서

Cancel Messages with Errors in SAP PI (EAI)

이미지
SAP PI(EAI)에서 Messages가 Error 날 시 정리가 필요할때가 있습니다 그때 Program으로 Cancel 하는 방법이 있습니다 - Cancel Messages with Errors in SAP PI (EAI) - 1. T-code : SE38 / Program = RSXMB_CANCEL_MESSAGES / Execute 2. Input Date/Time 3. Others Tab, unchecked Log & TEST 4. Select Quality of Service Tab, check Cancel All Asynchronous Messages 5. Execute

XSLT에서 현재 날짜 시간 넣기 / XSLT Current Date and Time

이미지
SAP EAI에서는 XSLT Mapping을 많이 사용합니다 Mapping 이란 Source 와 Target System간의 데이터를 연결시켜주는 걸 의미합니다 아래 그림을 참고 하면 이해가 편하실겁니다 "SAP EAI(PI) Message Mapping" 다시 본론으로 들어와서, XSLT Mapping을 많이 사용하는 이유는 SAP EAI에서 주고 받는 데이터가 XML 형식으로 사용 되기 때문입니다 그런데, XSLT Mapping 사용 시 Target 특정 컬럼에 현재 날짜와 시간이 들어가야는 경우가 필요하실겁니다 (XSLT Date and Time) 아래와 같이 JAVA를 이용 한 쏘스를 사용하시면 됩니다 lol 1. 선언부분 xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java" 2. Target 특정 컬럼 부분 날짜 컬럼 : <xsl:value-of select="java:format(java:java.text.SimpleDateFormat.new('yyyyMMdd'), java:java.util.Date.new())" /> 시간 컬럼 : <xsl:value-of select="java:format(java:java.text.SimpleDateFormat.new('HHmmss'), java:java.util.Date.new())" /> 예시) <?xml version="1.0" encoding="UTF-8"?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" v

Mapping for Chinese / Insert Chinese / JDBC Receiver Unicode problem

이미지
JDBC Receiver Channel 을 이용해서 MS-SQL 에 특정 컬럼에 중국어가 들어갈때 그걸 처리하는 방법을 소개드리고자 합니다 -> Handle for Chinese in message mapping / JDBC Receiver Unicode problem 위 Message Mapping 그림을 보시면 DEPT_NM 이란 컬럼에 중국어가 들어갑니다 이걸 처리하기 위해서는 첫번째로, 해당 컬럼에 "Attribute"로 "hasQuot"를 사용하고 값을 "no"로 입력해 줍니다 기본적으로 "yes" 되지면 "no"로 변경하면 함수 사용이 가능합니다 두번째로, DEPT_NM에 들어갈 데이터를 N'value'로 만들어줍니다 MS SQL에서 유니코드(다국어)를 사용하기 위해서는 nvarchar 또는 nchar 형식으로 지정되어야 합니다 해당 형식을 사용하기 위해서는 'N'이 접두어가 되어야 합니다 참고로, 'N'은 National을 의미합니다 이렇게 셋팅 후 Interface 가 되면... - < Statement > - < IF_DEPT_INFO action =" UPDATE_INSERT " >   < table > dbo.IF_DEPT_INFO </ table > - < access >   < DEPT_CD > </ DEPT_CD >   < DEPT_NM hasQuot =" no " > N'企划人事部' </ DEPT_NM >   < UP_DEPT_CD > </ UP_DEPT_CD >   < USAGE_YN > </ US

How to connect between SAP EAI and ERP by ABAP Proxy Part 2

이미지
2. EAI (XI PI) ABAP System Configuration 1.1 T-code : SM59 (HTTP Connection)  and Check Connection TEST End Go to Part1 -> ERP ABAP System Configuration

How to connect between SAP EAI and ERP by ABAP Proxy Part 1

이미지
1 . ERP ABAP System Configuration 1.1 T-code : RZ70 1.2 PUT Host name and Service name 1.3 Active 1.4 T-code : SICF 1.5 Service(sap/xi/engine) Active 1.6 Make USER (Role : SAP_SLD_CONFIGURATOR, SAP_XI_APPL_SERV_USER, SAP_XI_IR_SERV_USER, SAP_XI_IS_SERV_USER) 1.7 T-code : SLDAPICUST 1.8 Click Test 1.9 T-code : SM59 -> Configuration for TCP/IP connection 1.10 LCRSAPRFC 1.11 Unicode Test 1.12 SAPSLDAPI 1.13 Unicode Test 1.14 T-code : SLDCHECK 1.15 T-code : sm59 1.16 1.17 1.18  T-code : SPROXY -> Check SAP EAI (XI, PI) Repository 1.19  T-code : SM59 (HTTP Connection) and Check Connection TEST 1.19  T-code : SXMB_ADM (Integration Engine Config) 1.20 : Check Profile  icm / host_name_full   <ERP SID> icm /server_port_0  PROT=HTTP,PORT=8000 End Go to Part2 -> EAI(XI PI) ABAP System Configuration

Why SAP EAI?

이미지
In my opinion, For SAP ERP, I recommend SAP EAI. Because of.. How To Link by Proxy

EAI (Enterprise Application Integration) ? and SAP EAI?

이미지
<Enterprise Application Integration> <SAP EAI>