Oracle 23 throws ORA-26701: XStream process does not exist

135 Views Asked by At

I am presently evaluating Oracle 23's FREE image with XStream using the Oracle Container Registry image having completed the following custom-setup options:

  • Created the recovery_area path in the image for archive logs.
  • Set db_recovery_file_dest_size and db_recovery_file_dest and enable_goldengate_replication.
  • Enabled archive log mode and bounced the database after above configurations.
  • Created the c##xsadmin tablespaces in both the FREE and FREEPDB databases.
  • Created the user c##xsadmin in the FREE root database assigned to its tablespaces.
  • Grant CREATE_SESSION, SET CONTAINER, XSTREAM_CAPTURE, and XSTREAM_APPLY to the c##xsadmin user.
  • Created a local user in FREEPDB1 that I connect with the following grants: CONNECT, CREATE SESSION, CREATE TABLE, CREATE SEQUENCE.
  • Created the c##xsuser tablespaces in both the FREE and FREEPDB1 databases.
  • Created the common user c##xsuser in the FREE root database specifying the c##xsuser tablespaces above.
  • Grant CREATE SESSION, SET CONTAINER, SELECT ON V$DATABASE, FLASHBACK, SELECT_CATALOG_ROLE, and EXECUTE_CATALOG_ROLE to the c##xsuser common user.

With those steps in place, I begin to create the XStream outbound server by running the following using the c##xsadmin user in the FREE database:

DECLARE
  tables  DBMS_UTILITY.UNCL_ARRAY;
  schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
    tables(1)  := NULL;
    schemas(1) := 'debezium';
  DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
    server_name     =>  'dbzxout',
    table_names     =>  tables,
    schema_names    =>  schemas);
END;

Finally, I reconnect as the sys user with sysdba role and execute:

DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
  server_name  => 'dbzxout',
  connect_user => 'c##xsuser');
END;

In the container I see XStream and GG start:

The following output is now a tail of the alert.log:
  Current log# 3 seq# 6 mem# 0: /opt/oracle/oradata/FREE/redo03.log
2023-11-03T16:07:51.090708+00:00
Thread 1 advanced to log sequence 7 (LGWR switch),  current SCN: 3168082
  Current log# 1 seq# 7 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2023-11-03T16:07:51.105474+00:00
NET  (PID:920): Archived Log entry 5 added for B-1146462010.T-1.S-6 ID 0x548cb679 LAD:1 [krse.c:4846]
2023-11-03T16:07:52.900689+00:00
First applied SCN for apply w/ object number 70773 and subscriber sequence number 1 is updated to SCN: 0 (0x0000000000000000)
2023-11-03T16:07:52.907440+00:00
First applied SCN of the XStream path from capture (CAP$_DBZXOUT_1) to propagation () to apply (DBZXOUT) is set to SCN: 3166601 (0x0000000000305189)
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 573440K, new size 583680K
2023-11-03T16:07:59.672209+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 583680K, new size 604160K
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 604160K, new size 614400K
2023-11-03T16:08:01.292894+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 614400K, new size 645120K
2023-11-03T16:08:04.237279+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 645120K, new size 655360K
2023-11-03T16:08:04.286567+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 655360K, new size 686080K
2023-11-03T16:08:06.824192+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 686080K, new size 696320K
2023-11-03T16:08:06.857728+00:00
Resize operation completed for file# 3, fname /opt/oracle/oradata/FREE/sysaux01.dbf, old size 696320K, new size 727040K
2023-11-03T16:08:08.921850+00:00
 : 
LOGMINER: Gathering statistics on logminer dictionary. (incremental, nonparallel)

Running SELECT dbms_apply_process.get_apply#('DBZXOUT'); outputs:

1000

Running SELECT STATE FROM V$PROPAGATION_RECEIVER; outputs:

Waiting for message from propagation sender

Running SELECT SERVER_NAME, CONNECT_USER, CAPTURE_NAME, SOURCE_DATABASE, CAPTURE_USER, QUEUE_OWNER FROM ALL_XSTREAM_OUTBOUND; outputs:

DBXOUT | C##XSUSER | CAP$_DBXOUT_1 | FREE | C##XSADMIN | C##XSADMIN

I have also checked DBA_ALERT_HISTORY and DBA_OUTSTANDING_ALERTS for good measure and I don't get any results, so I'm really baffled as to why when my client attempts to attach to the XStream process, I get the error:

Caused by: oracle.streams.StreamsException: ORA-26701: XStream process DBZXOUT does not exist

I compared this to my steps for Oracle 19 and the only difference I found was needing to assign XSTREAM_CAPTURE and XSTREAM_APPLY roles rather than using the DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE package and it works for that version.

Does anyone have any suggestions on what I may have done incorrectly?

0

There are 0 best solutions below