"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)
>
>
>
>
>
>