Copying a business transaction definition between integration nodes

You can create a business transaction definition (BTD) on one integration node and then import it into a different integration node. This is a required step if you create a business transaction definition on a test system before copying it to your production system.

Before you begin

  1. Ensure that you have integration servers with the same name on your production system and on your test system.
  2. On your production system, deploy the BAR file that you deployed on your test system.
  3. Install a REST client on your browser. REST clients are available for various browsers, and the instructions provided in this topic show how to use the Firefox RESTClient, which you can download and install from: https://addons.mozilla.org/en-GB/firefox/addon/restclient.

About this task

You can use a REST client on your browser to copy a BTD from one integration node to another, allowing you to create a BTD on a test system and then copy it to a production system. Alternatively, you can write a program using a language such as Java™ or Perl that uses REST to copy the BTD for you. The following instructions describe how to copy the BTD by using the Firefox RESTClient:

Procedure

  1. Open the RESTClient in your browser.
    If you are using Firefox, you can start the RESTClient by clicking the button that was added to your toolbar when the client was installed.
  2. Get the BTD by specifying GET for the request method and then entering the URL of the location of the BTD.
    For example:
    http://testhostname:4414/apiv1/business/businesstransactions/BTDname
    where:
    • testhostname is the hostname of the test machine where your integration node is running
    • 4414 is the port used by the web user interface
    • BTDname is the name of your business transaction definition
    You must specify these headers when issuing the request:
    Content-Type: application/x-www-form-urlencoded
    Accept: application/javascript, application/json
  3. Click Send. A response panel is displayed, including tabs for several options. Select Response Body (Preview).
    Some JSON output is displayed, similar to the following example:
    {
        "uri": "/apiv1/business/businesstransactions/SimpleMQInOutBTD",
        "type": "businessTransaction",
        "name": "SimpleMQInOutBTD",
        "description": "",
        "elements":
        [
            {
                "elementUri": "/apiv1/executiongroups/default/applications/ST_SimpleInOut/messageflows/SimpleMqInOut",
                "name": "SimpleMqInOut",
                "description": "",
                "xCoord": 341,
                "yCoord": 63,
                "hasChildren": "false",
                "internal": "true"
            }
        ],
        "links":
        [
        ],
        "businessEvents":
        {
            "startBusinessEvents":
            [
                {
                    "eventUri": "/apiv1/monitoring/events/default.ST_SimpleInOut.SimpleMqInOut.MQInput%20MQSISTRSIMPLEINOUTIN1.transaction.Start",
                    "flowUri": "/apiv1/executiongroups/default/applications/ST_SimpleInOut/messageflows/SimpleMqInOut",
                    "nodeName": "MQInput MQSISTRSIMPLEINOUTIN1",
                    "eventSourceAddress": "MQInput MQSISTRSIMPLEINOUTIN1.transaction.Start",
                    "hasChildren": "false",
                    "internal": "true"
                }
            ],
            "endBusinessEvents":
            [
                {
                    "eventUri": "/apiv1/monitoring/events/default.ST_SimpleInOut.SimpleMqInOut.MQOutput%20MQSISTRSIMPLEINOUTOUT1.terminal.in",
                    "flowUri": "/apiv1/executiongroups/default/applications/ST_SimpleInOut/messageflows/SimpleMqInOut",
                    "nodeName": "MQOutput MQSISTRSIMPLEINOUTOUT1",
                    "eventSourceAddress": "MQOutput MQSISTRSIMPLEINOUTOUT1.terminal.in",
                    "hasChildren": "false",
                    "internal": "true"
                }
            ],
            "progressBusinessEvents":
            [
                {
                    "eventUri": "/apiv1/monitoring/events/default.ST_SimpleInOut.SimpleMqInOut.Compute01.terminal.in",
                    "flowUri": "/apiv1/executiongroups/default/applications/ST_SimpleInOut/messageflows/SimpleMqInOut",
                    "nodeName": "Compute01",
                    "eventSourceAddress": "Compute01.terminal.in",
                    "hasChildren": "false",
                    "internal": "true"
                }
            ]
        },
        "internal": "true"
     }

You can now use this output to post a request to your production system, so that the same business transaction definition is created there.

  1. Select PUT as the Method, and specify the URL of the business transaction definition to be created on the production system, as shown in the following example:
    http://productionhostname:4414/apiv1/business/businesstransactions/BTDname
    where:
    • productionhostname is the hostname of the production machine where your integration node is running
    • 4414 is the port used by the web user interface
    • BTDname is the name of the business transaction definition that you want to create
    You must specify these headers when issuing the request:
    Content-Type:application/json
    Accept:application/json
  2. Paste the JSON output into the Request Body.
  3. Click Send to copy the BTD to the target integration node.
    The BTD is now created on your production system.
  4. Copy the default DataCapture policy from your test system to your production system, and modify it with the details of the integration node that you are using on your production system.
    For information about how to update the default DataCapture policy, see Updating the default DataCapture policy.