Acesse o suporte da Oracle: https://support.oracle.com. Selecione Patches & Updates, no Patch Name or Number digite o número 6880880 e clique em Search.
Da lista de opções, escolha a versão do OPatch que seja compatível com o seu Sistema Operacional. Clique em Download. O OPatch é a ferramenta que utilizaremos para aplicar os patches em produtos da Oracle. No meu caso a versão que eu baixei é a p6880880_112000_Linux-x86-64.zip.
Nesse artigo eu vou realizar o patch do Oracle BPM/SOA Suite em um Ubuntu 64 bits. Serão aplicados os seguinte patches: 9958661 e 10629189. Após fazer o download do OPatch e dos patches a serem aplicados, descompacte-os. Para ficar melhor organizado, eu removi a versão antiga do OPatch: /opt/Oracle11gSOABPM/Middleware/Oracle_SOA1/OPatch e substitui pela nova versão. Descompactei os patches em uma pasta dentro da Home do usuário chamada patches.
Atribua o valor adequada à sua ORACLE_HOME e coloque o OPatch no PATH:
export ORACLE_HOME="/opt/Oracle11gSOABPM/Middleware/Oracle_SOA1" export PATH=$PATH:$ORACLE_HOME/OPatch
Para verificar os pré-requisitos de maneira gráfica, acesse a pasta $ORACLE_HOME/Oracle_SOA1/oui/bin e digite o seguinte:
./runInstaller -prereqchecker PREREQ_CONFIG_LOCATION=$ORACLE_HOME/OPatch/opatchprereqs ORACLE_HOME=$ORACLE_HOME OPATCH_PATCH_BASE_DIR=/home/thiago/patches -entryPoint oracle.opatch.apply
Você terá a seguinte tela:
Acesse a $ORACLE_HOME e execute o OPatch
opatch -help
Caso você tenha o seguinte erro:
Invoking OPatch 11.2.0.1.4 java.lang.UnsatisfiedLinkError: Can't load library: /opt/Oracle11gSOABPM/Middleware/Oracle_SOA1/oui/lib/linux/liboraInstaller.so at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1657) at java.lang.Runtime.load0(Runtime.java:770) at java.lang.System.load(System.java:1004) at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:402) at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:126) at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.ssgetUidux(OiipgEnvironment.java:528) at oracle.sysman.oii.oiix.OiixEnvironmentOps.ssgetUidux(OiixEnvironmentOps.java:159) at oracle.opatch.OUIReplacer.isRootAccess(OUIReplacer.java:741) at oracle.opatch.OPatch.main(OPatch.java:445) Exception in thread "Main Thread" java.lang.UnsatisfiedLinkError: no oraInstaller in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1689) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1029) at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:420) at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:126) at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.ssgetUidux(OiipgEnvironment.java:528) at oracle.sysman.oii.oiix.OiixEnvironmentOps.ssgetUidux(OiixEnvironmentOps.java:159) at oracle.opatch.OUIReplacer.isRootAccess(OUIReplacer.java:741) at oracle.opatch.OPatch.main(OPatch.java:445) OPatch failed with error code 1
Significa que ele não conseguiu carregar as bibliotecas do OUI, que foi o que ocorreu comigo :). Para verificar com mais detalhes o que está ocorrendo, você pode setar a variável de debug do OPatch:
export OPATCH_DEBUG=true
O problema ocorreu na minha máquina porque ele utilizou o JRockit que veio disponível no Oracle SOA Suite que é 32 bits e a minha máquina é 64 bits e as libs do OUI são 64 bits. Para corrigir baixei uma nova versão do JRockit de 64 bits: http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html, instalei ele e passei o parâmetro jdk para o OPatch escolher o JDK adequado.
opatch lsinventory -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
Caso você não tenha tido problema com a JDK, execute sem passar esse parâmetro e o caminho da JDK. Você deverá ficar atento à seguinte informação:
Installed Top-level Products (2): Application Server 11g SOA Patchset 11.1.1.3.0 Oracle SOA Suite 11g 11.1.1.2.0 There are 2 products installed in this Oracle Home.
Caso não apareça essa informação, ou você setou o ORACLE_HOME errado ou ele não encontrou o arquivo /etc/oraInst.loc. Para resolver essa segunda opção crie um arquivo com o seguinte conteúdo:
inventory_loc=/home/thiago/oraInventory inst_group=thiago
Substituindo o grupo e a localização do inventory corretamente. Após essa verificação, vamos instalar o patch com o Weblogic Server desligado. Caso queira fazer com ele ligado, leia o arquivo README que acompanha o patch para instruções do uso do parâmetro -auto. Acesse o diretório do patch e execute o opatch com o parametro apply. Da seguinte maneira:
opatch apply -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
Informe seu e-mail e senha de suporte. Confirme a aplicação do patch. Faça o mesmo para os outros patches e pronto. Patches aplicados! Confirme executando o lsinventory novamente.
Interim patches (2) : Patch 10629189 : applied on Thu Jan 13 08:41:25 BRST 2011 Unique Patch ID: 13322870 Created on 7 Jan 2011, 02:00:23 hrs PST8PDT Bugs fixed: 9591253 This patch overlays patches: 9958661 This patch needs patches: 9958661 as prerequisites Patch 9958661 : applied on Thu Jan 13 08:39:32 BRST 2011 Created on 11 Aug 2010, 04:22:49 hrs PST8PDT Bugs fixed: 9773118, 9902801, 9673506, 9788329, 9920703, 9766017, 9766026, 9669174 9766118, 9839946, 9845950, 9877837, 9828641
Outras informações podem ser encontradas em: http://docs.tpu.ru/docs/oracle/en/owl/E14571_01/doc.1111/e16793/opatch.htm
Atualização: Para remover um patch aplicado, execute o seguinte comando:
opatch rollback -id 10629189 -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
[...] This post was mentioned on Twitter by open4education. open4education said: RT @thiagovespa: Novo post: Patch no Oracle Fusion Middleware http://j.mp/i64UJD [...]
Muito bom o post Thiago!
Parabéns.
Diovani