Tuesday, 30 September 2014

finally, syntax highlighter working with live writer, a Mac and blogger

I’ve been on struggle street getting the syntax highlighter working.  I’ve only seen as far as I have by standing on the blogs of giants! 

http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html this was great for the tip on modifying the theme of the blogger blog.

image

Then, the final piece was NOT using Rich Hewlett’s syntax highlighter, as this has some issues with the blogger / livewriter combo.  I could not get his plugin to work.  It seems to wrap the code in different names / tags, not the standard ones that the legend Alex Gorbachev hosts and develops.

So, when inserting the source code, use

image

https://sourcecodeplugin.codeplex.com/releases/view/25596

image

Finally, my source code looks good.

Simple reconciliation of OMW projects not in Prod

This will give you a list of projects that have CO based objects (probably won’t give you UDC only objects) that have gone to PY910 but not prod.  This looks over the OMW logging table and determines what has gone from DV910 to PY910 but not PP910 to PD910.  Note that you  might need to change the FROM and TO.

Also,I don’t want projects that are at 99 or 38 – as they are complete.

select * from sy910.f98220
where PMOMWPRJID in (
select distinct lhomwprjid
from sy910.f98210
where lhomwfpe = 'DV910'
and lhomwtpe = 'PY910'
minus
select distinct lhomwprjid
from sy910.f98210
where lhomwfpe = 'PP910'
and lhomwtpe = 'PD910')
and pmomwps not in ('99','38');

Friday, 26 September 2014

What modified UBE’s have been run

This gives you an idea, but not always accurate (especially if you purge F986110 – which you should).  Note that this also compares against PD811 in OL.

Another handy thing about this script is the use of instr to carve out just the report name from the fndfuf2 field.

Note that the F986114 is pretty handy for this stuff, but this statement will work on all releases.

ORACLE

select
count(1), substr(jcfndfuf2, 1, instr(jcfndfuf2,'_')-1)
from svm811.f986110
where exists (
select 1
from ol811.f9860 t1, ol811.f9861 t2
where t1.siobnm = t2.siobnm
and t2.simrgmod = 'C'
and t2.sipathcd = 'PD811'
and t1.siobnm = substr(jcfndfuf2, 1, instr(jcfndfuf2, '_')-1))
group by substr(jcfndfuf2, 1, instr(jcfndfuf2, '_')-1)
order by 1 desc

AS/400


select
count(1), substring(jcfndfuf2, 1, charindex('_', jcfndfuf2)-1)
from svm811.f986110
where exists (
select 1
from ol811.f9860 t1, ol811.f9861 t2
where t1.siobnm = t2.siobnm
and t2.simrgmod = 'C'
and t2.sipathcd = 'PD811'
and t1.siobnm = substring(jcfndfuf2, 1, charindex('_', jcfndfuf2)-1))
group by substring(jcfndfuf2, 1, charindex('_', jcfndfuf2)-1)
order by 1 desc

Monday, 15 September 2014

generating and running index definitions in oracle

Say I want to get the DDL for all indexes for CO tables in PS, I run the following:


