SDO_GEORASTER BUG on Oracle 11g R2

3760
16
Jump to solution
11-23-2012 08:29 AM
Jean-BernardGariépy
New Contributor III
Hi!

Is there anyone that was able to reproduce the following bug ?

http://support.esri.com/en/knowledgebase/techarticles/detail/38940

I tried using a 10.0 ArcGIS Desktop Client and a 10.1 ArcGIS Desktop Client on a Oracle 11g R2 with all the appropriate keywords set in DBTUNE.

A simple copy/paste of a raster stored as a BLOB into an SDO_GeoRaster type make ArcCatalogue to freeze indefinitely (more than 1h) doing nothing. No error message.

Also, I haven't found any post on the web regarding this bug.

We don't mind calling Oracle for this bug... if we can manage to reproduce it.
Any clue on how to reproduce this bug would be greatly apprciated.
0 Kudos
1 Solution

Accepted Solutions
Jean-BernardGariépy
New Contributor III
ESRI has been assisting me with this bug and I just got an answer from ESRI.

I looks like I've put the finger on the problem with my regional setting bug... The work around would be to change the regional settings to English!


Regarding the Oracle bug, it actually looks like Oracle has not adequately updated their bug database. Upon further investigation on our bug (NIM069549) that references the Oracle bug, there is an activity logged by one of the Esri Inc support staff. He mentions that he spoke to Oracle in May 2012, and that Oracle has actually closed this  Oracle incident (12537431) as NOT a bug. This analyst says that the reason given is because OCIEnvNlsCreate uses the national language setting of the computer (Nls = National Language Setting). OCIEnvNlsCreate is used when creating an sdo_georaster and the failure occurs when the Oracle xml document is created.

Basically ??? the reason that users can experience this Oracle bug is because of regional language settings in either the O/S or Oracle.

We have spoken to Esri Inc and have requested that the following be updated to reflect this finding from Oracle:

NIM069549 -
http://support.esri.com/en/bugs/nimbus/TklNMDY5NTQ5
NOTE: have requested that the alternate solution be changed to state that it can be caused by regional language settings. Also, reason for rejection needs to be changed accordingly

Error:  An Oracle LPX-0019 error occurs when inserting data into an SDO_GEORASTER field -http://support.esri.com/en/knowledgebase/techarticles/detail/38940
NOTE: have requested that the solution/workaround be changed to state that it can be caused by regional language settings. Suggested to try changing to English language setting.

ArcGIS and the Oracle Spatial raster type - http://resources.arcgis.com/en/help/main/10.1/index.html#//002n0000006z000000
NOTE: this is the article with the known limitations at the bottom.


Since metadata is in XML format, it is quite possible that the commas you were getting with the French language setting were directly related to this issue. The Oracle XmlLoadDom function returns the erorr, so you will see this error in Oracle, not in ArcMap.

View solution in original post

0 Kudos
16 Replies
MarcoBoeringa
MVP Regular Contributor
A simple copy/paste of a raster stored as a BLOB into an SDO_GeoRaster type make ArcCatalogue to freeze indefinitely (more than 1h) doing nothing. No error message.


Although you are likely to have hit that particular Oracle bug in the link, there still remains the question whether the process really failed. The copy and paste is probably mostly a server task, so seeing ArcCatalog idle on a local machine, is no clear indication the process really failed, it may just take an excessive amount of time to process the raster copy operation on the Oracle server. The fact you don't receive any error message in ArcCatalog, may also be a small indication the process is actually continuing in the background. Since raster datasets can be extremely big, operations on them can be time consuming, depending on the operation. Have you made absolutely sure there is no activity related to the copy & paste on the server? Oracle probably provides you with enough tools and logging to get a better idea of what is going on on the server.

Sad to see Oracle refusing to tackle such an important issue and demanding a "customer business case" before even starting a move towards a solution.
0 Kudos
Jean-BernardGariépy
New Contributor III
The copy and paste is probably mostly a server task.


Unfortunatly, to copy/paste a raster within the same Database ArcCatalog needs to read the file through the network on the client machine and send it back to the server. I agree that it would be much faster if ArcCatalog could acheive the same task only on the server. Even better, it would be nice if ESRI could release an SQL API to manage spatial features from the RDBMS. But I'm going away from the question here...

To copy the same raster from BLOB into a BLOB with a different name, it takes about 1 minute. Also, by looking at the network card activity you can clearly see that ArcCatalog is downloading the raster from the server and pushing it back. Also, you can look at your CPU activity and it clearly tells you that ArcCatalog is working on it.

