免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4017 | 回复: 14
打印 上一主题 下一主题

谁会用Cobol调用MQSeries [复制链接]

ck2000 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-11 17:24 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2005-07-12 09:16 |只看该作者

谁会用Cobol调用MQSeries

你想要哪方面的?? GET 还是PUT?[/code]
ck2000 该用户已被删除
3 [报告]
发表于 2005-07-12 11:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2005-07-12 13:48 |只看该作者

谁会用Cobol调用MQSeries

这个几句话说不清的,需要培训一下!
ck2000 该用户已被删除
5 [报告]
发表于 2005-07-12 15:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2005-07-12 15:09 |只看该作者

谁会用Cobol调用MQSeries


  1. PROCESS             GRAPHIC.
  2. IDENTIFICATION      DIVISION.
  3. PROGRAM-ID.         GETMQINF.
  4. *****************************************************
  5.   EJECT                                                           
  6. *****************************************************
  7.   ENVIRONMENT         DIVISION.                                   
  8. *****************************************************
  9. DATA                DIVISION.                                   
  10. *****************************************************
  11. *****************************************************
  12. WORKING-STORAGE     SECTION.                                    
  13. *****************************************************
  14. *    RETURN CODE                                                
  15. 01  RETCD PIC X(7).                                             
  16. 01  MKPARM.                                                     
  17. *     作业别代码                                                
  18.      03  MKJOBID PIC X(13).                                      
  19. *     MQ-MGR                                               
  20.      03  MKQMGR PIC X(10).                                       
  21. *     MQ-名称                                                
  22.      03  MKQNAME PIC X(48).                                      
  23. *01  REPLY      PIC X(1).                                       
  24. *****************************************************
  25. LINKAGE             SECTION.                                    
  26. *****************************************************
  27. *     作业别代码 (INPUT PARM)                                    
  28. 01 LINK-JOBID          PIC X(13).                              
  29. 01 LINK-OUT-RETCD      PIC X(7).                                
  30. 01 LINK-OUT-PARM.                                               
  31. *     作业别代码                                                
  32.       03  OUT-JOBID      PIC X(13).                           
  33. *     MQ-MGR                                            
  34.       03  OUT-QMGR       PIC X(10).                           
  35. *     MQ-名称                                             
  36.       03  OUT-QNAME      PIC X(48).                           
  37. *****************************************************
  38.   PROCEDURE              DIVISION    USING   LINK-JOBID        
  39.                                              LINK-OUT-RETCD   
  40.                                              LINK-OUT-PARM.   
  41. *****************************************************
  42.       MOVE               SPACE       TO      MKPARM            
  43.                                              LINK-OUT-RETCD   
  44.                                              LINK-OUT-PARM.   
  45.       MOVE               LINK-JOBID  TO      MKJOBID.         
  46.       CALL               "DCCDXFK"   USING   RETCD            
  47.                                              MKPARM.           
  48.       MOVE               RETCD       TO      LINK-OUT-RETCD.   
  49.       MOVE               MKPARM      TO      LINK-OUT-PARM.   
  50. *     返回码                                                  
  51. *    DISPLAY  LINK-OUT-RETCD.                                 
  52. *     作业别代码                                             
  53. *    DISPLAY  OUT-JOBID.                                      
  54. *     MQ-MGR                                            
  55. *    DISPLAY  OUT-QMGR.                                       
  56. *     MQ-名称                       
  57. *    DISPLAY  OUT-QNAME.               
  58. *    ACCEPT   REPLY.                  
复制代码
ck2000 该用户已被删除
7 [报告]
发表于 2005-07-19 11:51 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2005-07-19 17:15 |只看该作者

