답변
메시지 대기열의 현재 내용이 아닌 메시지 파일에 저장된 메시지 정의를 정렬한다고 가정하고 있습니다. 데이터베이스 테이블 (예 : 파일)을 작성하여 메시지 설명을 수신 한 다음 해당 레코드로 원하는 것을 수행 할 수 있습니다.
일반적으로 DSPMSGD
을 인쇄 파일로 사용할 수 있습니다. 그러나 실제 파일이나 테이블을 만들고 파일에 DSPMSGD
명령의 출력을 무시합니다. 처음 세 레코드는 우리의 목적을 위해 휴지통이며 작업 파일의 CPYF
을 최종 파일로 사용하여 폐기합니다.
라이브러리를 최신 버전으로 설정하면 더 쉽게 작업 할 수 있습니다.
CHGCURLIB mylib
DDS에서 파일을 정의 할 수 있지만이를 SQL로 보여줍니다. 명령 줄로 돌아
CREATE TABLE qtemp/workfile
(x1 char(1),
msgid char(7),
sev char(2),
msgtxt char(132)
)
CREATE TABLE myfile
(msgid char(7),
sev char(2),
msgtxt char(132)
)
종료 SQL :
STRSQL
은 당신의 작업 파일 및 결과 파일을 만듭니다.
DSPMSGD
명령의 출력 파일을 작업 파일에 겹쳐 쓰고 데이터를 수집하십시오.
OVRDBF QPMSGD workfile
DSPMSGD RANGE(*FIRST *LAST) MSGF(some_msgf)
DETAIL(*BASIC) OUTPUT(*PRINT)
CPYF workfile myfile MBROPT(*replace)
FROMRCD(4) FMTOPT(*MAP *DROP)
이제 SQL로 돌아가서 노동의 성과를 볼 수 있습니다.
STRSQL
SELECT *
from myfile
order by msgtxt
메시지 스풀을 데이터베이스 파일에 덤프하는 것이 아니라 [QMHRTVM] (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/QMHRTVM.htm)을 사용하여 순차적으로 검색하는 것이 좋습니다 메시지는 내용을 테이블로 덤프합니다. –
예, API에서 제공하는 추가 입력란이 필요하고 API로 프로그래밍하는 것을 이해하면 더 나은 접근 방법이 될 수 있습니다. 질문자에 대해 더 많이 알지 못하고 질문을 보면서 나는이 경우 더 간단하고 빠른 접근이 더 적절할 수 있다고 느꼈다. – WarrenT
@kidzior - 정렬 된 메시지로 수행 할 작업에 대한 자세한 정보를 제공 할 수 있습니까? – WarrenT
본 적이 없습니다. 그들은 datetime 순서로 나타납니다. 나는 그들이 어쩌면 당신이 그것을 쿼리 할 수 어딘가에 실제 파일에 저장됩니다 확신하지만, 일반적으로 내 메시지를 최대한 빨리 지 웁니다.
대기열을 파일 (스풀 파일 없음)로 보낸 다음 정렬 할 수있는 옵션이 있음을 알게되었습니다. 따라서 AFAIK는 다른 방법이 될 수 없습니다. – kidzior