In this blog post series AutoUpgrade Patching – From Zero to Hero – Part 2: MOS Credentials will be our topic for today. If you are tired of going through MOS notes over and over again to identify the most important fixes and fetch them, you need to automate it. But in order to automate the download, you need to infuse your MOS credentials into the AutoUpgrade keystore. Let’s do this together now.

Create directories
Before we really start, you should define a few directories at first. In my case, I copied the newest version of AutoUpgrade into /Users/mdietric/TEMP/AU. You need to adjust the directory based on your structure, needs and operating system.
I create the following structure:
/Users/mdietric/TEMP/AU ├── keystore ├── logs └── patches
I used:
cd TEMP mkdir AU AU/patches AU/keystore AU/logs
and I copied autoupgrade.jar into /Users/mdietric/TEMP/AU subdirectory.
Our first config file
In order to continue you need to create your first AutoUpgrade config file. I will cover all the various options later but for now we are going to keep it simple. Use any text editor which doesn’t add ^M characters like some of the MS Windows tools do. Or, you simply copy/paste this one below and adjust the paths to your setup.
# get_patches.cfg # global.global_log_dir=/Users/mdietric/TEMP/AU/logs global.keystore=/Users/mdietric/TEMP/AU/keystore global.folder=/Users/mdietric/TEMP/AU/patches patch1.target_version=19 patch1.patch=AU
I store this file in the same directory where I stored AutoUpgrade, and I name it get_patches.cfg.
You find the parameters above:
- global_log_dir
This points to the log directory. While you could leave this at a default, I rather prefer having it point to one of my directories I created beforehand. - keystore
You need this parameter to point to a subdirectory where AutoUpgrade will create the wallet/keystore into. - folder
Here, you define the directory where AutoUpgrade will download all patches into. It can hold multiple versions of patches for multiple OS versions.
All three parameters use a prefix “global” which means they will apply to all subsequent groups of parameters. Individual parameters identify themselves with a prefix you can choose freely. Mine here is “patch1“, and we will add different prefixes later.
- target_version
We need to define a version of the patches we are planning to download. This is mandatory, even though AutoUpgrade does not have any relationship with the release. You always use the newest AutoUpgrade for everything on every platform. Still, this parameter is required. - patch
In the most important parameter you decide which patches you are going to download. We will add more options later in the following blog posts. But for now, let’s keep the example from my previous “Part 1” blog post and download AutoUpgrade only.
AutoUpgrade needs your MOS credentials
If you are going to use AutoUpgrade to automate your patching it will need your MOS credentials to be able to download patches unattended. In case you wonder whether you will need any sort of Two/Multi-Factor Authentication, the answer is “No”. We are going to use the same token mechanism Enterprise Manager is using for the patch downloads when we fetch patches from MOS.
Therefore, let us start and add your MOS credentials into the AutoUpgrade SEPS (Secure External Password Store).
Call AutoUpgrade to load your MOS credentials:
java -jar autoupgrade.jar -load_password -patch -config get_patches.cfg
Then, at first, you’ll be asked to specify a password to protect the keystore/wallet. This isn’t your MOS password, and it needs to have at least 8 characters, an uppercase character and a number if I remember correctly.
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
Now the keystore is built and ready to take your MOS credentials. Those of you who know AutoUpgrade will also recognize that the prompt has been changed from the usual UPG> to MOS>.
MOS> add -user Mike.Dietrich@oracle.com Enter your secret/Password: Re-enter your secret/Password:
If you want to check whether your credentials have been received, and whether they work, use the following command:
MOS> list My Oracle Support (MOS) - Credentials Loaded - Connection Successful Oracle Update Advisor service - Connection Successful
This checks the connectivity to MOS and to the OUA (Oracle Update Advisor) where AutoUpgrade will download Gold Images from.
Finally, use the exit command to save the credentials and alter the keystore to be auto-login.
MOS> exit Save the AutoUpgrade Patching keystore before exiting [YES|NO] ? YES Select auto-login mode for the AutoUpgrade Patching keystore [YES|NO|SHARED]: YES AutoUpgrade Patching Password Loader finished - Exiting AutoUpgrade Patching
Especially the auto-login mode is very important.
Summary
In this blog post we created a few directories, we built our first simple config file and we infused our MOS credentials into the Secure External Password Store in AutoUpgrade.
Once you did all the above, you are ready now to download patches with just one click, and especially without checking for patch numbers and MOS notes beforehand.
The following files have been created:
. ├── autoupgrade.jar ├── get_patches.cfg ├── keystore │ ├── apikey │ ├── cwallet.sso │ ├── cwallet.sso.lck │ ├── ewallet.p12 │ └── ewallet.p12.lck ├── logs │ └── cfgtoollogs └── patches
Under the keystore directory you will find the wallets.
For Oracle Employees
Since some of you mailed or slacked me, you easily can use the same – and no passwordless or MFA needed. But you need your SSO password which you still have. If you can’t remember, you may need to ping your manager to create a bypass code to refresh your SSO password since OIM requires the “current” password to be used in order to change it.
But if you remember it, it is very simple:
- User is your SSO user, e.g. Hugo.Mayer@oracle.com
- Password is your SSO password, e.g. SecretIsMyPasswordYouKnow9876=?
That’s it.
Further Links and Information
AutoUpgrade Patching Blog Post Series
- Part 1: AutoUpgrade Patching – Download and Version Check
- Part 2: AutoUpgrade Patching – MOS Credentials
- Part 3: AutoUpgrade Patching – Download Patches
- Part 4: AutoUpgrade Patching – Download Examples
Additional Links
- AutoUpgrade Download from oracle.com
- Static link to fetch AutoUpgrade
- MOS Note: KB123450 AutoUpgrade
Virtual Classroom Seminars
- Episode 21: One-Button Patching with AutoUpgrade – Easing every DBA’s life
- Episode 27: Patch Smarter, not Harder – Oracle Database Patching with AutoUpgrade
- Episode 28: Patch Smarter, not Harder – Microsoft Windows Special Patching Edition
To be continued …
–Mike
Hey Mike,
We encounter a problem with this. User A and user B each create their own wallet with MOS credentials on Windows. After that, it’s not possible for user A to use the wallet of user B due to an apparent encryption issue. Is it possible to create the wallet in such a way that the encryption takes place without the user’s private encryption key (e.g. like PowerShell allows with ConvertTo-SecureString -key …) so that wallets can be shared among individual Windows users?
Hi Michael,
there is a new SHARED option when you save the credentials. Right now, the main person who does our implementations in Win has taken off this week.
Can you try it, otherwise please drop me an email and I will forward it to Byron.
Cheers,
Mike
I’m trying to save my MOS credentials, but there is something I don’t get. I’ve even tried to upgrade java to 21 (newer is not supported). Credentials probably saved, but something is wrong.
MOS> add -user va……
AutoUpgrade Patching keystore Password is required prior to operation
Enter wallet password:
Continuing…
Enter your secret/Password:
Re-enter your secret/Password:
MOS>
MOS> save
MOS> list
My Oracle Support (MOS) – Credentials Loaded – Connection Successful
Oracle Update Advisor service – Connection Failure
*Request to https://transport.oracle.com failed with response code [400]*
I’m quite sure I’ve entered my credentials correctly.
I’m aware that this here is not a support site, but … I’d really like to optimize our patching strategy ;). Just a sign i’m doing something wrong would help. Thanks.
Hi Vasek,
can you please go through the checklist in Daniel’s blog post:
https://dohdatabase.com/2025/11/11/au-fix-download-mode/
(scroll a bit down, please).
There is also a MOS note linked which helps diagnosing such topics.
Try in addition as first attempt to use in your config file:
patch1.gold_image=NO
as a first test.
Cheers,
Mike
And you did input your MOS credentials correctly, since otherwise the :403 error would be shown instead.
Cheers,
Mike
Hi,
Thanks for replying.
Checklist:
– Oracle SSO account – probably yes ? (I have an Oracle account, just not sure whether it is SSO account, i assume yes).
– account must be linked to a CSI that has an active support agreement …
– In that CSI, you must have the privilege to download patches …
My account is linked to several CSIs where my role is even an administrator and there are some that have Patch Download: Allow.
We’ve already downloaded lots of patches, created several SR’s … I assume there is no problem with the account at all.
I tried to remove myself (delete -user …) and re-add with bad password. It “works” the way that it tells me *Connection Failed – You entered an incorrect user name or password.*”. Re-added again with correct password and “Credentials Loaded – Connection Successful”. But both situation (with good and bad password) says “*Request to https://transport.oracle.com failed with response code [400]*” at the end.
The server where I’m trying to do that is a lab with unrestricted internet access. But I will try it on another server later (where there never was anything related to Oracle database SW). Since it is Java app, I assume it will work on Windows too (with correct paths in config files).
Hi Vasek,
and you are using the most recent 26.4 AutoUpgrade, and not the 26.3 version, right?
26.3 required to add a CSI:
MOS> add -csi 12345678
MOS> exit
Then save.
But this is not needed anymore with AutoUpgrade 26.4.
Just wanted to double-check.
If this doesn’t help, please ZIP the entire AU log tree together. Since you can’t mail it to me (the gateway will reject a zip), you need to create a quick SR, upload the zip and share the SR number with me. Then we can have a look.
Thanks, and sorry for the inconvenience 🙁
Mike
Hi, I’ve downloaded the latest jar manually using curl (like you posted) since the autoupgrade installed on server was rather old and there probably is not even the download mode (or I did not manage to execute it properly).
Before upgrade:
java -jar autoupgrade.jar -version
build.hash 081e3f7
build.version 21.3.211115
build.date 2021/11/15 11:57:54
build.max_target_version 21
build.supported_target_versions 12.2,18,19,21
build.type production
Now:
build.version 26.4.260701
build.date 2026/07/01 21:57:45 +0000
build.hash 211bf76de
build.hash_date 2026/06/27 01:28:23 +0000
build.supported_target_versions 12.2,18,19,21,23,26
build.type production
build.label (HEAD, tag: v26.4, origin/stable_devel, stable_devel)
build.MOS_NOTE KB123450
build.MOS_LINK https://support.oracle.com/support/?anchorId=&kmContentId=2485457&page=sptemplate&sptemplate=km-article
Will try another attempts on other servers/PCs then I’ll consider creating the SR.
Thanks for your help.
My SR is 4-0003228207
Hi Vasek,
is this issue still open with SR 4-0003228207 ?
Then I can check.
Thanks
Mike
Hi,
I’ve probably figured out that this is a minor bug in autoupgrade. The thrown error “Request to https://transport.oracle.com failed with response code [400]” to the command “MOS> list” does not have any negative impact on subsequent attempt to download patches. The autoupgrade downloads the patches just well.