Shared Client Side 'TMP' Directory Causes EDQ Director to Crash on Unix (Client) Systems (Doc ID 2217187.1)

Last updated on DECEMBER 22, 2016

Applies to:

Oracle Enterprise Data Quality - Version 12.2.1.1.0 and later
Information in this document applies to any platform.

Symptoms

EDQ UI clients need to store local data on the client system. This is used for both persistent caches (processor library) and temporary jar storage (blueprints & database connectors).

A unique location within the Java temporary directory is used. On a Windows client platform, the Java temporary directory is located within the per-user AppData area. On a Unix client platform the Java temporary directory is /tmp (or /var/tmp), which is shared among all users.


On Unix the cache and blueprints directories are located within a directory which includes the curent user name, so will not be shared amongst different users. Unfortunately the database connector storage does not use this directory and instead uses a common directory in /tmp. This shared directory is created by the first user to run a client; if a different user on the
system runs a client they will not be able to write to the directory. Errors like:

SEVERE: 27-Oct-2016 15:39:55: [EDQ-02035] Databases client: failed to write local jar /tmp/949d7f58-a93e-4013-8e2b-dba71aacadff-dir/1477579195093/1477492967108: java.io.FileNotFoundException: /tmp/949d7f58-a93e-4013-8e2b-dba71aacadff-dir/1477579195093/1477492967108 (No such file or directory)

...are seen in the Java console and the EDQ Director will crash when opening a project which uses any of the affected connectors. This is the error seen in the client:

WARNING: EDQ-05903 com.datanomic.utils.transport.TransporterException: Error connecting to server (Code: 21,000) at
com.datanomic.utils.transport.http.HTTPTransport.sendToServer(HTTPTransport.ja va:148) at
com.datanomic.utils.transport.http.HTTPTransport.doInvoke(HTTPTransport.java:88) at
com.datanomic.utils.transport.http.HTTPTransport.invokeThrowExceptions(HTTPTransport.java:201)
at com.datanomic.utils.transport.StubHandler.invoke(StubHandler.java:61)
at com.sun.proxy.$Proxy26.find(Unknown Source)at
com.datanomic.director.dbsupport.xstore.cache.XTreeCache.load(XTreeCache.java:91) at
com.datanomic.director.dbsupport.xstore.cache.XTreeBank.verifyCache(XTreeBank.java:250) at
com.datanomic.director.projectbrowser.model.AssetSetTreeNode.load(AssetSetTree Node.java:176) at
com.datanomic.director.projectbrowser.model.ProjectBrowserTreeModel$Loader.construct(ProjectBrowserTreeModel.java:602)
at com.datanomic.director.guihelper.SwingChore.run(SwingChore.java:265) at
com.datanomic.utils.blueprints.ui.chores.ChoreMaster$Runner.run(ChoreMaster.java:412) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: database species "magicuserinfo" not found at
com.datanomic.utils.databasespecies.DatabaseMaterializers.hunt(DatabaseMaterializers.java:72)at
com.datanomic.utils.databasespecies.DatabaseMaterializers$DBMat.materialize(DatabaseMaterializers.java:108)at
com.datanomic.utils.databasespecies.DatabaseMaterializers$DBMat.materialize(DatabaseMaterializers.java:82)
at
com.datanomic.utils.dematerialization.MaterializingInputStream.materialize(MaterializingInputStream.java:118)
at
com.datanomic.utils.dematerialization.MaterializingInputStream.resolveObject(MaterializingInputStream.java:91)
at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1399)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.util.HashMap.readObject(HashMap.java:1396)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.util.ArrayList.readObject(ArrayList.java:791)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at
com.datanomic.utils.clienthttp.AnotherHttpClient.postObject(AnotherHttpClient.java:161)
at
com.datanomic.utils.transport.http.HTTPTransport.sendToServer(HTTPTransport.java:145)
... 13 more
.
WARNING: 27-Oct-2016 15:43:05: Error loading nodescom.datanomic.director.dbsupport.exceptions.DBSupportException: The clip was not populated correctly (Code: 210,539)
at
com.datanomic.director.dbsupport.xstore.cache.XTreeCache.load(XTreeCache.java:97)
at
com.datanomic.director.dbsupport.xstore.cache.XTreeBank.verifyCache(XTreeBank.
java:250)
at
com.datanomic.director.projectbrowser.model.AssetSetTreeNode.load(AssetSetTreeNode.java:176)
at
com.datanomic.director.projectbrowser.model.ProjectBrowserTreeModel$Loader.construct(ProjectBrowserTreeModel.java:602)
at com.datanomic.director.guihelper.SwingChore.run(SwingChore.java:265)
at
com.datanomic.utils.blueprints.ui.chores.ChoreMaster$Runner.run(ChoreMaster.java:412)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Caused by: com.datanomic.utils.transport.TransporterException: Errorconnecting to server (Code: 21,000)
at
com.datanomic.utils.transport.http.HTTPTransport.sendToServer(HTTPTransport.java:148)
at
com.datanomic.utils.transport.http.HTTPTransport.doInvoke(HTTPTransport.java:88)
at
com.datanomic.utils.transport.http.HTTPTransport.invokeThrowExceptions(HTTPTransport.java:201)
at com.datanomic.utils.transport.StubHandler.invoke(StubHandler.java:61)
at com.sun.proxy.$Proxy26.find(Unknown Source)
at
com.datanomic.director.dbsupport.xstore.cache.XTreeCache.load(XTreeCache.java:91)
at
com.datanomic.director.dbsupport.xstore.cache.XTreeBank.verifyCache(XTreeBank.java:250)
at
com.datanomic.director.projectbrowser.model.AssetSetTreeNode.load(AssetSetTreeNode.java:176)
at
com.datanomic.director.projectbrowser.model.ProjectBrowserTreeModel$Loader.construct(ProjectBrowserTreeModel.java:602)
at com.datanomic.director.guihelper.SwingChore.run(SwingChore.java:265)
at
com.datanomic.utils.blueprints.ui.chores.ChoreMaster$Runner.run(ChoreMaster.java:412)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142
)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617
)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: database species "magicuserinfo" not found
at
com.datanomic.utils.databasespecies.DatabaseMaterializers.hunt(DatabaseMaterializers.java:72)
at
com.datanomic.utils.databasespecies.DatabaseMaterializers$DBMat.materialize(DatabaseMaterializers.java:108)
at
com.datanomic.utils.databasespecies.DatabaseMaterializers$DBMat.materialize(DatabaseMaterializers.java:82)
at
com.datanomic.utils.dematerialization.MaterializingInputStream.materialize(MaterializingInputStream.java:118)
at
com.datanomic.utils.dematerialization.MaterializingInputStream.resolveObject(MaterializingInputStream.java:91)
at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1399)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.util.HashMap.readObject(HashMap.java:1396)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at java.util.ArrayList.readObject(ArrayList.java:791)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at
com.datanomic.utils.clienthttp.AnotherHttpClient.postObject(AnotherHttpClient.java:161)
at
com.datanomic.utils.transport.http.HTTPTransport.sendToServer(HTTPTransport.java:145)
... 13 more

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms