INTRO:
Oracle AutoUpgrade continues to evolve with each new release, introducing powerful new features that simplify database maintenance tasks. While it doesn’t yet support rolling patching for RAC databases and Grid software, it’s a highly reliable tool for single-instance environments patch management. Oracle recommends that you use Oracle Fleet Patching and Provisioning to be able to obtain rolling patch maintenance for Oracle Real Application Clusters (Oracle RAC) environments. For a detailed walkthrough on implementing Fleet Patching, you may refer to my earlier blog posts: How to Patch Grid Using Fleet Patching and How to Patch Database Using Fleet Patching. You may also use Ansible playbooks for automating patching process.
One of the most valuable features of the AutoUpgrade tool is its ability to download patches directly from Oracle Support without relying on a browser. This capability can save a significant amount of time
In this blog post, I’ll walk you through a straightforward method for downloading Oracle patches using AutoUpgrade on a Windows host that connects to the internet through a proxy requiring username/password authentication. While the official documentation and most examples primarily focus on Linux environments, it’s important to note that although our database servers typically run on Linux, many administrators and clients work daily from Windows systems. This guide is intended to bridge that gap for such setups.
For environments without proxy requirements, downloading patches using autoupgrade.jar is typically seamless. In that case, I recommend referring to Rodrigo’s post: Downloading Oracle Patches using CLI with AutoUpgrade Patching.
Steps for Downloading Oracle Patches with AutoUpgrade on Windows Through a Proxy with Authentication
Step 1: Install Java 8 or 11 on the Windows Client.
Make sure that you have Java 8 or 11 installed on your client host. You may download them for links provided below.
Java 11:
https://www.oracle.com/tr/java/technologies/javase/jdk11-archive-downloads.html
Java 8:
https://www.oracle.com/tr/java/technologies/javase/javase8u211-later-archive-downloads.html
Step 2: Set your proxy Server variable in lowercase
The standard specification is [https|http|socks5|socks]://(user_info@)site:port
In this example, insanedba is the proxy username, myproxypass is the corresponding password, myproxyserver.tr is the proxy server, and 8080 is the port used for the connection. From now on, we will work on command prompt (CMD), start CMD with admin privileges by running it as administrator.
C:\Users\insanedba> set https_proxy=http://insanedba:myproxypass@myproxyserver.tr:8080
Step 3: Prepare the directories that will be used for AutoUpgrade
C:\Users\insanedba> mkdir C:\Users\insanedba\Downloads\autoupgrade\logs
C:\Users\insanedba> mkdir C:\Users\insanedba\Downloads\autoupgrade\patches
C:\Users\insanedba> mkdir C:\Users\insanedba\Downloads\autoupgrade\keystore
Step 4: Download the latest Autoupgrade.jar version directly from downlad.oracle.com
If your https_proxy environment variable is configured correctly, you should be able to successfully download the latest version using the Command provided below. If the download fails at this stage, double-check that your https_proxy variable is set correctly and includes the proper credentials and format.
C:\Users\insanedba> curl -L -o autoupgrade.jar https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 433 100 433 0 0 206 0 0:00:02 0:00:02 --:--:-- 516
100 6377k 100 6377k 0 0 1478k 0 0:00:04 0:00:04 --:--:-- 5341k
Alternatively, you can use curl command flags to specify proxy settings without directly setting the https_proxy environment variable. However, at later stages, you will still need to configure the https_proxy variable properly for autoupgrade.jar to successfully download the patches.
Alternative Command :
C:\Users\insanedba> curl -L -x http://insanedba:myproxypass@myproxyserver.tr:8080 -o C:\Users\insanedba\Downloads\autoupgrade\autoupgrade.jar https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar
Step 5: Prepare Config file for Download
In this example, I will download the patches for the LINUX.X64 platform, even though I’m working on a Windows host. Pay close attention to the parameters used here. For the sole purpose of downloading patches, you do not need to specify a credentials directory (e.g., wincredential), a target Oracle SID (e.g., patch1.sid), or source/target Oracle Database homes (e.g., patch1.source_home, etc.). In fact, the simpler your setup, the better.
In this example, I will download the 19.27 Release Update, the Data Pump Bundle Patch, the Monthly Recommended Patch, the latest OPatch utility, the OJVM patch for 19.27, and a sample one-off patch (34672698).
C:\Users\insanedba> cd C:\Users\insanedba\Downloads\autoupgrade
C:\Users\insanedba\Downloads\autoupgrade> type get-patches.cfg
global.global_log_dir=C:\Users\insanedba\Downloads\autoupgrade\logs
global.keystore=C:\Users\insanedba\Downloads\autoupgrade\keystore
patch1.patch=RU:19.27,OPATCH,OJVM,MRP,DPBP,34672698
patch1.platform=LINUX.X64
patch1.folder=C:\Users\insanedba\Downloads\autoupgrade\patches
Although AutoUpgrade can not patch Oracle Grid Infrastructure yet, it can still download the Oracle Clusterware (OCW) patch if the OCW option is included in the patch list.
You may also take a look at Marcus Vinicius’ AutoUpgrade Composer to help prepare your config file.
Step 6: Add required SSL certificates to Java truststore
To allow your Java application (autoupgrade.jar) to trust an SSL connection (e.g., for HTTPS), you must import the necessary SSL certificates into the Java truststore.
For this reason, when downloading patches directly from My Oracle Support (MOS), the public root certificates of Certificate Authorities (CAs) should be added to the Java cacerts truststore. Otherwise you will get the error recorded below. You may also refer to Autoupgrade Patching Fails To Download Patches With Error “Unable To Find Valid Certification Path” (Doc ID 3082396.1)
MOS Credentials Loaded - Connection Failure
*unable to find valid certification path to requested target*
Overwrite existing credentials using the "add" command, or remove credentials using the "delete" command.
To determine which certificates should be imported into the Java truststore, you can use a web browser such as Chrome or Edge. In my environment, when I navigate to https://updates.oracle.com and inspect the certificate, I see that my proxy server’s certificate appears as the root certificate. This indicates that I need to import my proxy server’s certificate into the Java truststore.
Alternatively, you can also use OpenSSL to inspect and retrieve the certificate chain from the server. I will use openssl client that ships with GIT Bash.
insanedba@mycomp MINGW64 ~ openssl s_client -proxy myproxyserver.tr:8080 -proxy_user insanedba -proxy_pass pass:myproxypass -connect updates.oracle.com:443 -showcerts
Connecting to 10.10.4.46
CONNECTED(000002B8)
depth=0 C=US, ST=California, L=Redwood City, O=Oracle Corporation, CN=updates.or
acle.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C=US, ST=California, L=Redwood City, O=Oracle Corporation, CN=updates.or
acle.com
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 C=US, ST=California, L=Redwood City, O=Oracle Corporation, CN=updates.or
acle.com
verify return:1
---
Certificate chain
0 s:C=US, ST=California, L=Redwood City, O=Oracle Corporation, CN=updates.oracl
e.com
i:C=TR, CN=MY_proxy
a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
v:NotBefore: May 23 11:42:45 2025 GMT; NotAfter: May 23 11:42:45 2026 GMT
-----BEGIN CERTIFICATE-----
XZMzBfxOTqQlnztG4K1poJhd2riQV8sLPwaGGdJ8yVex8TX5O50ebvmT1vlsSbwA
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
tI1VqUMFet1UDAeRBo7E0EYhFYNNmKdmMtn7EQftFwtZV2nN52MHaeJE3pZzTTo/
RVa6dNC6fmsy3bWVij8meq/N/wCd0DzlV0owSjk23hCADp8VI8SXxkFDUFTOOMmo
lrZih8sUyjw=
-----END CERTIFICATE-----
---
Server certificate
subject=C=US, ST=California, L=Redwood City, O=Oracle Corporation, CN=updates.or
acle.com
issuer=C=TR, CN=MY_proxy
---
...
In this example, when accessing updates.oracle.com, the server’s certificate is displayed in the browser, but the root certificate is not explicitly shown. However, it is listed by its Common Name (CN). This certificate is actually available in the Windows Certificate Store, as it has been distributed via group policy.
Since this certificate is not available in the Java truststore, we need to export it from the Windows Certificate Store and then import it into the Java truststore. Below command is the one I used to export the certificate:
C:\Users\insanedba\Downloads\autoupgrade> certutil -grouppolicy -store root "MY_proxy" my_proxy_cert.crt
C:\Users\insanedba\Downloads\autoupgrade> certutil -encode my_proxy_cert.crt my_proxy_cert.pem
Now, we will import the certificate into the Java truststore. The storepass attribute provided here (changeit – default password) is the password for the Java truststore, make sure to remember it, as it will be required during the download step (Step 8).
C:\Users\insanedba\Downloads\autoupgrade> "C:\Program Files\Java\jdk-11\bin\keytool" -importcert -file C:\Users\insanedba\Downloads\autoupgrade\my_proxy_cert.pem -alias my_proxy -storepass changeit -keystore "C:\Program Files\Java\jdk-11\lib\security\cacerts"
Step 7: Create an AutoUpgrade Keystore
The first time you use AutoUpgrade to download patches, you need to store your My Oracle Support (MOS) credentials in the AutoUpgrade keystore.
To do this, we will use the configuration file we prepared earlier in Step 5. This file must include the global.keystore parameter, which specifies the location where AutoUpgrade will store the keystore. After creating the config file, we will run autoupgrade.jar with the load_password flag. This command launches an interactive console that allows passwords to be securely loaded into AutoUpgrade’s keystore.
The first password we will provide is the keystore password, followed by our My Oracle Support (MOS) username and password.
You must set your https_proxy variable in advance, as mentioned in Step 2. Otherwise, the connection to My Oracle Support (MOS) will fail with Connection timed out: connect.
Additionally, ensure that your machine can access the following URLs without issues such as firewall restrictions.
If all is good. You may create autoupgrade keystore.
C:\Users\insanedba\Downloads\autoupgrade> "C:\Program Files\Java\jdk-11\bin\java" -Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk-11\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword=changeit -Dsun.net.client.defaultReadTimeout=30000 -jar autoupgrade.jar -patch -config get-patches.cfg -load_password
Unsupported language [tr], defaulting to English
Processing config file ...
Starting AutoUpgrade Patching Password Loader - Type help for available options
Creating new AutoUpgrade Patching keystore - Password required
Enter password:
Enter password again:
AutoUpgrade Patching keystore was successfully created
MOS> add -user myoracleuser@mail.com
Enter your secret/Password:
Re-enter your secret/Password:
MOS> list
MOS Credentials Loaded - Connection Successful
MOS> save
Our keystore is now ready, and our My Oracle Support (MOS) credentials have been securely stored within it.
If you encounter the following error while converting the AutoUpgrade patching keystore to auto-login; then proceed without converting by replying with NO.
Convert the AutoUpgrade Patching keystore to auto-login [YES|NO] ? YES
Irrecoverable error while running the AutoUpgrade Patching Password Loader - CommonException [Saving keystore failed]
...
autoupgrade_patching.log
...
Caused by registry: java.io.IOException: Unable to get SSV: MACHINE ID from location = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography key = MachineGuid
Step 8: Download patches with autoupgrade.jar
The final step is to download the patches from Oracle. We’ll use the AutoUpgrade -mode download command as shown below.
Since we are behind a proxy server, we must include java trustStore parameters directly in the command. AutoUpgrade will download all patches listed in the patch section of your get-config.cfg file into the directory specified by patch1.folder.
C:\Users\insanedba\Downloads\autoupgrade> "C:\Program Files\Java\jdk-11\bin\java" -Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk-11\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword=changeit -Dsun.net.client.defaultReadTimeout=30000 -jar autoupgrade.jar -patch -config get-patches.cfg -mode download
At this stage, the command failed in my environment, even though everything had been done correctly.
Unsupported language [tr], defaulting to English
AutoUpgrade Patching 25.3.250509 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded
Connected to MOS - Searching for specified patches
Internal Error has occurred. Please contact Oracle support.
java.lang.IllegalArgumentException: No enum constant oracle.commons.aru.search.patch_status.AVAİLABLE
at java.lang.Enum.valueOf(Unknown Source)
at oracle.commons.aru.search.patch_status.valueOf(AruSearchXml.java:107)
at oracle.commons.aru.search.patch.<init>(patch.java:113)
at oracle.commons.aru.search.AruSearchXml.lambda$new$0(AruSearchXml.java:76)
at java.util.ArrayList.forEach(Unknown Source)
at oracle.commons.aru.search.AruSearchXml.<init>(AruSearchXml.java:76)
at oracle.commons.aru.search.AruSearchXml.<init>(AruSearchXml.java:63)
at oracle.commons.aru.search.AruSearchXml.createFromSearchResponse(AruSearchXml.java:85)
at oracle.commons.aru.rest.AruRestServices.getSearchXml(AruRestServices.java:104)
at oracle.patch.apply.ApplyRU.getRU(ApplyRU.java:140)
at oracle.patch.apply.ApplyRU.getFilesToDownload(ApplyRU.java:93)
at oracle.patch.jvalid.DownloadFiles.getPatchSetToDownload(DownloadFiles.java:255)
at oracle.patch.jvalid.DownloadFiles.download(DownloadFiles.java:163)
at oracle.patch.jvalid.DownloadFiles.isValidSetup(DownloadFiles.java:123)
at oracle.patch.jvalid.DownloadFiles.isValidSetup(DownloadFiles.java:83)
at oracle.commonx.config.links.JobRulesValidator.process(JobRulesValidator.java:94)
at oracle.patch.config.links.DownloadAndLocate.process(DownloadAndLocate.java:49)
at oracle.patch.config.links.DownloadAndLocate.process(DownloadAndLocate.java:39)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.JobRulesValidator.process(JobRulesValidator.java:116)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoadPassword.process(LoadPassword.java:77)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoadKeyStore.process(LoadKeyStore.java:65)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.SettingsMaker.process(SettingsMaker.java:117)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.ConfigDBValidations.process(ConfigDBValidations.java:70)
at oracle.patch.config.links.ConfigDBValidations.process(ConfigDBValidations.java:54)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.UserConfigCrafter.process(UserConfigCrafter.java:58)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.DeriveConfigValues.process(DeriveConfigValues.java:122)
at oracle.patch.config.links.DeriveConfigValues.process(DeriveConfigValues.java:76)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.ProcessConfigQueries.process(ProcessConfigQueries.java:94)
at oracle.patch.config.links.ProcessConfigQueries.process(ProcessConfigQueries.java:59)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.ExecuteConfigQueries.process(ExecuteConfigQueries.java:116)
at oracle.patch.config.links.ExecuteConfigQueries.process(ExecuteConfigQueries.java:53)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoadPassword.process(LoadPassword.java:77)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoadKeyStore.process(LoadKeyStore.java:80)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.SetExecutionEnvs.process(SetExecutionEnvs.java:69)
at oracle.patch.config.links.SetExecutionEnvs.process(SetExecutionEnvs.java:38)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.DeriveConfigValues.process(DeriveConfigValues.java:122)
at oracle.patch.config.links.DeriveConfigValues.process(DeriveConfigValues.java:76)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.GlobalParametersValidator.process(GlobalParametersValidator.java:66)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.ValidateConfigParameters.process(ValidateConfigParameters.java:116)
at oracle.patch.config.links.ValidateConfigParameters.process(ValidateConfigParameters.java:62)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.ReadAutoPatchConfigFile.process(ReadAutoPatchConfigFile.java:69)
at oracle.patch.config.links.ReadAutoPatchConfigFile.process(ReadAutoPatchConfigFile.java:41)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.PrefixesCalculator.process(PrefixesCalculator.java:97)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoadWinCredential.process(LoadWinCredential.java:75)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.UserConfigGlobalValidator.process(UserConfigGlobalValidator.java:102)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.PopulatePrefixesWithoutSource.process(PopulatePrefixesWithoutSource.java:108)
at oracle.patch.config.links.PopulatePrefixesWithoutSource.process(PopulatePrefixesWithoutSource.java:49)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoginFileCreator.process(LoginFileCreator.java:75)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.InternalSettingsParser.process(InternalSettingsParser.java:138)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.VersionMatcher.process(VersionMatcher.java:58)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.ContextFinder.process(ContextFinder.java:213)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.WindowsAdminValidation.process(WindowsAdminValidation.java:46)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.JavaVersionValidation.process(JavaVersionValidation.java:58)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.LoggerMaker.process(LoggerMaker.java:107)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.ConfigPointersFileCreator.process(ConfigPointersFileCreator.java:76)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.CommonLocker.process(CommonLocker.java:88)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.ZipMaker.process(ZipMaker.java:62)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.GlobalConstants.process(GlobalConstants.java:257)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.commonx.config.links.PreCreateConfigValues.process(PreCreateConfigValues.java:87)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.NoConfigSupport.process(NoConfigSupport.java:76)
at oracle.patch.config.links.NoConfigSupport.process(NoConfigSupport.java:56)
at oracle.commonx.config.CLILink.nextLink(CLILink.java:61)
at oracle.patch.config.links.PatchOptionsParser.process(PatchOptionsParser.java:64)
at oracle.patch.config.links.PatchOptionsParser.process(PatchOptionsParser.java:54)
at oracle.commonx.config.Bootstrap.processCLIParams(Bootstrap.java:78)
at oracle.commons.boot.CommonMain.<init>(CommonMain.java:98)
at oracle.patch.boot.AutoPatchMain.<init>(AutoPatchMain.java:96)
at oracle.patch.boot.AutoPatchMain.newInstance(AutoPatchMain.java:132)
at oracle.patch.boot.PatchBoot.lambda$runAutoPatch$0(PatchBoot.java:54)
at oracle.commons.boot.CommonBoot.startUtility(CommonBoot.java:60)
at oracle.patch.boot.PatchBoot.runAutoPatch(PatchBoot.java:54)
at oracle.patch.boot.PatchBoot.main(PatchBoot.java:46)
at oracle.boot.JointBoot.main(JointBoot.java:59)
The error logs indicated the following message: No enum constant oracle.commons.aru.search.patch_status.AVAİLABLE . This pointed to a possible language-related issue. Specifically, the uppercase ‘İ’ used in “AVAİLABLE” is a character from the Turkish alphabet and does not exist in English. Although autoupgrade.jar initially prints: Unsupported language [tr], defaulting to English, it still seems to struggle with character encoding behind the scenes. I will provide the workaround solution. Actually AutoUpgrade Never Fails, But When It does; you may also refer to Daniel’s post for guidance on how to prepare a diagnostic package for troubleshooting which will be used while opening an Service Request on My Oracle Support.
Workaround : Change your Windows Client display language to English.
The good news is that I reached out to Daniel Overby Hansen, Product Manager from Oracle’s Upgrade Team, and shared my findings with him. Impressively, it took the team less than 12 hours to reproduce the issue and prepare a fix. I have already tested the fix. This level of responsiveness was truly appreciated and the solution is expected to be included in the next release of autoupgrade.jar.
In my next post, I’ll demonstrate how to use AutoUpgrade for database upgrade patching in offline environments.
Hope it helps.


Leave your comment