Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

InstantClient: SQORAS32.DLL could not be found

3719542Jun 4 2018 — edited Jun 12 2018

Hello,

I'm trying to configure the instant client driver to connect Oracle db from excel 32-bit, but when I try to configure the instant client from the odbc data source administrator, I receive the following error message:

"The setup routines for the Oracle in instantclient_12_2 ODBC Driver could not be loaded due to system error code 126: The specified module could not be found.

(C:\Oracle\instantclient_12_2\SQORAS32.DLL)"

I've installed the instant client basic and odbc packages, run the odbc_install.exe from windows cmd, and updated the environment variables afterwards to include C:\Oracle\instantclient_12_2 and TSD_ADMIN.

PC I'm trying this with is Windows 8.1 pro with excel 2016 32-bit.

I've also made sure that both microsoft KB3147071 and Visual C++ 2010 packages are installed, as I found some notes referring to them, but still the same error message persists.

Could you please help me with this issue?

Best Regards

Giacomo

Comments

yes, we're indexing all of the preferences so that the search will work

just wait for it to finish before you attempt to open the preferences

C. L.

Is there someway to speed it up? does it need more resources? it's terribly slow

only takes a few moments on my machine, yet for others it can take a few minutes

it really only affects opening the Preferences dialog, do you really need to open that at the very beginning of each session?

i can give you a workaround to disable it if you'd like

C. L.

Thank you for your Feedback. I don't always need to open the preferences up, but often the kerberos settings need to be checked, specially during tests and it takes around two minutes to open.
I would love the workaround, I can use that for the tests :)

Add this to your sqldeveloper.conf file

# turns off extended preference indexing entirely
AddVMOption -DIndexedPreferencesCommand=false

C. L.

Oh, I see what it does. Loading the contents of the tree is very slow. OK. I can live with that for the tests, takes less than the 2 minutes.
Thank you!
Another question: Whats happening with the indexing: are you loading the contents of the json/xml files into memory? Why do you think that is slower for some customers (virus scans?)?

Jim 13131

I definitely see a pattern to the speed - when i am connected to some VPNs (I support a lot of customers around the world so am on different VPNs all the time) it is much slower than others. No VPN is fastest. This is repeatable.
I believe this indicates the indexing is doing something across the network/web - should 't this all be local?

Better yet - can't we save the index? Does what it is indexing ever change except when I upgrade SQL Developer?

yes, we're going through your folders/drives indexing paths that were previously used to do exports/file opens/saves

user4870401

We have the same problem. We work around it by replacing the jre and lib folders under sqldeveloper\jdk with another version, in my case jdk1.8.0_181 from adopt
Taking a stack trace displays the code caching a JFileChooser. This JFileChooser scans your whole %USERPROFILE% folder. This causes it to mount any link, sharepoint folder, network connection, ...
I saw it take 20 minutes in an extreme case.

