<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8016103920635310477</id><updated>2024-09-01T08:22:01.780+02:00</updated><category term=".NET"/><category term="Exception"/><category term="Oracle"/><title type='text'>Tecnoencode</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tecnoencode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8016103920635310477/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tecnoencode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tecnoenredados</name><uri>http://www.blogger.com/profile/02309655879114397264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8016103920635310477.post-4103842486762985941</id><published>2012-06-12T16:12:00.000+02:00</published><updated>2012-06-12T16:19:00.699+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Exception"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Algunos errores de Oracle teniendo varios clientes instalados</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Cuando en un mismo equipo se tienen instalados varios clientes de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt; se pueden producir ciertos errores o &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Exception&quot; target=&quot;_blank&quot;&gt;excepciones&lt;/a&gt;, la mayoría de las cuales, no tienen una descripción que nos puedan llevar a determinar que es lo que está pasando.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Esto presenta un especial problema cuando se están desarrollando aplicaciones en distintas tecnologías que deben trabajar juntas o se están migrando aplicaciones a nuevas tecnologías, debiendo permanecer, al menos de momento, otras partes en tecnologías más antiguas.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;La &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Exception&quot; target=&quot;_blank&quot;&gt;excepción&lt;/a&gt; sin descripción&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
El caso más escandaloso y que más puede traer de cabeza al equipo de desarrollo, es una &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Exception&quot; target=&quot;_blank&quot;&gt;excepción&lt;/a&gt; que se produce al abrir la conexión con un &lt;b&gt;&lt;i&gt;cliente de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; que no es el correcto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Por ejemplo, si estamos desarrollando aplicaciones en &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/.NET&quot; target=&quot;_blank&quot;&gt;.NET&lt;/a&gt;, con el &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/topics/dotnet/index-085703.html&quot; target=&quot;_blank&quot;&gt;Oracle Data Provider para .NET&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; obtenido con un &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html&quot; target=&quot;_blank&quot;&gt;Oracle Data Access Component (ODAC) para Windows&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&amp;nbsp;o en algún otro paquete, podemos encontrarnos con el error menos descriptivo que podíamos esperar, el mensaje está en blanco y lo&amp;nbsp;único&amp;nbsp;que nos&amp;nbsp;proporciona&amp;nbsp;es un ErrorCode.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;u&gt;Message&lt;/u&gt;: &quot;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;u&gt;ErrorCode&lt;/u&gt;: &lt;b&gt;&lt;i&gt;-2147467259&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si vemos el lugar en el que se ha producido el error, nos desorientará aún más con respecto al motivo concreto del error, ya que el StackTrace contiene la siguiente información:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;u&gt;StackTrace&lt;/u&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; at Oracle.DataAccess.Client.OracleConnection.Open()&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Es decir, ha permitido que se cree una instancia del tipo &lt;b&gt;&lt;i&gt;Oracle.DataAccess.Client.OracleConnection&lt;/i&gt;&lt;/b&gt;, ha aceptado que se le asigne la cadena de conexión y al ejecutar el método &lt;b&gt;&lt;i&gt;Open&lt;/i&gt;&lt;/b&gt; es cuando da el error.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
No hace falta que te vuelvas loco intentando ver que es lo que te falta, comprobando la cadena de conexión, ni nada por el estilo, simplemente es que tienes más de un cliente de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/b&gt;instalado en el equipo y al coger uno de ellos a cogido el que no era.&lt;br /&gt;
&lt;br /&gt;
La forma de resolver este problema es hacer que coja el cliente de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt; que le corresponda, esto que en principio es bastante sencillos puede complicarse en exceso debido a la existencia de otras aplicaciones que deban utilizar otros clientes de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt;. El orden en el que se busca el cliente a utilizar sería:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Directorio de la aplicación o ejecutable.&lt;/li&gt;
&lt;li&gt;Ruta asignada a la propiedad &lt;i&gt;DllPath&lt;/i&gt; del archivo &lt;i&gt;app.config&lt;/i&gt; o del &lt;i&gt;web.config&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Ruta asignada a la propiedad &lt;i&gt;DllPath&lt;/i&gt; del archivo&lt;i&gt; machine.config&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Ruta asignada a &lt;i&gt;DllPath&lt;/i&gt; en el Registro de Windows.&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\version\DllPath&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Directorios especificados en la variable de entorno de Windows &lt;i&gt;PATH&lt;/i&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;Para más información sobre la estructura de los archivos &lt;/span&gt;&lt;i style=&quot;text-align: justify;&quot;&gt;*.config&lt;/i&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;, puedes echarle un vistazo al capítulo &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;&lt;a href=&quot;http://docs.oracle.com/cd/E20434_01/doc/win.112/e23174/featConfig.htm&quot; target=&quot;_blank&quot;&gt;&quot;Configuring Oracle Data Provider for .NET&quot;&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;de la &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;&lt;a href=&quot;http://docs.oracle.com/cd/E20434_01/doc/win.112/e23174/toc.htm&quot; target=&quot;_blank&quot;&gt;Guía del Oracle Data Provider para desarrolladores .NET&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;h2&gt;

&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;i&gt;Error de OCIEnvCreate con código de retorno -1&lt;/i&gt;&lt;/span&gt;&lt;/h2&gt;
Otro error que se puede producir en estos entornos con varios clientes de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt; es el error &lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;Error de OCIEnvCreate con código de retorno -1. Sin embargo, no está disponible el texto del mensaje de error.&quot;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; o &lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;OCIEnvCreate failed with return code -1 but error message text was not available.&quot;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; si el cliente de &lt;a href=&quot;http://tecnoencode.blogspot.com.es/search/label/Oracle&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt; está en inglés.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
En este caso es el archivo &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;i&gt;OCI.DLL&lt;/i&gt;&lt;/span&gt; el causante de este problema y la solución puede complicarse en función de las aplicaciones que lo utilicen, ya que la clase &lt;b&gt;&lt;i&gt;System.Data.OracleClient&lt;/i&gt;&lt;/b&gt; es uno de los usuarios de dicha librería.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
En esta caso la solución pasa por comprobar las carpetas a las que se va a acudir para localizar las distintas DLL&#39;s y verificar que la variable de entorno de Windows, &lt;i&gt;PATH&lt;/i&gt;, está correctamente configurada. En principio, debe ser suficiente con copiar la DLL en la carpeta de la aplicación pero, en ocasiones no ha sido sufiente, ante la imposibilidad de cambiar el orden de los directorios en la variable del entorno he tenido que cambiarle el nombre al archivo &lt;i&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;OCI.DLL&lt;/span&gt;&lt;/i&gt; para que no lo encuentre en cierta ruta y acuda a la siguiente.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecnoencode.blogspot.com/feeds/4103842486762985941/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://tecnoencode.blogspot.com/2012/06/algunos-errores-de-oracle-teniendo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8016103920635310477/posts/default/4103842486762985941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8016103920635310477/posts/default/4103842486762985941'/><link rel='alternate' type='text/html' href='http://tecnoencode.blogspot.com/2012/06/algunos-errores-de-oracle-teniendo.html' title='Algunos errores de Oracle teniendo varios clientes instalados'/><author><name>Tecnoenredados</name><uri>http://www.blogger.com/profile/02309655879114397264</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>