Traffic Parrot for CA LISA / DevTest users

Part of Switching from another tool, the hub for every migration page.

« Back to documentation home

What carries over

If your mainframe virtual services were built in DevTest (formerly CA LISA) on its IBM MQ transport protocol and its copybook data protocol, the parts that took the work carry over: the copybooks, the knowledge of which program answers which request, the fields you match on and the replies you shaped. Traffic Parrot stands in for the IBM® MQ CICS bridge the same way, decoding the COMMAREA with your copybooks and answering on the reply-to queue, and the CICS over IBM® MQ page describes every piece this page maps to.

The biggest difference is what runs where. Traffic Parrot is one standalone server for your HTTP, JMS, native IBM® MQ, file and CICS bridge virtual services, with every virtual service a set of JSON mapping files you keep in version control and edit in a web user interface or with a text editor. It works at the queue, in place of the bridge, so there is no agent to install in the CICS region and no LPAR-side component to operate, and it is licensed by concurrent (floating) instances.

DevTest concepts and their Traffic Parrot equivalents

In DevTest In Traffic Parrot
A virtual service model (VSM) with its virtual service image (VSI), the recorded or authored request and response pairs the service answers from. A set of mapping files under ibm-mq-mappings, each a request matcher paired with a response, grouped into scenarios; recorded, imported or written by hand, and edited in the mapping editor or in version control.
The IBM MQ transport protocol: the queue manager, the request and reply queues, and how a reply is correlated to its request. A native IBM® MQ connection in ibm-mq-connections.json and a replay session on the bridge request queue. A bridge reply goes to the request's reply-to queue with its correlation id set to the request's message id, as the bridge itself does (Replying as the bridge).
The copybook data protocol: the folder of copybook file definitions and the map that picks a definition for each request. The copybooks directory and its programs.json, which names each program's request and reply copybook (Copybooks). The request's program name picks the copybook, so no mapping from payload to definition is written.
The data protocol's code page for the EBCDIC payload. codePage in the program's entry, IBM037 unless set.
Separate request-side and response-side copybook definitions. requestCopybook and replyCopybook, the same file when the program uses one layout both ways.
Request arguments parsed from the copybook fields, and the match style of each (exact, pattern, range) in the VSI. The JSON view of the request: the program name, every decoded field, the MQMD user and the MQCIH fields. Match them with matchesCicsField (equalTo, matches, greaterThan and the other comparisons) or with any JSON matcher, combined with and, or and not.
Response payloads that reference request arguments through property expressions, and magic strings and dates. Response templating with the cicsField helper for request fields and the other helpers for dates, random values, arithmetic and lookups, inside the reply's JSON.
The reply's completion and abend information. The MQCIH part of the reply: ReturnCode, CompCode, Reason and AbendCode.
Think time on a transaction. A fixed delay on the response.
Recording a CICS program through the in-region agent, or recording the MQ traffic with the transport protocol. A bridge conversation is not recorded. The mapping is written from the program's copybook fields, starting from the request view the log prints, and nothing is installed in the CICS region.
A payload no copybook describes, such as an acknowledgement, bypasses copybook processing (lisa.vse.copybook.unknown.passthrough). A program with no copybook is still matched, on its raw bytes; a request no mapping matches is listed on the IBM® MQ Requests page with the nearest mappings and the field each missed on, so the gap is visible.

One transaction, written for Traffic Parrot

Where a DevTest service would carry the program's copybook in its file definition folder, a request argument on the account number and a response payload with the balance, the same transaction in Traffic Parrot is the program's two copybooks, one index entry and one mapping file:

{
  "ACCTBAL": {
    "requestCopybook": "ACCTBAL-REQ.cpy",
    "replyCopybook": "ACCTBAL-RPY.cpy"
  }
}
{
  "request": {
    "destination": { "name": "CICS.BRIDGE.REQUEST", "type": "QUEUE" },
    "bodyMatcher": {
      "and": [
        { "matchesCicsField": { "field": "ProgramName", "equalTo": "ACCTBAL" } },
        { "matchesCicsField": { "field": "COMMAREA.ACCOUNT-NO", "matches": "[0-9]{10}" } }
      ]
    }
  },
  "response": {
    "destination": { "name": "CICS.BRIDGE.REPLY", "type": "QUEUE" },
    "text": "{\"MQCIH\": {\"ReturnCode\": 0, \"CompCode\": 0, \"Reason\": 0, \"AbendCode\": \"\"}, \"COMMAREA\": {\"ACCOUNT-NO\": \"{{cicsField request.body 'COMMAREA.ACCOUNT-NO'}}\", \"BALANCE\": 1500.25, \"STATUS-CODE\": \"OK\", \"RESERVED\": 0}}"
  }
}

The walkthrough on the IBM® MQ developer container runs exactly this transaction end to end, with the copybooks and a client that puts the request, so it is the quickest way to see the shape your migrated services will take.

Where the scope differs

  • Recording. DevTest can record a CICS program from inside CICS with its agent, or the MQ traffic with its transport protocol. Traffic Parrot does not record a bridge conversation: the mapping is written from the copybook fields, with the request view the log prints as the start, and nothing is installed on the mainframe.
  • CICS Transaction Gateway, IMS Connect and DRDA. ECI calls through CTG, IMS Connect and DRDA are not virtualized.
  • The IMS bridge. A request in the IMS format (MQFMT_IMS, with an MQIIH header) is not answered (the IMS bridge).
  • z/OS Connect and CICS Web Services are HTTP and SOAP, and are virtualized like any HTTP or SOAP service, with no bridge or copybook involved.

Where to go next