Contêineres da Oracle para J2EE (OC4J)
– OC4J significa Oracle’s Containers for J2EE. O OC4J pode executar Servlets, Java Server Pages (JSP), Enterprise Java Beans (EJB)
-OC4J substitui a implementação JServ mais antiga para executar servlets no servidor da Web
-Oracle Application Server 10gR3 (10.1.3) é a versão de produção mais recente
-OC4J é baseado em padrões J2EE:Estrutura de diretório específica,Requisitos de arquivo (content &convenções de nomenclatura),Definição de arquivo XML
-OC4J instâncias são executadas em JVMs e se comunicam através de mod_oc4j / Apache
-A implantação é feita por meio de um arquivo Enterprise Archive (EAR), que contém os arquivos de definição do aplicativo e do aplicativo Web (WAR), que por sua vez inclui o código do aplicativo Web (JAR) e os arquivos de configuração associados (definições de servlet), JSP code,HTML
-OC4J é na verdade o servidor de aplicativos Orion da Ironflare, que a Oracle licenciou e renomeou.
Containers da Oracle para J2EE (OC4J) em R12
–Oracle EBS R12 cria 3 instâncias OC4J
OACORE :executa aplicativos baseados em Oracle Applications Framework
FORMS :executa aplicativos baseados em Forms
OAFM :executa web services, map-viewer, ascontrol
O número de instâncias OC4J para cada grupo será determinado pela variável de contexto nprocs correspondente ( s_oacore_nprocs, s_forms_nprocs/s_frmsrv_nprocs, s_oafm_nprocs).
-Servlets implantados no servidor OC4J aderem à especificação J2EE
-Forms.EAR 10.1.2 é implantado no contêiner OC4J no Application Server 10.1.3
–AutoConfig é usado para gerenciamento de configuração, semelhante para liberar 11i
Arquivos importantes usados para configuração de instâncias OC4J
Oc4j.properties :define o alias básico do diretório de aplicativos, o local do arquivo dbc é definido neste arquivo
Server.xml :define aplicativos J2EE e suas bibliotecas compartilhadas para o tempo de execução OC4J
Orion-application.xml :define a localização das classes Java de todos os módulos da Web J2EE implantados no aplicativo J2EE
Orion-web.xml :define parâmetros de nível de servlet para módulos da web J2EE
Esses arquivos são sinônimos de jserv.conf, jserv.properties em 11i
Oracle Process Manager and Notification server (OPMN) gerencia componentes AS e consiste em:
-Oracle Notification Server (ONS):Entrega notificações entre componentes
OHS ->OPMN ->OC4J
-Process Manager (PM) iniciar, parar, reiniciar, detecção de morte
($ADMIN_SCRIPTS_HOME contém os scripts equivalentes de aplicativos chamados ad*)
-Arquivo de configuração único (opmn.xml) é usado OPMN para gerenciar os serviços. O local do arquivo de configuração é fornecido como $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
Os serviços gerenciados pelo opmn via opmnctl são
1) HTTP_Server
2) oacore
3) formulários
4) oafm
Mais alguns recursos relacionados ao R12 OC4J
-Há um novo parâmetro definido em R12:s_oacore_append.classpath
Este parâmetro é usado para adicionar arquivos jar personalizados ao OC4J
-Há um novo parâmetro definido em R12:s_jsp_main_mode
s_jsp_main_mode valores podem ser apenas executados ou recompilados
Apenas executar significa que ele tentará executar o jsp… se o jsp não estiver compilado, ele falhará
recompilar significa que ele compilará o jsp em tempo de execução.
Seu valor pode ser visto no arquivo
$INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml
-Recompile o JSP manualmente usando as seguintes etapas:
cd $FND_TOP/patch/115/bin
perl ojspCompile.pl –compile –flush -p 2
-adopmnctl.sh status em $ADMIN_SCRIPTS_HOME pode ser usado para ver o status dos componentes IAs
-s_oacore_prepend_classpath,s_oacore_append_classpath variáveis estão lá
O caminho de classe Prepend seria útil se o cliente quisesse substituir qualquer um dos padrões bibliotecas de classe com biblioteca de classe personalizada. java bootstrap class loader procura as classes da esquerda para a direita do CLASSPATH).
O caminho de classe append seria útil se o cliente quiser bibliotecas de classes personalizadas adicionais, que ele possa querer usar sem substituir acidentalmente as implementações de classe especificado na biblioteca de classes padrão.
Leia também
Como implantar o aplicativo no OC4J