반응형

이번 글은 Java에서 SAP와 RFC 통신을 정말 많이 사용을 하는데, 1개의 영업 오더에 걸려 있는 여러 품목에 대해 RFC 호출을 하여 납품 오더를 생성하려다 보니, DO가 생성되기 전에 호출을 하는 바람에 에러가 발생했다. 그래서 이것을 해결하는 방법에 대해 기록한다.


목차

1. SAP RFC 락 해결하는 방법

1. SAP RFC 락 해결하는 방법

SAP RFC 락을 해결하는 방법은 SAP에서도 처리할 수 있지만, 대부분은 WMS에서 처리를 많이 한다.

 

해결하는 방법은 2가지가 있다.

쓰레드를 sleep을 하거나, 아니면 wait를 걸어서 SAP에서 처리할 수 있는 시간을 주는 것.

 

1) sleep

try{
    Thread.sleep(5000);
}catch(InterruptedException e){
    e.printStackTrace();
}

위와 같이, Thread에 sleep을 사용하여 락을 해결할 수 있다. 여기서 시간은 밀리세컨드 기준으로, 1000은 1초가 된다. 즉, 5000으로 되어 있는 것은 5초라는 소리다.

 

2) wait

try{
    Thread.wait();
}catch(InterruptedException e){
    e.printStackTrace();
}

 

다음 방법으로, wait() 메서드를 사용할 수 있지만 SAP와 인터페이스를 할 때 SAP에서 중간마다의 플래그를 보내주면서 진행 현황을 체크해야 wait를 사용할 수 있다.

 

즉 ,wait() 메서드 보다는 sleep 메서드를 사용하여 일정 시간동안 대기를 하여 SAP에서 해당 비즈니스 로직을 처리할 수 있는 시간을 준 다음에 다음 인터페이스 호출을 하는 것이 더 효율적이다라고 볼 수 있다.


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기