Hello
We use NAV 2009 with SQL 2005 (lates Updates) and have linked an Oracle 10.2.0.5.0 Server into NAV. On the Oracle site we have some Views. On The SQL Server site we have a Linked Server Object, where I can see these views. Now we integreated these views into the NAV DB.
To get the work, we also installed the Distributet Transaction Coordinator
When open the Query Analizer with the NAV DB we can select, update, insert and delete all tables (also with TRANSACTIOn Begin, Commit and Rollback) . When we do the same in NAV, we can read all tables, but when we try to insert, update or delete, we get the following error:
ODEV1 is the Oracle Server
This Error comes with LinkedInTransaction = Yes in the NAV Object definition
The following SQL Server error or errors occurred when accessing the ic_product table:
7395,â42000â,[Microsoft][ODBC SQL Server Driver][SQL Server]Unable to start a nested transaction for OLE DB provider âOraOLEDB.Oracleâ for linked server âODEV1â. A nested transaction was required because the XACT_ABORT option was set to OFF.
7412,â01000â,[Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB provider âOraOLEDB.Oracleâ for linked server âODEV1â returned message âCannot start more transactions on this session.â.
SQL:
UPDATE âECNE_DEVâ.âdboâ.âic_productâ WITH (REPEATABLEREAD) SET âICPR_USER_UPDATEâ=âRAGGâ WHERE (âICPR_PRODUCT_NUMBERâ=550112.0)
This Error comes with LinkedInTransaction = No in the NAV Object definition
The following SQL Server error or errors occurred when accessing the ic_product table:
7392,â42000â,[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot start a transaction for OLE DB provider âOraOLEDB.Oracleâ for linked server âODEV1â.
7412,â01000â,[Microsoft][ODBC SQL Server Driver][SQL Server]OLE DB provider âOraOLEDB.Oracleâ for linked server âODEV1â returned message âNeither the isolation level nor a strengthening of it is supported.â.
SQL:
UPDATE âECNE_DEVâ.âdboâ.âic_productâ WITH (REPEATABLEREAD) SET âICPR_USER_UPDATEâ=âBKRâ WHERE (âICPR_PRODUCT_NUMBERâ=550112.0)
I guess LinkedInTransaction mus be set to Yes int his case. So we talking about the error âCannot start more transactions on this sessionâ.
In the Profiler we found more Information:
UPDATE âECNE_DEVâ.âdboâ.âic_productâ WITH (REPEATABLEREAD) SET âICPR_USER_UPDATEâ=@P1 WHERE (âICPR_PRODUCT_NUMBERâ=@P2)
OLE DB provider âOraOLEDB.Oracleâ for linked server âDEV1â returned message âCannot start more transactions on this session.â.
Error: 7395, Severity: 16, State: 2
Unable to start a nested transaction for OLE DB provider âOraOLEDB.Oracleâ for linked server âODEV1â. A nested transaction was required because the XACT_ABORT option was set to OFF.
Microsoft Support gave us the following solution (which does not work):
If they create the following stored procedure then all NAV clients will automatically execute it when they establish a connection to the DB:
use
go
drop procedure dbo.sp_$ndo$loginproc
go
CREATE PROCEDURE [sp_$ndo$loginproc] @appname VARCHAR(64) = NULL, @appversion VARCHAR(16) = NULL AS
SET XACT_ABORT ON
go
GRANT EXECUTE ON [sp_$ndo$loginproc] TO public
GO
So we still habe no solution for this case.
Has anyone made anythin like this before? Hat was the settings for the DTC and the Linked Server Object? Any spectial things to do esle?
Kind regards
René