This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. 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 updateson them if they matter to you. If you can't find what you are looking for,
Post your ideas
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Specific links you will want to bookmark for future use
Update IBM i JDK/PASE Products Not To Use IPv6 If Only IPv4 TCP Interfaces Exist
Currently, the IBM i Java Development Kit/Portable Application Solutions Environment products attempt to use IPv6 even if an IPv6 TCP Interface is not defined or usable on the IBM i server. As a result, Java TCP/IP Host Resolution Performance Issues are fairly common due to lengthy IPv6 DNS lookups. The current workaround is to implement the following JVM properties to disable the use of IPv6. java.net.preferIPv4Stack=true java.net.preferIPv6Addresses=false
A better solution would be to check and see if IPv6 is usable on the IBM i. If an IPv6 interface cannot be found or IPv6 is not usable, skip IPv6 and go straight to IPv4. Recommendation is to pass the AI_ADDRCONFIG flag on GETADDRINFO to prevent IPv6 DNS lookups on machines that only have IPv4 interfaces.
System: Any Java Application (WebSphere Application Server included) running on the IBM i OS making a TCP/IP connection.
Actor: Users interacting with the application or waiting on results from the application.
Scenario: A client accesses a WAS online shopping web application, adds items to their shopping cart, and then begins the checkout process. Part of this process contains a TCP/IP connection to a Credit Card company when submitting the order. This Credit Card transaction takes well over 30 seconds to process. The javastack of the JVM thread processing this Credit Card transaction shows "java/net/Inet6AddressImpl.lookupAllHostAddr". The credit card transaction takes over 30 seconds to process because there are performance delays with the IPv6 DNS lookup process. The client does not have IPv6 TCP Interfaces defined nor uses IPv6 on a day-to-day basis. This performance delay significantly impacts the client's business and its ability to process credit card transactions in a timely manner. Resulting in timed out transactions or very slow order processing.
The client has to spend unnecessary time debugging this issue, creating a PMR with IBM, etc. to get IPv6 disabled for the JVM to resolve the issue.
The current solution is to implement these JVM properties and restart the JVM, but the client has already been significantly affected by this issue.
Lastly, using the JVM properties will disable the use of IPv6 completely. Say a client implements these properties and then a few years later they implement IPv6 TCP Interfaces on their IBM i. The client forgets they set these JVM properties a few years back and now IPv6 no longer works with the IBM i JDK. The client has to spend unnecessary time debugging this issue, creating a PMR with IBM, etc. to get IPv6 working with the IBM i JDK again. This could all be avoided by updating the IBM i JDK/PASE products to use IPv6 only if IPv6 TCP Interfaces (other than loopback) exist and IPv6 is usable on the IBM i OS.
Do not place IBM confidential, company confidential, or personal information into any field.