Enable Flash and use Enterprise Manager <= 13.3 in 2021

Of course you should update to Enterprise Manager 13.4 (or later) after the 12th of January 2021. Ok, so you don’t want to or you can not do this at this moment or I need it NOW!

There are two things happening here. 1) Adobe implemented a kill-switch that you can not use Flash anymore after the 12th of January and 2) your browser stopt supporting/running Flash. This blog post is about issue 1. The ‘kill-switch’.

Adobe’s Flash “Enterprise Enablement”

What?! Yes, you can still run Enterprise Manager with Flash after the 12th of January 2021, but you need to do something called “Enterprise Enablement” and have sites be placed on the Flash Allow List.

Read about it in the Adobe Flash Player Administration Guide for Flash Player 32.

Create a Flash Allow List

Be warned, outdated Flash is unsafe…! Enable it for EM only (AllowList it).

Flash implemented a kill switch, so you can not use Flash anymore after the 12th of January. Luckily you can allow site to still run Flash!

Create the following file mms.cfg as Administrator and save it in C:\Windows\System32\Macromed\Flash\ and C:\Windows\SysWOW64\Macromed\Flash\ .

Continue reading

Bash script: Trusted certificate chains to orapki wallet

I have created a script to add trusted certificate chains to an orapki wallet from the Linux command line, and there is no web browser needed. It reads sites from a list and adds the certificate chains of those sites to an orapki (auto login) wallet.


Start the script with ./certs_to_wallet.sh <path to wallet> . This will prompt you for a NEW wallet (auto login) creation. The old wallet will be backed-up. In case of permission of password errors, the backup will be restored.

It reads a wallet_sites.lst file from the current directory or the wallet directory. The wallet directory takes preference, so you can have a list of sites per wallet. A site per line will be processed and the certificate chain will be added to the given wallet (the last line should be empty).

Continue reading

UPDATE: Oracle KVM on OEL 7.7 sos-3.7-11 conflicts with vdsm-4.20.46 – FIXED in 4.3!

This weekend Oracle updated to oVirt 4.3, Yeah! See instruction below how to upgrade to oVirt 4.3 and if/when you version locked the sos package.

Oracle was still using oVirt Release 4.2 repositories for Oracle Linux 7.7. The vdsm-4.20.46 conflicted with sos 3.7-11 from the ‘latest’ Oracle Linux 7 repository, which features Oracle Linux 7.7, not 7.6.

The fix is in vdsm-4.30.something, from the oVirt 4.3 repo’s, and now they are offering it!

Continue reading

Oracle KVM adding host ‘Command returned failure code 1 during SSH session’

When you get ‘Command returned failure code 1 during SSH session’ during adding a KVM host with the Oracle Linux Virtualization Manager, there might be something wrong with the libvertd deamon on the host you want to add.

I had this issue with adding a Oracle Linux 7.7 host.

Please check on the KVM host the following:

Continue reading

Add a DIAGNOSTIC user to Enterprise Manager for performance insights and query tuning only

When you want a user, probably a developer, to have access via Enterprise Manager to show query performance, but *ONLY* to specific databases and it’s performance stats, you need a ‘restricted’ EM and database user to do this. Next is tested on EM 13.3 and an 18c container database.

Short list of things that need to be done:

  1. Create a new Enterprise Manager Role with performance monitor privileges for specific targets
  2. Create new Enterprise Manager Administrators and add them to the previously create role
  3. Create a new common user in the target databases for monitoring within the target databases
  4. Create a new Enterprise Manager Named Credential for these targets

So that’s a short list, now the (written) instructions per step: Continue reading

ORA-04036 PGA memory exceeds PGA_AGGREGATE_LIMIT

Although the PGA_AGGREGATE_LIMIT is set and Oracle decided to kill the process/session that was using so much, it sometimes still exceeds and grows and eventually exhausting all the memory.

SQL> show parameter pga_aggregate_limit
NAME                            TYPE        VALUE
------------------------------- ----------- ------------------------------
pga_aggregate_limit             big integer 14G

SQL> select round(pga_used_mem/1024/1024) PGA_USED_MEM
from v$process p join v$session s on p.addr = s.paddr
where s.sid = 259;


SQL> /


From the alert log:

KILL SESSION for sid=(259, 29568):
   Reason = alter system kill session
   Mode = KILL HARD SAFE -/-/-
   Requestor = USER (orapid = 25, ospid = 4952, inst = 1)
   Owner = Process: USER (orapid = 148, ospid = 5628)
   Result = ORA-31

The culprit here is the ORA-31 error. This is the ‘marked for kill’ message. So the process is not killed, but only marked for kill:

Continue reading

Purge a single sql_id from the shared pool

When you want to flush or purge just a single (or a few) statement from the Shared Pool you can use the following query (all on a single line in SQL Developer e.g.):

exec for c in (select address, hash_value from v$sqlarea where sql_id='3hab0nxcfsxyj') loop sys.dbms_shared_pool.purge(c.address||','||c.hash_value,'C'); end loop;

-- If and only if the first argument is a cursor address and hash-value,
--        the flag parameter should be set to 'C' (or 'c').

Happy flushing!

install_ojvmwcu.sql and “Enter value for 1:”

In the Oracle JVM Web Services Call-Out Utility Developer’s guide, it states that the install_ojvmwcu.sql script must be run, but if you do that, it will ask you for a value. Which value?

In the script has been changed, but the documentation hasn’t. The value it is asking for is a password, the password of the OJVMWCU_INSTALL user. Hang on? According to the docs this user must be created manualy first… not any more.

The “install_ojvmwcu.sql” calls “@configure_ojvmwcu.sql &1”, that’s where the “Enter value for 1:” comes from.
The “configure_ojvmwcu.sql” contains:

install_schema  VARCHAR2(20) := 'OJVMWCU_INSTALL';

procedure create_user as
  user_exists integer := 0;
  select count(1) into user_exists from dba_users where username = install_schema;
  if user_exists != 0 then
    execute immediate 'drop user ' || install_schema || ' cascade';
  end if;
  execute immediate 'create user ' || install_schema || ' identified by &1';

Aha! The &1 the password of the OJVMWCU_INSTALL user, if it’s there it will be dropped and it will be created.

So, run “install_ojvmwcu.sql  password” for installing and creating the OJVMWCU_INSTALL user automagically. After that, grant users with “@grant_ojvmwcu.sql  user”.

Oh, run an “utlrp” (recompile invalid objects) after running the install_ojvmwcu.sql script.

Happy installing.

ODA upgrade to 12.2 fails with [DCS-10001:Internal error encountered: Fail to run root scripts..]

During an upgrade to and in the step running GRID root scripts, the upgrade fails with:

[DCS-10001:Internal error encountered: Fail to run root scripts..]

After that if you run the upgrade again, you will get the following error:

[DCS-10001:Internal error encountered: Fail to extract the GI clone file.]

When I got there error’s, I found in the logging (/u01/app/<host_name>_<date>_<time>-<more_numbers>.log) that there was no PKI trust set up between the ODA and ‘itself’ (aka passwordless login). The Oracle GRID upgrade works by accessing all the nodes in it’s cluster via ssh, including itself. But This was a single (non HA) machine (X6-2M), so did not expect it. Continue reading