Home All Groups Group Topic Archive Search About

system.Data.OracleClient.dll 1.0.5 and TNSNAME longer than 16 char

Author
3 Jan 2005 8:25 PM
David P
There is a known issue with system.Data.OracleClient.dll 1.0.50000.0 that
came with NET 1.1 framework: It cannot handle TNSNAME entries that are longer
than 16 chars and produce the error below:

ORA-00162: external dbid length 17 is greater than maximum (16)

Is there a work around or bug fix for this problem? Thanks

Author
3 Jan 2005 10:53 PM
David Browne
"David P" <David P@discussions.microsoft.com> wrote in message
news:0AEA7AA2-151A-4012-BCC6-9E7F1EB703A0@microsoft.com...
> There is a known issue with system.Data.OracleClient.dll 1.0.50000.0 that
> came with NET 1.1 framework: It cannot handle TNSNAME entries that are
> longer
> than 16 chars and produce the error below:
>
> ORA-00162: external dbid length 17 is greater than maximum (16)
>
> Is there a work around or bug fix for this problem? Thanks

The workaround is to edit your tnsnames.ora file and use a shorter alias.

David
Are all your drivers up to date? click for free checkup

Author
4 Jan 2005 12:53 AM
David P
That will not work for our case because the file is replicated to thousands
of servers around the world and it is impossible to us to go edit all the
ODBC on these servers. 16 characters is not long enough. I think MS should
modify the dll to handle long entries in TNSNAME files.

Show quoteHide quote
"David Browne" wrote:

>
> "David P" <David P@discussions.microsoft.com> wrote in message
> news:0AEA7AA2-151A-4012-BCC6-9E7F1EB703A0@microsoft.com...
> > There is a known issue with system.Data.OracleClient.dll 1.0.50000.0 that
> > came with NET 1.1 framework: It cannot handle TNSNAME entries that are
> > longer
> > than 16 chars and produce the error below:
> >
> > ORA-00162: external dbid length 17 is greater than maximum (16)
> >
> > Is there a work around or bug fix for this problem? Thanks
>
> The workaround is to edit your tnsnames.ora file and use a shorter alias.
>
> David
>
>
>
Author
4 Jan 2005 2:46 PM
David Browne
"David P" <Dav***@discussions.microsoft.com> wrote in message
news:A21130EC-9531-4A93-922B-C90BA3D2963B@microsoft.com...
> That will not work for our case because the file is replicated to
> thousands
> of servers around the world and it is impossible to us to go edit all the
> ODBC on these servers. 16 characters is not long enough. I think MS should
> modify the dll to handle long entries in TNSNAME files.
>

Well I do too, but don't hold your breath.  It should also accept fully
qualified connection descriptors.

If you have this

ORACLE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = somehost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracle)
    )
  )

in your tnsnames.ora, you should be able to use this

  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = somehost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracle)
    )
  )

as your data source.  OCI likes it fine, and it lets you skip the
tnsnames.ora entirely.

Ok, your other workarounds are:

1) use Oracle's data provider (ODP.NET)
or
2) set the TNSADMIN environment variable to point to a different directory
where you keep a modified tnsnames.ora file.

David
Author
6 Jan 2005 10:38 PM
Angel Saenz-Badillos[MS]
I believe that this bug has been fixed in everett service pack 1, you may
want to give it a try at least if installing the sp is an option.
http://support.microsoft.com/default.aspx?scid=kb;en-us;885055 This fix
should also be available as a QFE.

--
Angel Saenz-Badillos [MS] Managed Providers
This posting is provided "AS IS", with no warranties, and confers no
rights.Please do not send email directly to this alias.
This alias is for newsgroup purposes only.
I am now blogging about ADO.NET: http://weblogs.asp.net/angelsb/




Show quoteHide quote
"David Browne" <davidbaxterbrowne no potted m***@hotmail.com> wrote in
message news:ebDdtwm8EHA.3708@TK2MSFTNGP14.phx.gbl...
>
> "David P" <Dav***@discussions.microsoft.com> wrote in message
> news:A21130EC-9531-4A93-922B-C90BA3D2963B@microsoft.com...
> > That will not work for our case because the file is replicated to
> > thousands
> > of servers around the world and it is impossible to us to go edit all
the
> > ODBC on these servers. 16 characters is not long enough. I think MS
should
> > modify the dll to handle long entries in TNSNAME files.
> >
>
> Well I do too, but don't hold your breath.  It should also accept fully
> qualified connection descriptors.
>
> If you have this
>
> ORACLE =
>   (DESCRIPTION =
>     (ADDRESS_LIST =
>       (ADDRESS = (PROTOCOL = TCP)(HOST = somehost)(PORT = 1521))
>     )
>     (CONNECT_DATA =
>       (SERVER = DEDICATED)
>       (SERVICE_NAME = oracle)
>     )
>   )
>
> in your tnsnames.ora, you should be able to use this
>
>   (DESCRIPTION =
>     (ADDRESS_LIST =
>       (ADDRESS = (PROTOCOL = TCP)(HOST = somehost)(PORT = 1521))
>     )
>     (CONNECT_DATA =
>       (SERVER = DEDICATED)
>       (SERVICE_NAME = oracle)
>     )
>   )
>
> as your data source.  OCI likes it fine, and it lets you skip the
> tnsnames.ora entirely.
>
> Ok, your other workarounds are:
>
> 1) use Oracle's data provider (ODP.NET)
> or
> 2) set the TNSADMIN environment variable to point to a different directory
> where you keep a modified tnsnames.ora file.
>
> David
>
>
Author
7 Jan 2005 12:12 AM
David Browne
"Angel Saenz-Badillos[MS]" <ange***@online.microsoft.com> wrote in message
news:e%23bm6BE9EHA.3920@TK2MSFTNGP10.phx.gbl...
>I believe that this bug has been fixed in everett service pack 1, you may
> want to give it a try at least if installing the sp is an option.
> http://support.microsoft.com/default.aspx?scid=kb;en-us;885055 This fix
> should also be available as a QFE.
>

That's great.  I tested, and there's still a 128 character limit, but this
works:

@"User Id=scott;Password=tiger;Data
Source=""(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=someserver)(PORT
= 1521)))(CONNECT_DATA=(SERVICE_NAME = oracle)))""");

And for the 10g client, the infinitely simpler //host:port/service naming
works:

@"User Id=scott;Password=tiger;Data Source=//someserver:1521/oracle"

David

Bookmark and Share