PC Review


Reply
Thread Tools Rate Thread

Re: Serious Problem with Microsoft Oracle Data Provider

 
 
Glenn
Guest
Posts: n/a
 
      10th Sep 2004

"Shared" or static methods could account for the unusual behaviour.

This is a quote from the OracleDataAdapter documentation

"Any public static (Shared in Visual Basic) members of this type are safe
for multithreaded operations. Any instance members are not guaranteed to be
thread safe."

HTH

Glenn

"Graciela V." <Graciela V.@discussions.microsoft.com> wrote in message
news:CD0945AA-D541-4682-9CDA-(E-Mail Removed)...
> Hi!
> This is a very seriuos problem we have. We developed an ASP.NET

application
> where the whole business and data access layer is a webservice. We use
> VS2003, Oracle 9i as database and the Microsoft Oracle data provider.
>
> We can not reproduce this problem in our development environment.The error
> occurs only in the production server at our customer's site (Windows 2003
> Server Edition).
> Basically the webservice throws the error "Object reference not set to an
> instance of an object" at different points in the applications, not

everytime
> in the same methods and with different stack traces. The only fix thing

is,
> that this error ocurrs when the database is being accessed (sometimes with
> data adapter, sometimes with the datareader). You can even try with the

same
> parameters to read or to write the database and sometimes is successful

and
> sometimes comes this error.
>
> The most users the application use, the most errors happen. The suspicion

I
> ever would say is that, we use in every data adapter classes "shared"
> methods, could this be the problem? Sincerely I don't think so.
>
> Could somebody out there in Microsoft help us? We are losing our face!
> Thanks.
> Graciela Villalobos
>
> Here are some examples of the stack traces:
> Example 1:
> Message: Object reference not set to an instance of an object.
> Application: System.Data.OracleClient
> Method: op_Implicit
> StackTrace: at System.Data.OracleClient.OciHandle.op_Implicit(OciHandle

x)
> at System.Data.OracleClient.TracedNativeMethods.OCIParamGet(OciHandle
> hndlp, OciHandle errhp, IntPtr& paramdpp, Int32 pos)
> at System.Data.OracleClient.OciHandle.GetDescriptor(Int32 i,
> OciErrorHandle errorHandle)
> at System.Data.OracleClient.OracleColumn..ctor(OciHandle

statementHandle,
> Int32 ordinal, OciErrorHandle errorHandle, OracleConnection connection)
> at System.Data.OracleClient.OracleDataReader.FillColumnInfo()
> at System.Data.OracleClient.OracleDataReader..ctor(OracleCommand

command,
> OciHandle statementHandle, String statementText, CommandBehavior behavior)
> at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior
> behavior)
> at
>

System.Data.OracleClient.OracleCommand.System.Data.IDbCommand.ExecuteReader(
CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
> startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
> CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable,

IDbCommand
> command, CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
> at com.csc.ch.TraPla.BeMoWebService.Po.StaMoDAO.GetStelle(Int32 steId)
> at
>

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.BestellungLookupField(AflMe
ssage message)
> at
>

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.PrepareBaseKopie(AflMessage
> message)
> at
>

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.BestellungErsetzen(AflMessa
ge message, Int32 bestellungId)
> at
>

com.csc.ch.TraPla.BeMoWebService.BeMoWebService.BestellungErsetzen(AflMessag
e& message, Int32 bestellungId)
>
> Example 2.
> Message: Object reference not set to an instance of an object.
> Application: System.Data.OracleClient
> Method: FromUInt64
> StackTrace: at
> System.Data.OracleClient.OracleNumber.FromUInt64(OciErrorHandle

errorHandle,
> UInt64 ulongValue, Byte[] result)
> at System.Data.OracleClient.OracleNumber.FromDecimal(OciErrorHandle
> errorHandle, Decimal decimalValue, Byte[] result)
> at System.Data.OracleClient.OracleNumber.MarshalToNative(Object value,
> HandleRef buffer, OracleConnection connection)
> at

System.Data.OracleClient.OracleParameterBinding.PutOracleValue(Object
> value, HandleRef valueBuffer, MetaType metaType, OracleConnection

connection)
> at System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle
> statementHandle, NativeBuffer parameterBuffer, OracleConnection

connection)
> at System.Data.OracleClient.OracleCommand.Execute(OciHandle
> statementHandle, CommandBehavior behavior, Boolean isReader, Boolean
> needRowid, OciHandle& rowidDescriptor, ArrayList&

refCursorParameterOrdinals)
> at System.Data.OracleClient.OracleCommand.Execute(OciHandle
> statementHandle, CommandBehavior behavior, ArrayList&
> refCursorParameterOrdinals)
> at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior
> behavior)
> at
>

