I created the standard DataObjects.net Console project, which showed "Hello World" correctly. To support Oracle, I installed ODP.net 11.2. I changed the DomainConfiguration to point to my Oracle database (either via config or via code) Then when calling "Domain.Register", a NotSupportedException is thrown.

UPDATE: The stacktrace

System.NotSupportedException: Specified method is not supported.

Server stack trace:
at Xtensive.Storage.Providers.Sql.SqlModelConverter.VisitTemporaryTable(TemporaryTable temporaryTable)
at Xtensive.Sql.Model.SqlModelVisitor`1.Visit(Node node)
at Xtensive.Storage.Providers.Sql.SqlModelConverter.Visit(Node node)
at Xtensive.Storage.Providers.Sql.SqlModelConverter.VisitSchema(Schema schema)
at Xtensive.Sql.Model.SqlModelVisitor`1.Visit(Node node)
at Xtensive.Storage.Providers.Sql.SqlModelConverter.Visit(Node node)
at Xtensive.Storage.Providers.Sql.SqlModelConverter.GetConversionResult()
at Xtensive.Storage.Providers.Sql.SchemaUpgradeHandler.ExtractSchema()
at Xtensive.Storage.Providers.SchemaUpgradeHandler.<>c__DisplayClass5.<GetExtractedSchemaProvider>b__4()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Func`1.EndInvoke(IAsyncResult result)
at Xtensive.Core.AsyncExtensions.<>c__DisplayClass1`1.<InvokeAsync>b__0()
at Xtensive.Storage.Building.Builders.DomainBuilder.<BuildSchemasAsync>b__2b(Func`1 schemaProvider)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Func`2.EndInvoke(IAsyncResult result)
at Xtensive.Core.AsyncExtensions.<>c__DisplayClass4`2.<InvokeAsync>b__3()
at Xtensive.Storage.Building.Builders.DomainBuilder.BuildSchemasAsync(Domain domain, SchemaUpgradeHandler upgradeHandler)
at Xtensive.Storage.Building.Builders.DomainBuilder.SynchronizeSchema(SchemaUpgradeMode schemaUpgradeMode)
at Xtensive.Storage.Building.Builders.DomainBuilder.BuildDomain(DomainConfiguration configuration, DomainBuilderConfiguration builderConfiguration)
at Xtensive.Storage.Upgrade.UpgradingDomainBuilder.BuildStageDomain(UpgradeStage stage)
at Xtensive.Storage.Upgrade.UpgradingDomainBuilder.Build(DomainConfiguration configuration)
at Xtensive.Storage.Domain.Build(DomainConfiguration configuration)
at DataObjectNet.Program.Main(String[] args) in C:\dev\DataObjectNet\Program.cs:line 26

asked Dec 20 '10 at 08:53

Arieh's gravatar image

Arieh
7113

edited Jan 04 '11 at 16:02

Sergey's gravatar image

Sergey
123339

Thanks, we'll investigate the issue.

(Dec 20 '10 at 15:08) Dmitri Maximov Dmitri%20Maximov's gravatar image

3 Answers:

It seems that currently DataObjects.Net doesn't handle correctly the situation when there is at least one temporary table in the scheme. We'll fix this shortly.

In order to sort out the problem right now try executing the following query:

SELECT      OWNER, TABLE_NAME, "TEMPORARY", DURATION
FROM         SYS.ALL_TABLES
WHERE      ("NESTED" = 'NO') AND (OWNER = '%YOUR_SCHEMA_NAME%') AND ("TEMPORARY" = 'Y')

It will show you whether your scheme contains temporary tables or not. If so, try deleting them and re-run Domain build procedure.

answered Dec 22 '10 at 05:11

Dmitri%20Maximov's gravatar image

Dmitri Maximov
22111211

DataObjects.Net 4.3.7 & 4.4 beta 2 is released. It handles such cases correctly.

(Jan 29 '11 at 04:31) Dmitri Maximov Dmitri%20Maximov's gravatar image

I've checked the case and haven't encountered any problems. My DataObjects.Net version was 4.4 Beta 1, connection url was "oracle://user:password@192.168.0.4:5510/ora10".

Could you check whether yours was correct?

answered Dec 21 '10 at 08:04

Dmitri%20Maximov's gravatar image

Dmitri Maximov
22111211

edited Dec 21 '10 at 08:05

My connection string is in the format oracle://username:pw@dbserver:port/service

When I changed to use an incorrect connection string, then I got errors like: ORA-12545: Connect failed because target host or object does not exist ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Therefore I think my connection string is correct.

I do have oracle10 server installed on the machine, with oracle 11.2 client. Therefore it may be due to the multiple oracle directories. However my ORACLE_HOME is configured to point to my 11.2 client, and I can connect via PL/SQL correctly.

ps. I am using VS 2008

answered Dec 21 '10 at 10:24

Arieh's gravatar image

Arieh
7113

edited Dec 21 '10 at 11:46

Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
toggle preview

powered by OSQA