Skip to Main Content
IBM Data and AI Ideas Portal for Customers


This portal is to open public enhancement requests against products and services offered by the IBM Data & AI organization. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:


Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,


Post your ideas

Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

IBM Employees should enter Ideas at https://ideas.ibm.com


Status Under review
Workspace Db2 for z/OS
Created by Guest
Created on Feb 21, 2024

Allow a Db2 z/OS Server to request clients set other JDBC Data Server Driver parameters, such as minTransportObjects or maxTransportObjects

In FL502 of Db2 13, IBM offers MODIFY DDF with the "RQSTWLB" option which allows the Db2 server to tell clients to enable Sysplex Workload Balancing (enableSysplexWLB=true) as long as the client doesn't explicitly set WLB to "false".

It would be beneficial to allow Db2 to set other Data Server Driver parameters in this way, passing "requests" or "suggestions" to the clients to implement. A couple of parameters that are often used in conjunction with enableSysplexWLB are minTransportObjects and maxTransportObjects.

Since modern "PaaS" and Cloud-based clients are often scaled en-masse, it's possible that over-provisioned pods or instances could only have one connection to Db2 at a time. This could lead to "storm-draining" of connections to the highest-weighted member subsystem and could impede transaction-level workload balancing and ACR. The ability to drive minTransportObjects > 1 from the Db2 server, instead of depending on clients to set these parameters, could potentially eliminate some of these challenges.

This could be set similar to RQSTWLB, but it may also be an option to tune these settings for individual clients based on Monitor Profiles in DSN_PROFILE_TABLE/ATTRIBUTES.

This would eliminate a lot of the complexity of remote clients having to set a bunch of custom/proprietary settings in their JDBC provider/JDBC URL. What we have seen is that most clients want JDBC to be "point-and-shoot", and only care to configure these parameters when requested by Operations/Db2 Admins. If Db2 Admins could control this from the server-side, it frees applications from needing to make these changes and allows them to focus on developing, while Admins can optimize the operational end.

Needed By Not sure -- Just thought it was cool
  • Guest
    Reply
    |
    Feb 22, 2024

    I was having a conversation with Anthony Ciabattoni after his "Db2 for z/OS DDF SWAT" presentation, and he suggested I open this request.

    We were specifically discussing the RQSTWLB feature delivered in FL502 of Db2 13, and I mentioned that client compliance with proprietary JDBC driver parameters is difficult to enforce, especially with most development going to PaaS/Cloud environments, and that being able to "request" that the driver enable certain JDBC parameters for the Data Server Driver from the system-end would be useful for Db2 Operations staff.

    The more JDBC DS Driver parameters we can set, either by Default (i.e. like RQSTWLB) or by specific client (Profiles??) from the server-side, the less we the Sysadmins have a need to enforce compliance on the Client-end. The developers don't want to have to care about Db2-specific parameters...they just want to point to the JDBC driver class, set up their data-source, and "be off"...we the Admins are always the ones trying to enforce Db2-specific settings, so the more of them we can "suggest" ourselves (provided the developer hasn't explicitly overridden them), the better.

    The reason we were looking at Transport Object settings is because we were discussing them tangential to the enableSysplexWLB setting.

    One problem we've experienced in the past is that developers in a Cloud environment will often over-provision instances or pods...leading to tens or hundreds of running instances, each with only ONE connection/socket to DB2 at a time, since the volume is often not significant enough to any one node to need a second.

    With one connection, when we recycle the Db2 group, all instances have a habit of "storm-draining" to the first available member with their one transport, resulting in virtually all work being routed to that member subsystem. This could also impede workload balancing, if there's enough workflow that the single transport is never idle for more than maxTransportObjectIdleTime, but never busy enough to merit a second transport.

    We therefore recommend that developers set minTransportObjects to some number > 1 at our shop. Even if the first connections are all to one member, the additional connections, if idle, would eventually hit maxTransportObjectIdleTime and re-balance to other members, providing alternate targets for balancing DDF workload and allowing the balance to react to changing conditions on the sysplex, as well as having connections to other members to support seamless ACR.

    Setting maxTransportObjects also makes sense, as developers also can over-provision application threads on their end. Being able to instruct their JDBC driver instance to limit itself to a set number of transport objects allows us to throttle individual apps from the client-side, which would be superior to simply blocking them server-side with MONITOR CONNECTIONS. Also, I thought that if we were managing min Transports, it also made sense to allow management of max Transports, and possibly even maxTransportObjectIdleTime.

    In summary, I suggested these settings for setting from the server-side, because they directly relate to enableSysplexWLB, and because these are the kinds of settings that developers just don't care about, but the admins operating the Db2 for z/OS Server DO care about.

    I hope that clarifies...sorry for being verbose.


    Thanks

    -Mark


  • Admin
    Janet Figone
    Reply
    |
    Feb 21, 2024

    Hello Mark, Thank you for submitting this enhancement request. The Db2 for z/OS engineers reviewed it and would be willing to provide similar system related client properties overrides that don't affect the behavior of the applications to the MODIFY DDF command.

    They are not sure minTransportObjects and maxTransportObjects are good candidates. They generally don't recommend the setting of minTransportObjects and maxTransportObjects. maxTransportObjects is constrained by the number of open connections and minTransportObjects is affected by maxTransportObjectIdleTime which removes transports after idle for 10 seconds.

    Please provide the rationale that you are setting them or other specific client parameters you would like the Db2 DBA can override?

    Sincerely,

    The Db2 for z/OS team