문제점 해결 기술과 자체 도움말 정보를 통해 문제점을 신속히 식별하고 해결할 수 있습니다. 이 주제에서는 SAP 커넥터의 문제점에 대한 잠재적 솔루션을 제공합니다.
필드 | 입력 매개변수(비시작 활동) | 출력 매개변수(시작 및 비시작 활동) |
---|---|---|
날짜 | yyyy-mm-dd 또는 yyyymmdd |
yyyymmdd |
시간 | hh:mm:ss 또는 hhmmss |
hhmmss |
SAP 커넥터 버전 6.0.x 및 이전 버전에서 날짜 및 시간 필드 값의 입력 및 출력 매개변수에 지원되는 형식은 각각 yyyy-mm-dd와 hh:mm:ss입니다.
문제점: 동일한 SAP RFC 프로그램 ID를 사용하여 RFC 수신 및 IDOC 수신 활동이 있는 오케스트레이션 배치 시 다음 예외가 발생합니다.
java.lang.RuntimeException: An attempt to start a JCoIDocServer failed. There might be an existing JCoServer with the same server configuration, else try restarting your server
at com.ibm.j2ca.sap.inbound.SapJCoServerBuilder.verfiyServerConfiguration(SapJCoServerBuilder.java:403)
at com.ibm.j2ca.sap.inbound.SapJCoServerBuilder.createServer(SapJCoServerBuilder.java:96)
at com.ibm.j2ca.sap.inbound.SAPEventListenerManager.buildEventListener(SAPEventListenerManager.java:149)
at com.ibm.j2ca.sap.inbound.SAPEventListenerManager.startEventListeners(SAPEventListenerManager.java:132)
at com.ibm.j2ca.sap.inbound.EndpointManager.addEndpoint(EndpointManager.java:68)
at com.ibm.j2ca.sap.SAPResourceAdapter.endpointActivation(SAPResourceAdapter.java:266)
at com.approuter.module.sap.activity.ReceiveIDOCActivity.activate(ReceiveIDOCActivity.java:222)
at com.approuter.maestro.activities.BaseModule.activate(BaseModule.java:296)
at com.approuter.maestro.vm.Program.start(Program.java:796)
at com.approuter.maestro.vm.Kernel.startOrchestration(Kernel.java:704)
at com.approuter.maestro.management.Loader$1.run(Loader.java:461)
at java.lang.Thread.run(Thread.java:736)
원인: SAP JCo는 정해진 서버 구성 세트가 있는 하나의 JCoServer 인스턴스만 JVM(Java Virtual Machine) 내에서 실행하도록 허용합니다. 따라서 서버 구성이 동일한 다른 JCoServer를 동일한 JVM에서 실행할 수 없습니다. JCo는 서버를 다시 시작할 수 없음을 나타내는 오류를 발생시킵니다. IDOC 수신 활동과 RFC 수신 활동은 오케스트레이션 동안 사용된 동일한 SAP 프로그램 ID를 지원하지 않습니다.
솔루션: 다른 SAP 프로그램 ID를 사용하여 RFC 수신 및 IDOC 수신 활동이 있는 오케스트레이션을 배치하고 IDOC/RFC에 대해 별개의 엔드포인트를 작성하십시오.
SAP 커넥터에 대한 작업 시 '최대 202개의 대화 수 초과' 오류가 표시될 경우 수행할 권장 구성은 다음과 같습니다.
오류:
LOCATION CPIC (TCP/IP) on local host with Unicode
ERROR max no of 202 conversations exceeded
TIME <Day> <Date> <Time> <Year>
RELEASE 720
COMPONENT CPIC (TCP/IP) with Unicode
다음 권장사항은 병렬 요청 수와 로드에 따라 다릅니다.
SAP-Gateway
gw/max_conn=2000, gw/max_sys=1200
gw/max_overflow_size =40000000, gw/max_shm_req = 200 (this is to adjust the memory allocation)
CPIC_MAX_CONV=5000
스케줄 A:
move to line
# Version of java currently in use.
if [ -z $JAVA_HOME ]; then
JAVA_HOME=/usr/java/default
fi
JAVA="${JAVA_HOME}/bin/java"
## maximum SAP conversations allowed
export CPIC_MAX_CONV=500
문제점: 이전 버전의 어플라이언스에서 SAP 프로젝트를 실행 중인 경우 버전 7.0 이상으로 어플라이언스 업그레이드 시 SAP 프로젝트가 시작되지 않고 다음 오류가 발생합니다.
Start of Orchestration config-
url://SAP_BAPI/1.0/Default/Orchestrations/Orchestration failed:
java.lang.ExceptionInInitializerError: Error
getting the version of the native layer:
java.lang.UnsatisfiedLinkError: sapjco3
(/usr/ironhide/lib/thirdparty/libsapjco3.so:
wrong ELF class: ELFCLASS32).
Required SAP JCO library is not found.
Install version 3.x SAP JCO library (.dll or .so based on platform)
java.lang.UnsatisfiedLinkError: sapjco3 (/usr/ironhide/lib/thirdparty/libsapjco3.so: wrong ELF class: ELFCLASS32)
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1030)
at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:994)
at java.lang.System.loadLibrary(System.java:507)
at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:481)
at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:347)
at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1108)
at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:954)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:43)
at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:237)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:215)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:77)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.approuter.module.sap.SAPActivator.checkSAPInstalled(SAPActivator.java:101)
at com.approuter.module.sap.activity.SAPBaseActivity.checkSapSetup(SAPBaseActivity.java:498)
at com.approuter.module.sap.activity.SAPBaseActivity.generateSchemas(SAPBaseActivity.java:172)
at com.approuter.module.sap.activity.SapSendRfcData.activate(SapSendRfcData.java:112)
at com.approuter.maestro.activities.BaseModule.activate(BaseModule.java:301)
at com.approuter.maestro.vm.Program.start(Program.java:768)
at com.approuter.maestro.vm.Kernel.startOrchestration(Kernel.java:739)
at com.approuter.maestro.management.Loader$1.run(Loader.java:455)
at java.lang.Thread.run(Thread.java:738)
java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: sapjco3 (/usr/ironhide/lib/thirdparty/libsapjco3.so: wrong ELF class: ELFCLASS32)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:227)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:77)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.approuter.module.sap.SAPActivator.checkSAPInstalled(SAPActivator.java:101)
at com.approuter.module.sap.activity.SAPBaseActivity.checkSapSetup(SAPBaseActivity.java:498)
at com.approuter.module.sap.activity.SAPBaseActivity.generateSchemas(SAPBaseActivity.java:172)
at com.approuter.module.sap.activity.SapSendRfcData.activate(SapSendRfcData.java:112)
at com.approuter.maestro.activities.BaseModule.activate(BaseModule.java:301)
at com.approuter.maestro.vm.Program.start(Program.java:768)
at com.approuter.maestro.vm.Kernel.startOrchestration(Kernel.java:739)
at com.approuter.maestro.management.Loader$1.run(Loader.java:455)
at java.lang.Thread.run(Thread.java:738)
2013-08-22 09:18:25.013 SEVERE [T-10] [orc:SAP_BAPI/1.0/Default/Orchestrations/Orchestration] [com.approuter.module.common.util.LogHelper] Required SAP JCO native library is not found. Install version 3.x SAP JCO native library(.dll or .so based on platform).
java.lang.RuntimeException: java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: sapjco3 (/usr/ironhide/lib/thirdparty/libsapjco3.so: wrong ELF class: ELFCLASS32)
at com.approuter.module.sap.activity.SAPBaseActivity.checkSapSetup(SAPBaseActivity.java:509)
at com.approuter.module.sap.activity.SAPBaseActivity.generateSchemas(SAPBaseActivity.java:172)
at com.approuter.module.sap.activity.SapSendRfcData.activate(SapSendRfcData.java:112)
at com.approuter.maestro.activities.BaseModule.activate(BaseModule.java:301)
at com.approuter.maestro.vm.Program.start(Program.java:768)
at com.approuter.maestro.vm.Kernel.startOrchestration(Kernel.java:739)
at com.approuter.maestro.management.Loader$1.run(Loader.java:455)
at java.lang.Thread.run(Thread.java:738)
Caused by: java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: sapjco3 (/usr/ironhide/lib/thirdparty/libsapjco3.so: wrong ELF class: ELFCLASS32)
at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:227)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:77)
at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at com.approuter.module.sap.SAPActivator.checkSAPInstalled(SAPActivator.java:101)
at com.approuter.module.sap.activity.SAPBaseActivity.checkSapSetup(SAPBaseActivity.java:498)
원인:
이전 버전의 Cast Iron 어플라이언스(버전 6.3 및 이전 버전)에서는 32비트 SAP JCO 라이브러리가 사용되었습니다. Cast Iron 어플라이언스 버전 7.0부터는 64비트 SAP JCO 라이브러리를 사용해야 합니다.
솔루션:
다음 단계를 완료하여 32비트 SAP JCO 라이브러리인 sapjco3.jar 및 libsapjco3.so를 삭제하고 64비트 SAP JCO 라이브러리를 로드하십시오.
SAP JCO 라이브러리 업그레이드: