Forum Discussion

Nathan_Pearce_4's avatar
Nathan_Pearce_4
Historic F5 Account
Apr 25, 2010

Need an ISO8583 Application Switch for card transactions?

What is ISO8583: ISO 8583 Financial transaction card originated messages — Interchange message specifications is the International Organization for Standardization standard for systems that exchange electronic transactions made by cardholders using payment cards. The first two digits in the ISO8583 message aren't important. However, the next four are what tell us about the type of message we are processing. For more information: http://en.wikipedia.org/wiki/ISO_8583 Using the rule below as a template you should be able to dynamically switch any ISO8583 message to the desired server. See if this helps:

when CLIENT_ACCEPTED{
TCP::collect
}

 This section collects the first 6 bytes and then uses 'switch' to find a match.
 It allows to you decide where to send a request based on its message type.
 You could also use this to simply log without performing a pool selection.

when CLIENT_DATA {
log local0. "in CLIENT_DATA"

set clientData [TCP::payload 6]
log local0. "Client Data raw: $clientData"

switch -glob $clientData{
"??0800"{
pool pool_EchoTestMessage
log local0. "This is a Network Management Message."
}
"??0810"{pool pool_ForClientAuthorizations} 

}

TCP::release
}

when SERVER_CONNECTED {
TCP::collect
}

 This section allows you to perform an action base on the message type of the response from the server.
 You could log the message type or even manipulate it before sending it out.

when SERVER_DATA{

set serverData [TCP::payload 6]
log local0. "Response Data raw: $serverData"

switch -glob $serverData{
"??0810"{
log local0. "This is a Network Management Message."
}
"??0820"{log local0. "This is type XXX"
} 

}

TCP::release

}

2 Replies

  • Nathan_Pearce_4's avatar
    Nathan_Pearce_4
    Historic F5 Account
    Ignoring the fact that I am replying to my own post...... This version only works on the MTI. If you are only intersted in working at the Message Type level then this is all you need.

     

     

    However, if you are looking for something that can access the full payload, please see the post:

     

    http://devcentral.f5.com/Community/GroupDetails/tabid/1082223/asg/71/afv/topic/aft/1172446/aff/2297/showtab/groupforums/Default.aspx
  • wlopez's avatar
    wlopez
    Icon for Cirrocumulus rankCirrocumulus

    Does anyone have a working iRule and setup to load balance ISO8583 transactions that are received through a single tcp connection on the virtual server?