When copying from BLOB to SDO_Geometry, for 1h+, ArcCatalog never even tried to download the file from the server (no network activity what so ever) and no CPU activity.

It clearly fails at the task, without any error message.

On the Oracle Server, my DBA tells me that my session is open, but inactive. I'll ask him to check the logs to see if there is any error message generated.

Finally, there is a Workaround on MetaLink which we cannot apply ourself... maybe ESRI could look at it ?

XmlLoadDom fails to parse and load an XML document when the OCI session is
created with
OCIEnvNlsCreate function. But the same works fine when session is created
with OCIEnvCreate function.
0 Kudos
Jean-BernardGariépy
New Contributor III
This time I got this Error popup !!

[ATTACH=CONFIG]19527[/ATTACH]
0 Kudos
MarcoBoeringa
MVP Regular Contributor
Unfortunatly, to copy/paste a raster within the same Database ArcCatalog needs to read the file through the network on the client machine and send it back to the server. I agree that it would be much faster if ArcCatalog could acheive the same task only on the server.


Do you have a Direct Connect install with Oracle Client installed on your local ArcGIS client computer, or do you run an ArcSDE/ArcGIS Server service on a server?

Even better, it would be nice if ESRI could release an SQL API to manage spatial features from the RDBMS. But I'm going away from the question here...


ESRI more or less already did that, see the following links:
ArcSDE SDK 10 C and Java API
and
ArcGIS Spatial Data Server REST API
0 Kudos
Jean-BernardGariépy
New Contributor III
ESRI more or less already did that, see the following links:
ArcSDE SDK 10 C and Java API
and
ArcGIS Spatial Data Server REST API


The tests are made using the Dirrect Connect with Oracle 11g client installed on the client computer.

Those API are great at what they do, but as for using them to manage data in a RDBMS sounds like taking an airplane when you can actually bike to work 😉
0 Kudos
MarcoBoeringa
MVP Regular Contributor
Don't know if it is in anyway related nor of any help, but I saw this old thread on an OTN forum related to the same "OCIEnvNlsCreate" function and issues with it in PHP:

https://forums.oracle.com/forums/thread.jspa?threadID=486961
0 Kudos
MarcoBoeringa
MVP Regular Contributor
The tests are made using the Direct Connect with Oracle 11g client installed on the client computer.


I wonder if the same issue happens with a 3-tier ArcSDE Server install...

Those API are great at what they do, but as for using them to manage data in a RDBMS sounds like taking an airplane when you can actually bike to work 😉


Well, depends, the ride with the bike may turn out cycling through a giant labyrinth and getting lost if you attempted to manage and maintain the full ESRI geodatabase functionality as well (like versioning, topology, geometric networks, Feature Dataset/Class hierarchy) without using these ESRI API's... :eek:

Better to catch the plain to get there in a straight line 😉
0 Kudos
Jean-BernardGariépy
New Contributor III
Don't know if it is in anyway related nor of any help, but I saw this old thread on an OTN forum related to the same "OCIEnvNlsCreate" function and issues with it in PHP:

https://forums.oracle.com/forums/thread.jspa?threadID=486961


National Language Support do seems to be the issue as also reported by the Metalink Workaround posted earlier. If a simple environment variable could solve the problem!!! that would be amazing !!
0 Kudos
Jean-BernardGariépy
New Contributor III
I've solved the problems.

We are now able to insert data into SDO_GEORASTER without any problem.
We've never encountered the following but as describe by ESRI :
http://support.esri.com/en/knowledgebase/techarticles/detail/38940

The first problem was that our Oracle SDE Schema was originally created with ArcGIS 10.0. So we've setup a new database with 10.1 SDE Schema.

Second, the regionnal settings of my ArcGIS Desktop computer was French Canadian. So ArcGIS was inserting comas as decimal separators in the raster metadata.
I've found this by using the following to SQL commands:

SDO_GEOR.validateGeoRaster()
SDO_GEOR.schemaValidate()

We are now able to insert data into SDO_GEORASTER using the following geoprocessing tool:
Data Management Tools => Raster => Raster Dataset => Copy Raster

Now we're having other issues bulding the pyramids using the SQL statement SDO_GEOR.generatePyramid() because ArcGIS doesn't assign any SRID to the raster 😕 I will start a new thread for this bug soon as I trouble shoot a bit more.
0 Kudos