
z/OS용 Liberty의 최적화 로컬 어댑터 API
Liberty의 WebSphere® 최적화 로컬 어댑터(WOLA)는 JCA(Java™ EE Connector Architecture) 및 z/OS® 자국어 호출 가능 서비스 API(Application Programming Interface) 세트에 의해 지원됩니다.
- Cobol
- C/C++
- PL/I
- 상위 레벨 어셈블리 언어
로컬 연결이라는 용어는 z/OS 시스템의 외부 주소 공간 및 동일한 z/OS 시스템의 Liberty 서버 간의 통신을 위해 작성된 교차 메모리 링크를 의미합니다. 클라이언트 주소 공간은 동일한 z/OS 이미지에서 실행 중이어야 합니다. 어댑터 API는 풀에서 각각의 고유하게 등록된 호출자와 연관되는 이 로컬 연결을 관리합니다. 12자 등록 이름은 주소 공간당 하나의 연결 풀 세트에만 사용할 수 있습니다. 단일 주소 공간의 고유 등록 수는 사용 가능한 스토리지의 크기에 의해서만 제한됩니다.
등록
BBOA1REG API를 사용하면 로컬 Liberty 서버에 등록할 수 있습니다. BBOA1REG API는 로컬 Liberty 서버에 대한 최적화 연결 그룹이 지정된 레지스터 이름으로 할당되고 등록되도록 요구합니다.
API | 구문 |
---|---|
BBOA1REG | BBOA1REG (wolagroupnamepart1, wolagroupnamepart2, wolagroupnamepart3, registername, minconn, maxconn, registerflags, rc, rsn) |
- wolagroupnamepart1
- 참여할 최적화 로컬 어댑터 그룹 이름의 첫 번째 파트가 포함된 입력 변수 또는 입력 상수입니다. 이는 정확하게 8자로 된 널로 끝나는 문자열이어야 하며 참조에 의해 전달되어야 합니다.
- wolagroupnamepart2
- 참여할 최적화 로컬 어댑터 그룹 이름의 두 번째 파트가 포함된 입력 변수 또는 입력 상수입니다. 이는 정확하게 8자로 된 공백으로 채워진 문자열이어야 하며 참조에 의해 전달되어야 합니다.
- wolagroupnamepart3
- 참여할 최적화 로컬 어댑터 그룹 이름의 세 번째 파트가 포함된 입력 변수 또는 입력 상수입니다. 이는 정확하게 8자로 된 공백으로 채워진 문자열이어야 하며 참조에 의해 전달되어야 합니다.
- registername(input)
- 로컬 연결 세트를 등록하는 데 사용되는 이름이 포함된 입력 변수 또는 입력 상수입니다. 이후 호출에서는 사용할 연결의 풀을 식별하기 위해 이 이름이 필요합니다. 이는 정확하게 12자로 된 공백으로 채워진 문자열이어야 하며 디먼 그룹의 다른 클라이언트에서 이를 사용할 수 없습니다. 이 클라이언트가 여러 디먼 그룹에 연결된 경우 registername은 이 클라이언트에서 한 번만 사용될 수 있습니다.
- minconn
- 이 등록을 위해 할당할 초기 최소 연결 수가 포함된 정수입니다.
어댑터는 등록 중에 연관된 서버와의 연결을 이 수만큼 예약합니다.
중요사항: minconn 매개변수가 0으로 지정되는 경우에도 최소한 하나의 연결이 대상 서버와 바인드하기 위해 할당되므로 0을 지정하는 것은 1을 지정하는 것과 동일합니다.
- maxconn
- 이 등록을 위해 할당할 최대 연결 수가 포함된 정수입니다. 어댑터는 최소 연결 수가 모두 사용 중일 때 연결 가져오기 API 요청 동안 최대 이 수만큼 로컬 연결 풀을 확장합니다.
- registerflags
- 등록 플래그가 포함된 32비트 플래그 단어입니다.
- reg_flag_W2Cprop - 비트 31
reg_flag_W2Cprop 플래그는 Liberty 서버에서 CICS®로의 아웃바운드 트랜잭션 보안 전파를 제어합니다.
- reg_flag_C2Wprop - 비트 29
reg_flat_C2Wprop 플래그는 CICS에서 Liberty 서버로의 호출 태스크에서 ID를 전파합니다. CICS로부터 인바운드인 트랜잭션의 경우 이 플래그는 ID가 판별되는 방식을 제어합니다. 이 비트가 작동되면 CICS 애플리케이션 태스크 ID를 Liberty 서버 권한 부여 프로세스에서 사용합니다. 이 비트가 작동 해제되면 CICS 리젼 ID를 사용합니다.
- reg_flag_trcmod - 비트 0
요청된 등록에 대한 최적화 로컬 어댑터 추적 설정을 수정하려면 reg_flag_trcmod 플래그를 설정하십시오. 이 플래그를 설정하지 않으면 추적 설정이 변경되지 않으며 등록 이름 또는 작업 이름에 적용되는 사전 정의된 추적 설정이나 시스템 기본값이 사용됩니다.
- reg_flag_trcmore - 비트 1 및 reg_flag_trcsome -
비트 2
reg_flag_trcmod 플래그를 1로 설정하는 경우에는 reg_flag_trcmore 플래그(자세한 추적의 경우) 또는 reg_flag_trcsome 플래그(자세하지 않은 추적의 경우)를 설정하여 등록에 대한 추적 레벨도 지정해야 합니다. reg_flag_trcmod가 1로 설정되는 경우 reg_flag_trcmore 플래그와 reg_flag_trcsome 플래그를 모두 0으로 설정하면 사전 정의된 값과 기본값 중 어느 것이 설정되는지에 관계없이 등록에 대한 추적이 강제 실행되지 않습니다.
- reg_flag_W2Cprop - 비트 31
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 요청된 최소 연결은 서버 최대 연결에 대해 유효성 검증됩니다.
최소 연결(minconn) 값 3은
등록 호출 중에 세 개의 연결이 예약됨을 의미합니다. 특정 시점에
네 개 이상의 연결이 요청되는 경우 연결 풀은 최대 연결(maxconn)
값으로 증가할 수 있습니다. 서버에 대한 모든 연결의 수가 허용되는
최대값에 도달하면 maxconn 값에 아직 도달하지
않은 경우에도 해당 서버에 대한 모든 후속 연결 가져오기 API 요청이
거부됩니다. 중요사항: 최소 연결 값 설정 시 주의하십시오. Liberty 서버의 자원이 각 연결마다 예약되어 있으므로, 특정한 경우를 제외하면 큰 값을 설정하지 마십시오.
- 동일한 주소 공간, 스레드 또는 CICS(Customer Information Control System) 태스크에서 등록 API에 대한 복수의 호출을 수행할 수 있지만 레지스터 이름을 공유할 수는 없습니다. 레지스터 이름은 고유 이름이어야 합니다.
- 등록 해제 API 호출을 사용하여 이 등록을 제거하고 이와 연관된 연결 풀을 해제하십시오.
- 등록 호출을 작성하는 주소 공간이 종료되면 등록이 자동으로 종료되고 연결이 해제됩니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | 4 | 어댑터에서 글로벌 트랜잭션을 지원하지 않는 환경에서 트랜잭션 등록 플래그가 1로 설정되었습니다. | 이 설정이 무시되고 처리가 계속됩니다. |
8 | - | 오류 - 이유 코드 참조 | |
8 | 등록 이름 토큰이 이미 있습니다. | 등록 API를 호출하기 전에 이 이름을 등록 해제하십시오. | |
12 | 지정된 최소 연결 매개변수가 최대값보다 큽니다. | 최소 연결 설정이 최대 설정 이하인지 확인하십시오. | |
14 | 등록을 작성하는 중에 공유 메모리 부족이 발생했습니다. | 최적화 로컬 어댑터에 대한 공유 메모리 할당을 늘리거나 등록 해제 호출을 발행하여 자원 이용을 줄이십시오. | |
74 | 입력 레지스터 이름에 널이 포함되어 있습니다. | 등록 API를 호출하기 전에 이름의 길이가 정확하게 12자가 되도록 레지스터 이름을 공백으로 채우십시오. | |
236 |
WOLA 이름 파트 2 또는 3이 비어 있거나 누락되었습니다. | WOLA 이름 파트 2 및 3이 BBOA1REG 호출에 지정되어 있는지 확인하십시오. | |
480 |
클라이언트가 등록 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
481 |
클라이언트가 zosLocalAdapters 서비스에 대해 권한 부여된 함수 테이블을 찾을 수 없습니다. | zosLocalAdapters 기능이 대상 서버 인스턴스에서 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
14 | 요청된 Liberty 서버에 대한 권한이 사용자 ID에 부여되지 않았습니다. | 요청된 Liberty 서버의 CBIND SAF 클래스에 대한 권한이 사용자 ID에 부여되었는지 확인하십시오. | |
16 | 최적화 로컬 어댑터 그룹 이름의 파트 2 또는 파트 3를 찾을 수 없습니다. | 전달 중인 최적화 로컬 어댑터 그룹 이름 매개변수가 올바르며 서버가 활성 상태인지 확인하십시오. | |
23 | 토큰의 이름을 지정하는 중에 오류가 발생했습니다. | WebSphere Application Server 지원 사이트에서 문제점 판별 정보를 참조하십시오. | |
24 | 초기 Liberty 서버 로컬 통신 연결을 설정하는 중에 오류가 발생했습니다. | 로컬 통신 연결 호출에 대한 세부사항은 Liberty 서버 리젼 로그를 참조하십시오. | |
28 | 이 이름으로 식별된 등록이 올바르지 않습니다. | 지정된 레지스터 이름이 이미 등록되었지만 등록이 누락되었습니다. 임시 해결책으로 등록 해제 API를 호출한 후 등록 API를 다시 호출하십시오. 문제가 계속되면 WebSphere Application Server 지원 사이트에서 문제점 판별 정보를 참조하십시오. | |
68 | 공유 메모리에 대한 접속에 실패했습니다. | WebSphere Application Server 지원 사이트에서 문제점 판별 정보를 참조하십시오. | |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
232 |
등록 호출 중에 메모리 부족 상황이 발생했습니다. | 메모리가 하위 풀 0의 클라이언트에 사용 가능한지 확인하십시오. BBOA1REG 호출을 다시 시도하십시오. | |
234 |
클라이언트가 Liberty 서버 인스턴스에 바인드할 수 없습니다. | Liberty 서버가 시작되었는지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되었는지를 확인하십시오. | |
238 |
클라이언트가 대상 서버의 등록을 찾을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버 인스턴스가 시작되었는지 및 zosLocalAdapters 기능이 구성되었는지를 확인하십시오. 서버가 중지된 경우 이를 시작하고 BBOA1REG 호출을 다시 시도하십시오. |
등록 해제
BBOA1URG API를 사용하여 로컬 최적화 로컬 어댑터 그룹 및 Liberty 서버에서 등록 해제합니다.API | 구문 |
---|---|
BBOA1URG | BBOA1URG (registername, unregflags, rc, rsn) |
- registername
- 로컬 연결 세트를 등록 해제하는 데 사용할 이름이 포함된 입력 변수 또는 입력 상수입니다. 값은 정확하게 12자(공백으로 채워짐)여야 하고 등록 API 호출에서 사용되는 동일한 이름이어야 합니다.
- unregisterflags
- 등록 해제 플래그가 포함된 32비트 플래그 단어입니다.
- 예약됨 - 비트 0-30
- 강제 실행(0|1) - 비트 31
등록 해제 요청을 강제 실행하려면 1을 지정하십시오. 기본적으로 모든 연결이 연결 풀에 리턴되는 경우 등록 해제 요청이 완료됩니다. 일부 연결이 풀에 리턴되지 않으면 경고가 호출자에게 리턴됩니다. 마지막 연결이 풀에 리턴되면 등록 해제 프로세스가 완료됩니다. 강제 실행 비트가 1로 설정된 두 번째 등록 요청을 작성하여 강제로 등록 해제 프로세스가 완료되게 하고 해당 등록에 대한 나머지 연결 핸들을 모두 무효화하십시오.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 등록 해제 API가 호출되지 않고 등록 호출을 작성한 주소 공간이 종료되면 등록 해제 호출이 자동으로 수행되고 연결이 해제됩니다.
- 등록 해제 호출이 발생할 때 활성 상태인 이 등록에 대한 연결 핸들은 연결 해제 API를 사용하여 연결 풀에 리턴될 때까지 계속 유효합니다. 강제로 연결 핸들을 정리하려면 강제 실행 플래그를 지정하여 두 번째 등록 해제 호출을 작성해야 합니다. 이는 미결 연결 핸들을 모두 무효화합니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
66 | 모든 연결이 풀에 리턴될 때까지 등록 해제 호출이 지연됩니다. | 마지막 연결이 사용 가능한 풀에 리턴되면 등록 해제가 완료됩니다. | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 등록 토큰 이름이 없습니다. | 등록 해제 API를 호출하기 전에 이 이름을 등록해야 합니다. | |
64 | 정상적인 등록 해제가 발행될 때까지 강제 실행 옵션을 지정할 수 없습니다. | 강제 실행 옵션을 지정하지 않고 등록 해제 API를 호출하십시오. | |
82 | 이 등록에 대한 등록 해제를 이미 시도했습니다. | 이전 등록 해제 요청이 완료될 때까지 기다리거나 강제 실행 옵션을 사용하여 이 등록 해제를 다시 실행하십시오. | |
228 |
등록이 이미 재사용되었으므로 등록 해제 호출을 완료할 수 없습니다. | 조치가 필요하지 않습니다. | |
230 |
등록 해제 강제 실행 호출에서 연결 풀을 정리할 수 없습니다. | 조치가 필요하지 않습니다. 등록 해제 강제 실행 호출이 사용되지 않게 하려면 등록 해제를 호출하기 전에 사용자의 애플리케이션이 모든 연결 핸들을 다시 풀로 리턴하는지 확인하십시오. | |
480 |
클라이언트가 등록 해제 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
연결 가져오기
이 API는 선택된 등록 이름으로 작성된 풀에서 사용 가능한 연결이 리턴되도록 요청합니다.API | 구문 |
---|---|
BBOA1CNG | BBOA1CNG (registername, connectionhandle, waittime, rc, rsn) |
- registername
- 연결을 검색할 연결 풀을 찾는 데 사용할 이름이 포함된 입력 변수 또는 입력 상수입니다. 이는 정확하게 12자로 된 공백으로 채워진 문자열이어야 합니다.
- connectionhandle
- 이 연결의 조치에 대한 이후 요청에 전달되어야 하는 12바이트 연결 핸들입니다.
- waittime
- 연결 사용 불가능 이유 코드를 리턴하기 전에 연결이 완료될 때까지 기다리는 시간(초)이 포함된 정수입니다. 값이 0이면 대기 시간이 없고 API가 무기한 대기함을 의미합니다. waittime 매개변수는 연결 풀에서 WOLA 연결을 확보하는 프로세스에만 적용됩니다. 연결이 확보되면 무제한 대기 시간으로 서버로부터 요청을 수신하는 데 사용됩니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 연결 가져오기 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 등록 이름 토큰이 없습니다. | 연결 가져오기 API로 이름을 호출하기 전에 이 이름을 등록하십시오. | |
10 | 연결을 사용할 수 없습니다. 연결 요청을 얻을 수 있게 되기 전에 대기 시간이 만료되었습니다. | 애플리케이션 동작은 다양합니다. 기다린 후 다시 시도하거나 이상 종료 매크로를 실행하여 연결 가져오기 API를 호출한 태스크를 종료하십시오. 등록 API 호출에서 최대 연결 설정을 늘릴 수도 있습니다. | |
24 | 성공적인 등록 호출 후 풀에서 연결을 가져올 때 오류가 발생했습니다. | 서버가 시작되었는지 확인하십시오. 서버가 작동하고 있지 않으면 서버를 다시 시작한 후 API 요청을 다시 시도하십시오. | |
28 | 등록이 있지만 비활성 상태입니다. | ||
224 |
완전하지 않은 등록이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록 해제하고 BBOA1REG 서비스를 사용하여 다시 등록하십시오. | |
480 |
클라이언트가 연결 가져오기 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
482 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
483 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
14 |
요청된 Liberty 서버에 대한 권한이 사용자 ID에 부여되지 않았습니다. | 요청된 Liberty 서버의 CBIND SAF 클래스에 대한 권한이 사용자 ID에 부여되었는지 확인하십시오. | |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
연결 해제
연결 해제 API는 연결이 검색된 풀로 돌아가서 다른 요청자를 위해 사용할 수 있게 되도록 요청합니다.API | 구문 |
---|---|
BBOA1CNR | BBOA1CNR (connectionhandle, rc, rsn) |
- connectionhandle
- 연결 풀에 대해 다시 해제될 이전에 확보한 연결을 표시하는 12바이트 연결 핸들입니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 연결 해제 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되고 연결 가져오기 API 호출이 완료되어 지금 해제될 연결을 확보하는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 최적화 로컬 어댑터 그룹 및 Liberty 서버를 찾을 수 없습니다. 이 연결과 관련된 자원이 모두 지워졌습니다. | 없음 |
8 | - | 오류 - 이유 코드 참조 | |
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용되는 연결 핸들이 잘못된 상태에 있습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용되는 클라이언트 연결 핸들이 올바르지 않습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
12 | 86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
요청 전송
이러한 API는 처리를 위해 로컬 Liberty 서버로 요청을 전송합니다.API | 구문 |
---|---|
BBOA1SRQ | BBOA1SRQ (connectionhandle, requesttype, requestservicename, requestservicenamel, requestdata, requestdatalen, async(0|1), responsedatalen, rc, rsn) |
- connectionhandle
- 이 요청에 사용될 12바이트 연결 핸들입니다.
- requesttype
- 처리할 작업 요청의 유형을 표시하는 요청 유형이 포함된 정수입니다. 로컬 EJB 작업 요청에 대해 지원되는 유일한 값은 1입니다.
- requestservicename
- 호출할 서비스의 이름이 포함된 길이가 최대 256바이트인 EBCDIC 문자열입니다. 이 매개변수는 로컬 비즈니스 인터페이스의 JNDI 이름을 지정합니다.
- requestservicenamel
- 시작할 서비스 이름의 길이가 포함된 정수입니다(서비스 이름이 널로 종료되는 경우에는 0(영)).
- requestdata
- 전송할 요청 데이터의 시작 주소를 가리키는 31비트 포인터입니다.
- requestdatalen
- 전송할 데이터의 길이가 포함된 32비트 부호 없는 값입니다.
- async(0|1)
- 응답 길이를 아직 알 수 없더라도 호출자가 제어가 즉시 리턴되길 원함을 나타내려면 async를 1로 설정하십시오. async를 0으로 설정하는 경우, 현재 스레드는 Liberty 서버가 응답을 리턴할 때까지 대기하며 API는 responsedatalen 출력 매개변수의 응답 길이를 리턴합니다.
- responsedatalen
- 응답의 길이가 포함된 32비트 부호 없는 값입니다. 사용자가 데이터 가져오기 API를 호출하여 데이터를 복사해오기 전에 호출자는 이 길이를 사용하여 스토리지를 확보할 수 있습니다. async를 1(호출자가 즉시 제어를 다시 원함)로 설정하면 응답이 아직 수신되지 않은 경우 값이 0xFFFFFFFF로 설정됩니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 요청 전송 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
16 | 요청 서비스 이름 길이가 올바르지 않습니다. | 문제를 정정한 후 다시 시도하십시오. | |
18 | 요청 길이가 시스템 제한을 초과합니다. | 메시지 크기가 Liberty 서버 크기에서 지원할 수 있는 것보다 큽니다. 크기가 올바른지 확인하십시오. 크기가 올바른 경우에는 Liberty 서버 크기가 메시지 크기를 수용할 수 있을 정도의 충분한 크기인지 확인하십시오. | |
32 | API 호출 요청 유형이 올바르지 않습니다. | 요청 유형이 올바르지 않습니다. 프로그램을 정정한 후 다시 호출하십시오. | |
34 | 대상 서비스를 찾을 수 없습니다. | 대상 엔터프라이즈 Bean이 포함된 애플리케이션이 Liberty 서버의 대상 서버에서 설치되고 시작되었는지 확인하십시오. | |
36 | 연결 상태가 올바르지 않습니다. | 요청에 사용되는 연결 핸들이 잘못된 상태에 있습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 요청에 사용되는 클라이언트 연결 핸들이 올바르지 않습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
44 | 대상 엔터프라이즈 Bean에서 예외 또는 예상치 않은 상태가 발생했습니다. | Liberty 서버 로그를 참조하여 예외 데이터를 검토하십시오. | |
46 | 로컬 통신 요청 전송 호출에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
98 | 제공된 요청 버퍼의 시작에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
100 | 제공된 요청 버퍼의 끝에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
응답 전송
이 API는 요청에 대한 응답을 다시 로컬 Liberty 서버에 전송합니다.API | 구문 |
---|---|
BBOA1SRP | BBOA1SRP (connectionhandle, responsedata, responsedatalen, rc, rsn) |
- connectionhandle
- 이 응답에 사용될 12바이트 연결 핸들입니다.
- responsedata
- 전송할 응답 데이터의 시작 주소를 가리키는 31비트 포인터입니다.
- requestdatalen
- 전송할 데이터의 길이가 포함된 32비트 부호 없는 값입니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 응답 전송 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- 연결 가져오기 API 호출이 완료되었으며 핸들이 이 호출에 대한 입력으로 제공되는지 확인하십시오.
- 임의의 요청 수신, 특정 요청 수신 또는 호스트 API 호출이 성공적으로 발행되어 연결 핸들에 대한 요청 데이터와 함께 리턴되었는지 확인하십시오. 연결의 상태는 응답 전송 API가 올바른 상태여야 합니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
18 | 요청 길이가 시스템 제한을 초과합니다. | 메시지 크기가 Liberty 서버 크기에서 지원할 수 있는 것보다 큽니다. 크기가 올바른지 확인하십시오. 크기가 올바른 경우에는 Liberty 서버 크기가 메시지 크기를 수용할 수 있을 정도의 충분한 크기인지 확인하십시오. | |
34 | 대상 서비스를 찾을 수 없습니다. | 대상 엔터프라이즈 Bean이 포함된 애플리케이션이 Liberty 서버의 대상 서버에서 설치되고 시작되었는지 확인하십시오. | |
36 | 연결 상태가 올바르지 않습니다. | 요청에 사용되는 연결 핸들이 잘못된 상태에 있습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 요청에 사용되는 클라이언트 연결 핸들이 올바르지 않습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
46 | 로컬 통신 요청 전송 호출에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
102 | 제공된 응답 버퍼의 시작에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
104 | 제공된 응답 버퍼의 끝에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
480 |
클라이언트가 응답 전송 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
예외 응답 전송
이 API는 응답 데이터가 포함된 ResourceException 예외를 다시 로컬 Liberty 서버의 JCA 호출자에 전송합니다.
API | 구문 |
---|---|
BBOA1SRX | BBOA1SRX (connectionhandle, excresponsedata, exresponsedatalen, rc, rsn) |
- connectionhandle
- 이 응답에 사용될 12바이트 연결 핸들입니다.
- excresponsedata
- 전송할 예외 응답 데이터의 시작 주소를 가리키는 31비트 포인터입니다.
- excresponsedatalen
- 전송할 예외 응답 데이터의 길이가 포함된 32비트 부호 없는 값입니다. 예외 응답 데이터는 오류를 설명하는 EBCDIC 문자열입니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 응답 전송 호출을 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- 연결 가져오기 API 호출이 완료되었으며 핸들을 이 API 호출에 대한 입력으로 제공하는지 확인하십시오.
- 임의의 요청 수신, 특정 요청 수신 또는 호스트 서비스 API 호출이 성공적으로 발행되어 연결 핸들에 대한 요청 데이터와 함께 리턴되었는지 확인하십시오. 연결의 상태는 응답 전송 및 예외 응답 전송 API가 올바른 상태여야 합니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
10 | 연결 핸들이 해제되거나 올바르지 않은 상태에 있습니다. | 올바른 연결 핸들이 전달되었는지 확인하십시오. | |
16 | 하나 이상의 매개변수가 올바르지 않습니다. | 모든 매개변수가 올바른지 확인한 후 다시 호출하십시오. | |
18 | 요청 길이가 시스템 제한을 초과합니다. | 메시지 크기가 Liberty 서버 크기에서 지원할 수 있는 것보다 큽니다. 크기가 올바른지 확인하십시오. 크기가 올바른 경우에는 Liberty 서버 크기가 메시지 크기를 수용할 수 있을 정도의 충분한 크기인지 확인하십시오. | |
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용된 연결 핸들이 잘못된 상태에 있습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
46 | 로컬 통신 요청 전송 호출에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
102 | 제공된 응답 버퍼의 시작에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
104 | 제공된 응답 버퍼의 끝에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
480 |
클라이언트가 예외 전송 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
임의의 요청 수신
이 API는 전달된 레지스터 이름에 대해 풀의 연결에서 로컬 Liberty 서버로부터 요청 및 관련 데이터를 수신합니다. 이 API는 요청 데이터 길이 및 연결 핸들을 출력 매개변수로 리턴합니다. 리턴된 연결 핸들을 사용하여 데이터 가져오기 API를 호출하면 수신된 메시지 데이터가 리턴됩니다.
API | 구문 |
---|---|
BBOA1RCA | BBOA1RCA (registername, connectionhandle, requestservicename, requestservicenamel, requestdatalen, waittime, rc, rsn) |
- registername
- 연결을 검색할 연결 풀을 찾는 데 사용할 이름이 포함된 입력 변수 또는 입력 상수입니다. 값은 정확하게 12자로 된 공백으로 채워진 문자열이어야 합니다.
- waittime
- 연결 사용 불가능 이유 코드를 리턴하기 전에 연결이 완료될 때까지 기다리는 시간(초)이 포함된 정수입니다. 값이 0이면 대기 시간이 없고 API가 무기한 대기함을 표시합니다. waittime 매개변수는 연결 풀에서 WOLA 연결을 확보하는 프로세스에만 적용됩니다. 연결이 확보되면 무제한 대기 시간으로 서버로부터 요청을 수신하는 데 사용됩니다.
- requestservicename
- 서비스의 이름이 포함된 최대 256바이트의 EBCDIC 문자열입니다. 이 매개변수는 Liberty 서버 애플리케이션에 의해 InteractionSpec 인터페이스에서 지정된 대상 서비스의 이름입니다. * 값은 현재 레지스터 이름 아래에서 도달하는 모든 서비스 이름에 대한 수신 요청을 표시합니다.
- requestservicenamel
- 시작할 서비스 이름의 길이가 포함된 정수입니다(서비스 이름이 널로 종료되는 경우에는 0(영)).
- connectionhandle
- 이 연결의 조치에 대한 이후 요청에 전달되어야 하고 리턴되는 12바이트 연결 핸들입니다.
- requestdatalen
- 수신할 데이터의 길이와 함께 리터되는 32비트 부호 없는 값입니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 이 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
10 | 연결을 사용할 수 없습니다. 연결 요청을 얻을 수 있게 되기 전에 대기 시간이 만료되었습니다. | 애플리케이션 동작은 다양합니다. 기다린 후 다시 시도하거나 이상 종료 매크로를 실행하여 연결 가져오기 API를 호출한 태스크를 종료하십시오. 등록 API 호출에서 최대 연결 설정을 늘릴 수도 있습니다. | |
16 | 요청 서비스 이름 길이가 올바르지 않습니다. | 프로그램을 정정한 후 다시 호출하십시오. | |
19 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
21 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않은 것으로 판별되었습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
46 | 로컬 통신 요청 전송 호출에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
224 |
완전하지 않은 등록이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록 해제하고 BBOA1REG 서비스를 사용하여 다시 등록하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1RCA 서비스를 사용하여 요청을 다시 시도하십시오. | |
480 |
클라이언트가 응답 수신 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
482 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
483 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
14 |
요청된 Liberty 서버에 대한 권한이 사용자 ID에 부여되지 않았습니다. | 요청된 Liberty 서버의 CBIND SAF 클래스에 대한 권한이 사용자 ID에 부여되었는지 확인하십시오. | |
24 | 성공적인 등록 호출 후 풀에서 연결을 가져올 때 오류가 발생했습니다. | 서버가 시작되었는지 확인하십시오. 서버가 시작되지 않은 경우에는 서버를 다시 시작한 후 API 요청을 다시 시도하십시오. | |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
특정 요청 수신
이 API는 지정된 연결 핸들에 대해 로컬 Liberty 서버에서 요청 및 관련 데이터를 수신합니다. 이 API는 요청 데이터 길이를 출력 매개변수로 리턴합니다. 지정된 연결 핸들을 사용하여 데이터 가져오기 API를 호출하면 수신된 메시지 데이터가 리턴됩니다.API | 구문 |
---|---|
BBOA1RCS | BBOA1RCS (connectionhandle, requestservicename, requestservicenamel, requestdatalen, async(0|1), rc, rsn) |
- connectionhandle
- 수신 요청에 사용될 12바이트 연결 핸들입니다.
- async(0|1)
- 응답 길이를 아직 알 수 없더라도 호출자가 제어가 즉시 리턴되길 원함을 나타내려면 async를 1로 설정하십시오. async를 0으로 설정하는 경우, 이 호출은 Liberty 서버의 요청을 수신하기 위해 대기합니다.
- requestservicename
- 서비스의 이름이 포함된 최대 256바이트의 EBCDIC 문자열입니다. 이 매개변수는 Liberty 서버 애플리케이션에 의해 InteractionSpec 인터페이스에서 지정된 대상 서비스의 이름입니다. * 값은 현재 레지스터 이름 아래에서 도달하는 모든 서비스 이름에 대한 서버로 설정됨을 나타냅니다.
- requestservicenamel
- 시작할 서비스 이름의 길이가 포함된 정수입니다(서비스 이름이 널로 종료되는 경우에는 0(영)).
- requestdatalen
- 수신된 요청 데이터의 길이가 포함된 리턴되는 32비트 부호 없는 값입니다. 사용자가 데이터 가져오기 API를 사용하여 데이터를 복사해 오기 전에 호출자는 이 길이를 사용하여 스토리지를 확보할 수 있습니다. async가 1(호출자가 즉시 제어를 다시 원함)로 설정되면 요청 데이터가 아직 수신되지 않은 경우 값이 0xFFFFFFFF로 설정됩니다. 이 경우에는 API를 다시 호출하여 인바운드 요청을 검색해야 합니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 이 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
10 | 연결 핸들이 해제된 상태 부적절한 상태에 있습니다. | 올바른 연결 핸들이 전달되었는지 확인하십시오. | |
16 | 요청 서비스 이름 길이가 올바르지 않습니다. | 프로그램을 정정한 후 다시 호출하십시오. | |
19 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
21 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용된 연결 핸들이 잘못된 상태에 있습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
46 | 로컬 통신 요청 전송 호출에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
76 | 서버가 더 이상 실행되고 있지 않기 때문에 서버와의 통신에 실패했습니다. | 서버를 시작한 후 통신을 다시 시도하십시오. | |
78 | 연결이 이 연결에서 처리 중인 트랜잭션의 일부가 아닌 요청을 선택하게 하는 내부 오류가 발생했습니다. | 연결을 연결 풀로 되돌리십시오. 문제가 계속되면 WebSphere Application Server 지원 사이트에서 문제점 판별 정보를 참조하십시오. | |
80 | 이 연결에서 활성 상태인 트랜잭션이 제한시간 초과되었으며 다른 요청이 처리되도록 연결 상태를 재설정할 수 없습니다. | 연결을 연결 풀로 되돌리십시오. 문제가 계속되면 WebSphere Application Server 지원 사이트에서 문제점 판별 정보를 참조하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1CNR 서비스를 사용하여 연결을 해제하고 BBOA1CNG 서비스를 사용하여 새 연결을 얻으십시오. | |
480 |
클라이언트가 응답 수신 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
응답 길이 수신
응답 길이 수신 API는 이전 요청 전송 호출에서 응답 데이터의 길이를 검색합니다.API | 구문 |
---|---|
BBOA1RCL | BBOA1RCL (connectionhandle, async(0|1), responsedatalen, rc, rsn) |
- connectionhandle
- 이 요청에 사용될 12바이트 연결 핸들입니다.
- async(0|1)
- 응답 길이를 알 수 없더라도 호출자가 제어가 즉시 리턴되길 원함을 나타내려면 async를 1로 설정하십시오. async를 0으로 설정하는 경우, 이 호출은 Liberty 서버가 응답을 리턴하기를 대기하며 API는 responsedatalen 매개변수의 응답 길이를 리턴합니다.
- requestdatalen
- 리턴되는 수신된 데이터의 길이가 포함된 32비트 부호 없는 값입니다. 사용자가 데이터 가져오기 API를 호출하여 데이터를 복사해오기 전에 호출자는 이 길이를 사용하여 스토리지를 확보할 수 있습니다. async가 1로 설정되면 응답 데이터가 아직 수신되지 않은 경우 값이 0xFFFFFFFF로 설정됩니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 이 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- 연결 가져오기 API 호출이 완료되었으며 핸들이 이 호출에 대한 입력으로 제공되는지 확인하십시오.
- 이 호출을 작성하기 전에 요청 전송 API 호출이 완료되었는지 확인하십시오.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
19 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
21 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용된 연결 핸들이 잘못된 상태에 있는 것으로 판별되었습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않은 것으로 판별되었습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1CNR 서비스를 사용하여 연결을 해제하고 BBOA1CNG 서비스를 사용하여 새 연결을 얻으십시오. | |
480 |
클라이언트가 길이 수신 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
메시지 데이터 가져오기
이 API는 수신된 메시지 데이터를 복사합니다. 이 API 호출이 리턴되면 메시지가 어댑터 메시지 캐시에서 제거됩니다.API | 구문 |
---|---|
BBOA1GET | BBOA1GET (connectionhandle, msgdata, msgdatalen, rc, rsn, rv) |
- connectionhandle
- 이 요청에 사용될 12바이트 연결 핸들입니다.
- msgdata
- 복사해 올 데이터 영역의 시작 주소를 가리키는 31비트 포인터입니다. 이 매개변수가 가리키는 스토리지는 호출자가 쓸 수 있는 키에 있어야 합니다.
- msgdatalen
- 복사할 데이터의 길이가 포함된 32비트 부호 없는 값입니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- rv
- 이 요청에 대한 컨텍스트 버퍼의 크기가 포함된 32비트 정수 리턴값입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 요청 전송 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- 연결 가져오기 API 호출이 완료되었으며 핸들이 이 호출에 대한 입력으로 제공되는지 확인하십시오.
- API 호출자 입력 msgdatalen 매개변수가 실제 메시지 응답보다 큰 경우에는 리턴 코드에 0이 포함되어 있고 실제 메시지 길이가 리턴값에 제공됩니다.
- 중요사항: 메시지 데이터 가져오기 호출이 호출자에게 리턴되고 나면 메시지 데이터가 지속되지 않으며 연결이 다른 요청 전송 또는 수신 호출에 사용할 수 있는 상태로 돌아갑니다. 메시지 데이터를 가져오거나 응답 길이를 수신하기 위한 후속 호출이 오류로 리턴됩니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용된 연결 핸들이 잘못된 상태에 있는 것으로 판별되었습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않은 것으로 판별되었습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
48 | 로컬 통신 요청 읽기에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
72 | 응답 길이 입력 매개변수가 응답 메시지를 포함할 수 있을 정도로 크지 않습니다. | 메시지의 일부만 리턴됩니다. 나머지는 제거됩니다. 메시지 응답의 크기에 대한 리턴값을 참조하십시오. | |
98 | 제공된 요청 버퍼의 시작에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
100 | 제공된 요청 버퍼의 끝에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
102 | 제공된 응답 버퍼의 시작에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
104 | 제공된 응답 버퍼의 끝에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1CNR 서비스를 사용하여 연결을 해제하고 BBOA1CNG 서비스를 사용하여 새 연결을 얻으십시오. | |
480 |
클라이언트가 데이터 가져오기 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
호출
이 API는 다른 기본 원시 API 기능을 사용하여 로컬 Liberty 서버에서 메소드를 호출합니다. 이 API는 응답 출력 영역 최대 크기가 미리 알려져 있는 상황에서 사용하도록 디자인되어 있습니다.API | 구문 |
---|---|
BBOA1INV | BBOA1INV (registername, requesttype, requestservicename, requestservicenamel, requestdata, requestdatalen, responsedata, responsedatalen, waittime, rc, rsn, rv) |
- registername
- 이 호출에 대한 연결을 검색할 연결 풀을 찾는 데 사용할 이름이 포함된 입력 변수 또는 입력 상수입니다. 값은 정확하게 12자로 된 공백으로 채워진 문자열이어야 합니다.
- requesttype
- 처리할 작업 요청의 유형을 표시하는 요청 유형이 포함된 정수입니다. 로컬 EJB 작업 요청에 대해 지원되는 유일한 값은 1입니다.
- requestservicename
- 호출할 서비스의 이름이 포함된 길이가 최대 256바이트인 EBCDIC 문자열입니다. 이 매개변수는 로컬 비즈니스 인터페이스의 JNDI 이름을 지정합니다.
- requestservicenamel
- 시작할 서비스 이름의 길이가 포함된 정수입니다(서비스 이름이 널로 종료되는 경우에는 0(영)).
- requestdata
- 전송할 요청 데이터의 시작 주소를 가리키는 31비트 포인터입니다.
- requestdatalen
- 전송할 요청 데이터의 길이가 포함된 32비트 부호 없는 값입니다.
- responsedata
- 복사해 올 응답 데이터 영역의 시작 주소를 가리키는 31비트 포인터입니다. 이 매개변수가 가리키는 스토리지는 호출자가 쓸 수 있는 키에 있어야 합니다.
- responsedatalen
- 전송할 응답 데이터의 길이가 포함된 32비트 부호 없는 값입니다.
- waittime
- 연결 사용 불가능 이유 코드를 리턴하기 전에 연결이 완료될 때까지 기다리는 시간(초)이 포함된 정수입니다. 값이 0(영)이면 제한시간이 없고 이 API가 무기한 대기함을 나타냅니다. waittime 매개변수는 연결 풀에서 WOLA 연결을 확보하는 프로세스에만 적용됩니다. 연결이 확보되면 무제한 대기 시간으로 서버로부터 요청을 수신하는 데 사용됩니다.
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- rv
- 수신되어 호출자 응답 영역에 복사된 메시지 데이터의 크기가 포함된 32비트 정수 리턴값입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 요청 전송 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- API 호출자 입력 responsedatalen 매개변수가 실제 메시지 응답보다 큰 경우에는 리턴 코드에 0(영)이 포함되어 있고 실제 메시지 길이가 리턴값에 제공됩니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 없습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
10 | 연결을 사용할 수 없습니다. 연결 요청을 얻기 전에 대기 시간이 만료되었습니다. | 애플리케이션 동작은 다양합니다. 기다린 후 재시도하거나 이 실패한 호출 API 호출을 승인하십시오. 또다른 옵션은 등록 API 호출에서 최대 연결 설정을 늘리는 것입니다. | |
16 | 요청 서비스 이름 길이가 올바르지 않습니다. | 프로그램을 정정한 후 다시 호출하십시오. | |
18 | 응답 길이가 시스템 제한을 초과했습니다. | 메시지 크기가 Liberty 서버 크기에서 지원할 수 있는 것보다 큽니다. 크기가 올바른지 확인하십시오. 크기가 올바른 경우에는 Liberty 서버 크기가 메시지 크기를 수용할 수 있을 정도의 충분한 크기인지 확인하십시오. | |
19 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
21 | 로컬 통신 서비스에 대한 호출에서 0(영)이 아닌 리턴 코드를 수신했습니다. | ||
24 | 성공적인 등록 호출 후 풀에서 연결을 가져올 때 오류가 발생했습니다. | 서버가 시작되었는지 확인하십시오. 서버가 작동하고 있지 않으면 서버를 다시 시작한 후 API 요청을 다시 시도하십시오. | |
26 | 글로벌 트랜잭션을 시작할 수 없습니다. | ||
28 | 등록이 있지만 비활성 상태입니다. | ||
32 | API 호출의 요청 유형이 올바르지 않습니다. | 요청 유형 매개변수가 올바르지 않습니다. 프로그램을 정정한 후 다시 호출하십시오. | |
34 | 대상 서비스를 찾을 수 없습니다. | 대상 엔터프라이즈 Bean이 포함된 애플리케이션이 대상 Liberty 서버에서 설치되고 시작되었는지 확인하십시오. | |
36 | 연결 상태가 올바르지 않습니다. | 이 요청에 사용된 연결 핸들이 잘못된 상태에 있는 것으로 판별되었습니다. API 문서에서 연결 상태에 대한 규칙을 참조하십시오. | |
38 | 클라이언트 연결 핸들이 올바르지 않습니다. | 이 요청에 사용된 클라이언트 연결 핸들이 올바르지 않은 것으로 판별되었습니다. API 문서에서 클라이언트 연결 핸들에 대한 정보를 참조하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
44 | 대상 엔터프라이즈 Bean에서 예외 또는 예상치 않은 상태가 발생했습니다. | Liberty 서버 로그를 참조하여 예외 데이터를 검토하십시오. | |
46 | 로컬 통신 요청 전송에서 오류가 발생했습니다. | Liberty 서버 로그를 참조하여 오류를 판별하십시오. | |
48 | 로컬 통신 요청 읽기에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
72 | 응답 길이 입력 매개변수가 응답 메시지를 포함할 수 있을 정도로 크지 않습니다. | 메시지의 일부만 리턴됩니다. 나머지는 제거됩니다. 메시지 응답의 크기에 대한 리턴값을 참조하십시오. | |
98 | 제공된 요청 버퍼의 시작에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
100 | 제공된 요청 버퍼의 끝에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
102 | 제공된 응답 버퍼의 시작에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
104 | 제공된 응답 버퍼의 끝에 액세스할 수 없습니다. | 제공된 응답 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
224 |
완전하지 않은 등록이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록 해제하고 BBOA1REG 서비스를 사용하여 다시 등록하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1INV 서비스를 사용하여 요청을 다시 시도하십시오. | |
480 |
클라이언트가 호출 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
482 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
483 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
14 |
요청된 Liberty 서버에 대한 권한이 사용자 ID에 부여되지 않았습니다. | 요청된 Liberty 서버의 CBIND SAF 클래스에 대한 권한이 사용자 ID에 부여되었는지 확인하십시오. | |
24 | 성공적인 등록 호출 후 연결 풀에서 연결을 가져오는 중에 오류가 발생했습니다. | 서버가 시작되었는지 확인하십시오. 서버가 시작되지 않은 경우에는 서버를 다시 시작한 후 API 요청을 다시 시도하십시오. | |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
호스트 서비스
호스트 서비스 API는 다른 기본 원시 API 기능을 사용하여 자국어 z/OS 프로그램을 로컬 Liberty 서버의 최적화 로컬 어댑터 호출에 대한 대상 및 서버로서 설정합니다. API를 호출하기 전에 요청 영역 최대 크기를 알고 있는 경우 이 API를 사용하십시오.API | 구문 |
---|---|
BBOA1SRV | BBOA1SRV (registername, requestservicename, requestservicenamel, requestdata, requestdatalen, connectionhandle, waittime, rc, rsn, rv) |
- registername
- 이 호출에 대한 연결을 검색할 연결 풀을 찾는 데 사용할 이름이 포함된 입력 변수 또는 입력 상수입니다. 값은 정확하게 12자로 된 공백으로 채워진 문자열이어야 합니다.
- requestdata
- 수신된 요청 데이터의 시작 주소를 가리키는 31비트 포인터입니다. 이 매개변수가 가리키는 스토리지는 호출자가 쓸 수 있는 키에 있어야 합니다.
- requestdatalen
- 메시지가 수신되는 데이터 영역의 길이가 포함된 32비트 부호 없는 값입니다.
- connectionhandle
- 호출자에게 리턴되고 이 요청에 대한 응답을 전송하는 데 사용되는 12바이트 연결 핸들입니다.
- waittime
- 연결 사용 불가능 이유 코드를 리턴하기 전에 연결이 완료될 때까지 기다리는 시간(초)이 포함된 정수입니다. 값이 0(영)이면 제한시간이 없고 API가 무기한 대기함을 나타냅니다. waittime 매개변수는 연결 풀에서 WOLA 연결을 확보하는 프로세스에만 적용됩니다. 연결이 확보되면 무제한 대기 시간으로 서버로부터 요청을 수신하는 데 사용됩니다.
- requestservicename
- 서비스의 이름이 포함된 최대 256바이트의 EBCDIC 문자열입니다. 이 매개변수는 Liberty 서버 애플리케이션에 의해 InteractionSpec 인터페이스에서 지정된 대상 서비스의 이름입니다. * 값은 현재 레지스터 이름 아래에서 도달하는 모든 서비스 이름에 대한 서버로 설정됨을 나타냅니다.
- requestservicenamel
- 시작할 서비스 이름의 길이가 포함된 정수입니다(서비스 이름이 널로 종료되는 경우에는 0(영)).
- rc
- 이 호출의 성공 또는 실패를 표시하는 정수 리턴 코드입니다.
- rsn
- 이 호출의 실패 이유를 설명하는 정수 이유 코드입니다.
- rv
- 수신되어 호출자 응답 영역에 복사된 메시지 데이터의 크기가 포함된 32비트 정수 리턴값입니다.
- 이 호출에서 지정한 Liberty 서버가 시작되었으며 로컬 어댑터에 대한 지원이 사용되는지 확인하십시오.
- 이 API를 사용하기 전에 일치하는 이름을 가진 현재 주소 공간에서 등록 API 호출이 완료되었는지 확인하십시오.
- API 호출자 입력 requestdatalen 매개변수가 실제 메시지 응답보다 큰 경우에는 리턴 코드에 0(영)이 포함되어 있고 실제 메시지 길이가 리턴값에 제공됩니다.
- 리턴된 연결 핸들은 응답 전송 API를 사용하여 이 호스트 서비스 호출에 대한 응답에 제공되어야 합니다.
리턴 코드 | 이유 코드 | 설명 | 조치 |
---|---|---|---|
0 | - | 성공 | |
4 | - | 경고 - 이유 코드 참조 | |
8 | - | 오류 - 이유 코드 참조 | |
8 | 레지스터 이름 토큰이 이미 있습니다. | 전달된 레지스터 이름이 올바른지 확인하십시오. | |
10 | 연결 핸들이 해제된 상태에 있습니다. | 올바른 연결 핸들이 전달되었는지 확인하십시오. | |
12 | 연결 핸들이 등록 이름이 있는 연결에 있지 않습니다. | 프로그램을 정정하고 다시 호출해 보십시오. | |
16 | 요청 서비스 이름 길이가 올바르지 않습니다. | 프로그램을 정정하고 다시 호출해 보십시오. | |
18 | 응답 길이가 시스템 제한을 초과했습니다. | 메시지 크기가 Liberty 서버 크기에서 지원할 수 있는 것보다 큽니다. 크기가 올바른지 확인하십시오. 크기가 올바른 경우에는 Liberty 서버 크기가 메시지 크기를 수용할 수 있을 정도의 충분한 크기인지 확인하십시오. | |
40 | 로컬 통신 오류가 발생했습니다. | Liberty 서버 로그에서 로컬 통신 오류 메시지를 확인하십시오. | |
46 | 로컬 통신 요청 전송에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
48 | 로컬 통신 요청 읽기에서 오류가 발생했습니다. | Liberty 서버 로그를 확인하여 오류를 판별하십시오. | |
72 | 응답 길이 입력 매개변수가 응답 메시지를 포함할 수 있을 정도로 크지 않습니다. | 메시지의 일부만 리턴됩니다. 나머지는 제거됩니다. 메시지 응답의 크기에 대한 리턴값을 참조하십시오. | |
98 | 제공된 요청 버퍼의 시작에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
100 | 제공된 요청 버퍼의 끝에 액세스할 수 없습니다. | 제공된 요청 버퍼 주소 및 길이가 올바른지 확인하십시오. | |
224 |
완전하지 않은 등록이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록 해제하고 BBOA1REG 서비스를 사용하여 다시 등록하십시오. | |
226 |
완전하지 않은 연결 핸들이 발견되었습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1SRV 서비스를 사용하여 요청을 다시 시도하십시오. | |
480 |
클라이언트가 호스트 함수를 호출할 수 있는 권한을 부여받을 수 없습니다. | 이 상황은 예상되지 않은 것입니다. 대상 서버가 실행 중인지와 zosLocalAdapters 서비스가 서버 인스턴스에 구성되어 있는지 확인하십시오. | |
482 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
483 |
서버를 다시 시작한 후에 클라이언트가 대상 서버 인스턴스에 다시 연결할 수 없습니다. | 이 상황은 예상되지 않은 것입니다. BBOA1URG 서비스를 사용하여 등록을 제거하고 BBOA1REG 서비스를 사용하여 새로 작성하십시오. | |
12 | 10 | API가 선택된 최적화 로컬 어댑터 그룹을 찾을 수 없습니다. | Liberty 서버 및 대상 서버가 시작되었는지 확인하고 최적화 로컬 어댑터 지원이 활성인지 확인한 후에 다시 시도하십시오. |
14 |
요청된 Liberty 서버에 대한 권한이 사용자 ID에 부여되지 않았습니다. | 요청된 Liberty 서버의 CBIND SAF 클래스에 대한 권한이 사용자 ID에 부여되었는지 확인하십시오. | |
86 | Liberty 서버 마스터 BGVT를 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되지 않았습니다. 최적화 로컬 어댑터 클라이언트 프로세스를 시작하기 전에 서버가 시작되었는지 확인하십시오. | |
88 | Liberty 서버 마스터 클라이언트 스텁 테이블을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. | |
90 | Liberty 서버 최적화 로컬 어댑터에 대한 마스터 클라이언트 스텁 테이블 슬롯을 찾을 수 없습니다. | Liberty 서버가 현재 z/OS 운영 체제 이미지에서 시작되었지만, 해당 서버가 최적화 로컬 어댑터 클라이언트 스텁 테이블이 지원되는 레벨에서 실행되지 않습니다. 이 z/OS 시스템에서 Liberty 서버와 호환되는 최적화 로컬 어댑터 스텁의 레벨로 애플리케이션이 실행 중인지 확인하십시오. |
JCA(Java EE Connector Architecture) 어댑터 API
- ConnectionSpec
- InteractionSpec
- 레코드 I/O
ConnectionSpec
연결 팩토리로부터 연결을 확보할 때 연결 특정 매개변수를 전달하려면 ConnectionSpec 인터페이스를 사용하십시오. 이 매개변수는 연결 팩토리에서 정의되는 동일한 이름의 매개변수를 대체할 수 있습니다. 최적화 로컬 어댑터의 경우 이 인터페이스는 com.ibm.websphere.ola.ConnectionSpecImpl 클래스로 구현됩니다. ConnectionSpecImpl 클래스를 사용하면 통신할 최적화 로컬 어댑터 레지스터 이름을 지정할 수 있습니다.CICS 링크 서버와 통신할 때 ConnectionSpecImpl 클래스는 링크 서버가 사용하는 값을 대체하는 데 사용할 수 있는 메소드를 제공합니다. 예를 들어, 링크 서버 호출 트랜잭션의 4자 트랜잭션 ID(BBO#)를 지정할 수 있습니다. 요청 데이터를 CICS COMMAREA 오브젝트와 CONTAINER 오브젝트 중 어디에 저장할지도 지정할 수 있습니다.
ConnectionSpecImpl 클래스의 메소드에 대한 정보는 생성된 API 문서를 참조하십시오.
InteractionSpec
연결되는 자원 어댑터 인스턴스에 대한 요청 특정 매개변수를 지정하려면 InteractionSpec 인터페이스를 사용하십시오. 최적화 로컬 어댑터의 경우 이 인터페이스는 com.ibm.websphere.ola.InteractionSpecImpl 클래스로 구현됩니다. InteractionSpecImpl 클래스를 사용하여 애플리케이션이 통신할 서비스 이름을 설정할 수 있습니다. 이 서비스 이름은 연결이 확보될 때 지정된 레지스터 이름에 의해 호스팅됩니다.InteractionSpecImpl 클래스의 메소드에 대한 정보는 생성된 API 문서를 참조하십시오.
레코드 I/O
연결되는 자원 어댑터 인스턴스에 요청 및 응답 데이터를 전달하려면 레코드 인터페이스를 사용하십시오. 최적화 로컬 어댑터는 IndexedRecord와 MappedRecord라는 두 가지 레코드 인터페이스 구현을 제공합니다. 애플리케이션이 사용하는 JCA 연결 인스턴스로부터 RecordFactory에 대한 참조를 확보하여 두 구현을 모두 작성할 수 있습니다.데이터를 일괄처리 또는 UNIX System Services 프로그램에 전달하거나 COMMAREA 또는 단일 CONTAINER 오브젝트를 사용하여 CICS와 통신하는 경우 IndexedRecord 오브젝트를 사용하십시오. 바이트 배열(byte[])을 IndexRecord 오브젝트에 추가하여 요청에서 프로그램이 전송하는 데이터를 나타내십시오. 응답도 IndexedRecord 오브젝트에 수신됩니다. IndexedRecord 오브젝트에서 첫 번째 항목을 검색한 후 이를 바이트 배열에 캐스트하여 응답 데이터를 얻을 수 있습니다.
데이터를 여러 CONTAINER 오브젝트의 CICS에 전달하는 경우 MappedRecord 오브젝트를 사용하십시오. MappedRecord 오브젝트에는 맵 오브젝트가 저장하는 것과 비슷한 이름-값 쌍이 포함되어 있습니다. 이 이름-값 쌍에서 이름은 데이터가 전송되는 컨테이너의 이름이고 값은 바이트 배열(byte[])로 지정된 실제 데이터입니다. MappedRecord 오브젝트를 사용하여 요청을 전송하면 응답도 MappedRecord 오브젝트를 사용하여 다시 전송됩니다. 응답에는 응답 데이터 및 연관된 데이터가 포함된 각 컨테이너의 이름이 포함되어 있습니다.