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:
1 2 | 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:
1 | . /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
1 | opatch -help |
Caso você tenha o seguinte erro:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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:
1 | 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.
1 | 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:
1 2 3 4 5 | 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:
1 2 | 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:
1 | 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.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | 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:
1 | 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