SAP/EAI
[SAP EAI] com.microsoft.sqlserver.jdbc.SQLServerException: ',' 근처의 구문이 잘못되었습니다.
Channel Connection JDBC Driver : com.microsoft.sqlserver.jdbc.SQLServerDriver SQL Server / MS-SQL 에러 com.microsoft.sqlserver.jdbc.SQLServerException: ',' 근처의 구문이 잘못되었습니다. com.microsoft.sqlserver.jdbc.SQLServerException: ',' The syntax near by is incorrect. 에러 원인 변수값이 제대로 안들어왔을 때 발생 해당 항목의 타입에 맞지 않는 값이 들어오거나 값이 비거나 다른 값이 들어와 구문에 값이 제대로 삽입되지 않은 경우에 발생 해결 방법 ',' 근처의 구문이 잘못되었다고 나온다면, 우선 전문에 들어온 값이 제..
[SAP EAI] com.microsoft.sqlserver.jdbc.SQLServerException: Cannot INSERT record. GRPO already closed.
SQLServer Error인 해당 에러는 DB의 문제로 인해 발생하는 에러입니다. 에러내용은 아래와 같습니다. com.microsoft.sqlserver.jdbc.SQLServerException: Cannot INSERT record. GRPO already closed. 해당 에러의 경우에는 위에 말씀드렸듯이 DB의 문제로 인해 발생하는 에러로 해당 테이블에 동일한 값에 대해서 INSERT가 요청이 된다거나 INSERT요청이 이루어진 값이 연관되어있는 테이블과 일치하지 않을 경우에 발생하는 에러입니다. 동일한 값으로 INSERT 요청이 들어온 경우 INSERT요청이 이루어진 값이 연관 테이블에 있는 값과 일치하지 않는 경우 때문에 해당 담당자에게 요청하여 관련 에러에 대해 말씀드리면 빠르게 인지하여..
JDBC Sender - Transaction Isolation Level
Transaction Isolation Level의 종류 구분 Dirty read Nonrepeatable read Phantom read Default (*) / / / None (**) / / / read_uncommitted Allowed Allowed Allowed read_committed(***) Prevented Allowed Allowed repeatable_read Prevented Prevented Allowed serializable Prevented Prevented Prevented Dirty / NonRepeatable / Phantom read Dirty Read: Commit하지 않은 데이터에 대한 접근성 결정 NonRepeatable Read: 동일한 트랜잭션에서 동일한 쿼..
[EAI] ORA-08177: can't serialize access for this transaction
SAP EAI 의 채널 중 JDBC Adapter Sender 채널 구성 중 Advanced - Advanced Mode - Additional Paramters - Transaction Isolation Level 을 설정할 때 'Serialize(직렬화)'를 선택했을 때 발생한 오류입니다. ORA-08177 - can't serialize access for this transaction 위와 같은 오류는 Oracle에서 발새하는 에러로 같은 테이블을 대상으로 동시에 update와 select요청이 발생하기 때문에 나는 에러이다. 만약 해당 오류가 난다면 Transaction Isolation Level을 'Default'로 바꾸어서 처리해보도록하자. 참고 URL: answers.sap.com/que..
[EAI] EAI DB CPU가 미치는 영향
SAP EAI 운영하다보면 다양한 이슈가 발생합니다. 그 중 DB의 CPU가 EAI에 미치는 영향이 있어서 글로 남깁니다. SAP EAI에서 인터페이스를 통해 전문을 전달하는 방법 중 JDBC를 사용하여 DB에 다양한 쿼리문을 보낼 수 있는데요. 그 중에 INSERT요청과 PROCEDURE요청을 같이 보내주는 방식을 사용하였습니다.(해당 전송 방식은 EOIO 순차처리 방식으로 개발하였습니다.) 해당 이슈가 발생하였을 때 로그를 확인해보앗을 때 INSERT는 빠른 시간에 처리가 되었지만 PROCEDURE를 처리하는데 있어서 지연이 발생하였습니다. 그래서 해당 원인을 처음에는 PROCEDURE의 쿼리가 문제가 있구나 판단하였는데 알고보니 CPU가 100%까지 올라갔을 때 처리 지연이 되었다고 하네요. 지연되..
[SAP EAI] Could not trigger cluster event FAIL_MESSAGE_NOALERT for node
SAP EAI 모듈의 JAVA 단에서 해당 메시지가 HOLD상태인데 삭제가 되지 않는 경우에 발생하는 에러 중 하나이다. 에러내용은 아래와 같다. FAIL_MESSAGE_NOALERT for node XXXXXX. Reason:com.sap.engine.frame.cluster.message.RemoteClusterException: 해당 에러가 발생한 경우에는 처리방법은 간단하다. 그냥 재처리 요청을 해서 해당 큐가 에러로 빠졌을 경우 그 에러를 삭제처리하면 끝이다. 이러한 에러가 발생하는 원인은 큐를 처리하는데 있어서 이전의 데이터가 삭제되었음에도 불구하고 NODE끼리의 충돌로 인해 처리가 안된것으로 보여져서 발생되는 에러인 것으로 보인다. 그렇기 때문에 다시 재처리 작업요청을 통해서 최초 메시지에 ..