Miguel Anjo


Alter system kill session “force timeout 0” ? new form of “kill immediate”?

The other day I saw that besides the catcon.pl, there is a catcon_kill_sess_gen.sql:

ls -1 $ORACLE_HOME/rdbms/admin/catcon*
/u00/app/oracle/product/19.30.0/rdbms/admin/catcon_kill_sess_gen.sql
/u00/app/oracle/product/19.30.0/rdbms/admin/catcon.pl
/u00/app/oracle/product/19.30.0/rdbms/admin/catcon.pm
/u00/app/oracle/product/19.30.0/rdbms/admin/catconst.pm
/u00/app/oracle/product/19.30.0/rdbms/admin/catcont.sql

When looking at this file, I noticed it kills catcon session using a “ALTER SYSTEM KILL SESSION ‘sid, serial#’ FORCE TIMEOUT 0”, except if on Oracle 12.1, where still does “IMMEDIATE” instead:

This new syntax “FORCE TIMEOUT x” is first described in Oracle AI 26ai DB documentation (but it seems to work from version 12.2). Basically it theoretically allows the draining of sessions by setting a timeout until the session terminates some task, before killing it.

There are two new elements here: “FORCE” and “TIMEOUT x”.

What I understood from documentation is:

When not using the “FORCE” keyword, the two following commands behave the same way:

ALTER SYSTEM KILL SESSION ‘sid, serial#’ IMMEDIATE = ALTER SYSTEM KILL SESSION ‘sid, serial#’ TIMEOUT 0

Basically, it instructs Oracle to terminate a session and roll back ongoing transactions, release all session locks, recover the entire session state, and return control to you immediately.

With the “FORCE” keyword alone, it terminates the session like “IMMEDIATE”, however waiting first for a timeout of 5 seconds.

With the “FORCE TIMEOUT 0”, then the connection is closed immediately, when there is some activity going on.

Here a summary of what I observed:

ALTER SYSTEM KILL SESSION command:Kill idle sessionKill ongoing select
… IMMEDIATEKiller:
System altered.
Killed session:
ORA-03135: connection lost contact
ORA-03114: not connected to ORACLE
Killer:
ORA-00031: session marked for kill
Killed session:
ORA-00028: your session has been killed
… FORCEKiller:
System altered.
Killed session:
ORA-03135: connection lost contact
ORA-03114: not connected to ORACLE
Killer:
System altered.
Killed session:
ORA-00028: your session has been killed
… TIMEOUT 0Killer:
System altered.
Killed session:
ORA-00028: your session has been killed
ORA-01012: not logged on
Killer:
ORA-00031: session marked for kill
Killed session:
ORA-00028: your session has been killed
… FORCE TIMEOUT 0;Killer:
System altered.
Killed session:
ORA-03135: connection lost contact
ORA-03114: not connected to ORACLE
Killer:
System altered.
Killed session:
ORA-03113: end-of-file on communication channel

Just for completion, if using “DISCONNECT SESSION” instead, then the session might just automatically failover if the parameters are correctly set.

Le me know if you have other inputs.


SQL and how Oracle filter the resultset

While reading the very interesting Oracle AI Database 26ai New Features Guide, I got to know that there is a new “QUALIFY” filter clause (there is also a new “FILTER” clause). However, what I found more interesting in the documentation was this sentence:

The order of operations is as follows: FROM → WHERE → GROUP BY → HAVING → WINDOW → QUALIFY → DISTINCT → ORDER BY → FETCH FIRST.

This is somehow a back to the roots and basic SQL information that I had in the back of my head, but never though really end-to-end about.

Here an example of query using all except DISTINCT elements of the operations order:

SELECT region, city, AVG(temperature), AVG(AVG(temperature)) OVER w AS avg_temp_region 
    FROM city, regions 
    WHERE city.region_id = region.region_id 
    GROUP BY region, city 
    HAVING region NOT LIKE 'LISBON' 
    WINDOW w AS (PARTITION BY region)
    QUALIFY avg_temp_region > 10
    ORDER BY region
    FETCH FIRST 5 ROWS ONLY;

I don’t think I could write a SQL like that, but at least now I know how it looks like.


How to Patch/Upgrade Java (JDK and JRE) in both Oracle Home and OEM Agent 13.5 home to latest certified version