谁会用Cobol调用MQSeries


  1. 0001.00        IDENTIFICATION DIVISION.                                       
  2. 0002.00       ****************************************************************
  3. 0003.00       * Program name: MQPUT001                                       *
  4. 0004.00       *                                                              *
  5. 0005.00       * Description: COBOL SUB PROGRAM THAT PUT MESSAGE TO A MESSAGE *
  6. 0006.00       *              QUEUE.                                          *
  7. 0007.00       *                                                               
  8. 0008.00       * WRITE BY JASON 1999/08/09                                    *
  9. 0008.01       * CHANGED    1:  2002/01/20         修改档案架构 DCAOCPP       *
  10. 0009.00       *                                                              *
  11. 0010.00       ****************************************************************
  12. 0011.00       *                                                              *
  13. 0012.00       * Function:                                                    *
  14. 0013.00       *                                                              *
  15. 0014.00       *    Program logic:                                            *
  16. 0015.00       *         1.MQOPEN target queue for OUTPUT                     *
  17. 0016.00       *         2.MQPUT message with text to target queue            *
  18. 0017.00       *         3.MQCLOSE target queue                               *
  19. 0018.00       *                                                              *
  20. 0019.00       ****************************************************************
  21. 0020.00       *   AMQ0PUT4 has 3 parameter                                   *
  22. 0021.00       *         1.NAME OF TARGET QUEUE(I)                            *
  23. 0022.00       *         2.BUFFER STARE THE DATA TO BE PUT INTO QUEUE(I)      *
  24. 0023.00       *         3.DATA-LENGTH(I)  LENGTH OF THE  MESSAGE TO BE PUT   *
  25. 0024.00       *         4.RETURN CODE                                        *
  26. 0025.00       *           --->;"Y":PUT MESSAGE OK.                              
  27. 0026.00       *           --->;"N":PUT MESSAGE ERROR.                           
  28. 0027.00       *                                                               
  29. 0028.00       *****************************************************************
  30. 0029.00       * 使用说明                                                      
  31. 0030.00       *         将作业别写到 JOD-ID OF MSG-HEAD  IN  LK-BUFFER         
  32. 0031.00       *         资料内容在MSG-BODY中                         
  33. 0032.00       *         资料长度放在 LK-DATA-LENGTH 中(不包括 MESSAGE HEAD)   
  34. 0033.00       *         程序根据作业别自动获取使用的 MESSAGE QUEUE  名称,     
  35. 0034.00       *         把相关信息自动写入 MESSAGE HEAD                        
  36. 0035.00       *         并将该 MESSAGE PUT  到对应的 MESSAGE QUEUE 中         
  37. 0036.00       ****************************************************************
  38. 0037.00        PROGRAM-ID. MQPUT001.                                          
  39. 0038.00                                                                        
  40. 0039.00       ****************************************************************
  41. 0040.00        DATA DIVISION.                                                  
  42. 0041.00       ****************************************************************
  43. 0042.00        WORKING-STORAGE SECTION.                                       
  44. 0043.00       ****************************************************************
  45. 0044.00       *                                                               
  46. 0045.00       **  Declare MQI structures needed                              
  47. 0046.00       * MQI named constants                                          
  48. 0047.00        01 MY-MQ-CONSTANTS.                                            
  49. 0048.00           COPY CMQV.                                                  
  50. 0049.00       * Object Descriptor                                             
  51. 0050.00        01 OBJECT-DESCRIPTOR.                                          
  52. 0051.00           COPY CMQODV.                                                
  53. 0052.00       * Message Descriptor                                            
  54. 0053.00        01 MESSAGE-DESCRIPTOR.                                         
  55. 0054.00           COPY CMQMDV.                                                
  56. 0055.00       * Put message options                                          
  57. 0056.00        01 PMOPTIONS.                                                  
  58. 0057.00           COPY CMQPMOV.                                               
  59. 0058.00       ** note, sample uses defaults where it can                     
  60. 0059.00        01 HCONN                      PIC S9(9) BINARY.               
  61. 0060.00        01 Q-HANDLE                   PIC S9(9) BINARY.               
  62. 0061.00        01 OPTIONS                    PIC S9(9) BINARY.               
  63. 0062.00        01 COMPLETION-CODE            PIC S9(9) BINARY.               
  64. 0063.00        01 OPEN-CODE                  PIC S9(9) BINARY.               
  65. 0064.00        01 REASON                     PIC S9(9) BINARY.               
  66. 0065.00        01 WK-PGM-ID                  PIC X(10) VALUE  "MQPUT001".     
  67. 0066.00        01 WK-MSG-HEAD-LEN            PIC S9(9) BINARY VALUE 256.      
  68. 0067.00        01 WK-MSG-LENGTH              PIC S9(9) BINARY.               
  69. 0068.00                                                                       
  70. 0069.00       * FOR GET QUEUE NAME BY JOB-ID                                 
  71. 0070.00        01 WK-JOBID          PIC X(13).                                
  72. 0071.00        01 WK-OUT-RETCD      PIC X(7).                                 
  73. 0072.00        01 WK-OUT-PARM.                                                
  74. 0073.00       *     作业别代码                                                
  75. 0074.00            03  OUT-JOBID      PIC X(13).                              
  76. 0077.00       *     MQ-MGR                                             
  77. 0078.00            03  OUT-QMGR       PIC X(10).                              
  78. 0079.00       *     MQ-名称                                                
  79. 0080.00            03  OUT-QNAME      PIC X(48).                              
  80. 0093.00                                                                       
  81. 0094.00       ****************************************************************
  82. 0095.00        LINKAGE SECTION.                                               
  83. 0096.00       ****************************************************************
  84. 0098.00        01 LK-BUFFER                  PIC X(4096).                     
  85. 0099.00        01 LK-BUFFER-DETAIL  REDEFINES  LK-BUFFER.                     
  86. 0100.00           03 MSG-HEAD                PIC X(256).                       
  87. 0101.00           03 MSG-HEAD-DETAIL   REDEFINES   MSG-HEAD.                  
  88. 0101.01       *CHANGED                                                         
  89. 0102.00              COPY   MQCPY001   OF   FURCOPY.                           
  90. 0103.00           03 MSG-BODY                PIC X(3840).                     
  91. 0104.00                                                                        
  92. 0105.00        01 LK-DATA-LENGTH             PIC S9(9) BINARY.                 
  93. 0106.00        01 LK-RTNCD                   PIC X(1).                        
  94. 0107.00                                                                        
  95. 0108.00       ****************************************************************
  96. 0109.00        PROCEDURE DIVISION USING                                       
  97. 0110.00                           LK-BUFFER                                    
  98. 0111.00                           LK-DATA-LENGTH                              
  99. 0112.00                           LK-RTNCD.                                    
  100. 0113.00                                                                        
  101. 0114.00        M010-INIT.                                                      
  102. 0115.00            MOVE    "Y"   TO   LK-RTNCD.                                
  103. 0116.00            PERFORM  S-040-GET-MQ-INFO   THRU S-040-EXIT.               
  104. 0117.00            PERFORM  S-010-OPEN   THRU   S-010-EXIT.                  
  105. 0118.00        M020-MAIN.                                                     
  106. 0119.00            PERFORM  S-020-PUT    THRU   S-020-EXIT.                  
  107. 0120.00        M030-FINISH.                                                   
  108. 0121.00            PERFORM  S-030-CLOSE  THRU   S-030-EXIT.                  
  109. 0122.00        M040-EXIT.                                                     
  110. 0123.00            EXIT PROGRAM.                                             
  111. 0124.00            STOP RUN.                                                  
  112. 0125.00                                                                       
  113. 0126.00       ****************************************************************
  114. 0127.00       *  OPEN  QMGR AND QUEUE                                        *
  115. 0128.00       ****************************************************************
  116. 0129.00        S-010-OPEN.                                                   
  117. 0130.00       ****************************************************************
  118. 0131.00       *   MQCONN is implicit on OS/400; use the default              *
  119. 0132.00       *   connection handle for all MQI calls                        *
  120. 0133.00       ****************************************************************
  121. 0134.00            MOVE MQHC-DEF-HCONN to HCONN.                              
  122. 0135.00       ****************************************************************
  123. 0136.00       *   Open the target message queue for output (and fail if      *
  124. 0137.00       *   MQM is quiescing)                                          *
  125. 0138.00       ****************************************************************
  126. 0139.00            MOVE MESSAGE-QUEUE OF MSG-HEAD-DETAIL TO MQOD-OBJECTNAME.   
  127. 0140.00            ADD MQOO-OUTPUT MQOO-FAIL-IF-QUIESCING                     
  128. 0141.00                      GIVING OPTIONS.                                   
  129. 0142.00            CALL "MQOPEN"  USING                                       
  130. 0143.00                  HCONN, OBJECT-DESCRIPTOR,                             
  131. 0144.00                  OPTIONS, Q-HANDLE,                                    
  132. 0145.00                  OPEN-CODE, REASON.                                    
  133. 0146.00                                                                        
  134. 0147.00       *      report reason, if any; stop if failed                     
  135. 0148.00            IF REASON IS NOT EQUAL TO MQRC-NONE                        
  136. 0149.00                  DISPLAY "MQOPEN ended with reason code " REASON      
  137. 0150.00                  DISPLAY "QNAME-->;" MQOD-OBJECTNAME                    
  138. 0151.00                  DISPLAY "LK-BUFFER-->;" LK-BUFFER                     
  139. 0152.00            END-IF.                                                     
  140. 0153.00                                                                        
  141. 0154.00            IF OPEN-CODE IS EQUAL TO MQCC-FAILED                        
  142. 0155.00                  MOVE  "E"  TO  LK-RTNCD                              
  143. 0156.00                  DISPLAY "unable to open server queue for output"      
  144. 0157.00                  DISPLAY "QNAME-->;" MQOD-OBJECTNAME                    
  145. 0158.00                  DISPLAY "LK-BUFFER-->;" LK-BUFFER                     
  146. 0159.00                  GO TO  M040-EXIT                                      
  147. 0160.00            END-IF.                                                     
  148. 0161.00        S-010-EXIT.                                                     
  149. 0162.00                                                                        
  150. 0163.00       *****************************************************************
  151. 0164.00       *  PUT   MESSAGE   TO   QUEUE                                   *
  152. 0165.00       *****************************************************************
  153. 0166.00        S-020-PUT.                                                      
  154. 0167.00            MOVE  LK-DATA-LENGTH   TO  WK-MSG-LENGTH.                  
  155. 0168.00            ADD   WK-MSG-HEAD-LEN  TO  WK-MSG-LENGTH.                  
  156. 0169.00       *    CALL    "ZYMDSYS"       USING   SEND-DATE                  
  157. 0170.00       *                                    WK-PGM-ID.                  
  158. 0171.00       *    ACCEPT  SEND-TIME   FROM  TIME.                             
  159. 0172.00            MOVE OPEN-CODE TO COMPLETION-CODE.                          
  160. 0173.00       * Set format to string so that the msg can be converted         
  161. 0174.00            MOVE MQFMT-NONE   to MQMD-FORMAT                           
  162. 0175.00            CALL "MQPUT"  USING                                         
  163. 0176.00                  HCONN, Q-HANDLE,                                      
  164. 0177.00                  MESSAGE-DESCRIPTOR, PMOPTIONS,                        
  165. 0178.00                  WK-MSG-LENGTH, LK-BUFFER,                             
  166. 0179.00                  COMPLETION-CODE, REASON.                              
  167. 0180.00       *      report reason, if any                                    
  168. 0181.00            IF REASON IS NOT EQUAL TO MQRC-NONE                        
  169. 0182.00                  DISPLAY "MQPUT ended with reason code " REASON        
  170. 0183.00                  MOVE   "E"   TO   LK-RTNCD                           
  171. 0184.00            END-IF.                                                     
  172. 0185.00                                                                        
  173. 0186.00        S-020-EXIT.                                                     
  174. 0187.00                                                                        
  175. 0188.00       *****************************************************************
  176. 0189.00       *  CLOSE QUEUE                                                  *
  177. 0190.00       *****************************************************************
  178. 0191.00        S-030-CLOSE.                                                   
  179. 0192.00            MOVE MQCO-NONE TO OPTIONS.                                 
  180. 0193.00            CALL "MQCLOSE"  USING                                       
  181. 0194.00                  HCONN, Q-HANDLE, OPTIONS,                             
  182. 0195.00                  COMPLETION-CODE, REASON.                              
  183. 0196.00                                                                        
  184. 0197.00            IF REASON IS NOT EQUAL TO MQRC-NONE                        
  185. 0198.00                  DISPLAY "MQCLOSE ended with reason code " REASON      
  186. 0199.00            END-IF.                                                     
  187. 0200.00        S-030-EXIT.                                                     
  188. 0201.00       *****************************************************************
  189. 0202.00       * 以作业别获取MQ资料,并写入MESSAGE HEAD           
  190. 0203.00       *****************************************************************
  191. 0204.00        S-040-GET-MQ-INFO.                                             
  192. 0205.00       * 作业别代码                                                     
  193. 0206.00            MOVE  JOB-ID OF MSG-HEAD-DETAIL   TO   WK-JOBID.            
  194. 0207.00       * 以作业别获取 MESSAGE QUEUE  信息                              
  195. 0207.01       *CHANGED                                                         
  196. 0208.00            CALL  "GETMQINF"      USING  WK-JOBID                       
  197. 0209.00                                         WK-OUT-RETCD                  
  198. 0210.00                                         WK-OUT-PARM.                  
  199. 0211.00            CANCEL "GETMQINF".                                          
  200. 0211.01       *    CALL  "GETMQINF1"     USING  WK-JOBID                       
  201. 0211.02       *                                 WK-OUT-RETCD                  
  202. 0211.03       *                                 WK-OUT-PARM.                  
  203. 0211.04       *    CANCEL "GETMQINF1".                                         
  204. 0212.00            IF  NOT  WK-OUT-RETCD = SPACES                              
  205. 0213.00                DISPLAY  " 以作业别获取 MESSAGE QUEUE 信息失败 "        
  206. 0214.00                MOVE  "E"   TO  LK-RTNCD                                
  207. 0215.00                GO    TO   M040-EXIT                                    
  208. 0216.00            END-IF.                                                     
  209. 0217.00       * 将MQ信息写入MESSAGE HEAD                       
  210. 0218.00       *     作业别代码                                               
  211. 0219.00            MOVE  OUT-JOBID  TO     JOB-ID     OF MSG-HEAD-DETAIL.   
  212. 0222.00       *     MQ-MGR                                             
  213. 0223.00            MOVE  OUT-QMGR   TO     SOURCE-QMGR OF MSG-HEAD-DETAIL.   
  214. 0224.00       *     MQ-名称                                               
  215. 0225.00            MOVE  OUT-QNAME  TO     MESSAGE-QUEUE  OF MSG-HEAD-DETAIL.
  216. 0238.00        S-040-EXIT.                                                   
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-07-19 17:43 |只看该作者

谁会用Cobol调用MQSeries

其实应该看看SAMPLE程序,国鹏的干扰部分太多,容易混淆视听!

论坛徽章:
0
10 [报告]
发表于 2005-07-19 17:58 |只看该作者

谁会用Cobol调用MQSeries

恩 如果装了SAMPLE LIB的话可以看看里面的SRC

在QMQMSAMP下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP