Opleveren JMP
Momenteel
is de volgende architectuur geimplementeerd (zie blz 1-3 van OWB installation
en admin guide ) :

Bovenstaande voor zowel
een ontwikkel/test omgeving (JMT) als een productieomgeving (JMP) op
twee verschillende fysieke servers.
Het overzetten van programmatuur van de JMT omgeving naar
JMP wordt met de Meta Data Loader (MDL) van OWB gedaan en gaat globaal als
volgt:
-
Maak export met MDL van de objecten in OWB uit
JMT die moeten worden overgezet
-
Zet file(s) op een plaats die door beheer kan
worden ingelezen
-
Importeer de objecten met MDL in de design
omgeving van OWB JMP
-
Deploy de objecten op de runtime database JMP
In detail worden de opleverstappen hier beschreven.
JMT-Design is de design repository van JMT waar de metadata van alle
ontwikkel/test objecten in staan. JMT-Runtime is de JMT database waar alle
objecten ( tables, packages ed.) staan die we gaan uitvoeren (runnen) in de
laadjobs. JMP idem dito.
Nog een opmerking vooraf: er worden een aantal zaken extra
gedaan bij een oplevering, bijv. we
splitsen de mdl file, en leveren altijd een proces flow op. Strikt genomen is dit niet nodig, maar het maakt het
proces wel beter beheersbaar.
·
Maak een collection aan in JMT-Design door met
de rechtermuisknop te klikken op collection. Geef een duidelijk naam en
omschrijving van de collection.
·
Voeg een object die je muteert direct toe aan de
collection. Rechter muisknop en “Add to Collection”. Je kunt ook meerdere
objecten tegelijk toevoegen door meerdere objecten te selecteren (Ctrl) en dan
rechtermuisknop te gebruiken. Verwijderen uit een collection gaat door met de
rechtermuisknop op de referentie in de collectie te gaan staan en dan “Delete”
te kiezen. Let wel, met een collection wordt geen kopie van het object gemaakt, maar een referentie naar het
object.
·
Zet alle procesflows die betrekking hebben op de
gewijzigde objecten in de collection. Dit geldt dus ook voor alle
parent-procesflows.
·
Maak een MDL export file per objecttype. Zet het
objecttype, datum en releasenummer in de filenaam.
·
Maak een opleverdocument aan. Hierin staan alle
acties die moeten worden gedaan in JMP.
Zet hierin ook de deploy actie (CREATE, REPLACE, UPGRADE) die per object
moet plaatsvinden.
·
Maak een full snapshot van het project in van
JMP-Design voor de veiligheid.
·
Importeer de MDL files in JMP-Design, Houdt
hierbij deze volgorde aan:
o
Tables
o
Views
o
Sequences
o
Transformations
o
Mappings
o
Proces Flows

·
Kies
Import all objects bij Object
Selection
·
Kies altijd Update
metadata. Deze optie zorgt ervoor dat bestaande objecten worden
overschreven en nieuwe worden toegevoegd. (Als je zeker weet dat het alleen
nieuwe object betreft dan kan ook de Create option worden gebruikt. Als het
alleen bestaande objecten betreft, dan kan ook de Replace optie worden
gebruikt). Gebruik nooit de merge metadata. Deze optie doet een replace als er
verschillen zijn, maar volgens mij werkt dit niet goed en de optie is zeker
niet geldig voor mappings .
o
Sommige objecten hebben child-objects die meteen
worden mee-geimporteerd. De MDL zorgt ervoor dat deze ook worden
gesynchroniseerd, dwz. hetzelfde gemaakt
worden als in de exportfile. Bijvoorbeeld : JMP table X heeft kolommen a, b, c.
In de mdl export file staat tabel X met kolommen a, d, e. Na de import heeft
JMP table X met kolommen a, d, e. Dwz. d en e zijnd toegevoegd en b en c zijn
verwijderd.
·
Kies Match
By Names. Hiermee worden de objecten gematched op hun fysieke naam en
worden nieuwe UOIDs aangemaakt in de JMP omgeving. Met deze UOIDs doen we
verder niets, dat is voor de interne administratie binnen OWB. We doen dus ook nooit een Match By UOID. Overigens zijn
er ook Business names voor elk object. Door een instelling in JMT OWB zorgen we
ervoor dat de fysieke en business names altijd hetzelfde zijn.
·
Advanced
is voor languages, security en user-defined objecten. Voorlopig
gebruiken we die niet.
·
Controleer na elke import de logfiles goed. Ga
niet verder met importeren als er warnings of fouten zijn, maar zoek eerst uit
wat ze betekenen. Soms kan toch worden doorgegaan als het een warning betreft.
·
Optioneel : Met een import worden er uiteraard
geen objecten verwijderd. Als er objecten verwijderd moeten worden geef dit dan
aan in het opleverdocument. Op JMP dienen deze objecten dan verwijderd te worden uit JMP-Runtime (deploy met optie
DROP) en daarna verwijderd uit JMP-Design.
·
Datavault views herstellen. Bij het overzetten van de datavault views kan
het zijn dat de owner DWHO_DV in de querytekst staat ipv DWH_DV. Pas deze
querytekst aan voordat gedeployed wordt (dus vervang alle DWHO_DV door DWH_DV).
Dit is een historisch gegroeide
“onhandigheid”. Oplossing is om op JMT de usernames hetzelfde te maken
als op JMP. Deze actie staat nog open.
·
Het updaten
van procesflows in JMP-Runtime geeft nogal eens problemen. Daarom
verwijderen we eerst de flows voordat we ze weer aanmaken : Verwijder de
procesflows uit JMP-Runtime (Deploy actie DROP). Als het droppen van de procesflows niet lukt,
draai dan het script wfrmitt.sql in sqlplus (onder de worskspace owner). Dit
script zorgt ervoor dat procesflows die nog gelocked zijn door owb in de
repository weer worden geunlocked.
Unlock hiermee alle procesflows.
·
Om te zien welke deployacties er nodig zijn dien
je het designcentrum te herstarten en daarna naar het control center te gaan.
Druk op Default Actions. Je ziet dan Create, Replace of Upgrade bij de
objecten. Check dit met het
opleverdocument
·
Deploy alle objecten in JMP-Runtime behalve de
procesflows. Je kunt hierbij dezelfde
volgorde aan houden als bij het importeren, maar dit is niet noodzakelijk. De
database kan namelijk altijd achteraf valid gemaakt worden door het compileren
van objecten. Let op : mijn ervaring bij het deployen is dat bij zeer veel
objecten (> 30), het beter is om de deployactie te splitsten in meerdere
batches.
·
Controleer of alle objecten valid zijn in de
database.
·
Deploy de procesflows met het script pf_jmp_all.tcl in OMB Plus .
Geen opmerkingen:
Een reactie posten