[sourcecode language='sql' ]
SELECT 'SELECT DBMS_METADATA.GET_DDL(''' || 'INDEX''' || ',''' || index_name || '''' || ',''' || 'PS910' || ''') || ' || '''' || ';''' || ' as txt FROM dual ;'
from all_indexes t1 where t1.table_owner = 'PS910'
and t1.table_name like 'F987%' and length(table_name) < 10 ;
[/sourcecode]


I then Cut and paste the results of this (as below) in between the 3 header lines, they are vital, including eh word wrap on 121, txt.



[sourcecode language='sql' ]
set long 200000 pages 0 lines 131
column txt format a121 word_wrapped
spool D:\myriad\generateINdex.sql
SELECT DBMS_METADATA.GET_DDL('INDEX','F98710_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98710_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_4','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_6','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98711_7','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98712_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98712_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_3','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_4','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_5','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98713_6','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98720_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98720_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98740_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98740_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98740_4','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98740_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98741_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98741_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98743_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98743_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98743_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98745_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98750_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98750_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_3','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_5','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_6','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98751_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98752_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98752_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98753_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98753_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98753_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98753_4','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98760_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98760_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98760_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_3','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_6','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_5','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98761_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_6','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_0','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_1','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_2','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_3','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_4','PS910') || ';' as txt FROM dual ;
SELECT DBMS_METADATA.GET_DDL('INDEX','F98762_7','PS910') || ';' as txt FROM dual ;
spool off;
quit;
[/sourcecode]


Which generates the following, which I also run with SQL Plus



[sourcecode language='sql' ]
CREATE UNIQUE INDEX "PD910"."F98710_0" ON "PD910"."F98710" ("THOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98710_1" ON "PD910"."F98710" ("THTBID", "THOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98711_0" ON "PD910"."F98711" ("TDOBNM", "TDOBND")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98711_4" ON "PD910"."F98711" ("TDOBNM", "TDDDID", "TDOBND")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98711_1" ON "PD910"."F98711" ("TDTBID", "TDDDID", "TDOBNM", "TDOBND")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98711_2" ON "PD910"."F98711" ("TDDDID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98711_6" ON "PD910"."F98711" ("TDOBND")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98711_7" ON "PD910"."F98711" ("TDOBNM", "TDPSEQ")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98712_0" ON "PD910"."F98712" ("TPOBNM", "TPINID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98712_1" ON "PD910"."F98712" ("TPTBID", "TPINID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98713_0" ON "PD910"."F98713" ("TLOBNM", "TLOBND", "TLINID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_1" ON "PD910"."F98713" ("TLTBID", "TLDDID", "TLINID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_2" ON "PD910"."F98713" ("TLDDID", "TLCMPI", "TLINID", "TLTBID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_3" ON "PD910"."F98713" ("TLTBID", "TLINID", "TLCMPI")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_4" ON "PD910"."F98713" ("TLOBNM", "TLDDID", "TLINID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_5" ON "PD910"."F98713" ("TLDDID", "TLCMPI", "TLINID", "TLOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98713_6" ON "PD910"."F98713" ("TLOBNM", "TLINID", "TLCMPI")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98720_0" ON "PD910"."F98720" ("BVOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98720_1" ON "PD910"."F98720" ("BVBVID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98740_1" ON "PD910"."F98740" ("ELPRDTYP", "ELAPPLID", "ELFORMID", "ELCTRLID", "ELWEVENT",

"ELERID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98740_2" ON "PD910"."F98740" ("ELOBNM", "ELPRDTYP", "ELFORMID", "ELCTRLID", "ELWEVENT", "ELERID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98740_4" ON "PD910"."F98740" ("ELPRDTYP", "ELOBNM", "ELFMNM", "ELCTRLID", "ELWEVENT", "ELERID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE UNIQUE INDEX "PD910"."F98740_0" ON "PD910"."F98740" ("ELPRDTYP", "ELOBNM", "ELVERS", "ELFMNM", "ELCTRLID",

"ELWEVENT", "ELERID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE UNIQUE INDEX "PD910"."F98741_0" ON "PD910"."F98741" ("ESEVSK", "ESEVSEQ")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98741_1" ON "PD910"."F98741" ("ESEVSPEC", "ESEVSEQ")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98743_0" ON "PD910"."F98743" ("DTOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98743_1" ON "PD910"."F98743" ("DTTMPLID", "DTTMPLNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98743_2" ON "PD910"."F98743" ("DTOBNM", "DTTMPLTYP", "DTTMPLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98745_0" ON "PD910"."F98745" ("SFOBNM", "SFNMNAME")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98750_0" ON "PD910"."F98750" ("FTOBNM", "FTTEXTID", "FTLNGP", "FTSY")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98750_1" ON "PD910"."F98750" ("FTAPPLID", "FTTEXTID", "FTLNGP", "FTSY")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98751_3" ON "PD910"."F98751" ("FSOBNM", "FSRCRDTP", "FSGNCID1", "FSCTRLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98751_1" ON "PD910"."F98751" ("FSAPPLID", "FSRCRDTP", "FSGNCID1", "FSGNCID2", "FSWEVENT",

"FSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98751_5" ON "PD910"."F98751" ("FSOBNM", "FSRCRDTP", "FSFMNM", "FSCTRLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98751_6" ON "PD910"."F98751" ("FSRCRDTP")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98751_0" ON "PD910"."F98751" ("FSOBNM", "FSRCRDTP", "FSFMNM", "FSGNCID2", "FSWEVENT",

"FSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98751_2" ON "PD910"."F98751" ("FSOBNM", "FSRCRDTP", "FSGNCID1", "FSGNCID2", "FSWEVENT",

"FSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE UNIQUE INDEX "PD910"."F98752_0" ON "PD910"."F98752" ("AHOBNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98752_1" ON "PD910"."F98752" ("AHAPPLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98753_0" ON "PD910"."F98753" ("ADOBNM", "ADFMNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98753_1" ON "PD910"."F98753" ("ADAPPLID", "ADFRMID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98753_2" ON "PD910"."F98753" ("ADFRMID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98753_4" ON "PD910"."F98753" ("ADFMNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98760_0" ON "PD910"."F98760" ("RTOBNM", "RTVERS", "RTTEXTID", "RTLNGP", "RTSY")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98760_1" ON "PD910"."F98760" ("RTREPORTID", "RTTEXTID", "RTLNGP", "RTSY")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98760_2" ON "PD910"."F98760" ("RTOBNM", "RTTEXTID", "RTLNGP", "RTSY")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98761_3" ON "PD910"."F98761" ("RSOBNM", "RSRCRDTP", "RSGNCID1", "RSCTRLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98761_6" ON "PD910"."F98761" ("RSRCRDTP")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98761_5" ON "PD910"."F98761" ("RSOBNM", "RSVERS", "RSRCRDTP", "RSGNCID1", "RSCTRLID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE UNIQUE INDEX "PD910"."F98761_0" ON "PD910"."F98761" ("RSOBNM", "RSVERS", "RSRCRDTP", "RSGNCID1", "RSGNCID2",

"RSWEVENT", "RSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98761_1" ON "PD910"."F98761" ("RSREPORTID", "RSRCRDTP", "RSGNCID1", "RSGNCID2", "RSWEVENT",

"RSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE INDEX "PD910"."F98761_2" ON "PD910"."F98761" ("RSOBNM", "RSRCRDTP", "RSGNCID1", "RSGNCID2", "RSWEVENT",

"RSGNCID3")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "PD910I" ;



CREATE UNIQUE INDEX "PD910"."F98762_6" ON "PD910"."F98762" ("BCSRCFNM", "BCFNNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98762_0" ON "PD910"."F98762" ("BCFNNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98762_1" ON "PD910"."F98762" ("BCBHVRID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98762_2" ON "PD910"."F98762" ("BCSRCFNM", "BCBHVRID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98762_3" ON "PD910"."F98762" ("BCOBNM", "BCBHVRID")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE INDEX "PD910"."F98762_4" ON "PD910"."F98762" ("BCOBNM", "BCSRCFNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




CREATE UNIQUE INDEX "PD910"."F98762_7" ON "PD910"."F98762" ("BCOBNM", "BCFNNM")

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOLOGGING

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)

TABLESPACE "PD910I" ;




[/sourcecode]

EM12C makes oracle security patch compliance easy

EM12C takes the worry about compliance.  Oracle ships all standard security patch details about all of the targets that you are monitoring as part of EM12C.  All you need to do is monitor the targets and oracle does all of the rest.  As you can see from the screen shots below, oracle can look at all target types and tell you what patches that you need to download and apply across all of your machines.

image

So you can drill down on this summary view

image

Then see the actual recommendations for the products, export to EXCEL too!

image

Note that it looks at database instance, weblogic etc etc.

This is an incredibly easy way of staying abreast of oracle security updates and patches.

Sunday, 14 September 2014

F00165 and upgrades

F00165 has gone through a significant transformation between XE and 9.1.  One of the main changes is that it has been “normalised”, and by no means does this make the file normal.  This is the process by which multiple attachments for a single GDTXKY are separated out.

The classic JDE example is if you have 3 attachments to 1 address book record, this would have been stored in a single stg file, but in the new release – this will now be 3 separate files (if they were not text attachments).

What?  This means that the R8900165 actually writes all of the stg files again – YES!!  So there is a massive amount of disk IO outside the standard database IO, because the UBE is ripping apart all of the stg’s and making them singular.  Note also that it does change the existing, so be prepared to have twice the storage for all your stg’s on your deployment server (current project means 186GB!!!!).

The report that is produced contains the records that physical files could not be found for. R8900165U.

So you can go and find the files that were not changed on the day of conversion and delete them.  This is also how JD Edwards can serve up the old content and the new at the same time.

Note that you can refer to my notes on my vbs script to check for attachments, which is pretty handy too.

Remember to delete all of the work centre messages from F00165, this’ll make the conversion quicker and not many people care about those messages.

Wednesday, 10 September 2014

renaming a deployment server, do not forget media objects

Remember to update where your MO queue’s point to, copy the physical files and the actual F00165 records in some circumstances.

replace is very cool string function in oracle.

update sy910.f98moque set omqupath =  replace(omqupath,'OLDSERVER','NEWSERVER') ;
commit;

Tuesday, 9 September 2014

Reconcile data between world, oneworld and oracle for retiring JD Edwards.

What I’ve done here is for me, for next time I need to do this task, and there will be a next time.  This is some sample scripts from an JD Edwards retirement that we’re completing (the could be used for direct migration reconciliation too).  This involves doing an upgrade on a world system (direct migration) and then parking the 9.1 equivalent in the cloud.

There are a lot of advantages of this approach to retiring JD Edwards, primarily that you do not have to run an AS/400 until the statute of limitations winds down.

We’ve put JD Edwards into the cloud for a number of very large organisations and it’s essential to get the reconciliation correct.

The general process of below is:

  1. create reconciliation table
  2. insert base records for all 9.1 tables
  3. insert records for any tables in the World data library used in the direct migration
  4. Insert records for any tables in the OneWorld data library used in the direct migration (note that this is a lot less than the #3)
  5. The create the “count SQL statements”
  6. run the count statements

This is all run from oracle using the oracle database gateway for ODBC.  I’ve been able to move over 1.1TB of data (pure data, non-unicode) to oracle from AS/400 in about 48 – 72 hours of pure processing.


[sourcecode language='sql' padlinenumbers='true']
create table fbadta.datacounts2
(AS400WORLDLIB VARCHAR(12),
AS400E1LIB VARCHAR(12),
TABLENAME VARCHAR(20),
AS400WORLDCOUNT INTEGER,
AS400E1COUNT INTEGER,
ORACLECOUNT INTEGER,
ORACLE_OWNER varchar(16),
TABLE_DESCRIPTION VARCHAR(256),
ONEWORLD_TABLE VARCHAR(10)) ;

insert into fbadta.datacounts2 (select '','',siobnm, 0,0,0,'',simd, '91Table' FROM OL910.F9860 where siobnm like 'F%');

insert into fbadta.datacounts2 (
select table_schema, '', table_name, 0,0,0,'', TABLE_TEXT, 'WORLD ONLY'
FROM QSYS2.SYSTABLES@FONDEV01
where TABLE_SCHEMA = 'A73CCODTA3' AND TABLE_TYPE in ('P','T')
AND NOT EXISTS (SELECT 1
from fbadta.datacounts2
where trim(tablename) = trim(table_name)));

commit;

insert into fbadta.datacounts2 (
select '', table_schema, table_name, 0,0,0,'', TABLE_TEXT, 'WORLD ONLY'
FROM QSYS2.SYSTABLES@FONDEV01
where TABLE_SCHEMA = 'FBAPRODDTA' AND TABLE_TYPE in ('P','T')
AND NOT EXISTS (SELECT 1
from fbadta.datacounts2
where trim(tablename) = trim(table_name)));
update FBAdta.datacounts2 set tablename=trim(tablename) ;

commit;

select 'UPDATE FBADTA.DATACOUNTS2 SET AS400WORLDCOUNT = (SELECT COUNT(*) FROM A73CCODTA3.' || trim(TABLENAME) || '@FONDEV01) WHERE TABLENAME = ' || '''' || trim(tablename) || ''';' FROM FBADTA.DATACOUNTS2 ;
select 'UPDATE FBADTA.DATACOUNTS2 SET AS400E1COUNT = (SELECT COUNT(*) FROM FBAPRODDTA.' || trim(TABLENAME) || '@FONDEV01) WHERE TABLENAME = ' || '''' || trim(tablename) || ''';' FROM FBADTA.DATACOUNTS2 ;
select 'UPDATE FBADTA.DATACOUNTS2 SET ORACLECOUNT = (SELECT COUNT(*) FROM FBADTA.' || trim(TABLENAME) || ') WHERE TABLENAME = ' || '''' || trim(tablename) || ''';' FROM FBADTA.DATACOUNTS2 ;
[/sourcecode]

