BAAN e' un software di ERP che puo' utilizzare,
quale supporto per i propri dati, l'RDBMS Oracle.
La versione IV e' la piu' recente e diffusa ed e' quella trattata
in questo documento.
Poiche' BAAN puo' utilizzare, quale appoggio per i propri dati, l'RDBMS Oracle e' parso utile riportare in questo documento rivolto ai DBA Oracle.
L'installazione di Oracle per l'utilizzo da BAAN non richiede particolari avvertenze.
Rispetto ad una normale installazione per ambienti OLTP le principali considerazioni sono le seguenti:
Valgono inoltre le normali considerazioni
per l'installazione di una base dati Oracle... E' opportuno separare tablespace
di tabelle ed indici. Naturalmente la separazione deve essere reale (quindi
su dischi fisicamente differenti) e non solo apparente (ad esempio utilizzando
file system diversi costruiti sullo stesso pool di dischi).
E' opportuno far seguire all'installazione della base dati una normale sessione
di tuning (cfr. Statistiche prestazionali di Oracle
). E' opportuno bilanciare correttamente i carichi sui dischi ed effettuare
il relativo tuning...
L'installazione di Oracle deve essere effettuata prima dell'installazione di BAAN.
Nonostante il titolo in questo paragrafo non si parla dell'installazione di BAAN... piuttosto ai parametri relativi ad Oracle che vengono definiti durante l'installazione di BAAN.
Specificando il tipo di database rispondere oracle7 per tutte le company (e' sconsigliabile una configurazione eterogenea).
La procedura di installazione richiede alcuni elementi tipici della configurazione Oracle: $ORACLE_HOME, $ORACLE_SID, ...
Terminata la prima fase di installazione
di BAAN e' necessario effettuare il link tra BAAN ed Oracle. Per fare questo
si utilizza lo script shell ora_inst6.1 dopo aver settato le variabili
di ambiente Oracle.
Lo script, tra le altre cose, configura i file ora_users, ora_groups
ed ora_storage e li pone nella directory $BSE/lib/ora.
Terminata tale fase e' possibile procedere con la restante parte dell'installazione BAAN.
Il file $BSE/lib/ora/ora_storage
contiene differenti importanti informazioni relative alla disposizione ed al
dimensionamento dei diversi oggetti Oracle.
Nell'ordine:
Table Name | Nome tabella o indice (si possono utilizzare wildcard) |
Company | Nome della company (si possono utilizzare wildcard) |
Object Type | Il tipo di oggetto: T o IX |
Owner Type | Oggetto di gruppo o privato |
Index Optimization | Ad esempio 011 per il livello 1 |
Refresh Time | Tempo di refresh delle tabelle in secondi |
Storage | Classica clausola di storage in sintassi Oracle |
La configurazione del file ora_storage richiede spesso aggiustamenti poiche', dato il grande numero di tabelle di BAAN e la complessita' del suo disegno, e' spesso difficile disporre di stime affidabili.
Generalmente e' consigliato mantenere un file di ora_sorage di modeste dimensioni. A fronte di una riorganizzazione della base dati e' quindi opportuno creare un file di ora_storage molto dettagliato (per evitare frammentazioni e sprechi di spazio in Oracle) e, terminata l'attivita', utilizzare un file di ora_storage con valori di default.
Un semplice esempio:
ttaad000:000:T:group:0214:5:PCTFREE 5 TABLESPACE
TSWO0D00 INITRANS 3 STORAGE (INITIAL 41 K NEXT 40 K PCTINCREASE 5) *:100:T:group:0214:5:PCTFREE
5 TABLESPACE TSWO0D02 INITRANS 3 STORAGE (INITIAL 10 K NEXT 10 K PCTINCREASE
5) *:100:I:group:0214:5:PCTFREE 5 TABLESPACE TSWO0I02 INITRANS 3 STORAGE (INITIAL
4K NEXT 4 K PCTINCREASE 5) *:*:T:group:0214:5:PCTFREE 5 TABLESPACE TSWOTD00
INITRANS 3 STORAGE (INITIAL 10K NEXT 10 K PCTINCREASE 5) *:*:I:group:0214:5:PCTFREE
5 TABLESPACE TSWOTI00 INITRANS 3 STORAGE (INITIAL 4K NEXT 4 K PCTINCREASE 5)
Il driver oracle7 agisce da interfaccia
tra le applicazioni (che eseguono la bshell61.) e l'RDBMS Oracle.
Il driver svolge una serie di compiti ed elaborazioni: data dictionary, locking,
referential integrity, buffering, security, ...
Il livello di parametrizzazione e di configurazione possibili sono elevati.
Vi sono due differenti livelli disponibili nel driver BAAN di accesso ad Oracle. Il driver di livello 1 lavora a livello di riga ed e', in genere, ritenuto piu' performante. Il driver di livello 2 ottimizza i join su tabelle multiple.
Nel caso di utilizzo del driver di livello 2 e' fortemente consigliato specificare il valore 034 del parametro di ottimizzazione nell'ora_storage. Per il driver di livello 1 il parametro deve invece valere 011.
Il driver effettua una serie di conversioni sugli oggetti riferiti dalle applicazioni nell'accedere al data dictionary di Oracle.
Le tabelle del data dictionary di BAAN hanno una corrispondenza
diretta con le tabelle Oracle. Ad ogni tabella BAAN corrisponde una tabella
Oracle con la seguente regola: T|package[2]|table_name[6]|company[3]
I nomi delle colonne vengono prefissati con T$. Se il numero di colonne
supera i limiti Oracle (254 colonne) vengono utilizzate colonne t$array di tipo
raw.
Gli indici prendono lo stesso nome della tabella Oracle cui si riferiscono seguite
da $IDXn dove n e' un valore progressivo che vale 1 per la chiave primaria.
Gli errori vengono raccolti nella directory $BSE/log. Se viene riscontrato un errore Oracle questo viene incrementato di 1.000 e restituito all'applicazione. Il dettaglio riportato nei log e' molto elevato e quindi molto utile per la soluzione di problemi (basta leggere e capire...).
Oltre alle normali utility Oracle per il tracing delle attivita' sulla base dati BAAN fornisce ulteriori possibilita':
L'accesso alla base dati Oracle viene effettuato
con una connessione SQL*Net v.2 mediante il settaggio della variabile d'ambiente
TWO_TASK.
Per rendere piu' veloci alcuni accessi e' possibile utilizzare
anche la connessione PIPE su SQL*Net definendo PROTOCOL=beq
nella configurazione del TNSNAMES.ORA.
BAAN prevede l'utilizzo dell'ottimizzatore cost-based di Oracle. Nel file di ora_storage e' possibile indicare se creare le statistiche di ottimizzazione sugli indici o quali parametri utilizzare per effettuare l'analyze (eg. ESTIMATE STATISTICS).
Il driver inoltre guida, con HINT specifici, l'access path scelto dall'ottimizzatore.
La gestione dei lock in BAAN permette la scelta tra diverse opzioni.
Il driver ora7_oracle puo' essere controllato mediante diversi parametri di tuning:
Uno statement BAAN SQL puo' essere composto da piu' espressioni. Il driver puo' utilizzare diverse "esplosioni" di tali espressioni per farle analizzare ad Oracle. Per default la tecnica a "filtro" e' quella utilizzata.
BAAN offre diverse utilities per la gestione della base dati.
Sono disponibili alcune utility per il controllo delle allocazioni di spazio specifiche per BAAN e piu' generali sulla situazione dell'RDBMS Oracle e sulle prestazioni del sistema su Utility Oracle.
Quando viene attivata una sessione BAAN vengono creati una serie di processi sul sistema operativo ospite. Per fare un esempio ci riferiamo ad una configurazione su un sistema Unix con RDBMS Oracle ospitato sullo stesso server. La sessione utente (processo ksh) lancia la shell di BAAN (processo ba6.1) che a sua volta lancia il processo bshell che a sua volta lancia due processi: il processo di audit ed il processo oracle8. Quest'ultimo e' il driver verso l'RDBMS Oracle ed ovviamente lancia in processo oracleSID. Tutto chiaro?
La programmazione in ambiente BAAN avviene con tool specifici che consentono una elevata produttivita' nello sviluppo delle applicazioni.
L'SQL utilizzato da BAAN e' differente dall'SQL standard e possiede costrutti particolari che debbono essere tradotti nel dialetto dell'RDBMS che ospita la base dati dai relativi driver.
Sono sempre richieste attivita' di "presonalizzazione" per adeguare il sistema alle attivita' produttive dell'azienda. Le personalizzazioni includono l'analisi dei bisogni informativi, il dimensionamento e configurazione dei diversi ambienti, la configurazione del sistema ERP (consentono parecchi livelli di configurazione), la creazione di programmi specifici, l'integrazione con altri sistemi informativi, ...
Le attivita' di personalizzazione ed integrazione sono spesso di lunga durata e richiedono un notevole impegno.
Testo: BAAN IV su Oracle
Data: 1 Aprile 1998
Versione: 1.0.5
Autore: mail@meo.bogliolo.name