This post is also available in: English
Durante alguns dias, quando eu estava testando e criando a integração dos meus bancos de dados Oracle com o OUD 11.1.2.2.0 (OUD-EUS integration), recebi o erro abaixo:
No arquivo de trace gerado pelo dbca na pasta "cfgtoollogs/dbca", encontrei:
java.lang.NullPointerException at oracle.net.TNSAddress.Description.toString(Unknown Source) at java.lang.String.valueOf(String.java:2615) at java.util.AbstractCollection.toString(AbstractCollection.java:454) at java.util.Vector.toString(Vector.java:946) at java.lang.String.valueOf(String.java:2615) at java.lang.StringBuilder.append(StringBuilder.java:116) at oracle.sysman.assistants.util.NetworkUtils.registerDBWithDirSrvc(NetworkUtils.java:1917) at oracle.sysman.assistants.util.NetworkUtils.registerDBWithDirSrvc(NetworkUtils.java:1833) at oracle.sysman.assistants.util.step.network.DirServiceStep.executeImpl(DirServiceStep.java:248) at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210) at oracle.sysman.assistants.util.step.BasicStep.callStep(BasicStep.java:251) at oracle.sysman.assistants.dbca.backend.PreDBConfigureStep.executeImpl(PreDBConfigureStep.java:265) at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210) at oracle.sysman.assistants.util.step.Step.execute(Step.java:140) at oracle.sysman.assistants.util.step.StepContext$ModeRunner.run(StepContext.java:2711) at java.lang.Thread.run(Thread.java:637) [Thread-32] [ 2015-04-06 11:12:11.380 BRT ] [SQLEngine.done:2189] Done called
Tentei alguns workarounds da Oracle, como:
- Oracle Support Document 1573358.1 (OUD-EUS Integration: Wallet not Created When Running DBCA) can be found at: https://support.oracle.com/epmos/faces/DocumentDisplay?id=1573358.1
- Oracle Support Document 188134.1 (Tracing the Database Configuration Assistant (DBCA)) can be found at: https://support.oracle.com/epmos/faces/DocumentDisplay?id=188134.1
Porém nenhum deles funcionou ou me deu qualquer pista do que estava acontecendo.
Eu sabia que era um bug desde o início. Primeiro eu pensei que estava relacionado a algum problema ao detectar o OCR home já que aparecia em algumas linhas antes do log:
PRCT-1011 : Failed to run "getcrshome". Detailed error: []
Mas esse não era o problema. Mais tarde, eu pensei que estava relacionado de alguma forma com o SSLv3 por causa de algumas outras entradas no trace:
[Thread-32] [ 2015-04-06 18:56:42.823 BRT ] [NetworkUtils.bindToDirSrvc:1478] NNFL_AUTH_SSL_NOAUTH failed oracle.net.config.ConfigException: TNS-04409: Directory service error caused by: oracle.net.config.DirectoryServiceException: TNS-04427: DirectoryService: could not connect caused by: oracle.net.ldap.NNFLException oracle.net.config.DirectoryServiceException: TNS-04427: DirectoryService: could not connect caused by: oracle.net.ldap.NNFLException oracle.net.ldap.NNFLException at oracle.net.config.DirectoryService.throwException(Unknown Source) at oracle.net.config.DirectoryService.getNNFLWrapperRNE(Unknown Source) at oracle.net.config.DirectoryService.getNNFLWrapper(Unknown Source) at oracle.net.config.DirectoryService.bind(Unknown Source) at oracle.net.config.Config.bind(Unknown Source) at oracle.sysman.assistants.util.NetworkUtils.bindToDirSrvc(NetworkUtils.java:1471) at oracle.sysman.assistants.util.step.StepContext.doDirServiceBind(StepContext.java:1239) at oracle.sysman.assistants.util.step.StepContext.doDirServiceBind(StepContext.java:1224) at oracle.sysman.assistants.util.step.network.DirServiceStep.executeImpl(DirServiceStep.java:227) at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210) at oracle.sysman.assistants.util.step.BasicStep.callStep(BasicStep.java:251) at oracle.sysman.assistants.dbca.backend.PreDBConfigureStep.executeImpl(PreDBConfigureStep.java:265) at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210) at oracle.sysman.assistants.util.step.Step.execute(Step.java:140) at oracle.sysman.assistants.util.step.StepContext$ModeRunner.run(StepContext.java:2711) at java.lang.Thread.run(Thread.java:637)
Esse também não foi o motivo. Esta mensagem SSLv3 era apenas mais uma exceção não tratada .. as linhas posteriores mostraram que o dbca tentou uma outra abordagem.
Então, finalmente, depois de comparar alguns bancos de dados que funcionaram com outros que estavam recebendo exatamente o mesmo erro, percebi que a falha foi causada somente em BDs com listeners dinâmicos.
Todos os bancos de dados que foram configurados com um listener dinâmico, usando o host e porta padrões, sem o listener ter ser indicado no listener.ora, eu tive os mesmos problemas.
Como workaround, eu inseri no arquivo listener.ora:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhostname)(PORT = 1521)) ) )
Em seguida, depois de reiniciar o listener e chamar o dbca novamente, tudo funcionou.
10 dias .. experiências, tentativas e cansaço. Isso é o que me custou o bug acima.
Gostou? Não deixe de comentar ou deixar um 👍!