UPDATE: Just retried it here with an unmodified 20.2.0.175 build 175.1842
IndexPreferenceTask took time 8:57:10 - 9:00:54 , so 3:44 minutes. Closing it and reopening it does NOT shorten this time much. Here is a stack trace:
---
aptorTaskThread02-IndexPreferencesTask" #45 prio=5 os_prio=0 tid=0x000000001eff0800 nid=0x2f70 waiting on condition [0x000000002b31d000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000df2cd820> (a java.util.concurrent.FutureTask)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Win32ShellFolderManager2.java:591)
at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:518)
at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:504)
at sun.awt.shell.Win32ShellFolder2.getLinkLocation(Win32ShellFolder2.java:810)
at sun.awt.shell.Win32ShellFolder2.getLinkLocation(Win32ShellFolder2.java:806)
at sun.awt.shell.Win32ShellFolderManager2.checkFile(Win32ShellFolderManager2.java:394)
at sun.awt.shell.Win32ShellFolderManager2.lambda$checkFiles$0(Win32ShellFolderManager2.java:422)
at sun.awt.shell.Win32ShellFolderManager2$$Lambda$57/534809017.test(Unknown Source)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:546)
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:438)
at sun.awt.shell.Win32ShellFolderManager2.checkFiles(Win32ShellFolderManager2.java:423)
at sun.awt.shell.Win32ShellFolderManager2.checkFiles(Win32ShellFolderManager2.java:410)
at sun.awt.shell.Win32ShellFolder2.listFiles(Win32ShellFolder2.java:736)
at sun.awt.shell.ShellFolder.listFiles(ShellFolder.java:121)
at sun.awt.shell.Win32ShellFolderManager2.isFileSystemRoot(Win32ShellFolderManager2.java:465)
at sun.awt.shell.ShellFolder.isFileSystemRoot(ShellFolder.java:273)
at javax.swing.filechooser.FileSystemView.isFileSystemRoot(FileSystemView.java:348)
at javax.swing.filechooser.FileSystemView.getSystemDisplayName(FileSystemView.java:184)
at oracle.ide.net.FileURLFileSystemHelper.getSystemDisplayName(FileURLFileSystemHelper.java:412)
at oracle.ide.net.URLFileSystemHelperDecorator.getSystemDisplayName(URLFileSystemHelperDecorator.java:189)
at oracle.ide.net.URLFileSystemHelperDecorator.getSystemDisplayName(URLFileSystemHelperDecorator.java:189)
at oracle.ide.net.URLFileSystemHelperDecorator.getSystemDisplayName(URLFileSystemHelperDecorator.java:189)
at oracle.ideimpl.net.LazyURLFileSystemHelperDecorator.getSystemDisplayName(LazyURLFileSystemHelperDecorator.java:242)
at oracle.ide.net.URLFileSystemHelperDecorator.getSystemDisplayName(URLFileSystemHelperDecorator.java:189)
at oracle.ide.net.URLFileSystem.getSystemDisplayName(URLFileSystem.java:840)
at oracle.ide.net.URLNode.toString(URLNode.java:249)
at javax.swing.JTree.convertValueToText(JTree.java:1603)
at javax.swing.tree.DefaultTreeCellRenderer.getTreeCellRendererComponent(DefaultTreeCellRenderer.java:428)
at oracle.ide.net.URLChooser$TCR.getTreeCellRendererComponent(URLChooser.java:4218)
at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2807)
at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:492)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1360)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1487)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1288)
at javax.swing.tree.VariableHeightLayoutCache.rebuild(VariableHeightLayoutCache.java:743)
at javax.swing.tree.VariableHeightLayoutCache.treeStructureChanged(VariableHeightLayoutCache.java:644)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3917)
at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:580)
at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:365)
at oracle.ide.net.URLChooser.flushNodes(URLChooser.java:2040)
at oracle.ide.net.URLChooser.refreshAll(URLChooser.java:2046)
at oracle.ide.net.URLChooser.setSelectionScope(URLChooser.java:1259)
at oracle.dbtools.raptor.ui.URLFileChooser.setSelectionScope(URLFileChooser.java:209)
at oracle.dbtools.raptor.ui.URLFileChooser$URLFileChooserPanel.setSelectionScope(URLFileChooser.java:1207)
at oracle.dbtools.raptor.config.TnsnamesDirChooser.jbInit(TnsnamesDirChooser.java:78)
at oracle.dbtools.raptor.config.TnsnamesDirChooser.<init>(TnsnamesDirChooser.java:45)
at oracle.dbtools.raptor.config.AdvancedInfo.<init>(AdvancedInfo.java:55)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at javax.ide.util.MetaClass.newInstance(MetaClass.java:145)
at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:122)
at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:65)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:199)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:702)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Answer

preferences - environment - persist file names and directory paths => DISABLE

Marked as Answer by C. L. · Jan 7 2021
User_ATNAD

Typical example of the developer's "works on my machine" feature. In real-world enterprise environments, with slow NAS devices shared among hundreds of users, eventually with slow cloud-synced folders (OneDrive in case of my current customer's environment), this task takes forever.
PS: The navigation path "preferences - environment - persist file names and directory paths => DISABLE" does not exist in the version deployed on my customer's envs (Version 19.1.0.094, Build 094.2042), and since they are deploying all SW on the VMs using a corporate SW management tool, which, in the result, does not allow write-access to sqldeveloper.conf ..