System.Data.OracleClient.OracleCommand.System.Data.IDbCommand.ExecuteReader(
CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
> startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
> CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable,

IDbCommand
> command, CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
> at

com.csc.ch.TraPla.BeMoWebService.Po.StaMoDAO.GetZeitfensterById(Int32
> zeitfensterId)
> at
>

com.csc.ch.TraPla.BeMoWebService.Po.NachrichtenDAO.CheckZeitfensterNachricht
en()
> at
>

com.csc.ch.TraPla.BeMoWebService.Po.NachrichtenDAO.GetNachrichtenListe(DataS
et dataSet, Int32 benutzerId, Int32 sprachId)
> at
>

com.csc.ch.TraPla.BeMoWebService.BeMoWebService.GetNachrichtenListe(AflMessa
ge& message)
>
> Example 3.
> Message: Object reference not set to an instance of an object.
> Application: System.Data.OracleClient
> Method: GetChars
> StackTrace: at System.Data.OracleClient.OracleEncoding.GetChars(Byte[]
> bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)
> at System.Text.Encoding.GetChars(Byte[] bytes, Int32 index, Int32

count)
> at System.Text.Encoding.GetChars(Byte[] bytes)
> at System.Text.Encoding.GetString(Byte[] bytes)
> at System.Data.OracleClient.OracleConnection.GetString(IntPtr buffer,
> Int32 length, Boolean useNationalCharacterSet)
> at System.Data.OracleClient.OciHandle.GetAttribute(ATTR attribute,
> String& value, OciErrorHandle errorHandle, OracleConnection connection)
> at System.Data.OracleClient.OracleColumn.Describe(Int32& offset,
> OracleConnection connection, OciErrorHandle errorHandle)
> at System.Data.OracleClient.OracleDataReader.FillColumnInfo()
> at System.Data.OracleClient.OracleDataReader..ctor(OracleCommand

command,
> OciHandle statementHandle, String statementText, CommandBehavior behavior)
> at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior
> behavior)
> at
>

System.Data.OracleClient.OracleCommand.System.Data.IDbCommand.ExecuteReader(
CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32
> startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
> CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable,

IDbCommand
> command, CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
> at com.csc.ch.TraPla.BeMoWebService.Po.StaMoDAO.GetSonderfallTopId()
> at
>

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.IsBestellungVollstaendig(Af
lMessage message, WriteAction writeAction)
> at

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.Validieren(AflMessage
> message)
> at
>

com.csc.ch.TraPla.BeMoWebService.Bo.BestellungBO.WriteBestellung(AflMessage
> message, Boolean infoUmsysteme, ArrayList& infoQueue)
> at
>

com.csc.ch.TraPla.BeMoWebService.BeMoWebService.BestellungSpeichern(AflMessa
ge& message)
>
>
>
>
>
>



 
Reply With Quote
 
 
 
 
Frans Bouma [C# MVP]
Guest
Posts: n/a
 
      11th Sep 2004
Glenn wrote:

>
> "Shared" or static methods could account for the unusual behaviour.
>
> This is a quote from the OracleDataAdapter documentation
>
> "Any public static (Shared in Visual Basic) members of this type are safe
> for multithreaded operations. Any instance members are not guaranteed to be
> thread safe."


If I'm not mistaken, that quote says that static methods on the
OracleDataAdapter are NOT going to cause unusual behavior because they're
thread safe (i.e.: do not access private static member vars)

Frans.

--
Get LLBLGen Pro, productive O/R mapping for .NET: http://www.llblgen.com
My .NET Blog: http://weblogs.asp.net/fbouma
Microsoft C# MVP
 
Reply With Quote
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Microsoft Oracle Data Provider Derek Brennan Microsoft ADO .NET 3 7th Apr 2006 05:53 PM
Re: Serious Problem with Microsoft Oracle Data Provider Marina Microsoft ADO .NET 0 3rd Sep 2004 07:29 PM
error while connecting to oracle from Microsoft .net data provider for oracle Reny J Joseph Thuthikattu Microsoft VB .NET 8 16th Aug 2004 01:48 PM
Oracle Connection Problem with Microsoft .NET Provider for ORACLE =?Utf-8?B?QW5kcmV3?= Microsoft ADO .NET 7 11th May 2004 04:30 PM
Reading data from Oracle with Microsoft Managed Data Provider For Oracle =?Utf-8?B?QW5kcmVp?= Microsoft ADO .NET 7 6th Jan 2004 04:09 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 02:41 PM.