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:
[sourcecode lang=”bash”]
export ORACLE_HOME="/opt/Oracle11gSOABPM/Middleware/Oracle_SOA1"
export PATH=$PATH:$ORACLE_HOME/OPatch
[/sourcecode]
Para verificar os pré-requisitos de maneira gráfica, acesse a pasta $ORACLE_HOME/Oracle_SOA1/oui/bin e digite o seguinte:
[sourcecode lang=”bash”]
./runInstaller -prereqchecker PREREQ_CONFIG_LOCATION=$ORACLE_HOME/OPatch/opatchprereqs ORACLE_HOME=$ORACLE_HOME OPATCH_PATCH_BASE_DIR=/home/thiago/patches -entryPoint oracle.opatch.apply
[/sourcecode]
Você terá a seguinte tela:

Acesse a $ORACLE_HOME e execute o OPatch
[sourcecode lang=”bash”]
opatch -help
[/sourcecode]
Caso você tenha o seguinte erro:
[sourcecode lang=”bash”]
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
[/sourcecode]
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:
[sourcecode lang=”bash”]
export OPATCH_DEBUG=true
[/sourcecode]
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.
[sourcecode lang=”bash”]
opatch lsinventory -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
[/sourcecode]
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:
[sourcecode lang=”bash”]
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.
[/sourcecode]
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:
[sourcecode lang=”bash”]
inventory_loc=/home/thiago/oraInventory
inst_group=thiago
[/sourcecode]
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:
[sourcecode lang=”bash”]
opatch apply -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
[/sourcecode]
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.
[sourcecode lang=”bash”]
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
[/sourcecode]
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:
[sourcecode lang=”bash”]
opatch rollback -id 10629189 -jdk /opt/jrockit-jdk1.6.0_20-R28.1.0-4.0.1
[/sourcecode]