On August 19, 2003, a reader discovered that he couldn't
deserialize an OracleException. He began a thread with
Scot Rose of Microsoft where he described the nature of
the problem. The reader wrote,

"We have narrowed it down to the constructor
OracleException
(System.Runtime.Serialization.SerializationInfo
si,System.Runtime.Serialization.StreamingContext sc),
which looks for
members "message" and "source", but the GetObjectData
(...) method in the
base (System.Exception) uses the strings "Member"
and "Source". Since the
element lookup in SerializationInfo is case sensistive,
GetElement() and
FindElement() fail and the OracleException deserialize
throws an exception."

Scot Rose asked for a small project and the reader
provided one. There is no record of a response from MS.

So here's another project, a console app, that
demonstrates the problem. I am running framework 1.0
with a "hotfix" version of System.Data.OracleClient.dll,
version 1.0.1088.0 that fixes some of the MANY bugs in
this provider.

Can someone from MS follow-up on this bug and provide a
work-around?

Imports System.IO
Imports System.Data.OracleClient
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Module Module1

Sub Main()
Dim conn As New OracleConnection("Data
Source=ussxt6;User Id=foresight_mcp;Password=xxx")
Dim cmd As New OracleCommand("select * from
blah_blah", conn) ' will throw "Table or View does not
exist"
Dim reader As OracleDataReader
Try
conn.Open()
reader = cmd.ExecuteReader()
Catch e As OracleException
Dim formatter As New BinaryFormatter()
Dim stream As Stream = File.Open
("c:\temp\foo.bin", IO.FileMode.Create,
IO.FileAccess.ReadWrite)
formatter.Serialize(stream, e)
stream.Close()
stream = File.Open("c:\temp\foo.bin",
FileMode.Open, FileAccess.Read)
Try
Dim obj As Object = formatter.Deserialize
(stream)
Catch xx As Exception
MsgBox(xx.ToString())
End Try

Dim phoenix As OracleException = CType
(formatter.Deserialize(stream), OracleException)
MsgBox(phoenix.ToString())
Finally
If Not reader Is Nothing Then reader.Close()
If Not conn Is Nothing Then conn.Close()
End Try
End Sub

End Module

Re: Deserialize problem with OracleException by Angel

Angel
Tue Sep 16 17:49:57 CDT 2003

Dean,
I have verified your repro and will be looking into this, I believe that you
are correct about the reason, "Member" instead of "message"
Thank you,

"Dean Bostic" <grouponly@please.com> wrote in message
news:327001c37b8d$8e4d6d70$a501280a@phx.gbl...
> On August 19, 2003, a reader discovered that he couldn't
> deserialize an OracleException. He began a thread with
> Scot Rose of Microsoft where he described the nature of
> the problem. The reader wrote,
>
> "We have narrowed it down to the constructor
> OracleException
> (System.Runtime.Serialization.SerializationInfo
> si,System.Runtime.Serialization.StreamingContext sc),
> which looks for
> members "message" and "source", but the GetObjectData
> (...) method in the
> base (System.Exception) uses the strings "Member"
> and "Source". Since the
> element lookup in SerializationInfo is case sensistive,
> GetElement() and
> FindElement() fail and the OracleException deserialize
> throws an exception."
>
> Scot Rose asked for a small project and the reader
> provided one. There is no record of a response from MS.
>
> So here's another project, a console app, that
> demonstrates the problem. I am running framework 1.0
> with a "hotfix" version of System.Data.OracleClient.dll,
> version 1.0.1088.0 that fixes some of the MANY bugs in
> this provider.
>
> Can someone from MS follow-up on this bug and provide a
> work-around?
>
> Imports System.IO
> Imports System.Data.OracleClient
> Imports System.Runtime.Serialization
> Imports System.Runtime.Serialization.Formatters.Binary
> Module Module1
>
> Sub Main()
> Dim conn As New OracleConnection("Data
> Source=ussxt6;User Id=foresight_mcp;Password=xxx")
> Dim cmd As New OracleCommand("select * from
> blah_blah", conn) ' will throw "Table or View does not
> exist"
> Dim reader As OracleDataReader
> Try
> conn.Open()
> reader = cmd.ExecuteReader()
> Catch e As OracleException
> Dim formatter As New BinaryFormatter()
> Dim stream As Stream = File.Open
> ("c:\temp\foo.bin", IO.FileMode.Create,
> IO.FileAccess.ReadWrite)
> formatter.Serialize(stream, e)
> stream.Close()
> stream = File.Open("c:\temp\foo.bin",
> FileMode.Open, FileAccess.Read)
> Try
> Dim obj As Object = formatter.Deserialize
> (stream)
> Catch xx As Exception
> MsgBox(xx.ToString())
> End Try
>
> Dim phoenix As OracleException = CType
> (formatter.Deserialize(stream), OracleException)
> MsgBox(phoenix.ToString())
> Finally
> If Not reader Is Nothing Then reader.Close()
> If Not conn Is Nothing Then conn.Close()
> End Try
> End Sub
>
> End Module
>



Re: Deserialize problem with OracleException by Angel

Angel
Thu Sep 18 14:34:31 CDT 2003

There are two problems here, we are looking for "message" which should be
"Message", and "source" which should be "Source".
The second problem is that "Source" is typed as an int and should be a
string.

"Angel Saenz-Badillos[MS]" <angelsa@online.microsoft.com> wrote in message
news:#N4$kTKfDHA.3216@tk2msftngp13.phx.gbl...
> Dean,
> I have verified your repro and will be looking into this, I believe that
you
> are correct about the reason, "Member" instead of "message"
> Thank you,
>
> "Dean Bostic" <grouponly@please.com> wrote in message
> news:327001c37b8d$8e4d6d70$a501280a@phx.gbl...
> > On August 19, 2003, a reader discovered that he couldn't
> > deserialize an OracleException. He began a thread with
> > Scot Rose of Microsoft where he described the nature of
> > the problem. The reader wrote,
> >
> > "We have narrowed it down to the constructor
> > OracleException
> > (System.Runtime.Serialization.SerializationInfo
> > si,System.Runtime.Serialization.StreamingContext sc),
> > which looks for
> > members "message" and "source", but the GetObjectData
> > (...) method in the
> > base (System.Exception) uses the strings "Member"
> > and "Source". Since the
> > element lookup in SerializationInfo is case sensistive,
> > GetElement() and
> > FindElement() fail and the OracleException deserialize
> > throws an exception."
> >
> > Scot Rose asked for a small project and the reader
> > provided one. There is no record of a response from MS.
> >
> > So here's another project, a console app, that
> > demonstrates the problem. I am running framework 1.0
> > with a "hotfix" version of System.Data.OracleClient.dll,
> > version 1.0.1088.0 that fixes some of the MANY bugs in
> > this provider.
> >
> > Can someone from MS follow-up on this bug and provide a
> > work-around?
> >
> > Imports System.IO
> > Imports System.Data.OracleClient
> > Imports System.Runtime.Serialization
> > Imports System.Runtime.Serialization.Formatters.Binary
> > Module Module1
> >
> > Sub Main()
> > Dim conn As New OracleConnection("Data
> > Source=ussxt6;User Id=foresight_mcp;Password=xxx")
> > Dim cmd As New OracleCommand("select * from
> > blah_blah", conn) ' will throw "Table or View does not
> > exist"
> > Dim reader As OracleDataReader
> > Try
> > conn.Open()
> > reader = cmd.ExecuteReader()
> > Catch e As OracleException
> > Dim formatter As New BinaryFormatter()
> > Dim stream As Stream = File.Open
> > ("c:\temp\foo.bin", IO.FileMode.Create,
> > IO.FileAccess.ReadWrite)
> > formatter.Serialize(stream, e)
> > stream.Close()
> > stream = File.Open("c:\temp\foo.bin",
> > FileMode.Open, FileAccess.Read)
> > Try
> > Dim obj As Object = formatter.Deserialize
> > (stream)
> > Catch xx As Exception
> > MsgBox(xx.ToString())
> > End Try
> >
> > Dim phoenix As OracleException = CType
> > (formatter.Deserialize(stream), OracleException)
> > MsgBox(phoenix.ToString())
> > Finally
> > If Not reader Is Nothing Then reader.Close()
> > If Not conn Is Nothing Then conn.Close()
> > End Try
> > End Sub
> >
> > End Module
> >
>
>



Re: Deserialize problem with OracleException by Dean

Dean
Fri Sep 19 07:10:48 CDT 2003

When can we expect a hotfix?

Re: Deserialize problem with OracleException by Angel

Angel
Fri Sep 19 15:29:26 CDT 2003

I am sorry, for various reasons we cannot discuss in the newsgroups future
dates of bug fixes and information about future releases.
That said I believe this is a serious issue and it is being treated as such,
I will post here when I hear anything.
Thank you,

"Dean Bostic" <grouponly@please.com> wrote in message
news:06a001c37ea7$0fb7ae40$a001280a@phx.gbl...
> When can we expect a hotfix?



Re: Deserialize problem with OracleException by Dean

Dean
Mon Sep 22 06:25:34 CDT 2003

Thank you, Angel, for sticking with this. The inability
to deserialize an Oracle exception will affect most
everyone who is trying to use Oracle in a remoting
configuration.

Re: Deserialize problem with OracleException by Angel

Angel
Tue Oct 07 20:59:31 CDT 2003

The QFE fix for this bug is ready, you can obtain the fix by contacting PSS
directly, this is a free support call. Let me know if there are any
problems.
Thank you,
--
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.

"Dean Bostic" <grouponly@please.com> wrote in message
news:09ec01c380fc$3d5aca60$a101280a@phx.gbl...
> Thank you, Angel, for sticking with this. The inability
> to deserialize an Oracle exception will affect most
> everyone who is trying to use Oracle in a remoting
> configuration.



Re: Deserialize problem with OracleException by john

john
Tue Nov 04 14:13:36 CST 2003

Can you please provide a QFE number for this fix so that I
can find it on the PSS site? Thanks for your timely
response.

>-----Original Message-----
>The QFE fix for this bug is ready, you can obtain the fix
by contacting PSS
>directly, this is a free support call. Let me know if
there are any
>problems.
>Thank you,
>--
>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.
>
>"Dean Bostic" <grouponly@please.com> wrote in message
>news:09ec01c380fc$3d5aca60$a101280a@phx.gbl...
>> Thank you, Angel, for sticking with this. The inability
>> to deserialize an Oracle exception will affect most
>> everyone who is trying to use Oracle in a remoting
>> configuration.
>
>
>.
>

Re: Deserialize problem with OracleException by angelsbadillos

angelsbadillos
Thu Nov 06 20:36:39 CST 2003

john,
I believe the KB number for this is going to be (not posted yet)
KB 829195 BUG: .Net Oracle Provider fails deserilization

Hope this helps,
--
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.


"john m" <anonymous@discussions.microsoft.com> wrote in message news:<4be601c3a310$20d57490$7d02280a@phx.gbl>...
> Can you please provide a QFE number for this fix so that I
> can find it on the PSS site? Thanks for your timely
> response.
>
> >-----Original Message-----
> >The QFE fix for this bug is ready, you can obtain the fix
> by contacting PSS
> >directly, this is a free support call. Let me know if
> there are any
> >problems.
> >Thank you,
> >--
> >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.
> >
> >"Dean Bostic" <grouponly@please.com> wrote in message
> >news:09ec01c380fc$3d5aca60$a101280a@phx.gbl...
> >> Thank you, Angel, for sticking with this. The inability
> >> to deserialize an Oracle exception will affect most
> >> everyone who is trying to use Oracle in a remoting
> >> configuration.
> >
> >
> >.
> >