ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » Cobol copybook

Post new topic  Reply to topic
 Cobol copybook « View previous topic :: View next topic » 
Author Message
gobi_nathan
PostPosted: Wed Mar 05, 2003 3:48 am    Post subject: Cobol copybook Reply with quote

Acolyte

Joined: 08 Jan 2003
Posts: 69

Hi All,

Can anyone tell me How to communicate between the Mainframe system and java application using Cobol copybook message.

Mainframe application uses cobol copybook message to receive the message from Java.

I want to know,how the Java application put the message in cobol copybook message format.

What are the steps to be done to pass the message in cobol copybook format.

-Gobi
Back to top
View user's profile Send private message
clindsey
PostPosted: Wed Mar 05, 2003 7:45 am    Post subject: Reply with quote

Knight

Joined: 12 Jul 2002
Posts: 586
Location: Dallas, Tx

You have to map to writeInt, writeString, etc methods. Here is an example based on the IMSBridge header. It shows the mapping from a copy book and c structure:

Code:


         /*********************************************************/
         /* Write the fields of the MQIIH header to the message   */
         /* stream. The commented lines document the MQIIH        */
         /* structure found in cmqc.h and cmqiihv.cpy             */
         /*********************************************************/

         //MQCHAR4   StrucId;         /* Structure identifier                     */
         //MQLONG    Version;         /* Structure version number                 */
         //MQLONG    StrucLength;     /* Length of MQIIH structure                */
         //MQLONG    Encoding;        /* Reserved                                 */
         //MQLONG    CodedCharSetId;  /* Reserved                                 */
         //MQCHAR8   Format;          /* MQ format name of data that follows MQIIH*/
         //MQLONG    Flags;           /* Flags                                    */
         //MQCHAR8   LTermOverride;   /* Logical terminal override                */
         //MQCHAR8   MFSMapName;      /* Message format services map name         */
         //MQCHAR8   ReplyToFormat;   /* MQ format name of reply message          */
         //MQCHAR8   Authenticator;   /* RACF password or passticket              */
         //MQBYTE16  TranInstanceId;  /* Transaction instance identifier          */
         //MQCHAR    TranState;       /* Transaction state                        */
         //MQCHAR    CommitMode;      /* Commit mode                              */
         //MQCHAR    SecurityScope;   /* Security scope                           */
         //MQCHAR    Reserved;        /* Reserved                                 */


         //MQIIH-STRUCID        PIC X(4) VALUE 'IIH '.      ** Structure version number
         //MQIIH-VERSION        PIC S9(9) BINARY VALUE 1.   ** Length of MQIIH structure
         //MQIIH-STRUCLENGTH    PIC S9(9) BINARY VALUE 84.  ** Structure length
         //MQIIH-ENCODING       PIC S9(9) BINARY VALUE 0.   ** Reserved
         //MQIIH-CODEDCHARSETID PIC S9(9) BINARY VALUE 0.   ** Reserved
         //MQIIH-FORMAT         PIC X(8) VALUE SPACES.      ** MQ format name of data that follows MQIIH
         //MQIIH-FLAGS          PIC S9(9) BINARY VALUE 0.   ** Flags
         //MQIIH-LTERMOVERRIDE  PIC X(8) VALUE SPACES.      ** Logical terminal override
         //MQIIH-MFSMAPNAME     PIC X(8) VALUE SPACES.      ** Message format services map name
         //MQIIH-REPLYTOFORMAT  PIC X(8) VALUE SPACES.      ** MQ format name of reply message
         //MQIIH-AUTHENTICATOR  PIC X(8) VALUE SPACES.      ** RACF password or passticket
         //MQIIH-TRANINSTANCEID PIC X(16) VALUE LOW-VALUES. ** Transaction instance identifier
         //MQIIH-TRANSTATE      PIC X VALUE ' '.            ** Transaction state
         //MQIIH-COMMITMODE     PIC X VALUE '0'.            ** Commit mode
         //MQIIH-SECURITYSCOPE  PIC X VALUE 'C'.            ** Security scope
         //MQIIH-RESERVED       PIC X VALUE SPACES.         ** Reserved

         msg.writeString("IIH ");                         // MQIIH_STRUCT_ID
         msg.writeInt(1);                                 // MQIIH_VERSION_1
         msg.writeInt(84);                                // MQIIH_LENGTH_1
         msg.writeInt(0);                                 // 4 byte reserved 
         msg.writeInt(0);                                 // 4 byte reserved
         msg.writeString("MQIMSVS ");                     // MQFMT_IMS_VAR_STRING
         msg.writeInt(0);                                 // MQIIH_NONE
         msg.writeString("MASTER  ");                     // 8 byte ltermoverride
         msg.writeString("MODU03  ");                     // 8 byte mfsmapname
         msg.writeString("MQIMSVS ");                     // MQFMT_IMS_VAR_STRING
         msg.writeString("        ");                     // 8 byte authenticator
         msg.writeString("0000000000000000");             // 16 byte transid
         msg.writeString(" ");                            // MQITS_NOT_IN_CONVERSATION
         msg.writeString("0");                            // MQICM_COMMIT_THEN_SEND
         msg.writeString("C");                            // MQIIS_CHECK
         msg.writeString(" ");                            // 1 byte reserved


This is extracted from a piece of sample code. You can get the entire code sample from http://www.developer.ibm.com/tech/sample_code_handler.pl?action=display&object=/tech/sample_code/mq/imsbridge.java
or for a jms version
http://www.developer.ibm.com/tech/sample_code_handler.pl?action=display&object=/tech/sample_code/mq/JmsIMSBridge.java

Hope this helps,
Charlie
Back to top
View user's profile Send private message
gobi_nathan
PostPosted: Wed Mar 05, 2003 8:03 pm    Post subject: Reply with quote

Acolyte

Joined: 08 Jan 2003
Posts: 69

Hi clindsey ,

Thanks for your mail.
In following to this mail,i want to know one more thing,I am new to the cobol.So,let me clear my doubts.

How the response messages are normally send back to cobol copybook format from java application.
Are the data are separated using some delimitter value.Or is there any other way so that the cobol application will understand easily.

-Gobi
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Mar 06, 2003 7:12 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

A Cobol copybook is essential a description of the raw bytes in the message buffer. It is analagous to a C structure. The copybook describes what segments of the bitstream should be interpreted as which type of data and what variable to put them into (as I understand it).

There is no delimiter between fields. The copybook explicitly says 'take the first 8 bits of this stream, and call them an int. take the next 256 bits of the stream, and call them a string, take the next 20 bits and call them a packed decimal' or some such.

So in order to build a message that will be interpreted successfully by a copybook, you have to write out each field element to the message bitstream in the same way that the copybook expects it. That's what clindsey meant when he said "You have to map to writeInt, writeString, etc methods. "

The process for doing this in Java is clearly illustrated by the example clindsey posted.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » Cobol copybook
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.