Corrective actions for EM12C

Monitoring anything is EM12C is very good, although sometimes it’s a little bit chatty.  I’ve got the JD Edwards plugin connected at a couple of sites, and this is great to monitor a myriad of different metrics, but out of the box there is “status” of the individual end point.  What I find at a number of clients is that eventually something gets knocked out of sync, and EM12C reports the enterprise server instance down when it is NOT.  SM reports it up, it’s quite frustrating. 

A Bounce of the JD Edwards SM agent fixes the EM12C status, which is also weird.  I will do some root cause analysis at some stage, but I need to stop these emails!

So, I’m ging to employ the concept of corrective actions.  Note that it seems at this stage you cannot call a standard job as a corrective action (which seems stupid), you can only call a specific job which is of type “corrective action”.

image

I created the above thinking that I could attach it to the incident rules, but this is not how corrective actions work.  You need to go to the metric collections area for the metric that you want to associate a corrective action too:

image
Find your target as above

image

Goto metric and collection settings

image

I get the following everytime, just try again!

image

Add

image

OS

image

image

Find in putty where “restartAgent” lives on the enterprise server you are having issues with

image

image

Enter the creds for the user that runs SM, in my case jde91

Job done, so now when I get an alert (incident raised that the JD Edwards enterprise server services are down, I’m going to restart the SM Agent), then I’ll monitor for another message in another minute – if I get that, then I’ve got a problem!

