App Connect

App Connect

Join this online user group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only

IBM App Connect Enterprise now supports Group nodes 

Thu July 09, 2020 06:36 AM

Recently IBM® App Connect Enterprise released new “Group” nodes that perform aggregation-style operations similar to the existing aggregation nodes but without the requirement for a local queue manager. This enables integrations running in App Connect on IBM Cloud™ to use the new Group nodes for aggregation-style operations.

IBM App Connect Enterprise software has always had the ability to perform aggregation style operations using the aggregation nodes, relying on your Integration Server having a local MQ queue manager. Integrations running in the cloud do not have a local queue manager, so were not able to perform these style of integrations. Now, integrations running in App Connect on IBM cloud can use the new Group nodes for aggregation-style operations,with the co-ordination data held in memory instead of on queues.

Figure 1. New App Connect Enterprise Group Nodes

No special configuration is required to deploy Group nodes to App Connect on IBM Cloud. You can import a BAR file that is used on premises although you may need to adjust endpoint URLs accordingly.

If you would like to try out the Group nodes then please import GroupNodesDemo project interchange (attached below) into your Enterprise Toolkit. This sample flow takes an integer and then sends it off to several backends, each one performing a different mathematical operation on it. When all the responses are gathered back, they are returned to the caller. To run this demo perform the following steps:

    • Import GroupNodesDemo.bar into App Connect on IBM Cloud


    • Start the Integration; for example, from the integration’s tile on the App Connect dashboard select the options menu (⋮) and then click Start.

 

  • Click the integration’s tile on the dashboard to open the integration details view, and then copy the HTTP Input (request URL) that your integration is exposing for the “Maths” endpoint


  • Test your integration; for example, run a command such as the following:
    curl -u iib:<password> -X POST -d '<Root><Number>42</Number></Root>' https://isr15evi.ace.ibm.com/maths
  • You should get a response such as shown below:
    <?xml version="1.0"?>
    <Group>
        <GroupProperties>
            <GroupId>010000000000000001000000000000000000000000000000</GroupId>
            <GroupName>TEST_GROUP_NAME</GroupName>
            <GroupCreationTime>1538681845807</GroupCreationTime>
            <GroupCommitTime>1538681845809</GroupCommitTime>
            <GroupCompleteTime>1538681845820</GroupCompleteTime>
            <GroupOutputTime>1538681845820</GroupOutputTime>
            <GroupStatus>Completed</GroupStatus>
        </GroupProperties>
        <Context>
            <HTTP>
                <RequestIdentifier>4854545000000000010000002fb895404802000000000000</RequestIdentifier>
            </HTTP>
        </Context>
        <Replies>
            <DOUBLE.IT>
                <ReplyId>43414c4c000000000100000031b895404802000000000000</ReplyId>
                <RequestSendTime>1538681845809</RequestSendTime>
                <ReplyReceiptTime>1538681845820</ReplyReceiptTime>
                <Reply>
                    <Root>
                        <Properties>
                            <MessageSet></MessageSet>
                            <MessageType></MessageType>
                            <MessageFormat></MessageFormat>
                            <Encoding>546</Encoding>
                            <CodedCharSetId>1208</CodedCharSetId>
                            <Transactional></Transactional>
                            <Persistence></Persistence>
                            <CreationTime></CreationTime>
                            <ExpirationTime>-1</ExpirationTime>
                            <Priority></Priority>
                            <ReplyIdentifier></ReplyIdentifier>
                            <ReplyProtocol>FILE</ReplyProtocol>
                            <Topic></Topic>
                            <ContentType></ContentType>
                            <IdentitySourceType></IdentitySourceType>
                            <IdentitySourceToken></IdentitySourceToken>
                            <IdentitySourcePassword></IdentitySourcePassword>
                            <IdentitySourceIssuedBy></IdentitySourceIssuedBy>
                            <IdentityMappedType></IdentityMappedType>
                            <IdentityMappedToken></IdentityMappedToken>
                            <IdentityMappedPassword></IdentityMappedPassword>
                            <IdentityMappedIssuedBy></IdentityMappedIssuedBy>
                        </Properties>
                        <XMLNSC>
                            <Result>
                                <Number>84</Number>
                            </Result>
                        </XMLNSC>
                    </Root>
                </Reply>
            </DOUBLE.IT>
            <LOG.IT>
                <ReplyId>43414c4c010000000100000031b895404802000000000000</ReplyId>
                <RequestSendTime>1538681845809</RequestSendTime>
                <ReplyReceiptTime>1538681845820</ReplyReceiptTime>
                <Reply>
                    <Root>
                        <Properties>
                            <MessageSet></MessageSet>
                            <MessageType></MessageType>
                            <MessageFormat></MessageFormat>
                            <Encoding>546</Encoding>
                            <CodedCharSetId>1208</CodedCharSetId>
                            <Transactional></Transactional>
                            <Persistence></Persistence>
                            <CreationTime></CreationTime>
                            <ExpirationTime>-1</ExpirationTime>
                            <Priority></Priority>
                            <ReplyIdentifier></ReplyIdentifier>
                            <ReplyProtocol>FILE</ReplyProtocol>
                            <Topic></Topic>
                            <ContentType></ContentType>
                            <IdentitySourceType></IdentitySourceType>
                            <IdentitySourceToken></IdentitySourceToken>
                            <IdentitySourcePassword></IdentitySourcePassword>
                            <IdentitySourceIssuedBy></IdentitySourceIssuedBy>
                            <IdentityMappedType></IdentityMappedType>
                            <IdentityMappedToken></IdentityMappedToken>
                            <IdentityMappedPassword></IdentityMappedPassword>
                            <IdentityMappedIssuedBy></IdentityMappedIssuedBy>
                        </Properties>
                        <XMLNSC>
                            <Result>
                                <Number>3.73766961828337E+0</Number>
                            </Result>
                        </XMLNSC>
                    </Root>
                </Reply>
            </LOG.IT>
            <SQUARE.IT>
                <ReplyId>43414c4c020000000100000031b895404802000000000000</ReplyId>
                <RequestSendTime>1538681845809</RequestSendTime>
                <ReplyReceiptTime>1538681845820</ReplyReceiptTime>
                <Reply>
                    <Root>
                        <Properties>
                            <MessageSet></MessageSet>
                            <MessageType></MessageType>
                            <MessageFormat></MessageFormat>
                            <Encoding>546</Encoding>
                            <CodedCharSetId>1208</CodedCharSetId>
                            <Transactional></Transactional>
                            <Persistence></Persistence>
                            <CreationTime></CreationTime>
                            <ExpirationTime>-1</ExpirationTime>
                            <Priority></Priority>
                            <ReplyIdentifier></ReplyIdentifier>
                            <ReplyProtocol>FILE</ReplyProtocol>
                            <Topic></Topic>
                            <ContentType></ContentType>
                            <IdentitySourceType></IdentitySourceType>
                            <IdentitySourceToken></IdentitySourceToken>
                            <IdentitySourcePassword></IdentitySourcePassword>
                            <IdentitySourceIssuedBy></IdentitySourceIssuedBy>
                            <IdentityMappedType></IdentityMappedType>
                            <IdentityMappedToken></IdentityMappedToken>
                            <IdentityMappedPassword></IdentityMappedPassword>
                            <IdentityMappedIssuedBy></IdentityMappedIssuedBy>
                        </Properties>
                        <XMLNSC>
                            <Result>
                                <Number>1764</Number>
                            </Result>
                        </XMLNSC>
                    </Root>
                </Reply>
            </SQUARE.IT>
        </Replies>
    </Group>
    

    Note: The demonstration message flow includes Trace nodes to help you to inspect the message tree. These trace nodes output “error” messages like the following message:

    2018-12-23 14:41:23.682952: Error message ‘============================== S T A R T O F T R A C E – ScatterOutTerminal =============================

    You can safely remove the trace nodes if you do not want to see the associated messages.

