Is it possible to change SQL in a z/OS mainframe COBOL application so that it becomes eligible to be directed to the IBM System z Integrated Information Processor (zIIP)?
I posted this answer in response to the same question on StackOverflow, so here is a re-post:
An important distinction to make is that according to IBM, zIIP is only available for "eligible database workloads", and those "eligible" loads are mostly targeted for large BI/ERP/CRM solutions that run on distributed servers, which are connecting through DDF (Distributed Data Facility) over TCP/IP.
IBM has a list of DB2 workloads that can utilize zIIP. These include:
And if you're on DB2 v10, you can also use zIIP with:
So, if you're using COBOL programs, it would appear that IBM does not intend for you to use zIIP with these workloads. You can still take advantage of zIIP with utilites (LOAD, REORG), and some steps of the RUNSTATS utility, so it may still be worthwhile to have some zIIP.
The point of zIIP processors is that you can't run z/OS code on them. Your COBOL code won't run on them. However, according to this article DB/2 for z/OS is an eligible workload to run on a zIIP processor. I presume your COBOL code has embedded SQL. Embedded SQL architectures are actually preprocessors that generate code that sends the query off to the database behind the scenes, so your SQL code is going to run on the DB server.
If the COBOL programme is sending SQL to the DB/2 server via TCP/IP (DRDA) then it should run on the zIIP if the DB/2 server is configured to run on it. If the COBOL code is doing a lot of client-side processing or it's not using this then this will not be eligible. Chances are the COBOL app is not using DRDA, though.