Contenitori Oracle per J2EE (OC4J)
– OC4J sta per Oracle's Containers for J2EE. OC4J può eseguire servlet, Java Server Pages (JSP), Enterprise Java Beans (EJB)
-OC4J sostituisce la precedente implementazione JServ per l'esecuzione di servlet sul server Web
-Oracle Application Server 10gR3 (10.1.3) è l'ultima versione di produzione
-OC4J si basa sugli standard J2EE:Struttura di directory specifica,Requisiti file (contenuti e convenzioni di denominazione),Definizione file XML
-Le istanze OC4J vengono eseguite in JVM e comunicano tramite mod_oc4j/Apache
-La distribuzione avviene tramite un file Enterprise Archive (EAR), che contiene la definizione dell'applicazione e i file dell'applicazione Web (WAR), che a sua volta include il codice dell'applicazione Web (JAR) e i file di configurazione associati (definizioni servlet), JSP code,HTML
-OC4J è in realtà il server delle applicazioni Orion di Ironflare, che Oracle ha concesso in licenza e rinominato.
Oracle's Containers for J2EE (OC4J) in R12
–Oracle EBS R12 crea 3 istanze OC4J
OACORE:esegue applicazioni basate su Oracle Applications Framework
FORMS:esegue applicazioni basate su Forms
OAFM:esegue servizi Web, map-viewer, ascontrol
Il numero di istanze OC4J per ciascun gruppo sarà determinato dalla corrispondente variabile di contesto nprocs ( s_oacore_nprocs, s_forms_nprocs/s_frmsrv_nprocs, s_oafm_nprocs).
-I servlet distribuiti sul server OC4J sono conformi alla specifica J2EE
-Forms.EAR 10.1.2 viene distribuito nel contenitore OC4J in Application Server 10.1.3
–AutoConfig viene utilizzato per la gestione della configurazione, in modo simile alla versione 11i
File importanti utilizzati per la configurazione delle istanze OC4J
Oc4j.properties :definisce l'aliasing della directory di base delle app, la posizione del file dbc è definita in questo file
Server.xml :definisce le applicazioni J2EE e le relative librerie condivise per il runtime OC4J
Orion-application.xml :definisce la posizione delle classi Java di tutti i moduli Web J2EE distribuiti nell'applicazione J2EE
Orion-web.xml :definisce i parametri a livello di servlet per i moduli web J2EE
Questi file sono sinonimi di jserv.conf, jserv.properties in 11i
Oracle Process Manager and Notification Server (OPMN) gestisce i componenti AS ed è composto da:
-Oracle Notification Server (ONS):invia le notifiche tra i componenti
OHS ->OPMN ->OC4J
-Process Manager (PM) start,stop, restart, rilevamento decessi
($ADMIN_SCRIPTS_HOME contiene gli script equivalenti delle app chiamati ad*)
-Il file di configurazione singolo(opmn.xml) viene utilizzato OPMN per gestire i servizi. La posizione del file di configurazione è data come $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
I servizi gestiti da opmn tramite opmnctl sono
1) HTTP_Server
2) oacore
3) moduli
4) oafm
Alcune altre funzionalità relative a R12 OC4J
-C'è un nuovo parametro definito in R12:s_oacore_append.classpath
Questo parametro viene utilizzato per aggiungere file jar personalizzati a OC4J
-C'è un nuovo parametro definito in R12:i valori s_jsp_main_mode
s_jsp_main_mode possono essere semplicemente eseguiti o ricompilati
Esegui semplicemente significa che proverà a eseguire jsp... se jsp non è compilato, fallirà
ricompilare significa che compilerà jsp in fase di esecuzione.
Il suo valore può essere visto nel file
$INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml
- Ricompilare manualmente il JSP utilizzando i seguenti passaggi:
cd $FND_TOP/patch/115/bin
perl ojspCompile.pl –compile –flush -p 2
-adopmnctl.sh status in $ADMIN_SCRIPTS_HOME può essere utilizzato per vedere lo stato dei componenti IAs
-s_oacore_prepend_classpath,s_oacore_append_classpath sono presenti variabili
Il percorso di classe Prepend sarebbe utile se il cliente desidera sovrascrivere uno qualsiasi dei valori predefiniti librerie di classi con libreria di classi personalizzata. java bootstrap class loader cerca le classi da sinistra a destra di CLASSPATH).
Il classpath append sarebbe utile se il cliente desidera librerie di classi personalizzate aggiuntive, che potrebbe voler utilizzare senza sovrascrivere accidentalmente le implementazioni delle classi specificato nella libreria di classi predefinita.
Leggi anche
Come distribuire l'applicazione su OC4J