3 comments on"IBM App Connect Enterprise now supports Group nodes"

  1. Alejandro Yanes January 25, 2019

    You might know by now. FYI there is a fix for the issue with the timeout value of the Group Gather node: 11.0.0.3-ACE-LinuxX64-TFIT27437.
    thanks for your reply

    Reply (Edit)
  2. Alejandro Yanes December 23, 2018

    Hi Robert, this is a very nice and simple example. It worked the first time I deployed and after making changes to the timeout values of the Gather and Complete nodes the group is completing before the Process flow finishes, actually as soon as the Scatter send the output.

    2018-12-23 14:41:23.682952: Error message ‘============================== S T A R T O F T R A C E – ScatterOutTerminal =============================
    2018-12-23 14:41:23.740542: Error message ‘============================== S T A R T O F T R A C E – ScatterCreatedTerminal =============================
    2018-12-23 14:41:23.742290: Error message ‘============================== S T A R T O F T R A C E – GroupComplete =============================
    2018-12-23 14:41:23.747344: Error message ‘============================== S T A R T O F T R A C E – GatherOutTerminal =============================
    2018-12-23 14:41:23.747666: Error message ‘============================== S T A R T O F T R A C E – GatherOutTerminal =============================
    2018-12-23 14:41:23.748578: Error message ‘============================== S T A R T O F T R A C E – GatherOutTerminal =============================

    C:\Program Files\IBM\ACE\11.0.0.3>curl -X POST -d “42” http://localhost:7800/maths
    010000000000000000000000000000000000000000000000TEST_GROUP_NAME1545590483681154559048373915455904837391545590483739Completed455648540000000000000000d62a5fdcd807000000000000

    I’m having the issue with a flow I have developed for my company, any idea?

    Thanks in advanced
    Alejandro

    Reply (Edit)
    • IBM_William January 07, 2019

      Hi Alejandro,

      Thank you for trying out the new Group nodes! The “Error messages” that you are seeing are actually outputs from the Trace nodes that appear in the demonstration message flow and are nothing to worry about. They are there to allow you to inspect the message tree and can be safely removed.

      The output of the CURL command appears to be the correct content for the completed group output format but is missng all the XML tags. The output from the GroupComplete node should be directly serializable in the XMLNSC domain if all the reply messages are also XMLNSC. I cannot tell from your comment whether these tags have beens tripped by this comment box or are due to any other reason.

      Can you describe the issues you are having with the flow you developed for your company?

      Many thanks,
      William
      IBM

      Reply

#AppConnectEnterprise(ACE)
#ACEV11
#groupnodes

Statistics
0 Favorited
25 Views
1 Files
0 Shares
5 Downloads
Attachment(s)
zip file
GroupNodesDemo.zip   43 KB   1 version
Uploaded - Thu July 09, 2020
Global message icon