Instalando BI Publisher no Oracle Fusion 11g (Weblogic 10.3)

O Oracle BI Publisher (anteriormente chamado de XML Publisher), normalmente vem preparado para a instalação sobre uma instância OC4J ou Oracle Application Server, mas quando a instalação é sobre Weblogic, Websphere, Tomcat ou JBOSS, as coisas podem se complicar um pouco mais. Como tive a necessidade de realizar a instalação sobre Weblogic e não encontrei muita coisa que pudesse me ajudar em português, resolvi traduzir um tutorial que me foi de muita ajuda (vide fonte no final do post).

– Crie o usuario BIPUBLISHER no seu banco de dados Oracle (Veja comandos abaixo):

CREATE USER bipublisher
IDENTIFIED BY <pw_bipublisher>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT CONNECT, RESOURCE TO bipublisher;

GRANT CREATE SESSION TO bipublisher;

GRANT CREATE TABLE TO bipublisher;

– Baixe o pacote de instalação do WebLogic 11g na pagina do OTN (http://otn.oracle.com). Após a instalação, utilize o utilitário de configuração para criar um novo domínio do WebLogic para receber a aplicação de BI Publisher.

Weblogic - Criacao do dominio

– O BI Publisher pode ser instalado automaticamente utilizando o Instalador Universal se a instalação for para OC4J ou Oracle Application Server. Se você estiver instalando sobre o WebLogic (Fusion Middleware 11g) , você vai precisar fazer a instalação manualmente. Descompacte o arquivo de download do Oracle BI Publisher (como mostra a seguinte estrutura de pastas).

Estrutura de pastas da instalacao do BI Publisher

– Vá até a pasta manual, nela há tudo o que sera necessário para a instalação:

wls3

– Na pasta:  manual > generic estão os arquivos com extensão WAR e EAR, para esta instalação sera necessario somente o arquivo WAR. Em manual / XMLP esta o repositório do BI Publisher, juntamente com os arquivos de configuração para o Scheduler, dentre outras coisas. Para descompactar o arquivo xmplserver.war, será necessário criar uma pasta dentro do servidor de aplicações que irá conter o aplicativo. No exemplo, uso a seguinte estrutura: /u01/app/oracle/product/xmlpserver/. Copie o arquivo xmlpserver.war da pasta manual > generic para essa nova pasta, como segue:

wls4

Agora, para descompactar o arquivo .war utilize o comando java xvf, desta forma:

cd /u01/app/oracle/product/xmlpserver
jar xvf xmlpserver.war
rm xmlpserver.war

A estrutura final de diretórios ficara assim:

wls5

Voltando para a estrutura de instalação do Oracle BI Publisher, copie a pasta manual > XMLP para dentro da estrutura de pastas acima, de forma que a pasta XMLP fique no mesmo nível da pasta WEB-INF, xdo, etc.

wls6

Dentro da pasta WEB-INF da aplicacao, edite o arquivo: xmlp-server-config.xml, conforme o exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<xmlpConfig xmlns="http://xmlns.oracle.com/oxp/xmlp">
  <resource>
     <file path="${oracle.home}/xdo/repository"/>
   </resource>
</xmlpConfig>

Para:

<?xml version="1.0" encoding="UTF-8"?>
<xmlpConfig xmlns="http://xmlns.oracle.com/oxp/xmlp">
  <resource>
     <file path="/u01/app/oracle/product/xmlpserver/XMLP"/>
   </resource>
</xmlpConfig

É extremamente importante fornecer o caminho do arquivo corretamente.

Para fazer o deployment da aplicação, entre no console da administração do Weblogic (se seu console não estiver em development mode, clique no botao: lock and edit, para habilitar a opcao para a instalacao da aplicacao).

Na pagina de deployment, clique no botao install, e navegue para a pasta onde estao os arquivos da aplicacao BI Publisher, como no exemplo seguinte:

wls7

Em seguida, clique em next, selecione Install this deployment as an application, selecione DD Only como security option e marque I will make this deployment accessible from the following location, em seguida clique em avançar, concluir e depois em salvar.

Agora, a aplicaçao deverá ser exibida da seguinte forma (em deployments):

wls8

Navegue para a página do BI Publisher e efetue o login como Administrator/Administrator em http://localhost:7001/xmlpserver, e voce vera seu repositorio da seguinte forma:

wls9

Como o Oracle BI Publisher utiliza o TOP Link para a camada de persistência, você precisará realizar uma configuração no script de inicialização do WebLogic (<dominio>/bin/startWebLogic.sh) adicionando -Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform, da seguinte forma:

de:

if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
	echo "Starting WLS with line:"
	echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS}  ${PROXY_SETTINGS} ${SERVER_CLASS}"
	${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS}  ${PROXY_SETTINGS} ${SERVER_CLASS}