That is a nice neat way of attaching a script or corrective action to a monitoring alert with JDE.

What can be monitored with EM12C and an enterprise server (using the licensed JD Edwards management pack).

Look at what you can monitor if you care

image

Monday, 8 September 2014

Latest JD Edwards Performance Benchmark Software

 

The latest software is available here, let me know if it does not work!  I’ll try and keep this up to date.

https://drive.google.com/file/d/0B30UFGvbR-EjZlk5b3loTkc2aTA/edit?usp=sharing

What’s in the next release?

UBE performance analysis – allow you to graph the historical run times for UBEs…  Watch this space.

Load testing and JD Edwards, testing rows returned

So, it’s a classic situation, by batch is not ready to post until my UBE is complete.  So I want my load testing script to being posting once the batch job is complete.  Difficult, no!  Not if you implement the correct methods.

The secret sauce is this:

clip_image002

Vs.

clip_image004

So you can easily go to WSJ and search for your user and jobname that is ‘P’, when it’s not p’ing (funny) then you are ready to Post!

My code here will assist you – very simple.

Firstly, search through your script for “No records found” (proper search – not find) and create a variable on the WSJ form with this – it’s an easy regular expression.


[sourcecode language='sql' ]
http.solve("NumberRecordsFound",

"<td class=gridheader>(.+?)</td>", "", false,

Source.Html, 0, EncodeOptions.None);

