[Mono-list] Oracle/OCI Thread Abort?

Daniel Morgan monodanmorg at yahoo.com
Thu Aug 2 12:31:28 EDT 2007


I don't know the answer to OCI.  However, I do know
the Oracle provider is NOT thread-safe.

Is the oracle client provider in microsoft .net
framework thread-safe?

If yes, any recommendations on how to make the
provider thread-safe?  


--- cabes <jason at jasoncable.com> wrote:

> 
> Greetings!  I'm running mono 1.2.4 that was compiled
> from source on OpenSuSE
> 10.2.  I have the Oracle Instant Client version
> 10.2.0.3.  I am getting the
> following exceptions after calling several stored
> procedures in Oracle.  It
> will get thrown after 10 or so sproc calls.  I'm
> thinking it might be an
> issue with OCI not being thread-safe.  I've tried
> with connection pooling on
> and off with the same result.  I'm running this from
> a console app.  I'd
> appreciate any ideas.
> 
> Thanks,
> Jason
> 
> 
> WITH CONN. POOLING:
> 
> trying to GetStatementHandle
> connectionState=Open
> connectionString=Data Source=FOO;User
> Id=BAR;Pooling=true;Min Pool
> Size=10;Max Pool Size=50;Connection Lifetime=20;;
> connected=True
> 
> Unhandled Exception:
> TrueBaseline.DataAccess.DAL.Facades.DALException:
> Unable to derive parameters. ---> System.Exception:
> Could not allocate new
> OCI Handle of type Statement
>   at System.Data.OracleClient.Oci.OciHandle.Allocate
> (OciHandleType type)
> [0x00000]
>   at
>
System.Data.OracleClient.OracleCommand.GetStatementHandle
> () [0x00000]
>   at
>
System.Data.OracleClient.OracleCommand.ExecuteNonQuery
> () [0x00000]
>   at (wrapper remoting-invoke-with-check)
>
System.Data.OracleClient.OracleCommand:ExecuteNonQuery
> ()
>   at
> System.Data.OracleClient.OracleCommand.ResolveName
> (System.String
> nameToResolve, System.String& schema, System.String&
> part1, System.String&
> part2, System.String& dblink) [0x00000]
>   at
>
System.Data.OracleClient.OracleCommand.DeriveParametersFromStoredProcedure
> (System.String sproc_name) [0x00000]
>   at
>
System.Data.OracleClient.OracleCommand.DeriveParameters
> () [0x00000]
>   at (wrapper remoting-invoke-with-check)
>
System.Data.OracleClient.OracleCommand:DeriveParameters
> ()
>   at
>
System.Data.OracleClient.OracleCommandBuilder.DeriveParameters
> (System.Data.OracleClient.OracleCommand command)
> [0x00000]
>   at
>
TrueBaseline.DataAccess.DAL.Facades.OracleClient.Command.set_CommandType
> (CommandType value) [0x00000] --- End of inner
> exception stack trace ---
> 
>   at
>
TrueBaseline.DataAccess.DAL.Facades.OracleClient.Command.set_CommandType
> (CommandType value) [0x00000]
>   at
>
TrueBaseline.DataAccess.DataApplicationBlock.TrueOmf.DataAccessLayer.OracleClient.StoredProcedureProvider.GetCommandWrapper
> (IDatabase database, System.String commandName,
> Boolean useStoredProcedure)
> [0x00000]
>   at
>
TrueBaseline.DataAccess.DataApplicationBlock.TrueOmf.DataAccessLayer.OracleClient.OracleEventMessageFunctionalObjectMethodMapProviderBase.GetBySolutionDomainIDName
> (ITransactionManager transactionManager, Guid
> solutionDomainID,
> System.String name, Int32 start, Int32 pageLength,
> System.Int32& count)
> [0x00000]
>   at
>
TrueBaseline.DataAccess.DataApplicationBlock.TrueOmf.DataAccessLayer.Bases.EventMessageFunctionalObjectMethodMapProviderBaseCore.GetBySolutionDomainIDName
> (Guid solutionDomainID, System.String name, Int32
> start, Int32 pageLength,
> System.Int32& count) [0x00000]
>   at
>
TrueBaseline.DataAccess.DataApplicationBlock.TrueOmf.DataAccessLayer.Bases.EventMessageFunctionalObjectMethodMapProviderBaseCore.GetBySolutionDomainIDName
> (Guid solutionDomainID, System.String name)
> [0x00000]
>   at testoracle.MainClass.Main (System.String[]
> args) [0x00000]
> 
> 
> 
> WITHOUT CONN POOLING:
> 
> trying to GetStatementHandle
> connectionState=Open
> connectionString=Data Source=FOO;User
> Id=BAR;Pooling=false;Connection
> Lifetime=20;;
> connected=True  mono [0x8156dbf]
>         mono [0x8120e48]
>         [0xb7eef440]
>         /usr/lib/libclntsh.so(OCIErrorGet+0xa1)
> [0xb65407fb]
>         [0xb167822f]
>         [0xb16781c5]
>         [0xb167807c]
>         [0xb1677fd2]
>         [0xb1677ed9]
>         [0xb1677c38]
>         [0xb197958c]
>         [0xb1979531]
>         [0xb1677b91]
>         [0xb17873e9]
>         [0xb197c45b]
>         mono [0x816c965]
>         mono [0x8111541]
>         mono [0x816cb19]
>         mono [0x80eb040]
>         mono [0x8100b02]
>         mono [0x8113d35]
>         /lib/libpthread.so.0 [0xb7e15112]
>         /lib/libc.so.6(clone+0x5e) [0xb7d7b2ee]
> 
> got StatementHandle
> hasRows=True
> parameter count: 3
> 
> Debug info from gdb:
> 
> Using host libthread_db library
> "/lib/libthread_db.so.1".
> [Thread debugging using libthread_db enabled]
> [New Thread -1211385120 (LWP 9900)]
> [New Thread -1219863664 (LWP 9902)]
> [New Thread -1219781744 (LWP 9901)]
> 0xb7eef410 in ?? ()
>   3 Thread -1219781744 (LWP 9901)  0xb7eef410 in ??
> ()
>   2 Thread -1219863664 (LWP 9902)  0xb7eef410 in ??
> ()
>   1 Thread -1211385120 (LWP 9900)  0xb7eef410 in ??
> ()
> 
> Thread 3 (Thread -1219781744 (LWP 9901)):
> #0  0xb7eef410 in ?? ()
> #1  0xb74b93a8 in ?? ()
> #2  0x081f8ff4 in ?? ()
> #3  0x00000000 in ?? ()
> 
> Thread 2 (Thread -1219863664 (LWP 9902)):
> #0  0xb7eef410 in ?? ()
> #1  0xb74a4338 in ?? ()
> #2  0x00000000 in ?? ()
> 
> Thread 1 (Thread -1211385120 (LWP 9900)):
> #0  0xb7eef410 in ?? ()
> #1  0xbfe91d38 in ?? ()
> #2  0x00000810 in ?? ()
> #3  0x0873a5c6 in ?? ()
> #4  0xb7e1c02b in __read_nocancel () from
> /lib/libpthread.so.0
> #5  0xb676080f in snttread () from
> /usr/lib/libclntsh.so
> #6  0xb675dce1 in nttrd () from
> /usr/lib/libclntsh.so
> #7  0xb66b0bc0 in nsprecv () from
> /usr/lib/libclntsh.so
> #8  0xb66b4c8b in nsrdr () from
> /usr/lib/libclntsh.so
> #9  0xb66943ee in nsdo () from /usr/lib/libclntsh.so
> #10 0xb6693e97 in nsbrecv () from
> /usr/lib/libclntsh.so
> #11 0xb66c8567 in nioqrc () from
> /usr/lib/libclntsh.so
> #12 0xb67eacbf in ttcdrv () from
> /usr/lib/libclntsh.so
> #13 0xb66cfbc8 in nioqwa () from
> /usr/lib/libclntsh.so
> #14 0xb653b618 in upirtrc () from
> /usr/lib/libclntsh.so
> #15 0xb64b05f6 in kpurcsc () from
> /usr/lib/libclntsh.so
> #16 0xb64648b8 in kpuexecv8 () from
> /usr/lib/libclntsh.so
> #17 0xb6466ec4 in kpuexec () from
> /usr/lib/libclntsh.so
> #18 0xb65401b6 in OCIStmtExecute () from
> /usr/lib/libclntsh.so
> #19 0xb1ad2f8a in ?? ()
> #20 0x087178b0 in ?? ()
> #21 0x0872d354 in ?? ()
> #22 0x08716c44 in ?? ()
> #23 0x00000000 in ?? ()
> #0  0xb7eef410 in ?? ()
> 
=== message truncated ===



       
____________________________________________________________________________________
Pinpoint customers who are looking for what you sell. 
http://searchmarketing.yahoo.com/


More information about the Mono-list mailing list