Aaron H. Kim Fearless Integration Maniac

SAP RFC와 CPIC Trace 관련 이슈

2008-09-11
Aaron Kim

Microsoft에서 제공하는 TroubleShooting 가이드는 각종 발생 가능한 이슈와 해결책들을 정리하여 BizTalk 개발자, 운영자들에게 많은 도움이 되고 있습니다.

SAP RFC 및 CPIC Trace 관련해서는 다음의 스크립트를 제공하고 있습니다

Set oShell = CreateObject(“WScript.Shell”)
Set oUserEnv = oShell.Environment(“SYSTEM”)
'RFC_TRACE
'0 = No trace
'1 = Trace
oUserEnv("RFC_TRACE") = 1
' CPIC_TRACE
' 0 = No trace
' 1 = Write error messages in trace file
' 2 = Full trace
' 3 = Include trace data blocks
oUserEnv("CPIC_TRACE") = 1
oUserEnv("RFC_TRACE_DIR") = "c:\RFCTrace"

이 Trace를 시스템에 남김으로 해서 얻을 수 있는 이점은 상당히 많습니다.

RFC Trace가 제공하는 정보

* Which function modules were called remotely by the program to be analyzed  
* Whether the RFC was executed successfully  
* The total time used to process the remote call  
* The type of RFC communication (RFC client or RFC server)  
* The instance the remote call was executed on  
* The technical parameters characterizing the instance   
* The number of bytes sent and received at the RFC  

CPIC Trace가 제공하는 정보

* How the error occurred  
* When the error last occurred  
* Error number and description  

그러나 문제는 Trace를 남기는 경로인데.. RFC_TRACE_DIR을 시스템 드라이브에 두다 보니 이 Trace 파일을 지우지 않고 방치했다간 C드라이브가 꽉차 버리는 문제가 발생합니다.

그야 스크립트에서 고쳐주면 되겠지만.. 위 스크립트에는 CPIC가 쌓여야 할 경로는 지정하지 않고 있습니다. 따라서 반드시 다음 한 줄을 마지막에 추가해주셔야 합니다.

oUserEnv("CPIC_TRACE_DIR") = "D:\<경로>"

RFC_TRACE_DIR이나 CPIC_TRACE_DIR을 따로 지정해주지 않을 경우 Trace 파일이 System32 폴더밑에 쌓이게 되고 언젠가는 반드시 문제가 됩니다. 어디에도 CPIC_TRACE_DIR을 찾을 수 없어서 짐작해서 넣어줬더니 제대로 폴더 지정이 되는군요. 이게 정말 사소한 누락같지만 대부분은 그냥 스크립트를 복사해서 실행시킬뿐이라 가이드가 보충되어야 할 것 같습니다.

위 스크립트는 시스템의 환경 변수를 지정하는 것으로.. 내 컴퓨터 -> 속성 -> 고급 -> 환경 변수(Win2k3 환경)에서 확인하실 수 있습니다.

주의 : 각 호스트 인스턴스들이 환경 변수를 다시 읽어오기 위해선 인스턴스 재시작이 필요합니다.


Similar Posts

Comments