Oracle Server - Enterprise Edition - Version: 10.2.0.4 and later [Release: 10.2 and later]
Information in this document applies to any platform.
Symptoms:
ORA-00600: internal error code, arguments: [kwqbdrcp101], [], [], [], [], [], [], []
Current SQL statement for this session:
DECLARE job BINARY_INTEGER := :job; next_date DATE := :mydate; broken BOOLEAN := FALSE; BEGIN next_date := sys.dbms_aqadm.aq$_propaq(job); :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END;
Queue_to_queue is false.
Recreate the streams environment.
Drop/recreate the propagation.
Due to message existence in Queue.
没办法重建propagation进程:
1. Stop the Propagation.
exec DBMS_PROPAGATION_ADM.STOP_PROPAGATION('propagation_name'); --正常手段停不下来的话,可以强制停掉!
2. Drop the Propagation.
exec DBMS_PROPAGATION_ADM.DROP_PROPAGATION('propagation_name');
3. Purge the Queue table.
DECLARE
options dbms_aqadm.aq$_purge_options_t;
BEGIN
options.delivery_mode:=DBMS_AQADM.BUFFERED;
DBMS_AQADM.PURGE_QUEUE_TABLE('YESMYNET$APPQT',NULL,options);
END;
/
4. Create the Propagation.
BEGIN
DBMS_PROPAGATION_ADM.CREATE_PROPAGATION(
propagation_name => 'PROPAGATION$_1033',
source_queue => 'STRMADMIN2.YESMYNET$CAPQ',
destination_queue => 'STRMADMIN2.YESMYNET$APPQ',
destination_dblink => null ,--如果源队列和目标队列位于同一个database,这里置为null;
rule_set_name => 'RULESET$_1032' -- specify rule_set name, if you want
--propagation to use a rule_set, otherwise eliminate this parameter.
);
END;
/
重建完之后启动进程,可恶的
600错误终于消失了:
但是还是应用到一定的归档就卡住了,然后观察监控界面发现: