메시지 큐에서 읽고 메시지 큐에 쓰기
EGL add 문으로 메시지 큐에 쓰고 get next로 읽으십시오.
프로그램 중에 WebSphere® MQ 레코드로 EGL 문을 처음으로 사용할 때 EGL이 큐 관리자에 대한 활성 연결이 있는지 여부를 확인합니다. 없는 경우 새로 작성됩니다.
메시지 큐로부터 읽거나 쓴 후 변경사항을 커미트하거나 롤백해야 할 수 있습니다.
큐 관리자에 연결
EGL 프로그램에서 한 번에 하나의 큐 관리자에만 연결할 수 있습니다.
EGL이 메시지 큐 레코드와 연관된 시스템 자원 이름에서 지정된 큐 관리자 이름을 사용하여 프로그램의 첫 번째 add 또는 get next 문에서 큐 관리자에 자동으로 연결합니다. 큐 관리자 이름이 지정되지 않는 경우 큐 관리자는 시스템에 정의된 기본 큐 관리자입니다. 프로그램이 종료될 때 EGL이 큐 관리자에서 자동으로 연결이 끊어지며 아직 열려 있는 경우 열린 파일을 닫고 현재 작업 단위를 커미트합니다.
- 연결 큐 관리자 및 큐가 속한 큐 관리자가 다른 경우 프로그램에서 add 또는 get next 문을 실행하기 전에 연결하도록 MQCONN 함수 호출을 사용하십시오. 그렇지 않으면 add 또는 get next 문이 시스템 자원 이름에서 지정된 큐 관리자에 연결하려고 시도하는 대신 현재 열린 연결을 사용합니다.
- 프로그램 종료 전에 장기 실행 프로그램이 큐 관리자에서 연결을 끊도록 하려는 경우 MQCONN 함수 호출을 사용하여 초기 연결을 수행하고 MQDISC 함수 호출을 사용하여 모든 큐 액세스가 완료된 후에 연결을 끊으십시오.
MQCONN 및 MQDISC에 대한 자세한 정보는 직접 WebSphere MQ API 호출 사용의 내용을 참조하십시오. 워크스테이션 환경(Windows NT, OS/2, AIX®, Solaris, HP)에서 WebSphere MQ는 프로그램이 메시지 큐 관리자와 동일한 시스템에서 실행 중인지 여부 또는 프로그램이 서버 시스템의 관리자와 통신 중인 WebSphere MQ 클라이언트로 실행 중인지 여부에 따라 WebSphere MQ 프로그램에 대해 다른 런타임 라이브러리를 제공합니다. AIX 및 HP 시스템에서 스레드 및 비스레드 환경에 대해서도 다른 라이브러리가 제공됩니다.
큐에 메시지 쓰기
- 큐에 대한 연결을 설정합니다.
- 큐에 대한 연결을 엽니다.
- 큐에 메시지를 넣습니다.
- add 문을 사용하여 다른 큐 관리자의 큐에 메시지를 쓰는 중입니다.
- 이전에 add 문을 사용하여 큐에 메시지를 썼습니다.
EGL이 이후 add 문을 위해 연결 핸들을 저장합니다.
- get next 문을 사용하기 전에
- 다른 프로그램이 액세스하도록 큐를 해제하려는 경우
- 장기 실행 프로그램이 있고 큐에 대해 작업을 완료하여 큐를 해제하려는 경우
EGL이 프로그램 종료 시 큐에 대한 연결을 자동으로 닫습니다.
큐에서 메시지 읽기
- 큐 관리자가 아직 연결되지 않은 경우 큐 관리자에 연결합니다.
- 큐가 아직 열리지 않은 경우 큐를 엽니다.
- 큐에서 다음 메시지를 가져옵니다.
- get next 문을 사용하여 다른 큐 관리자의 큐에서 메시지를 읽는 중입니다.
- 이전에 get next 문을 사용하여 큐에서 메시지를 읽었습니다.
- add 문을 사용하기 전에
- 다른 프로그램이 액세스하도록 큐를 해제하려는 경우
- 장기 실행 프로그램이 있고 큐에 대해 작업을 완료하여 큐를 해제하려는 경우
EGL이 프로그램 종료 시 큐에 대한 연결을 자동으로 닫습니다.
메시지 커미트 또는 롤백
작업 단위를 정의하는 트랜잭션에서 메시지를 결합할 때 메시지를 그룹으로 커미트하거나 롤백할 수 있습니다. 작업 단위가 커미트되면 트랜잭션에 포함된 모든 사항이 완료됩니다. 작업 단위가 롤백되면 트랜잭션에 포함된 모든 사항이 제거됩니다.
- AS/400
- CICS® for MVS/ESA
- CICS for VSE/ESA
- IMS™
해당 트랜잭션 환경에서 메시지 큐 커미트 및 롤백이 2단계의 구문 커미트 프로토콜을 사용하는 DB2® 데이터베이스와 같은 복구 가능한 자원의 커미트 및 롤백으로 조정됩니다.
다른 환경에서 다른 관리자의 자원은 서로 독립적으로 커미트됩니다. sysLib.commit() 및 sysLib.rollback()을 사용하는 경우 EGL은 커미트 및 롤백에 대해 적절한 WebSphere MQ 호출을 자동으로 실행합니다.