A vulnerability scan from the customer pointed out many problems due to old patch backups and old JDK versions installed in a Oracle VM.

Many of the problems were with the files:

/u01/app/oracle/product/oem13c/agent/agent_13.5.0.0.0/oracle_common/jdk/jre/lib/rt.jar
/u01/app/oracle/product/19.0.0/dbhome_1/jdk/jre/lib/rt.jar

What I learned:

  • OEM Agent 13.5 default java version is 1.8.0_261, also after patching to the latest RU!
  • Oracle OPatch has its own JRE and this is not updated when applying latest JDK patch for Oracle Home
  • Upgrade JDK in Oracle Home is online

What I already knew:

Below how I “cleanup” the vulnerabilities at my customer VM. This instructions are for java version 1.8.0_481, latest certified for Oracle in January 2026 :

(more…)

New My Oracle Support – updates and issues 1

Oracle is taking seriously the confusion created with the abrupt migration to the new My Oracle Support (MOS) portal. Today there was a meeting between several VPs and other responsible and the Oracle ACE community. Thanks a lot!

We see many things are being improved and solved and the team is working hard to get the trust back from the community. We are here to help!

My top issues today (15.Dec.2025) with the new MOS are here:

Content related issues

  1. A list with “Last viewed Docs” + “Last searches” sections would very useful to find again documents. The list should include the last updated date in a column
  2. In “My Favorites” section, it is important to see the “last updated date” as a column. Old DocId may be removed. Folders/Categories were useful
  3. The “Favorites” were the base for the “Oracle Support HOT Topics” daily email, and this was where users can get information if any of our favorites was updated. This email seems not to exist anymore.
  4. Bugs are not part of the search – it is useful to know the bug exists, even if it is marked “not public”. This was the case in old MOS;
  5. Missing wget script to download patch – this was important, as usually we do not have browsers where we need the patch;
  6. SRs in “Pending Final Closure” do not appear any where (neither open, nor close). Should be in “need your attention” part. (Example SR 4-0001431240)
  7. There are still too many “Request Header Or Cookie Too Large” errors!
  8. Login timeout even when actively using the portal!
  9. Search results do not prioritize recent and most viewer content (example, search for “CPU October 2025” – it does not give KB795208 which is a top50 document)
  10. Internal links are not working (low priority)

UX related issues

  1. Choose sections to have in front page
    • My Favorites + My last viewed searches are important for me in first page
    • Archived Service Requests are not important to me in first page
  2. The Search box should be visible on every page, without need to return to the Home!
  3. Some text overflows the defined column and cannot be read (see KI35841)
  4. Instead of having two columns (left column with Title, DocID, Last Updated, Service | right with Doc text)
    • better would be two cells, top cell with content of the left column, followed by bottom cell with text
    • both cells would have 1296px width, which would give more place for tables (and the document title in top)

E-Mail related issues

  1. SR update emails do not have the “Title” of SR neither information the “Tenancy” the SR relates. As consultant I’ve about 50 CSI/Tenancies and this is important to prioritize my work
  2. SR Creation and Update emails do not have the information about the “Tenancy”.

I’m sending this information also by email to my contacts at MOS, hoping it helps prioritizing the issues.


New Oracle Support portal DocID to KB link translation 2

Here is a table with the correspondence between the Document ID from the legacy My Oracle Support portal and correspondent KB document and link on the new portal.

Sometimes it is possible to find the new DocID by using these URLs:
https://support.oracle.com/support/?kmContentId=<oldDocID without ending .1>
or
https://support.oracle.com/epmos/faces/DocumentDisplay?id=<oldDocID>

For instance, DocID: 888.1 can be found with (note removed ending .1): https://support.oracle.com/support/?kmContentId=888

To download patches, you can use this URL: https://support.oracle.com/support/?patchId=<patchID>

These are the new links for the documents I use the most…

Update 10.12.2025: Oracle provided a similar link translation table with the Top50 Documents.

