문제점 해결 및 지원

문제점 해결 기술과 자체 도움말 정보를 통해 문제점을 신속히 식별하고 해결할 수 있습니다. 이 주제에서는 SAP 커넥터의 문제점에 대한 잠재적 솔루션을 제공합니다.

지원되는 날짜 및 시간 필드 값 형식

다음 표에서는 SAP 커넥터의 모든 활동에 지원되는 날짜 및 시간 필드 값 형식을 설명합니다.
표 1. 날짜 및 시간 필드 값 형식
필드 입력 매개변수(비시작 활동) 출력 매개변수(시작 및 비시작 활동)
날짜 yyyy-mm-dd

또는

yyyymmdd

yyyymmdd
시간 hh:mm:ss

또는

hhmmss

hhmmss

SAP 커넥터 버전 6.0.x 및 이전 버전에서 날짜 및 시간 필드 값의 입력 및 출력 매개변수에 지원되는 형식은 각각 yyyy-mm-ddhh:mm:ss입니다.

동일한 RFC 프로그램 ID를 사용하여 RFC 수신 및 IDOC 수신 활동이 있는 오케스트레이션 배치 시 예외 발생

문제점: 동일한 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에 대해 별개의 엔드포인트를 작성하십시오.

'최대 202개의 대화 수 초과' 오류 방지를 위한 권장 구성

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

다음 권장사항은 병렬 요청 수와 로드에 따라 다릅니다.

  1. 사용하지 않는 연결이 자동으로 종료되도록 엔드포인트 구성에서 제한시간 값을 줄이십시오.
  2. RFC 연결을 추가로 지원하도록 Cast Iron 런타임과 SAP 게이트웨이를 구성하십시오.
    1. Cast Iron 런타임에서 CPIC_MAX_CONV 환경 값을 >100으로 설정하십시오. maestro.sh를 업데이트하여 환경 변수를 설정하십시오. 단계는 스케줄 A에 설명되어 있습니다.
    2. 다수의 병렬 연결을 지원하도록 SAP 게이트웨이에서 gw/max_conngw/max_sys 프로파일 값을 늘리십시오. 메모리 병목현상이 발생하면 gw/max_overflow_sizegw/max_shm_req 값도 늘리십시오.
    3. SAP 엔드포인트의 최대 연결 수 값을 실질적인 값으로 설정하십시오. 로드 및 병렬 요청에 따라 어플라이언스가 생성되거나 수신됩니다.
    4. SAP 엔드포인트의 서버 인스턴스 수 값을 10으로 설정하십시오.
  3. 샘플 값:
    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:

  1. 어플라이언스 쉘에 로그온하십시오. (시스템 쉘에 로그온하려면 IBM 지원 센터에 문의하여 어플라이언스 쉘 키를 가져오십시오.)
  2. /usr/ironhide/bin 폴더로 이동하십시오. maestro.sh를 백업하십시오(maestro.shmaestro.sh.old에 복사).
  3. maestro.sh를 편집하십시오.
    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"
  4. 다음 행을 추가하십시오.
    ## maximum SAP conversations allowed
    export CPIC_MAX_CONV=500
  5. 저장 후 종료하십시오.
  6. 시스템 쉘을 종료하고 어플라이언스 런타임을 다시 시작하기 위해 system restart 명령을 실행하십시오.

32비트에서 64비트로 JRE 업그레이드

문제점: 이전 버전의 어플라이언스에서 SAP 프로젝트를 실행 중인 경우 버전 7.0 이상으로 어플라이언스 업그레이드 시 SAP 프로젝트가 시작되지 않고 다음 오류가 발생합니다.

  • WMC에 발생한 오류 예제:
    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)
  • maestro.out 로그에 기록된 예외 예제:
    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.jarlibsapjco3.so를 삭제하고 64비트 SAP JCO 라이브러리를 로드하십시오.

SAP JCO 라이브러리 업그레이드:

  1. 다음 SAP 컴포넌트용 압축 파일을 얻으려면 SAP 기술 지원에 문의하십시오.
    • Linux AMD 64비트 플랫폼용 SAP JCO 릴리스 3.0.6 이상 버전(예: sapjco3-linuxx86_64-3.0.10.tgz)
  2. WMC에서 시스템 > 업그레이드 > 커넥터 라이브러리 업데이트로 이동하십시오.
  3. 커넥터 라이브러리 업데이트 창의 커넥터 목록에서 SAP 커넥터를 선택하십시오.
  4. 설치된 파일 목록에 표시된 기존 SAP JCO 라이브러리를 삭제하고 어플라이언스를 다시 시작하십시오.
  5. 어플라이언스를 다시 시작한 후 시스템 > 업그레이드 > 커넥터 라이브러리 업데이트로 이동하십시오.
  6. 새로 다운로드한 SAP JCO 64비트 라이브러리를 업로드하십시오. 라이브러리 업로드 후 어플라이언스를 다시 시작하도록 프롬프트가 표시됩니다.
  7. 어플라이언스를 다시 시작하고 SAP 프로젝트를 시작하십시오. 모든 SAP 오케스트레이션이 오류 없이 시작됩니다.



피드백 | 주의사항


시간소인 아이콘 마지막 업데이트 날짜: 2013년 11월 6일 수요일