Access Client Solutions (ACS) 1.1.9.8 was announced and made generally available together with IBM i 7.6 (as mentioned in my previous post IBM i 7.6 has been announced), and I have run this version since it became available. I really like the new features introduced in this update, but I found some quirks in ACS which was caused by the Java version installed and used by ACS.
Here I will discuss the issues and what I had to do to resolve these issues.
Finding the right locale #
One of my favorite new features in ACS 1.1.9.8 is the ability to have formatted number in the SQL result window. Up until now I had to call my own SQL function FORMAT_INTEGER when working with large integer values, to have the value shown in a readable manner with thousand separators. Now ACS can format any numeric column correctly with thousand and decimal separators. The format is based on the locale chosen in the ACS preferences, found in Preferences > General tab > Locale:
As seen in the screenshot above, I prefer having ACS in English but with Danish formatting, i.e. locale en_DK
.
My issue was that locale en_DK
was not available in the list of locales in my ACS!
After some investigation I discovered it was caused by the version of Java used by ACS, which was Java version 8. After upgrading Java to a newer version I finally got the choice I wanted and could select en_DK
and have the numeric values formatted in Danish with English text in ACS.
Lesson learned: Not all Java versions have all locales. If you’re missing a locale, it may be solved by upgrading to a newer Java version.
You may wonder why I was using a pretty old Java version like Java 8. Normally I always recommend using the newest version of any piece of software, but here I was not following my own recommendation! 🤔
The reason I was still on Java version 8 was because of the next issue I will discuss…
5250 display distortion #
For some time I’ve had notice some distortions in 5250 screens in ACS in some of my ACS installations. The following is a great example of this:
Notice the input fields are not displayed correctly: There’s an additional blank before the asterisk in the input field and the cursor will be on the blank when tabbing to the input field. But it’s only displayed like that, there is no blank and typing a character will overwrite the asterisk. And this is not even the worst example, other times the displacement was not a whole character, but only half a character!
I’ve found ACS to only behave like this on Java version 11 and higher, which is why I still used Java version 8. But with the locale issue discussed above I had to upgrade Java and find a solution for this distortion issue. The issue is noted by IBM in this support document, which mentions font scaling in Java to be the cause of the issue. I’ve always used font scaling to have the text fill the entire window in any window size. As suggested in the support document, disabling the font scaling got rid of the issue.
You find the font scaling setting in Edit > Preferences > Appearance > Font
:
As soon as I disabled the font scaling, the display was correct:
The only drawback was - as seen in the screenshot above - that the entire window is no longer filled, and there are blank areas on the sides or top/bottom of the window, since the font is no longer scaled to fit the window. However, this is a drawback I will have to accept if I want to use the newer Java versions.
The IBM document states the problem is in Java and not with ACS, so it’s not likely that IBM will be able to fix this issue in ACS. Maybe using another font could fix the issue, but I haven’t (yet) experimented with this.
I hope you find this post useful if having the same issues. Feel free to reach out to me, if you have any questions.
Reply by Email