Old MOSNew MOSLink
Doc ID 153788.1KA953(KA953) ORA-600/ORA-7445/ORA-700 Error Look-up Tool (does not exist anymore)
Doc ID 153788.1KA600(KA600) ORA-600/ORA-7445/ORA-700 Error Look-up Tool (was KB600…)
Doc ID 888.1KB106822(KB106822) Primary Note for Database Quarterly Release Updates
Doc ID 2193391.1KB136647(KB136647) Latest Oracle GoldenGate For Oracle Database & Oracle Database Patch Recommendations
Doc ID 2118136.2KA958(KA958) Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases
Doc ID 2774779.1KB38275(KB38275) (ODyS) Oracle Dynamic Scaling engine – Scale-up and Scale-down automation utility for OCI DB System (ExaDB-D/ExaDB-C@C/ExaDB-XS)
Doc ID 888828.1KB153930(KB153930) Exadata Database Machine and Exadata Storage Server Supported Versions
Doc ID 2550798.1KB858617Autonomous Health Framework (AHF) – Including Trace File Analyzer and Orachk/Exachk
Doc ID 822485.1PNEWS1689Overview of the Enterprise Manager Proactive Patch Program


Classic My Oracle Support is gone 1

This morning I wanted to look for a note and to my surprise the old Metalink, then My Oracle Support portal, did not exist anymore.

All is now merged in the new “My Oracle Support” site, previously known as “My Oracle Cloud Support”.

The link to bookmark is https://support.oracle.com/support/

New DocID, now is KB

Important to notice is, The  DocID number were changed. For instance, to find the following note:
    ”How to add an Additional Listener in RAC setup (Doc ID 2456650.1)”

You need to look for the title. The document has now a new ID, starting with KB (Knowledge Base):

The links from Google are still not updated and do not work.

The solution is to search for the title in the new Oracle Support site.

Or use the MOS DocId to KB link translation I’ve compiled.

Old SRs, new SRs

The SRs from the “classic” portal are now at the end of the list as “Archived Service Requests”.

There are three headings now:

  1. These service requests need your attention
  2. Oracle is working on these service requests for you
  3. Archived Service Requests (last 2 years from old portal)

To create new SRs for On-premises, you need to search for “Oracle Database”:

Feedback

Unfortunately there is not anymore the possibility to:

  • see last searches
  • see last views documents/notes
  • favorites
  • use old DocID in the search (would be enough to keep in the text of the new note!)
  • No wget script to download patches
  • Search engine does not prioritize most viewed notes

I’ll get used to the new portal, but as everytime, changes are not easy.

Status 10.12.2025:


Recognize Oracle Client installation

On my environment script I want to recognize if an ORACLE_HOME belongs to a database or is just a client installation. Oracle does the following in its Oracle 26ai client runInstaller:

...
ORACLE_SERVER_PATH="${ORACLE_HOME}/inventory/Components21/oracle.server";
ORACLE_GSM_PATH="${ORACLE_HOME}/inventory/Components21/oracle.dslm";
# Check if the directory oracle.server exists
# If it exists, then the product is db otherwise is client
if [ -d $ORACLE_SERVER_PATH ]; then
...
  ${ORACLE_HOME}/perl/bin/perl -I${ORACLE_HOME}/perl/lib -I${ORACLE_HOME}/bin ${ORACLE_HOME}/bin/dbSetup.pl -J-D${CVU_OS_SETTINGS} "$@"   # bug 33519960 - support paths with whitespaces
else
  if [ -d $ORACLE_GSM_PATH ]; then
    ${ORACLE_HOME}/perl/bin/perl -I${ORACLE_HOME}/perl/lib -I${ORACLE_HOME}/bin ${ORACLE_HOME}/bin/dbSetup.pl "$@"      # bug 33519960 - support paths with whitespaces
  else
    ${ORACLE_HOME}/perl/bin/perl -I${ORACLE_HOME}/perl/lib -I${ORACLE_HOME}/bin ${ORACLE_HOME}/bin/clientSetup.pl "$@"      # bug 33519960 - support paths with whitespaces
  fi
fi

Basically here the logic:

  • Directory ${ORACLE_HOME}/inventory/Components21/oracle.server exists ➡️ Oracle Database installation
  • Directory ${ORACLE_HOME}/inventory/Components21/oracle.dslm exists ➡️ Global Data Services installation

On my script I simplified by checking:

  • File ${ORACLE_HOME}/bin/clientSetup.pl exists ➡️ Oracle Full client installation

Otherwise is a DB installation, as I don’t expect to use my script in any GDS server.


Extend Swap in Oracle Linux

