2017-01-12 25 views
0

JCo 3을 사용하여 빌드 한 Java 기반 IDoc 수신 서버가 있습니다. SAP 시스템에서 Idoc를 시작하고 예외를 보내면 예외가 발생합니다. 그것이 내가이 메시지 서버의 가용성 때문이다 생각하고 SAP 시스템에 로그인하고 사용 NETSTAT이 열려있는 포트를 확인 말했듯이JCO Idoc 서버가 포트 문제로 인해 메시지를받을 수 없습니다.

com.sap.conn.idoc.IDocRuntimeException: Failed to resolve repository reference @MYDESTINATION 
    at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer$IDocRepositoryMapBox$IDocRepositoryReference.getRepository(DefaultJCoIDocServer.java:245) 
    at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer$IDocRepositoryMapBox.getRepository(DefaultJCoIDocServer.java:397) 
    at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServer.getIDocRepository(DefaultJCoIDocServer.java:128) 
    at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServerWorker$IDocDispatcher.createIDocDocumentListArray(DefaultJCoIDocServerWorker.java:445) 
    at com.sap.conn.idoc.jco.rt.DefaultJCoIDocServerWorker$IDocDispatcher.handleRequest(DefaultJCoIDocServerWorker.java:209) 
    at com.sap.conn.jco.rt.DefaultServerWorker.dispatchRequest(DefaultServerWorker.java:148) 
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.dispatchRequest(MiddlewareJavaRfc.java:3680) 
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.executePlayback(MiddlewareJavaRfc.java:3158) 
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.playbackTRfc(MiddlewareJavaRfc.java:2981) 
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.handletRfcRequest(MiddlewareJavaRfc.java:2875) 
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2674) 
    at com.sap.conn.jco.rt.DefaultServerWorker.dispatch(DefaultServerWorker.java:275) 
    at com.sap.conn.jco.rt.DefaultServerWorker.loop(DefaultServerWorker.java:356) 
    at com.sap.conn.jco.rt.DefaultServerWorker.run(DefaultServerWorker.java:232) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Connect to message server host failed 
Connection parameters: TYPE=B DEST=MYDESTINATION MSHOST=192.168.56.101 R3NAME=NSP GROUP=PUBLIC PCS=1 

ERROR  partner '192.168.56.101:sapmsNSP' not reached 
TIME  Thu Jan 12 16:19:21 2017 
RELEASE  721 
COMPONENT NI (network interface) 
VERSION  40 
RC   -10 
MODULE  nixxi.cpp 
LINE  3283 
DETAIL  NiPConnect2: 192.168.56.101:3600 
SYSTEM CALL connect 
ERRNO  61 
ERRNO TEXT Connection refused 
COUNTER  1 

.

포트 3600은 수신하지 않지만 포트 7200은 msg_server.exe에서 열리는 것으로보고되었습니다. jco 서버 측 컴퓨터의/etc/services 파일을 sapmsNSP 3600/tcp으로 설정 했는데도 7200으로 변경하면 예외가 발생합니다.

답변

1

오류 메시지가 표시되면 호스트 192.168.56.101에서 실행중인 프로세스가 이는 SAP 메시지 서버 프로세스가 다른 포트를 청취 중이거나 단순히 전혀 실행되지 않고 있음을 의미합니다.

SAP GUI를 사용하여 ABAP 시스템 NSP에 대한 그룹 로그온을 수행 할 수있는 경우 서비스 파일을 올바르게 구성해야합니다. 그런데 SAP 메시지 서버 프로세스는 보통 message_server.exe가 아닌 Windows의 msg_server.exe로 명명됩니다. 서비스 파일을 변경 한 경우, 수정 된 포트 번호를 표시하는 DETAIL 오류 메시지 부분에 다른 오류 메시지가 표시되어야합니다. 그렇지 않으면 서비스 파일을 변경하지 못했습니다 (마지막 줄 이후에 캐리지 리턴이 저장되지 않았습니까?) 또는 서비스 파일을 변경 한 후 JCo 서버 프로그램을 다시 시작하지 않았습니다.

+0

편집 : 'msg_server.exe'여야합니다. 내 서비스 파일은 괜찮습니다. C : \ usr \ sap \ NSP \ SYS \ profile \ NSP_XXXXXX00_hostnam 파일에 r''''rdisp/msserv = 3''을 추가하여이 문제를 해결할 수있었습니다. 이유가 확실하지 않습니다. – Sudheera

+0

'rdisp/msserv'는 SAP 시스템 측에서 메시지 서버 서비스 이름을 지정합니다. IMHO 값은'sapmsNSP'로 설정되어야합니다. 나는 당신의 변화가 이전의 오류 메시지와 관련이 있다는 것에 의심의 여지가있다. 아마도 '3'값이 무시되고 일부 기본값이 사용되어 이제 포트 3600을 사용하게됩니다. SAP 시스템 호스트의 서비스 파일에서'sapmsNSP'에 대해 구성된 포트를 확인하십시오. – Trixx