info("Record Counter {{NumberRecordsFound}}");



Then wrap the FIND (with your QBE) in a while loop, editing the java code.

while (getVariables().get("NumberRecordsFound").compareTo(StopSearch) != 0)

{
[/sourcecode]



I’ve also added a little sleep, because we don’t want to be just polling in our load test script:



[sourcecode language='sql' ]
try {

Thread.sleep(20000); //1000 milliseconds is one second.

} catch(InterruptedException ex) {

Thread.currentThread().interrupt();

}
[/sourcecode]




This will have you sorted in no time.


clip_image006





[sourcecode language='sql' ]
while (getVariables().get("NumberRecordsFound").compareTo(StopSearch) != 0)

{

try {

Thread.sleep(20000); //1000 milliseconds is one second.

} catch(InterruptedException ex) {

Thread.currentThread().interrupt();

}

{

http.post(

1376, "{{szERPURL,https://e1finpp.au.ad.westfield.com}}:93/jde/E1VirtualClient.mafService", http.querystring(http.param("e1.namespace",

""), http.param("e1.service",

"E1VirtualClient"), http.param(

"RENDER_MAFLET", "E1Menu"), http

.param("e1.state", "maximized"),

http.param("e1.mode", "view")), http.postdata(

http.param("jdemafjasLinkTarget",

"E1MENUMAIN_{{JdeMafJasLinkTarget,6673060528559646720}}"),

http.param("formOID", "W986110BA"),

http.param("guiChangeOnly", "1"),

http.param("stackId", "1"),

http.param("RID",

"{{GLOBAL_RID,ec56e0ead19ddb67}}"),

http.param("portalContainerType",

"Non-WebCenter"), http

.param("stateId", "5"),

http.param("eventCount", "3"), http

.param("posX", "0"), http

.param("posY", "0"),

http.param("0_cmd",

"gridScrollLeft0_1"), http

.param("0_ctrlVal", "865"),

http.param("1_cmd",

"gridScrollTop0_1"), http

.param("1_ctrlVal", "0"),

http.param("2_cmd", "0_23")), null, true, "UTF8", "UTF8");

{

http.solve("NumberRecordsFound",

"<td class=gridheader>(.+?)</td>", "", false,

Source.Html, 0, EncodeOptions.None);

info("Record Counter {{NumberRecordsFound}}");

}

http.get(

1380, "{{szERPURL,https://e1finpp.au.ad.westfield.com}}:93/jde/RecentReports.mafService", http.querystring(http.param("e1.namespace", ""),

http.param("e1.service", "RecentReports"),

http.param("RENDER_MAFLET", "E1Menu"),

http.param("e1.state", "maximized"),

http.param("e1.mode", "view"),

http.param("forceGoToDb", "false"),

http.param("amp;timestamp={{@timestamp()}}")), null, true, "UTF8", "UTF8");

http.get(

1384, "{{szERPURL,https://e1finpp.au.ad.westfield.com}}:93/jde/share/https_dummy.html", null, null, true, "UTF8", "UTF8");

}

}
[/sourcecode]

Extending JDE to generative AI