else
	echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
	${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS}  ${PROXY_SETTINGS} ${SERVER_CLASS}  >"${WLS_REDIRECT_LOG}" 2>&1
fi

para:

if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
	echo "Starting WLS with line:"
	echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} -Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS}"
	${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} -Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS}
else
	echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
	${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} -Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS}  >"${WLS_REDIRECT_LOG}" 2>&1
fi

Em seguida, Reinicie o WebLogic.

Va para a opcao Admin > Scheduler configuration e configure a conexão com o banco de dados (utilize o usuario criado no inicio deste post).

wls10

Teste a conexão e depois clique em Install Schema para a criação das tabelas necessárias.

 

Referência: Tradução e adaptação do texto postado em 22/11/2009 por Mark Rittman em http://www.rittmanmead.com/2009/10/22/installing-bi-publisher-into-weblogic-servier-11g/

Chamada de relatórios Discoverer 10g em aplicações WEB

Recebi recentemente a missão de fazer a chamada de relatórios desenvolvidos via discoverer 10g em um portal desenvolvido pela empresa em Oracle PL/SQL WEB que está em outro servidor. O primeiro desafio foi, como fazer duas aplicações que utilizam mecanismos de autenticação diferentes possam conversar entre si. A solução adotada, segue descrita passo-a-passo abaixo. Não sei se esta é a melhor forma de resolver este problema, mas neste caso foi a alternativa que melhor se adaptou ao problema.

1º Passo: Acessar o Enteprise Manager – Instância Middle e clicar em Discoverer

discov11

2º Passo: Clicar na pasta Administração e em seguida no link Conexões Públicas.

discov2

3º Passo: Em Conexões Publicas, clicar no botão Criar Conexão.

discov31

4º Passo: Digitar as informações necessárias para a conexão com sua EUL, lembrando de deixar a senha em branco conforme a figura abaixo.

discov4

5º Passo: conectar-se ao discoverer viewer e capturar o link de seu relatório. O link original é mais ou menos assim:

http://<seu_aplication_server>:<porta>/discoverer/app/open?event=openWorksheet&worksheetName=<NOME_DO_RELATORIO>%2F1&stateStr=eNrtktFu2yAUhl8GW5tQIuO40Xrhq07dVVWpaa8jDMQ4wcYBCnaevscmkbxV615gvuBHPz/nHD4ZhZOVDiV5wf2eW9Ak356V3Q9JTopk8/PV4Fbzd6XXr6CYab4IbCDwqJWkmKyfIIXPDiLU1BRLbSjujbCiw7u3J7h0aCE9tGpxn/zWYK7ABQyxpTrA0YEqKxbxuz/beaquxW$R/HNFXdlFIPsciG$i5rxoybn1woBBZjSwDKcVaRUG1za6uwSyzgI$jQP3uKKXkIVx6Bn2cBCO43DkfoRLASoX15pF/R/xXxErNnMB1K76ErarxqFqrHKTMKkn4jPwq3mcI5G2jLBha1uQLLo37$tO9b9bVU09r6ui4U5ityKXcL/dTpGqkaKppYsm$bGJ5i9DeSM6h5m8/SexyLG$jR38NDSBb6YxPwGxDqWeudJ6nrLuVLLDnpKsQLRHE8g==&stateID=

6º Passo: Remover o &stateID da URL acima e adiciona-lo á sua aplicação.

A remoção do parâmetro stateID, da URL do seu relatório, fara com que o Discoverer Viewer 10g verifique se o usuário efetuou a conexão antes de exibi-lo. Caso a conexão não tenha sido realizada, será solicitada a senha do usuário para a conexão ao Discoverer Viewer. Esta senha será solicitada uma única vez por sessão, ou seja, uma vez digitada, nas próximas chamadas do relatório a senha não será mais requisitada. Ela somente voltará a ser requisitada quando o browser na sessão corrente for fechado.