User_H3J7U

@user-atnad
does not allow write-access to sqldeveloper.conf ..
Windows: %APPDATA%\sqldeveloper\<...version..>\product.conf

User_ATNAD

Thanks, that worked fine.

User_8D5ZU

yeah, i really don't know why you guys feel the need to scan my whole machine and network/wsl filesystems continuously. you should really re-consider enabling by-default whatever feature requires this. it's just plain broken.

user4870401

@user-8d5zu
It is not really an SQL Developer bug but a JRE bug:
SQL Developer creates an invisible file chooser dialog at startup, even if not needed
The file chooser wants to know how much place to reserve on the screen for file icons
It decides to do a recursive scan on the current folder, getting each possible icon, and see if it is bigger than any icon seen before.
If it encounters a link, it follows it, potentially scanning the whole file tree
This causes network shares to mount, CD rom drives to activate, all kind of fun mayhem.
This bug has been fixed ages ago by Java, but SQL Developer does not upgrade its built-in JRE.

C. L.

Can someone confirm this is an Java Bug? I packaged the SQL Developer with the JDK 11 Version and I can't measure any improvement unless I disable the indexing.
Edit: And I am using the 21.4.2 Version, which has a lot of other issues additionally to being really, really slow.

itshak

Hi,
I used the recommendation of adding the next to the sqldeveloper.conf:
AddVMOption -DIndexedPreferencesCommand=false
but I receive the next issue:
Error connecting:
oracle/jdbc/datasource/impl/OracleDataSource.
java.lang.NoClassDefFoundError: oracle/jdbc/datasource/impl/OracleDataSource
at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.createConnection(RaptorConnectionCreator.java:424)
...

SQL Developer 22.2.0.173 with the JRE embedded (JRE 11) on windows 7

3 things:
please start a new thread
Windows 7 isn't supported (but most likely not the issue here)
Does it work if you run it w/o that option, which should no longer be necessary anyway

Mika77

Same problem here with file chooser dialogs, that are incredibly slow:

SQL Developer Version:
Oracle IDE 21.4.1.349.1822

OS Version:
Win Version 10.0.19044 Build 19044

Java Runtime used by SQL Dev:
Java(TM) Platform 1.8.0_311

Java Classpath
java.class.path C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\ide\lib\ide-boot.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\netbeans\platform\lib\boot.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\netbeans\platform\lib\org-openide-util-ui.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\netbeans\platform\lib\org-openide-util.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\netbeans\platform\lib\org-openide-util-lookup.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\netbeans\platform\lib\org-openide-modules.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\ide\lib\fcpboot.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\ide\lib\xml-factory.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\modules\com.fasterxml.woodstox\woodstox-core.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\modules\org.codehaus.woodstox\stax2-api.jar;C:\Prog_x86\ora12201\product\12.2.0\client_1\sqldeveloper\sqldeveloper\lib\oracle.sqldeveloper.homesupport.jar

After I set:
- Tools > Preferences… > Environment > Look and Feel: Windows
- Tools > Preferences… > Environment > Persist file names and directory paths: false
- sqldeveloper.conf file: AddVMOption -DIndexedPreferencesCommand=false

The file > open window menu opens after 2 seconds.
The table > import data wizard opens after 14 seconds.
In the import data wizard the “browse…” button responses immediately.
The "restore state" button opens a file chooser after 15 seconds.

From my perspective, it would be nice to either stop scanning all directories, or let the user define a list of network directories, that are handled differently by the SQL developer than local work directory paths. e.g. skip scanning for previously defined network shares.

If there is another thread for that topic, let me know.

user-0gief

With new version 23.1 this problem seem to be fixed

user-jr7zv

not fixed with 23.1. It takes mine 10 minutes. :{

please start a new thread, provide ALL the details

user-gwt5k

This appears to be the correct answer. The solution appears to be to make sure that a new JDK or JRE is prioritized in your system and user path.

Arturo Pichardo

I had the same problem and adding this line to the config file solve the issue. Thank you Jeff!

1 - 25
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jul 10 2018
Added on Jun 4 2018
6 comments
60,681 views