MATERIALIZED VIEW BECOMES INVALID AFTER REFRESH
Hello All,
I have wierd problem ,
In my enviroinment we have a MATERIALIZED VIEW ,which is refreshed by a sheduled DBMS_SNAPSHOT.REFRESH Job post the refresh it becomes invalid and every time we have to compile it manually ,Could anybody help with a solution .Thanks a lot in Advance .
DETAILS :
======
VERSION:Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
HOST: IBM AIX
Is the MV part of a refresh group?
Post the command and parameters used by the scheduled job to do the refresh as well as the parameters you use when you do it manually.
Similar Messages
-
Problem of Materialized view become invalid
Hi,
I know that because of DML or DDL operation My Materialized view invalid.
But I want to know the from which table it become invalid.
Is there any dictionary view from which I can find ?Hi,
I know that because of DML or DDL operation My Materialized view invalid.
But I want to know the from which table it become invalid.
Is there any dictionary view from which I can find ? -
How to CREATE MATERIALIZED VIEW LOG (MV fast refresh) with some JOINS
Hi @ all,
i'm trying to create a MATERIALIZED VIEW LOG for a fast refresh of a MATERIALIZED VIEW.
It works fine with a simple Request in the MATERIALIZED VIEW:
CREATE MATERIALIZED VIEW MV_ZOTD43_P
TABLESPACE GDII
BUILD IMMEDIATE
REFRESH FORCE AS
SELECT * FROM ZOTD43_P;
COMMIT;
CREATE MATERIALIZED VIEW LOG ON ZOTD43_P
TABLESPACE "GDII"
WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;
call DBMS_MVIEW.REFRESH('MV_ZOTD43_P', 'f');
But when I use a complex SQL-Request with some JOINS (one of the Table with spatial Data) in the MATERIALIZED VIEW, I get an error:
CREATE MATERIALIZED VIEW MV_TEST
TABLESPACE GDII
BUILD IMMEDIATE
REFRESH FORCE AS
SELECT lptd04_p.sst_nr AS sst_nr,
lptd03_p.aaaa AS aaaa,
lptd04_geom.geom as geom
FROM lptd04_p lptd04_p
JOIN lptd01_p lptd01_p ON lptd01_p.cre_nr = lptd04_p.sst_nr
JOIN lptd04_geom ON lptd04_geom.sst_nr = lptd04_p.sst_nr
JOIN lptd03_p lptd03_p ON lptd03_p.lief_nr = lptd04_p.lief_nr;
COMMIT;
CREATE MATERIALIZED VIEW LOG ON LPTD04_P
TABLESPACE "GDII"
WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;
call DBMS_MVIEW.REFRESH('MV_TEST', 'f');
Error report:
SQL Error: ORA-12004: REFRESH FAST kann für Materialized View "GDI"."MV_GDI_SST_STAMM" nicht benutzt werden
ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2255
ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2461
ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2430
ORA-06512: in Zeile 1
12004. 00000 - "REFRESH FAST cannot be used for materialized view \"%s\".\"%s\""
*Cause: The materialized view log does not exist or cannot be used. PCT
refresh is also not enabled on the materialized view
*Action: Use just REFRESH, which will reinstantiate the entire table.
If a materialized view log exists and the form of the materialized
view allows the use of a materialized view log or PCT refresh is
possible after a given set of changes, REFRESH FAST will
be available starting the next time the materialized view is
refreshed.
Am I doing something wrong or is it not possible CREATE MATERIALIZED VIEW LOG when the MATERIALIZED VIEW got some JOINS?
Regards,
GreqThanks for the link Alessandro ,
the error seems something to do with the Column-Type SDO_GEOMETRY, so
i create a new thread in the Spatial Discussion forum:
FAST REFRESHing of Oracle Materialized Views containing SDO_GEOMETRY column
Regards,
Greq -
Materialized view takes long to refresh
On Oracle 11g2, I created a materialized view fast refresh on commit CREATE MATERIALIZED VIEW mv_case
PARALLEL BUILD IMMEDIATE REFRESH FAST ON COMMIT ENABLE QUERY REWRITE AS
SELECT p.jperson_id,offense_id,CASE_SENTENCE_DATE,court_ref,CASE_COURT_ORI,
c.CASE_VERDICT_DATE,CASE_DOCKET,c.CASE_EXPUNGED,c.jcase_id,cc.CYCLEID_ID,
p.rowid p_rowid,xc.rowid xc_rowid,c.rowid c_rowid,cxo.rowid cxo_rowid,cc.rowid cc_row_id
FROM jperson p,jperson_x_jcase xc,jcase c,jcase_x_offense cxo,jcase_x_cycleid cc
where p.jperson_id = xc.jperson_id(+) and xc.jcase_id = c.jcase_id(+)
and c.jcase_id = cxo.jcase_id(+) and c.jcase_id=cc.jcase_id;
create index idx_mv_case_pid on mv_case(jperson_id);
ALTER TABLE mv_case ADD (CONSTRAINT PK_MV_CASE PRIMARY KEY(jcase_id,offense_id)) ;
create index idx_mv_case_p_rowid on mv_case(p_rowid);
create index idx_mv_case_xc_rowid on mv_case(xc_rowid);
create index idx_mv_case_c_rowid on mv_case(c_rowid);
create index idx_mv_case_cxo_rowid on mv_case(cxo_rowid);
create index idx_mv_case_cc_rowid on mv_case(cc_row_id); I inserted one single row into one of the master table
insert into jcase_x_offense (offense_id,jcase_id) values ('test_row3','test_row3');
commit; The commit tooks a quite long. I looked into the trace file and the actual insert took 0.01 seconds but one of the internel DML took most of time. I copy the relevant TKPROF output for the internal DML belowINSERT INTO QAPF.MV_CASE SELECT /*+ NO_MERGE(JV$) */
MAS$4.JPERSON_ID,JV$.OFFENSE_ID,MAS$2.CASE_SENTENCE_DATE,
MAS$2.COURT_REF,MAS$2.CASE_COURT_ORI,MAS$2.CASE_VERDICT_DATE,
MAS$2.CASE_DOCKET,MAS$2.CASE_EXPUNGED,MAS$2.JCASE_ID,
MAS$0.CYCLEID_ID,MAS$4.ROWID,MAS$3.ROWID,MAS$2.ROWID,JV$.RID$,
MAS$0.ROWID
FROM ( SELECT MAS$.ROWID RID$ , MAS$.* FROM QAPF.JCASE_X_OFFENSE MAS$ WHERE ROWID IN
(SELECT /*+ HASH_SJ */ CHARTOROWID(MAS$.M_ROW$$) RID$
FROM QAPF.MLOG$_JCASE_X_OFFENSE MAS$ WHERE MAS$.XID$$ = :1 )) JV$,
JCASE_X_CYCLEID AS OF SNAPSHOT(:B_SCN) MAS$0, JCASE AS OF SNAPSHOT(:B_SCN) MAS$2,
JPERSON_X_JCASE AS OF SNAPSHOT(:B_SCN) MAS$3, JPERSON AS OF SNAPSHOT(:B_SCN) MAS$4
WHERE (MAS$4.JPERSON_ID=MAS$3.JPERSON_ID(+)
AND MAS$3.JCASE_ID=MAS$2.JCASE_ID(+)
AND MAS$2.JCASE_ID=JV$.JCASE_ID(+)
AND MAS$2.JCASE_ID=MAS$0.JCASE_ID)
AND NOT EXISTS (
SELECT 1 FROM QAPF.MV_CASE SNA2$
WHERE (SNA2$.P_ROWID = MAS$4.ROWID)
AND (SNA2$.XC_ROWID = MAS$3.ROWID OR MAS$3.ROWID IS NULL )
AND (SNA2$.C_ROWID = MAS$2.ROWID OR MAS$2.ROWID IS NULL )
AND (SNA2$.CC_ROW_ID = MAS$0.ROWID OR MAS$0.ROWID IS NULL )
AND JV$.RID$ IS NULL)
AND NOT EXISTS (
SELECT 1 FROM JCASE_X_OFFENSE MAS_INNER$, JCASE AS OF SNAPSHOT(:B_SCN) MAS_OUTER$
WHERE MAS$2.ROWID = MAS_OUTER$.ROWID AND JV$.RID$ IS NULL
AND MAS_OUTER$.JCASE_ID=MAS_INNER$.JCASE_ID)
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 99.51 364.87 377012 17412972 1 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 99.51 364.87 377012 17412972 1 0
Rows Row Source Operation
0 LOAD TABLE CONVENTIONAL (cr=17412968 pr=377012 pw=120527 time=0 us)
0 FILTER (cr=17412968 pr=377012 pw=120527 time=0 us)
3363837 HASH JOIN RIGHT OUTER (cr=264914 pr=280254 pw=120527 time=35845080 us cost=299444 size=1029332286 card=3363831)
1 VIEW (cr=112490 pr=180864 pw=119722 time=0 us cost=30743 size=78 card=1)
1 HASH JOIN SEMI (cr=112490 pr=180864 pw=119722 time=0 us cost=72627 size=208 card=1)
11354346 TABLE ACCESS FULL JCASE_X_OFFENSE (cr=112488 pr=112447 pw=0 time=4814838 us cost=30703 size=749386770 card=11354345)
1 TABLE ACCESS BY INDEX ROWID MLOG$_JCASE_X_OFFENSE (cr=2 pr=0 pw=0 time=0 us cost=1 size=142 card=1)
1 INDEX RANGE SCAN IDX_MLOG$_XID_JCASE_X_OFFENSE (cr=1 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 98375)
3363837 HASH JOIN (cr=152424 pr=99390 pw=805 time=29973970 us cost=268690 size=766953468 card=3363831)
2994042 INDEX FAST FULL SCAN JPERSON_I0 (cr=18134 pr=0 pw=0 time=772990 us cost=17450 size=134731845 card=2994041)(object id 83738)
3363837 HASH JOIN (cr=134290 pr=99390 pw=805 time=25292580 us cost=212128 size=615581073 card=3363831)
3363837 HASH JOIN (cr=69008 pr=34127 pw=805 time=4750330 us cost=101637 size=393568929 card=3363837)
3363837 TABLE ACCESS FULL JCASE_X_CYCLEID (cr=33337 pr=33322 pw=0 time=2942460 us cost=33569 size=222013242 card=3363837)
6586646 TABLE ACCESS FULL JCASE (cr=35671 pr=0 pw=0 time=1584102 us cost=35988 size=335918895 card=6586645)
6586635 TABLE ACCESS FULL JPERSON_X_JCASE (cr=65282 pr=65263 pw=0 time=5446686 us cost=65632 size=434717844 card=6586634)
3363837 FILTER (cr=17148054 pr=96758 pw=0 time=0 us)
3363837 MAT_VIEW ACCESS BY INDEX ROWID MV_CASE (cr=17148054 pr=96758 pw=0 time=0 us cost=7 size=40 card=1)
32464070 INDEX RANGE SCAN IDX_MV_CASE_P_ROWID (cr=4489770 pr=15250 pw=0 time=19576798 us cost=3 size=0 card=7)(object id 98467)
0 FILTER (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=4 size=78 card=1)
0 TABLE ACCESS BY USER ROWID JCASE (cr=0 pr=0 pw=0 time=0 us cost=1 size=45 card=1)
0 INDEX RANGE SCAN JCASE_X_OFFENSE_I0 (cr=0 pr=0 pw=0 time=0 us cost=3 size=33 card=1)(object id 83623)Questions:
1) what are the objects like JCASE AS OF SNAPSHOT(:B_SCN) ? Can I index them? I tried access it but got error
select * from JCASE AS OF SNAPSHOT(:B_SCN) ;
ORA-08187: snapshot expression not allowed here
08187. 00000 - "snapshot expression not allowed here"
*Cause: A snapshot expression using AS OF was specified when not allowed.
*Action: Do not use the AS OF clause
2) In the inline view following the firs FROM, it used ROWID in where clause. I tried create an index on ROWID, and error
create index idx_jcase_offense_rid on JCASE_X_OFFENSE(rowid)
ERROR at line 1:
ORA-00904: : invalid identifier
Note: I checked that I have indexes all fields in all where clauses in the DML except rowid.
Thanks for help.sybrand_b wrote:
1 Apparently Oracle is using Flashback technology when no materialized view logs have been set up
As your MV is a complex MV it is not a candidate for FAST REFRESH ON COMMIT.
I haven't looked closely at how 11.2 has changed the "fast refresh on commit" - but I would have expected it to raise an Oracle error when the OP tried to create the materialized view with that option if it were not possible.
I think your first comment is probably the more important one - if the user sets up suitable materialized view logs on all the tables in the outer join then it's possible that the fast refresh could work properly.
This is pure speculation, of course, based on the absence of an error message.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in fixed format.
There is a +"Preview"+ tab at the top of the text entry panel. Use this to check what your message will look like before you post the message. If it looks a complete mess you're unlikely to get a response. (Click on the +"Plain text"+ tab if you want to edit the text to tidy it up.)
+"Science is more than a body of knowledge; it is a way of thinking"+
+Carl Sagan+ -
Materialized View - Point in time refresh
I have a MV group which refreshes from a bunch of master tables. The master tables are constantly getting updated from an OLTP application. In this scenario, I want all the MVs to hold data which was available at the time the refresh started and not the changes after that.
Eg:
Master tables are T1, T2 ... T20 refresh to MVs T1_MV, T2_MV ...T20_MV
All the MVs T1_MV to T20_MV are in a refresh group.
At 3 PM: Execute an explicit refresh for the MV refresh group
At 3:05 PM: OLTP application inserts a record into table T5 & commits
At 3:06 PM (rather any time after 3:05 PM): Refresh of T5_MV happens. Will the latest insert get captured in T5_MV? I actually don't want this to happen for my requirement, because I want the data captured as of 3 PM into the MVs.
The Oracle Advanced Replication guide says the following about Materialized Views -
+"A materialized view is a replica of a target master from a single point in time."+
From the above line, it looks like by default this will not be captured in the MV. Can someone please confirm my understanding ?MVs in a Refresh Group when refreshed as a Refresh Group are refreshed as of the same point in time.
So if the Refresh Group begins at 3:00pm and ends at 3:25pm, all the MVs in that group reflect the data as in the source tables as of 3:00pm, ignoring any updates to source tables after 3:00pm (i.e. while the Group is being refreshed).
However, if you refresh MVs individually, then each MV is refreshed at it's relative point in time -- so individual Refreshs of MVs would not be to the same point in time.
How have you defined the Refresh Group ?
How do you execute the Refresh for the whole Group ? What PLSQL procedure do you use ? What parameters do you use ?
Ensure that you do not execute an individual MV Refresh.
Hemant K Chitale
http://hemantoracledba.blogspot.com -
Materialized view (creating and complete refresh)
Good day.
I have a huge query that is used to create a materialized view. The query consist of 9 joins, a lot of aggregations, some subqueries, so we can say it is rather huge. The query itself executes for about 30 seconds and returns about 200 rows. The materialized view creates and refreshes for more than 30 minutes. Can someone please explain me the mechanism of materialized view creation which causes such bad performance.
We use Oracle Database 9.2.0.4.
Thank you in advance.I've fount the solution. May be it will be useful for someone not regarding that 9.2 database is less used today than 10.2.
I studied carefully the plan of the query and the plan of insert statement that is used when creating materialized view and found the cause of trouble. Insert statements generates VIEW PUSHED PREDICATE and BITMAP CONVERSION FROM ROWIDS when parsing. Bitmap conversion can be removed by setting environment parameter btree_bitmap_plans to false (a well-known issue), but I decided not ot change the production environment. The pushed predicate can be removed by using hint NO_PUSH_PRED to each subquery used in a materialized view. This step reduced the time of materialized view creation and execution to about a minute.
Thank everyone who tried to help. -
Materialized view logs for Fast refreshes
Hi,
I created MV and MV logs on the base table/main table. I set the base table in NOLOGGING MODE. so ofcourse redo is not gonna generate during DML but i wanted to know that:
Will NOLOGGING effect the MV logs for fast refreshes?
I came up on conclusion that MV logs are nothing to do with Redo Logs and would have no impact on MV logs for fast refresh since i have set my all base table in NOLOGGING MODE.
Looking forward for expert opinion.
REGARDS,Though I'm not an expert...
SQL> alter table emp nologging;
Table altered.
SQL> create materialized view log on emp;
Materialized view log created.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
EMP TABLE
BONUS TABLE
SALGRADE TABLE
RUPD$_EMP TABLE
MLOG$_EMP TABLE
SQL> insert into emp values(1000,'Matt','Test',100,sysdate,1000,1000,10,11,11);
1 row created.
SQL> select *From mlog$_emp;
EMPNO SNAPTIME$ D O
CHANGE_VECTOR$$
1000 01-JAN-00 I N
FEFF -
Create materialized view is failing when refresh fast is used
version 10.2.0.4 on solaris
This statement is working fine
CREATE MATERIALIZED VIEW MVIEW1
TABLESPACE MIS_CURD01
BUILD IMMEDIATE
as
SELECT ACTIVITY_ID "ACTIVITY_ID",
ASSOC_ID "ASSOC_ID",
PIT_ROLE_CODE "PIT_ROLE_CODE",
PIT_BANK_CODE "PIT_BANK_CODE",
PIT_COST_CENTER "PIT_COST_CENTER",
RESP_ASSOC_IND "RESP_ASSOC_IND"
FROM TABLE1@DBLINK;
The statement with fast refresh is failing with this error message
ERROR at line 18:
ORA-12018: following error encountered during code generation for
"TABLE1"
ORA-00942: table or view does not exist
Here is the statement
CREATE MATERIALIZED VIEW MVIEW1
TABLESPACE MIS_CURD01
NOCACHE
LOGGING
NOCOMPRESS
NOPARALLEL
BUILD IMMEDIATE
USING INDEX TABLESPACE MIS_CURI01
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS
SELECT ACTIVITY_ID "ACTIVITY_ID",
ASSOC_ID "ASSOC_ID",
PIT_ROLE_CODE "PIT_ROLE_CODE",
PIT_BANK_CODE "PIT_BANK_CODE",
PIT_COST_CENTER "PIT_COST_CENTER",
RESP_ASSOC_IND "RESP_ASSOC_IND"
FROM TABLE1@DBLINK;
Any idea what's going wrong here. Thanks for your help in advance.
Edited by: user11319873 on Jun 30, 2010 4:17 PMRefresh FAST requires that
a. An MV Log (Snapshot Log) be created on the source table
b. The user doing the refresh (i.e. the account that the DBLink uses) has SELECT privilege on the MV Log.
Hemant K Chitale -
Oracle Materialized view tables not getting refreshed automatically.
At Destination:--
CREATE MATERIALIZED VIEW PROG_MEDIA
TABLESPACE ONA_TS1
BUILD IMMEDIATE
REFRESH FAST with rowid
START WITH SYSDATE
NEXT SYSDATE+1/96
AS (select /*+ PARALLEL(a,6) */ * from PROG_MEDIA@onair a);
exec dbms_mview.refresh('PROG_MEDIA','C');
At Source:--
CREATE MATERIALIZED VIEW LOG ON ONAIR.PROG_MEDIA
TABLESPACE MVLOG
WITH ROWID;
Fired manually:--
13:00:43 SQL> exec dbms_mview.refresh('PROG_MEDIA','C');
PL/SQL procedure successfully completed.
At source:--
13:18:35 SQL> select PROG_MEDIA_ID,PROG_MEDIA_NAME from PROG_MEDIA where PROG_MEDIA_ID='102226';
PROG_MEDIA_ID
PROG_MEDIA_NAME
102226
test
At Destination:--
14:03:28 SQL> select PROG_MEDIA_ID,PROG_MEDIA_NAME from PROG_MEDIA where PROG_MEDIA_ID='102226';
PROG_MEDIA_ID PROG_MEDIA_NAME
102226 UTSAV-5-162077
JOB LOG_USER THIS_DATE LAST_DATE_TIME NEXT_DATE_TIME INTERVAL FAILURES WHAT
242 ONAIR 17-05-11 14:17:24 SYSDATE+1/96 7 dbms_refresh.refresh('"ONAIR"."PROG_MEDI
A"');
242 ONAIR 17-05-11 14:32:25 SYSDATE+1/96 8 dbms_refresh.refresh('"ONAIR"."PROG_MEDI
A"');
1> I have scheduled this refresh job for every 15mins, but its not getting executed. Also my job_queue_process is '20'. Whenever i execute it manually it get's refresh.
2> I can schedule a cron for the same for every 15mins but i really dont want to do it.
Kindly help me out.Hi,
I have created MV_CAPABILITIES_TABLE & executed below commands:--
17:56:54 SQL> EXECUTE DBMS_MVIEW.EXPLAIN_MVIEW ('"ONAIR"."PROG_MEDIA"');
PL/SQL procedure successfully completed.
17:57:26 SQL> SELECT capability_name, possible, SUBSTR(related_text,1,8)
17:57:27 2 AS rel_text, SUBSTR(msgtxt,1,60) AS msgtxt
17:57:27 3 FROM MV_CAPABILITIES_TABLE
17:57:27 4 ORDER BY seq;
CAPABILITY_NAME P REL_TEXT MSGTXT
PCT N
PCT N
REFRESH_COMPLETE Y
REFRESH_COMPLETE Y
REFRESH_FAST Y
REFRESH_FAST Y
REWRITE N
REWRITE N
PCT_TABLE N PROG_MED relation is not a partitioned table
PCT_TABLE N PROG_MED relation is not a partitioned table
REFRESH_FAST_AFTER_INSERT Y
REFRESH_FAST_AFTER_INSERT Y
REFRESH_FAST_AFTER_ONETAB_DML Y
REFRESH_FAST_AFTER_ONETAB_DML Y
REFRESH_FAST_AFTER_ANY_DML Y
REFRESH_FAST_AFTER_ANY_DML Y
REFRESH_FAST_PCT N PCT is not possible on any of the detail tables in the mater
REFRESH_FAST_PCT N PCT is not possible on any of the detail tables in the mater
REWRITE_FULL_TEXT_MATCH N PROG_MED mv references a remote table or view in the FROM list
REWRITE_FULL_TEXT_MATCH N PROG_MED mv references a remote table or view in the FROM list
REWRITE_FULL_TEXT_MATCH N query rewrite is disabled on the materialized view
REWRITE_FULL_TEXT_MATCH N query rewrite is disabled on the materialized view
REWRITE_PARTIAL_TEXT_MATCH N materialized view cannot support any type of query rewrite
REWRITE_PARTIAL_TEXT_MATCH N materialized view cannot support any type of query rewrite
REWRITE_PARTIAL_TEXT_MATCH N query rewrite is disabled on the materialized view
REWRITE_PARTIAL_TEXT_MATCH N query rewrite is disabled on the materialized view
REWRITE_GENERAL N materialized view cannot support any type of query rewrite
REWRITE_GENERAL N materialized view cannot support any type of query rewrite
REWRITE_GENERAL N query rewrite is disabled on the materialized view
REWRITE_GENERAL N query rewrite is disabled on the materialized view
REWRITE_PCT N general rewrite is not possible or PCT is not possible on an
REWRITE_PCT N general rewrite is not possible or PCT is not possible on an
PCT_TABLE_REWRITE N PROG_MED relation is not a partitioned table
PCT_TABLE_REWRITE N PROG_MED relation is not a partitioned table
34 rows selected.
Elapsed: 00:00:00.09
What to be done next?
Also i fired the job manually by:--
17:38:02 SQL> set serveroutput on
17:39:45 SQL> EXEC DBMS_JOB.RUN(242);
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.48 -
Create materialized view as part of refresh group
Hello,
When I create a materialized view in 11g it automatically creates its own refresh group. How can I create the materialized group as part of an existing refresh group? (I know I can drop the individual refresh group and add the mview to the main refresh group but that is a pain).
Thank you,>
How can I create the materialized group as part of an existing refresh group?
>
You can't - you need to add the MV to the existing refresh group.
See the Add Procedure of the DBMS_REFRESH package
http://docs.oracle.com/cd/B28359_01/server.111/b28327/rarrefreshpac.htm -
Document certification becoming INVALID after Ctrl+F in Acrobat 9. Possible bug?
Hi
Am using document certifcation to protect my application Pdfs. Have came across an issue where in the document certification is getting invalid. AM also able to reproduce the error by working with pdfs outside my application. Below are the steps
1. Create a Pdf with 1 text field. Put some default value in the field e.g. Testing
2. Certify the document using File->Save As Certified Document
3. Close and Re-open the document. There is a document message bar on top with text "This document is certified......"
4. Press Ctrl+F and search for the value in the text field (say Test). The searched text is highlighted & selected.
5. Go to Advanced->Sign & Certify->Validate All Signatures.
6. The Certifying signature becomes crossed out and the message bar changes to "Certification is invalid"
Has someone come across this issue or Any idea why this is happening?Hi Steve,
Am unable to reproduce with the file attached by you.
I also tested further to analyze that the signature break is happening with all the files only for the 1st time you execute the find function i.e.
1. Perform all the 6 steps as mentioned in my 1st post in this thread dated 6 Dec 2010.
2. Close and Re-open the same pdf.
3. Execute the find function by using Ctrl+F to find any text in the pdf.
4. Validate the signatures, Certifying signature is not lost/broken
Start with a new file again and certifying signature will be broken only after 1st find and not afterwards.
Maybe this'll help in pinpointing the problem.
Thanks
Atin -
Materialized view is empty after 5 minutes
After successful usage in our dev environment, I went to migrate a snapshot to QA only to find that after about 5 minutes, it was empty. Here are all the facts/symptoms I could think of, I was wondering if anyone could shed some light - I'm stumped.
- on creation, ddl runs < 1 second with these options
TABLESPACE BPF_DATA
NOCACHE
LOGGING
NOPARALLEL
BUILD IMMEDIATE
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
- the tables selected include a remote query
- rows exist for about 5 mins
- after about 5 mins (give or take 1 minute), status goes to needs_compile, all rows disappear (the weirdest part)
- We discovered this after attempting to run dbms_mview.refresh, and it was taking forever
- no dml being done on 4 underlying tables
- 4 separate test snapshots were created as "select * from" underlying tables, none went to needs_compile
- doco says it's expected behaviour when applying dml to underlying tables (regarding statuses), except we don't apply any dml, and rows shouldn't disappear
- if I do actually apply some dml, the relevant test snapshot has different staleness/after_fast_refresh settings, more inline with expected behaviour
- doesn't happen in dev environment
- I could find no metalink entries regarding problem
Any ideas?Hi,
This_date is just the date time that the job was started by the job process, it's OK if this_date is a little bit greater than next_date, because very rarely do jobs start exactly at their scheduled time, depends on jobqueue_interval and how many job processes are free at that time. It just means that the date time it started was slightly later than the date time that it was asked to be run at.
However the fact that total_time is resetting is odd. This should accumulate (it does on all jobs that I've seen, I've just checked my own little bevy of dba jobs). Are you sure the failures column isn't increasing?
And you don't need the DBA to tell you what's in the alert log, do you have the CREATE ANY DIRECTORY privilige?
Chris -
Document SIgnature Status becomes invalid after resigning
Hi all,
I have a form with two Document Signature.
When i clear and resign one of the Document Signature it status is invalid.
Please suggest me a solution.
Regards,
S.V.Satish KumarI tested the form you posted. Here is what I found, but I am not completely clear on what all your script is supposed to be doing.
Steps
1) I filled in the first "comment line"
2) I signed the first signature field
3) Results: The signature was valid, the document status (see screen shot 1signature_docstatus.gif) reported the signature was valid. The signature staus was valid as displayed in the signature panel (see screen shot 1signature_detail.gif)
4) I added and filled in a second "comment line"
5) I signed the second signature field
6) Results: The first signature was valid, the second signature was valid, and the document status repored that ther were "unsigned changes" since the last signature was applied (see screen shot 2signature_docstatus.gif) The signature statuses were valid with subsequent changes made to the document as displayed in the signature panel (see screen shot 2signature_detail.gif)
Don't confuse the "exclamation" mark icon with "Invalid", it is only a warning to inform you that changes have been made that are not "digitally signed", I suspect your some part of your script is causing this. If you want to have Acrobat\Reader display a green check mark icon, then you cannot make any changes to the document after the final signature has been applied.
If you haven't done so, take a look at the sample I posted on your duplicate post in this forum ( http://forums.adobe.com/thread/492773?tstart=0 ).
If a signature is "invalid" it will display a red "X" icon.
Regards
Steve -
ADF Bug? SelectOneChoice in af:column becomes null after refresh
Hello,
I just discovered a serious issue in my code (ADF 11.1.1.4/Windows 7). I was able to reproduce the issue using the following code :
I have a table mapped to a Widget ViewObject listing some widget definitions. On of the column represents the widget type id. I use an af:selectOneChoice and the widgetTypeId is mapped to the WidgetType ViewObject (the category name is displayed)
The page definition :
<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
version="11.1.1.59.23" id="testFramePageDef"
Package="com.test.view.pageDefs">
<parameters/>
<executables>
<variableIterator id="variables"/>
<iterator Binds="WidgetView1" RangeSize="25"
DataControl="AppModuleDataControl" id="WidgetView1Iterator"/>
<iterator Binds="WidgetTypeView1" RangeSize="-1"
DataControl="AppModuleDataControl" id="WidgetTypeView1Iterator"/>
</executables>
<bindings>
<tree IterBinding="WidgetView1Iterator" id="WidgetView1">
<nodeDefinition DefName="com.test.model.views.dashboard.WidgetView"
Name="WidgetView10">
<AttrNames>
<Item Value="WidgetId"/>
<Item Value="WidgetTypeId" Binds="WidgetTypeId"/>
<Item Value="Name"/>
<Item Value="Reference"/>
<Item Value="Description"/>
<Item Value="StrId"/>
</AttrNames>
</nodeDefinition>
</tree>
<list IterBinding="WidgetView1Iterator" id="WidgetTypeId"
DTSupportsMRU="true" StaticList="false"
ListIter="WidgetTypeView1Iterator">
<AttrNames>
<Item Value="WidgetTypeId"/>
</AttrNames>
<ListAttrNames>
<Item Value="WidgetTypeId"/>
</ListAttrNames>
<ListDisplayAttrNames>
<Item Value="Name"/>
</ListDisplayAttrNames>
</list>
</bindings>
</pageDefinition>The jsf page displays the widgets name and type, which are both modifiable. I also added previous/next buttons :
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document id="d1">
<af:messages id="m1"/>
<af:form id="f1">
<af:panelStretchLayout id="ptstc">
<f:facet name="top">
<af:panelGroupLayout id="pglact" layout="horizontal">
<af:commandButton id="cbprv" action="#{userBean.previous}" text="Previous"/>
<af:commandButton id="cbnxt" action="#{userBean.next}" text="Next"/>
</af:panelGroupLayout>
</f:facet>
<f:facet name="center">
<af:table value="#{bindings.WidgetView1.collectionModel}" var="row"
rows="#{bindings.WidgetView1.rangeSize}"
emptyText="#{bindings.WidgetView1.viewable ? 'No data to display.' : 'Access Denied.'}"
fetchSize="#{bindings.WidgetView1.rangeSize}"
rowBandingInterval="0"
selectedRowKeys="#{bindings.WidgetView1.collectionModel.selectedRow}"
selectionListener="#{bindings.WidgetView1.collectionModel.makeCurrent}"
rowSelection="single" id="t1">
<af:column sortProperty="WidgetId" sortable="false"
headerText="#{bindings.WidgetView1.hints.WidgetId.label}"
id="c3">
<af:inputText value="#{row.bindings.WidgetId.inputValue}"
label="#{bindings.WidgetView1.hints.WidgetId.label}"
required="#{bindings.WidgetView1.hints.WidgetId.mandatory}"
columns="#{bindings.WidgetView1.hints.WidgetId.displayWidth}"
maximumLength="#{bindings.WidgetView1.hints.WidgetId.precision}"
shortDesc="#{bindings.WidgetView1.hints.WidgetId.tooltip}"
id="it5">
<f:validator binding="#{row.bindings.WidgetId.validator}"/>
<af:convertNumber groupingUsed="false"
pattern="#{bindings.WidgetView1.hints.WidgetId.format}"/>
</af:inputText>
</af:column>
<af:column sortProperty="WidgetTypeId" sortable="false"
headerText="#{bindings.WidgetView1.hints.WidgetTypeId.label}"
id="c1">
<af:selectOneChoice value="#{row.bindings.WidgetTypeId.inputValue}"
label="#{row.bindings.WidgetTypeId.label}"
required="#{bindings.WidgetView1.hints.WidgetTypeId.mandatory}"
shortDesc="#{bindings.WidgetView1.hints.WidgetTypeId.tooltip}"
id="soc1">
<f:selectItems value="#{row.bindings.WidgetTypeId.items}"
id="si1"/>
</af:selectOneChoice>
</af:column>
</af:table>
</f:facet>
</af:panelStretchLayout>
</af:form>
</af:document>
</f:view>
</jsp:root>Here is the code from my backing bean :
private int widgetId = 1010;
public void previous(){
text = "action";
AppModuleImpl am = (AppModuleImpl)ADFUtils.getApplicationModuleForDataControl("AppModuleDataControl");
ViewObject vo = am.getWidgetView1();
widgetId--;
vo.setWhereClause("WIDGET_ID="+widgetId);
vo.executeQuery();
public void next(){
text = "action";
AppModuleImpl am = (AppModuleImpl)ADFUtils.getApplicationModuleForDataControl("AppModuleDataControl");
ViewObject vo = am.getWidgetView1();
widgetId++;
vo.setWhereClause("WIDGET_ID="+widgetId);
vo.executeQuery();
}Now the issue : if I open the page, the entire widget table is displayed. I click on 'next' and the first record is displayed with correct name and type. If a do a refresh by hitting F5, the action is re-executed and the second row is displayed, also with correct name and type. But if I select 'previous', I come back to the first row but the type is now set to null(0).
Can you tell me if this code is correct and if yes : are you able to reproduce it? / is this an ADF bug?
Thank you
Stephane
Edited by: drahuks on 9 mai 2011 01:32Frank,
The backing bean is session scoped.
I tried a second solution using af:iterator and af:selectItem instead of af:selectItems :
pageDef :
<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
version="11.1.1.59.23" id="testFramePageDef"
Package="com.test.view.pageDefs">
<parameters/>
<executables>
<variableIterator id="variables"/>
<iterator Binds="WidgetView1" RangeSize="25"
DataControl="AppModuleDataControl" id="WidgetView1Iterator"/>
<iterator Binds="WidgetTypeView1" RangeSize="-1"
DataControl="AppModuleDataControl" id="WidgetTypeView1Iterator"/>
</executables>
<bindings>
<tree IterBinding="WidgetView1Iterator" id="WidgetView1">
<nodeDefinition DefName="com.test.model.views.dashboard.WidgetView">
<AttrNames>
<Item Value="Name"/>
<Item Value="WidgetTypeId"/>
</AttrNames>
</nodeDefinition>
</tree>
<table IterBinding="WidgetTypeView1Iterator" id="WidgetTypeLov">
<AttrNames>
<Item Value="Name"/>
<Item Value="WidgetTypeId"/>
</AttrNames>
</table>
</bindings>
</pageDefinition>jspx :
<af:selectOneChoice value="#{row.WidgetTypeId}"
id="soc1">
<af:forEach var="typeNode"
items="#{bindings.WidgetTypeLov.rangeSet}">
<af:selectItem id="sit" value="#{typeNode.WidgetTypeId}"
label="#{typeNode.Name}"/>
</af:forEach>
<!--<f:selectItems value="#{row.bindings.WidgetTypeId.items}"
id="si1"/>-->
</af:selectOneChoice>Still get an issue : when hitting F5 I get a nullpointer exception. Here is the debug :
<ADFLogger> <begin> Execute query
<ViewObjectImpl> <buildQuery> [1960] _LOCAL_VIEW_USAGE_com_test_model_views_dashboard_WidgetView_WidgetTypeView1>#q computed SQLStmtBufLen: 112, actual=85, storing=115
<ViewObjectImpl> <buildQuery> [1961] SELECT WidgetType.WIDGET_TYPE_ID, WidgetType.NAME FROM WIDGET_TYPE WidgetType
<ViewObjectImpl> <getPreparedStatement> [1962] ViewObject: [com.test.model.views.WidgetTypeView]AppModule._LOCAL_VIEW_USAGE_com_test_model_views_dashboard_WidgetView_WidgetTypeView1 Created new QUERY statement
<ViewObjectImpl> <bindParametersForCollection> [1963] Bind params for ViewObject: [com.test.model.views.WidgetTypeView]AppModule._LOCAL_VIEW_USAGE_com_test_model_views_dashboard_WidgetView_WidgetTypeView1
<ViewObjectImpl> <bindParametersForCollection> [1964] For RowSet : _LOCAL_VIEW_USAGE_com_test_model_views_dashboard_WidgetView_WidgetTypeView1_0
<ADFLogger> <addContextData> Execute query
<ADFLogger> <addContextData> Execute query
<ADFLogger> <addContextData> Get LOV list
<MessageFactory> <getMessage>
java.lang.NullPointerException
at oracle.jbo.uicli.binding.JUCtrlListBinding.processNewInputValue(JUCtrlListBinding.java:3834)
at oracle.adfinternal.view.faces.model.HierNodeBindingELResolver.setValue(HierNodeBindingELResolver.java:77)
at oracle.adfinternal.view.faces.model.AdfELResolver.setValue(AdfELResolver.java:132)
at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:283)
at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:252)
at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:278)
at com.sun.el.parser.AstValue.setValue(Unknown Source)
at com.sun.el.ValueExpressionImpl.setValue(Unknown Source)
at org.apache.myfaces.trinidad.component.UIXEditableValue.updateModel(UIXEditableValue.java:289)
at org.apache.myfaces.trinidad.component.UIXEditableValue.processUpdates(UIXEditableValue.java:252)Stephane
Edited by: drahuks on 10 mai 2011 04:09 -
Leopard Server License Key suddenly becomes invalid after update to 10.5.8
After doing the update to 10.5.8, when I go into Server Admin, it says my License Key is a duplicate and locks me out of all services and only allows ten clients to connect. I tried switching the license to another, and the same thing happens. And both keys work perfectly fine on a different server. Any suggestions as to what may be going on?
Here is a copy of what keeps appearing in the Server Admin log file if that helps at all:
Aug 11 12:17:02 spub /usr/sbin/serialnumberd[146]: MulticastListener(): conflicting serial number from 129.130.29.128
Aug 11 12:17:06 spub servermgrd[55]: servermgr_info: [55] SNCheck() failed with 1 (spub.ksu.edu: )
Aug 11 12:17:06 spub [0x0-0x36036].com.apple.ServerAdmin[5939]: * ERROR: -[GRAxes computeLayout]:1124 - plotRect height = 0.000000 <= 0.0 *
Aug 11 12:17:06 spub [0x0-0x36036].com.apple.ServerAdmin[5939]: * ERROR: -[GRChartView computeLayout]:1194 - Layout for overlay axes (0xab1c290) failed. *
Aug 11 12:17:06 spub [0x0-0x36036].com.apple.ServerAdmin[5939]: * ERROR: -[GRAxes computeLayout]:1124 - plotRect height = 0.000000 <= 0.0 *
Aug 11 12:17:06 spub [0x0-0x36036].com.apple.ServerAdmin[5939]: * ERROR: -[GRChartView computeLayout]:1194 - Layout for overlay axes (0xab2b6a0) failed. *
Aug 11 12:17:34 spub postfix/smtpd[5641]: warning: 125.160.151.41: hostname 41.subnet125-160-151.speedy.telkom.net.id verification failed: nodename nor servname provided, or not known
Aug 11 12:17:51 spub postfix/smtpd[5641]: warning: 189.135.192.35: hostname dsl-189-135-192-35-dyn.prod-infinitum.com.mx verification failed: nodename nor servname provided, or not known
Aug 11 12:18:02 spub /usr/sbin/serialnumberd[146]: Conflict found for tag xsvr: local (pid = 55, extra= ); remote (host = spub.ksu.edu, extra = )
Aug 11 12:18:02 spub /usr/sbin/serialnumberd[146]: MulticastListener(): conflicting serial number from 129.130.29.128
Aug 11 12:19:00 spub postfix/smtpd[6166]: warning: 189.169.250.244: hostname dsl-189-169-250-244-dyn.prod-infinitum.com.mx verification failed: nodename nor servname provided, or not known
Aug 11 12:19:00 spub imap[6167]: TLS server engine: cannot load CA data
Aug 11 12:19:00 spub imap[6167]: TLS server engine: No CA file specified. Client side certs may not work
Aug 11 12:19:00 spub imap[6167]: STARTTLS negotiation failed: 213.spub.ksu.edu [129.130.29.213]
Aug 11 12:19:02: --- last message repeated 3 times ---
Aug 11 12:19:02 spub /usr/sbin/serialnumberd[146]: Conflict found for tag xsvr: local (pid = 55, extra= ); remote (host = spub.ksu.edu, extra = )
Aug 11 12:19:02 spub /usr/sbin/serialnumberd[146]: MulticastListener(): conflicting serial number from 129.130.29.128
Maybe you are looking for
-
I purchased adobe acrobat but every time I try to open it I get a message saying trial has expired
I purchased adobe acrobat but every time I try to open it I get a message saying trial has expired. Acrobate downloaded successfully. no problem there. but it won't open. only gives me the error message that trial has expired and do I want to buy
-
How to install Final Cut Pro on 2 computers with a multiple user license
Our church purchased a multiple user copy of Final Cut Pro, and the music minister who bought it downloaded it onto his computer. I need to get a copy onto my computer - but he doesn't know what I need to do to get a copy onto mine. Do I have to ha
-
Why after changing my apple Id can I not down load updates to my devices. I've changed all settings to new Id & even tried to do updates through iTunes but keeps referring back to previous Id which had to be cancelled due to email address change. Ple
-
Playing Slideshow with numerous photo pages
I have 5 different photo pages on my iweb site. I split them up so the load time would be quicker. Is there any way to play the slideshow and include all the photos on every one of the 5 pages? Right now, you have to play the slideshow on each sepera
-
How to set color inputText's label
hi, i have a problem with displaying labels in wrapped with PanelBox it's all white , unless one highlights the panel so it changed backgound color is becomes visible. how can i fix it or set label's color? <af:panelBox text="Main" id="pb1" showDiscl