Direct Mode (RAC) Stored Procedure Unknown Error 1

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
kentonv
Posts: 2
Joined: Thu 20 May 2010 13:46

Direct Mode (RAC) Stored Procedure Unknown Error 1

Post by kentonv » Thu 20 May 2010 13:59

I have converted a project to DevArt from the Microsoft connector with the goal of avoiding the Oracle Client install, and using ClickOnce to deploy.

The code works on the development database that is a single node, but in the production (RAC) server using direct mode, the connection can be opened but a stored procedure call (the only one I have tested so far) fails with the following error: 'NET: Unknown error 1'

Stack:
at Devart.Data.Oracle.n.b(Int32 A_0)
at xc.l.a(Byte A_0)
at xc.a.a()
at xc.d.a()
at Devart.Data.Oracle.d.a()
at Devart.Data.Oracle.r.a(Int32 A_0, a4 A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.OracleCommand.ExecuteNonQuery()
at GCS.Oracle.User_SessionStart(Int64 UserID) in C:\Documents and Settings\kentonv\My Documents\VS Projects\2005\GCS\GCS\Classes\Oracle.vb:line 673


The line is cmd.ExecuteNonQuery()
and the command is: "CALL PKG_USER.LOGIN(1,1,0,0,0,0,:SessID)"
SessID is an output.
I can provide sample DB setup and VB code, if needed.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Fri 21 May 2010 15:51

Please note that RAC is supported in the OCI mode only (the Direct=false; parameter in the connection string). All Oracle client settings should be specified in the tnsnames.ora file of your Oracle client (http://download.oracle.com/docs/cd/B283 ... snames.htm).
In direct mode (the Direct=true; parameter in the connection string) the RAC option of Oracle server is not available (you can connect only to each database instance separately). Have you set the SID parameter of your connection string to the name of single database instance in your production environment?

The 'NET: Unknown error 1' error arises when server tries to process a command that is not supported by protocol (Oracle server doesn't "understand" the accepted packages). Here are the possible reasons of the problem:
1) wrong command or invalid data type;
2) usage of the same connection object in several threads simultaneously (please create a separate connection object per thread).

Please try the latest 5.70.140 version of dotConnect for Oracle. Does the problem persist in this case as well? If yes, please send us a small test project with the DDL/DML script to reproduce the issue in our environment. Also please specify your current version of dotConnect for Oracle (x.xx.xx) and Oracle Server (xx.x.x.x).

kentonv
Posts: 2
Joined: Thu 20 May 2010 13:46

Post by kentonv » Fri 21 May 2010 19:33

I am using Direct Mode (I need RAC less than I need no OCI) and the connection is successful, so I believe that the SID is correct. As I stated, the function works fine when using a non-RAC setup server, but when using a single SID within the RAC environment, it fails.

I am using dotConnect for Oracle v5.60.124 and do not have a download link for the 5.70 version.
The database is Oracle 11.1.0.7.0

Again, the same code works using the same version of dotConnect, and Oracle database. It only fails when using the production database individually, but the DB has been setup as part of a RAC.

I have a DDL/DML with .NET code example that fails. Should I post/attach here, or send through E-mail?
Thanks for your help.

StanislavK
Devart Team
Posts: 1710
Joined: Thu 03 Dec 2009 10:48

Post by StanislavK » Wed 26 May 2010 16:31

Please use our Contact Form to send us a test project:
http://www.devart.com/company/contact.html

As for the problem with dotConnect for Oracle download, do you have an active dotConnect for Oracle subscription? If yes, please contact our Sales department: sales * devart * com. Please specify your license number in the letter.

Post Reply