メッセージキューイングアクセス機能 TP1/Message Queue - Access 使用の手引
COBOL言語でのコーディング例を示します。
***************************************************** * MQ-ACCESS SAMPLE * ***************************************************** * IDENTIFICATION DIVISION. * PROGRAM-ID. MAIN. * ***************************************************** * INITIALIZE * ***************************************************** * DATA DIVISION. WORKING-STORAGE SECTION. * 01 MQ-MGRNAME PIC X(48) VALUE SPACES. 01 MQ-HCONN PIC S9(9) BINARY. 01 MQ-COMPCODE PIC S9(9) BINARY. 01 MQ-REASON PIC S9(9) BINARY. 01 MQ-HOBJ PIC S9(9) BINARY. 01 MQ-OPTIONS PIC S9(9) BINARY. 01 MQ-BUFFLEN PIC S9(9) BINARY. 01 MQ-DATALEN PIC S9(9) BINARY. 01 MQ-BUFFER PIC X(200) VALUE SPACE. * 01 PUT-DATA PIC X(33) VALUE '***** COBOL sample put data *****'. 01 QUEUENAME PIC X(48) VALUE 'dynq1 '. * 01 MQ-OBJECT-DESC. COPY CMQODV. * 01 MQ-MESSAGE-DESCRIPTOR. COPY CMQMDV. * 01 MQ-PUT-MESSAGE-OPTIONS. COPY CMQPMOV. * 01 MQ-GET-MESSAGE-OPTIONS. COPY CMQGMOV. * 01 MQ-BEGIN-OPTIONS. COPY CMQBOV. * 01 MQ-CONSTANTS. COPY CMQV SUPPRESS. * PROCEDURE DIVISION. * ***************************************************** * CONNECT TO THE QUEUE MANAGER * ***************************************************** * CALL 'MQCONN' USING MQ-MGRNAME MQ-HCONN MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQCONN FAILED. REASON CODE = ' MQ-REASON STOP RUN END-IF. * ***************************************************** * OPEN THE QUEUE * ***************************************************** * MOVE QUEUENAME TO MQOD-OBJECTNAME. * COMPUTE MQ-OPTIONS = MQOO-OUTPUT + MQOO-INPUT-AS-Q-DEF. * CALL 'MQOPEN' USING MQ-HCONN MQOD MQ-OPTIONS MQ-HOBJ MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQOPEN FAILED. REASON CODE = ' MQ-REASON GO TO PROG-END END-IF. * ***************************************************** * SET THE PUT MESSAGE OPTIONS * ***************************************************** * MOVE MQPMO-SYNCPOINT TO MQPMO-OPTIONS. MOVE 33 TO MQ-BUFFLEN. * MOVE PUT-DATA TO MQ-BUFFER. * ***************************************************** * SET THE GET MESSAGE OPTIONS * ***************************************************** * MOVE MQGMO-SYNCPOINT TO MQGMO-OPTIONS. * ***************************************************** * BEGIN LOCAL TRANSACTION * ***************************************************** * CALL 'MQBEGIN' USING MQ-HCONN MQ-BEGIN-OPTIONS MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQBEGIN FAILED. REASON CODE = ' MQ-REASON STOP RUN END-IF. * ***************************************************** * PUT THE MESSAGE * ***************************************************** * CALL 'MQPUT' USING MQ-HCONN MQ-HOBJ MQMD MQPMO MQ-BUFFLEN MQ-BUFFER MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQPUT FAILED. REASON CODE = ' MQ-REASON END-IF. * ***************************************************** * COMMIT LOCAL TRANSACTION * ***************************************************** * CALL 'MQCMIT' USING MQ-HCONN MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQCMIT FAILED. REASON CODE = ' MQ-REASON MQ-COMPCODE STOP RUN END-IF. * ***************************************************** * BEGIN LOCAL TRANSACTION * ***************************************************** * CALL 'MQBEGIN' USING MQ-HCONN MQ-BEGIN-OPTIONS MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQBEGIN FAILED. REASON CODE = ' MQ-REASON STOP RUN END-IF. * ***************************************************** * GET THE MESSAGE * ***************************************************** * CALL 'MQGET' USING MQ-HCONN MQ-HOBJ MQMD MQGMO MQ-BUFFLEN MQ-BUFFER MQ-DATALEN MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQGET FAILED. REASON CODE = ' MQ-REASON END-IF. * ***************************************************** * COMMIT LOCAL TRANSACTION * ***************************************************** * CALL 'MQCMIT' USING MQ-HCONN MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQCMIT FAILED. REASON CODE = ' MQ-REASON MQ-COMPCODE STOP RUN END-IF. * ***************************************************** * CLOSE THE QUEUE * ***************************************************** * MOVE MQCO-NONE TO MQ-OPTIONS. * CALL 'MQCLOSE' USING MQ-HCONN MQ-HOBJ MQ-OPTIONS MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQCLOSE FAILED. REASON CODE = ' MQ-REASON END-IF. * PROG-END. * ***************************************************** * DISCONNECT FROM THE QUEUE MANAGER * ***************************************************** * CALL 'MQDISC' USING MQ-HCONN MQ-COMPCODE MQ-REASON. IF MQ-COMPCODE NOT = MQCC-OK THEN DISPLAY 'MQTRN:MQDISC FAILED. REASON CODE = ' MQ-REASON END-IF. * STOP RUN. END PROGRAM MAIN.
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.
(C) Copyright International Business Machines Corporation 1994, 1999. All rights reserved.