This content has been marked as final. Show 4 replies
Ok, dotTrace tells me the app is spending all the time in OracleConnection.Initialize (but not in it's child calls), which is invoked by OracleConnection's static ctor. So that makes sense why it only happens the first time, but still doesn't tell me what's going on....
Dont expect someone from oracle develepers to respond to this thread from my experience they just ignoring it.
But to your problem i have same issue in my web app when im using visual studio develeper web server, i must wait looooong time on first access to db.
But when i move app to proper iis web server or i choose in project setting to use local iis for debugging it works fine.
So its related to vs web server.
Best advice I can offer is to grab something like Process Monitor ( http://technet.microsoft.com/en-us/sysinternals/bb896645 ) and Wireshark ( http://www.wireshark.org/ )to try and see what it's really doing during that two minutes. It could be trying to load a lot of files for some reason or trying to connect to something and only starting up after a timeout. Hard to say.
I've never seen that problem, but I don't connect to XE or any local databases. Our production stuff also uses the "fat" client rather then instant client, but I'm using the instant client with the Entity Framework beta version of ODP.net and it's still playing nice.
I experience the exact same thing after installing Express Edition 11g Release 2 on Win7 64-bit when running a 32-bit app. I do not even have to create a connection. On the first call to e.g. OracleConnectionStringBuilder the app will hang for 2 minutes within OracleInit.Initialize(), after that all works fine.
I have monitored the process with the process monitor (from sysinternals) during the time it hangs. And the app is doing...nothing!
One strange thing is that if I run the same app under the visual studio debugger, the behavior does not appear. And if I change my app, which is a .NET remoting app, so that the first Oracle related call is performed after a call to RemotingConfiguration.Configure instead of before (on the same thread) the problem goes away.
After this problem started occuring I uninstalled XE, removed everything oracle related from the registry, file system and gac. And I still get the same behavior with an odac xopy install on first connect to any oracle database on remote machines.
Everything worked fine on the same machine before I installed XE.
Does anyone have any ideas on this? Any thread/com/coinitialize related problem within odp.net? I know this has been an issue in the past.