The client has also configured a small Swap mountpoint, when looking at all memory available on the server. Oracle documentation says this:

The VM has 116GB memory, and 32GB reserved for HugePages. The actual swap mountpoint is 4GB big and, based on the Oracle Server Configuration Checklist for 19c, the swap mountpoint should be in this case 16GB.

I’m using Oracle Linux 9, xfs filesystems. I’ll increase the swap mountpoint online, with the databases running.

(more…)

Extend partition from VMWare in Oracle Linux – part 2 2

The client uses VMWare as virtualization platform for the Oracle Database VMs (yes, he is aware of the License implications).

The VM is running out of space in two partitions. The VMWare Admin extended the disks on their platform. Now I need to make this extension visible in Oracle Linux. This things we do once every 10 years, when versions, filesystems and tools already changed.

For this post in 2025, I’m using Oracle Linux 9, xfs filesystems. All operation are online, with databases running.

I divide this post in two parts:

Extend a mountpoint within several partitions in a block device

oracle@vmware-vm01 MIG01C $ cat /etc/system-release 
Oracle Linux Server release 9.6

The partition tree is below, and I need to increase the /u01 from 50G to 100G. The disk is /dev/sda

[root@vmware-vm01 ~]# lsblk
NAME                             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                                8:0    0   774G  0 disk 
├─sda1                             8:1    0   250M  0 part /boot/efi
├─sda2                             8:2    0     1G  0 part /boot
└─sda3                             8:3    0    77G  0 part 
  ├─ol_vmware-vm02-root          252:0    0    10G  0 lvm  /
  ├─ol_vmware-vm02-swap          252:1    0     4G  0 lvm  [SWAP]
  ├─ol_vmware-vm02-var_log_audit 252:2    0     1G  0 lvm  /var/log/audit
  ├─ol_vmware-vm02-u01           252:3    0    50G  0 lvm  /u01
  ├─ol_vmware-vm02-home          252:4    0     5G  0 lvm  /home
  ├─ol_vmware-vm02-var_log       252:5    0     2G  0 lvm  /var/log
  └─ol_vmware-vm02-var           252:6    0     5G  0 lvm  /var
sdb                                8:16   0   100G  0 disk 
└─sdb1                             8:17   0   100G  0 part 
  └─vg_u02-lv_u02                252:7    0   100G  0 lvm  /u02
(more…)

Extend partition from VMWare in Oracle Linux – part 1 2

The client uses VMWare as virtualization platform for the Oracle Database VMs (yes, he is aware of the License implications).

The VM is running out of space in two partitions. The VMWare Admin extended the disks on their platform. Now I need to make this extension visible in Oracle Linux. This things we do once every 10 years, when versions, filesystems and tools already changed.

For this post in 2025, I’m using Oracle Linux 9, xfs filesystems. All operation are online, with databases running.

I divide this post in two parts:

Extend single partition of block device

oracle@vmware-vm01 MIG01C $ cat /etc/system-release 
Oracle Linux Server release 9.6

The partition tree is below, and I need to increase the /u02 from 100G to 300G. The disk is /dev/sdb

[root@vmware-vm02 ~]# lsblk 
NAME                             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                                8:0    0   774G  0 disk 
├─sda1                             8:1    0   250M  0 part /boot/efi
├─sda2                             8:2    0     1G  0 part /boot
└─sda3                             8:3    0    77G  0 part 
  ├─ol_vmware-vm02-root          252:0    0    10G  0 lvm  /
  ├─ol_vmware-vm02-swap          252:1    0     4G  0 lvm  [SWAP]
  ├─ol_vmware-vm02-var_log_audit 252:2    0     1G  0 lvm  /var/log/audit
  ├─ol_vmware-vm02-u01           252:3    0    50G  0 lvm  /u01
  ├─ol_vmware-vm02-home          252:4    0     5G  0 lvm  /home
  ├─ol_vmware-vm02-var_log       252:5    0     2G  0 lvm  /var/log
  └─ol_vmware-vm02-var           252:6    0     5G  0 lvm  /var
sdb                                8:16   0   100G  0 disk 
└─sdb1                             8:17   0   100G  0 part 
  └─vg_u02-lv_u02                252:7    0   100G  0 lvm  /u02
sr0                               11:0    1 356.9M  0 rom  
(more…)