KB5066835 update fails to install. It just keeps on failing to install after multiple attempts. One of the most efficient methods to resolve this problem quickly is to rename the Windows\SoftwareDistribution folder & run the Windows update once again.
Steps
Stop the Windows Update Service from Windows Services
Stop BITS
Go to Windows folder, rename SoftwareDistribution folder to softwaredistribution.old or softwaredistribution.littlejoe (up to you). You may asked for Administrative confirmations.
Restart Windows
Check for updates or click the retry button and everything should be fine now.
Applies on both Windows 10 and Windows 11 distributions while the update with issues is specific to Windows 11.
As you might have already noticed, mostly I post instructions for installing Oracle software on Windows. Today, I will try to walk you through the Linux installations for APEX, ORDS and Apache Tomcat. Please note, my attempts are against an existing multitenant Oracle EBS database/environment. Extending Oracle EBS database requires you to strictly adhere to multiple conditions. Please make sure that you WILL refer this document prior attempting the rest of the article.
Make sure you will be downloading the latest software. If you are using Windows machine to download the software, move them to a path that your oracle user has access to, eg(/u01/oracle/Downloads)
Extract the archives to paths without space.
SSH/VNC to your linux box and switch to the path where you have extracted the APEX installation sources. First of all, let us check whether the PDB already has an APEX installation
oracle@apps.example.com:/home/oracle/Downloads/apex-latest/apex>sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 24 18:37:56 2023
Version 19.17.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.0.0
SQL> alter session set container="TEST";
Session altered.
select version from dba_registry where comp_id='APEX';
Normal cases there shouldn’t be a default installation of APEX available with Oracle EBS database. Next step is to create a tablespace for APEX
Once the new tablespace is created, we are ready to install APEX
SQL> @apexins.sql APEX APEX TEMP /i/
Depending upon the resources available, this installation could take considerable time. Once done, execute “apxchpwd.sql” from the same session.
SYS> @apxchpwd.sql
...set_appun.sql
================================================================================
This script can be used to change the password of an Oracle APEX
instance administrator. If the user does not yet exist, a user record will be
created.
================================================================================
Enter the administrator's username [ADMIN]
User "ADMIN" does not yet exist and will be created.
Enter ADMIN's email [ADMIN] youremail@yourdomain.com
Enter ADMIN's password [] <== Use the same password across for a TEST environment
Created instance administrator ADMIN.
From the same session, execute “apex_rest_config.sql”
SQL> @apex_rest_config.sql
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
Enter a password for the APEX_LISTENER user [] <== use the common password
Enter a password for the APEX_REST_PUBLIC_USER user [] <== use the above password
Unlock all APEX database user accounts before moving ahead. We’ve the user profile DEFAULT set with no password expiry. This is real pain and an expired password could completely make your day spoiled. Follow PRODUCTION instructions if you are setting it for it. Basically you only need to unlock the user “apex_public_user”
SQL>alter user apex_listener identified by <<common password>> account unlock;
/
SQL>alter user apex_public_user identified by <<common password>> account unlock;
/
SQL>alter user apex_rest_public_user identified by <<common password>> account unlock;
/
if you have valid Oracle support, download and apply the APEX patch set 6 before installing ORDS. Please note, Oracle EBS server is a complex environment and setting up ORDS on the same server is highly discouraged as ORDS software, network PORTS requirement could cause total service outage. I recommend setting up a different server for ORDS. Regardless, the following instructions are for the same TEST server where APEX was installed already.
Oracle Linux comes preinstalled with OpenJDK and ORDS doesn’t support it. Hence you must remove it and install a supported version. I am using JDK 17 for the purpose. Please follow the instructions available here
Oracle EBS database doesn’t allow you to connect as “SYS” from remote locations & you can override it by adding a password file which I will not encourage. If you insist, please execute the following instructions.
cd $ORACLE_HOME/dbs
oracle@apps.example.com:/u01/oratest/TEST/db/tech_st/19.0.0/dbs>orapwd file=orapwTESTCDB password=<<your password>> entries=5
SQL>alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
SQL>alter user sys identified by <<your password>> account unlock container=all;
Instead, you can “simply” grant “sysdba” role to system account!
sqlplus / as sysdba
SQL> grant sysdba to system container=all;
Revoke the grants once the activities are over.
Now switch to the path where latest ORDS installation sources were extracted and execute “ords_installer_privileges.sql”
sqlplus / as sysdba
SQL> alter session set container="TEST";
SQL> @ords_installer_privileges.sql system
Now, we are ready to install ORDS interactive mode. I preferred interactive mode than silent mode for a better understanding. ORDS 24.1 automatically picks up TNS entries for the CDB, hence make sure to select “S” from the options provided.
/home/oracle/Downloads/ords-latest/bin>ords --config /u01/ords/config install --interactive --log-folder /u01/ords/logs
Oracle REST Data Services - Interactive Install
Enter a number to select the TNS net service name to use from /u01/oratest/TEST/db/tech_st/19.0.0/network/admin/tnsnames.ora or specify the database connection
[1] TESTCDB SERVICE_NAME=TESTCDB
[2] EXTPROC_CONNECTION_DATA SID=PLSExtProc
[S] Specify the database connection
Choose [1]: S
Enter a number to select the database connection type to use
[1] Basic (host name, port, service name)
[2] TNS (TNS alias, TNS directory)
[3] Custom database URL
Choose [1]:
Enter the database host name [localhost]: apps.example.com
Enter the database listen port [1521]: 1526
Enter the database service name [TESTCDB]: TEST
Provide database user name with administrator privileges.
Enter the administrator username: system
Enter the database password for system:
I’ve created two new tablespaces for ORDS, as version 24.x has many new prompts & I’ve noticed that the EBS PDB doesn’t have a TEMP tablespace.
The next list of prompts is quite long & mostly we need to deal with 3,4,6,9 which are respectively for setting up ORDS_PUBLIC_USER user password and default tablespaces followed by whether you want to configure as standalone server.
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=apps.example.com PORT=1526 SERVICE_NAME=TEST
Administrator User: system
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] ORDS runtime user and schema tablespaces: Default: SYSAUX Temporary TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location:
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: 3
Enter your choice for the runtime user password (ORDS_PUBLIC_USER)
[S] Specify your own password
[G] Generate password
[C] Cancel - No Changes
Choose [G]: S
Enter the database password for ORDS_PUBLIC_USER:
Confirm password:
Once the password for ORDS_PUBLIC_USER set, select the option 4
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=apps.example.com PORT=1526 SERVICE_NAME=TEST
Administrator User: system
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <specified password>
[4] ORDS runtime user and schema tablespaces: Default: SYSAUX Temporary TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location:
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: 4
Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]: ORDS
Enter the temporary tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [TEMP]: ORDS_TEMP
Now, we should decide whether to setup ORDS as a standalone server. This means, ORDS will use built-in jetty server to start the ORDS services, which I don’t prefer. Let us see how the options switch when we select option 6 (changes highlighted). For this article I chose 6 to setup Standalone mode.
Choose [A]: 6
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=apps.example.com PORT=1526 SERVICE_NAME=TEST
Administrator User: system
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <specified password>
[4] ORDS runtime user and schema tablespaces: Default: ORDS Temporary ORDS_TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: No
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: 6
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=apps.example.com PORT=1526 SERVICE_NAME=TEST
Administrator User: system
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <specified password>
[4] ORDS runtime user and schema tablespaces: Default: ORDS Temporary ORDS_TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location:
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
If we are going ahead with Standalone mode enabled, then we must specify the APEX static resources location by choosing option 9. Copy the images folder from APEX installation folder to /u01/ords/
Choose [A]: 9
Enter the APEX static resources location: /u01/ords/images
Enter a number to update the value or select option A to Accept and Continue
Choose [A]: 9
Enter the APEX static resources location: /u01/ords/images
Now we can accept the changes and proceed by selecting the option “A”
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=apps.example.com PORT=1526 SERVICE_NAME=TEST
Administrator User: system
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <specified password>
[4] ORDS runtime user and schema tablespaces: Default: ORDS Temporary ORDS_TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location: /u01/ords/images
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: A
ORDS installation is pretty straight forward. If you didn’t change the ORDS_PUBLIC_USER password during the above, please keep in mind that changing the password later could force you to reconfigure ORDS. Once the installation is over, ORDS built-in jetty server automatically start. You can access the APEX interface now from http://localhost:8080/ords. Use ctrl+c to kill the server.
Now we will install and configure Apache Tomcat for the webserver serving ORDS. Version 9 was the latest one supported for ORDS, hence we will proceed with the same version. Keep on checking Oracle’s announcements to know when the later versions are certified for ORDS. Download the tar.gz file from the download repository & extract to /u01/apache-tomcat/
Now switch to /u01/apache-tomcat/conf path and let us quickly make few modifications. As my server is already running Oracle EBS on port number 8005, I had to change this to next available port so that Apache Tomcat could go online.
Edit the “server.xml” file and make the changes as with the image below and make sure that you are not running other application on the port 8080. If yes, you will have to reconfigure ORDS once again with the next available port (I am not sure whether it would truly affect incase if you are not using Standalone mode)
Now we have to copy few files to Apache repositories.
It’s time to start Apache Tomcat server! As user oracle
oracle@apps.example.com:/u01/apache-tomcat/bin>export ORDS_CONFIG=/u01/ords/config
oracle@apps.example.com:/u01/apache-tomcat/bin>export JAVA_OPTS="-Dconfig.url=${ORDS_CONFIG} -Xms1024M -Xmx1024M"
oracle@apps.example.com:/u01/apache-tomcat/bin>./startup.sh
Using CATALINA_BASE: /u01/apache-tomcat
Using CATALINA_HOME: /u01/apache-tomcat
Using CATALINA_TMPDIR: /u01/apache-tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /u01/apache-tomcat/bin/bootstrap.jar:/u01/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
If there are no configuration issues, Apache Tomcat server should start serving now.
You may run into this error while trying to setup a new database using Oracle 19c DBCA immediately after “software only” installation. The version of software that is available to download from Oracle repository is age old (19.3.0.0 for Windows) & if you are very attentive, notice that the installation process clearly warns about uncertified OS, while the software being installed on latest versions of Windows 11 / or other.
While this doesn’t have anything to do with the “Disabled Admin Shares”, identified as a bug & has a solution.
Open an elevated command prompt, switch to Oracle Home bin folder. and execute the DBCA
We just completed 10 years of blogging with WORDPRESS & it was a great experience! Although we’ve started the blog ONLY to vent out our frustrations with Windows 7 OS, over the years we’ve discussed many other technology areas.
Well…err hmm, about many things those WERE not significant at all, however many of you have seen them ;) . Now you may ask why switching from a life long free blog to a COM (commercial site). Answer is simple, WE are going to have few advertisements running over the blog, which might fetch us some income!
We’ve been enthusiastically doing many charities and currently planning to setup an educational fund for under privileged expat students in Kuwait. We will utilize every penny that comes through the ads for this purpose.
So if you find an interesting ad on our pages, please check them out. We’ve never commercialized any of our efforts & will remain to provide you the hacks/solutions free.
I’m always using FireFox browser with no history saved. This potentially helps me from the browser “Remembering” my “hostile” activities.
As I live in Kuwait, this has a downside. Google decided to launch the local language page (Arabic) as soon as I try any of the Google applications like search or email.
I don’t pretty much care about the search part, as soon as the results are loaded, I am given an option to switch the language to English.
However, the email thing is NOT that easy. I have scroll few kilometers down, do a guess work with the language drop down and again on the login page, have to select English as language.
Recently I did some minor adjustments with the URL & figured out a short link that will definitely load the English Gmail logon screen ;)
Recently one of our accountants forwarded me a screenshot, that was showing “FRM-40735 WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-01403” while he was trying to enter invoices against a “NEWLY” created vendor/supplier.
Our Oracle Application R12 (12.0.6) is considered 99.99999% stable, without a single technical or functional issue that really become a show stopper throughout last many years.
Well, this particular issue looked perplexing as it was not dealt by Oracle Application’s error reporting & slowly we started dwelling Oracle support documents those were dealing with the given forms error “FRM-40735 WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-01403”
Most of the documentations where mentioning about IBY duplicate pay party, which was not our case. Hence, I decided to open the associated form APXINWKB.fmb & located the WHEN-VALIDATE-ITEM trigger associated with the column “Purchase Order Number”. I couldn’t find any irregularities between an order that didn’t raise the error and this particular Purchase order did raise the exception, which was unhandled.
After two days of continuous attempts, I remembered that such errors happen in other forms modules when we had missing information for new vendors/suppliers. Must be due to a bug, there were times when site level details were NOT populated to organizations level details for a vendor/customer & I decided to go through all mandatory elements those were expected while creating a new vendor/supplier.
I sat with my colleague and we reached to “Payment Method”, and realized that the default payment method was not set for this particular vendor against the organization where we were getting this unhandled exception.
Once the payment method was set, the invoice was posted for the vendor successfully! So, if you come across these kind of unhandled exceptions across Oracle’s proprietary forms those deal with payments/invoices, prior exhausting yourself with cloning and patching, make sure you have all the mandatory elements for customer/vendors are properly filled in and assigned to all the organizations.
Hope this finding helps few consultants out there!