|
POST
|
I realize that this is not an ArcSDE or geodatabase question, but I thought some Oracle types might know the answer. Note that I also posted this question to the ArcGIS Server v10 group... We have ArcGIS Server v10.0 SP5 (32 bit) and Latitude Geographics' Geocortex Essentials (64 bit) installed on the same server (Windows Server 2008 R2). We're using a 64-bit Oracle client since we have Oracle datalinks in GTX Essentials. We also want to start using query layers in ArcGIS Server, but we have to use a 32-bit Oracle client to do so. We can configure the MXD successfully but when we publish to ArcGIS Server and attempt to start the service, we get a 'server library could not be loaded' error, most likely because AGS is 32-bit and cannot be used w/ a 64-bit Oracle client. We installed the 32-bit client as well so now both it and the 64-bit Oracle clients are on the same server with different ORACLE_HOMEs. I tried creating a logon script for the ArcGISSOC user account that sets the ORACLE_HOME environment variable and pre-pends the PATH env var with the 32-bit ORACLE_HOME/bin directory, but I'm still getting the 'server library could not be loaded' error when starting the ArcGIS Server service. Our ArcGIS REST service app pool uses the 'ApplicationPoolIdentity' which is a virtual account. I can set the app pool 'Load User Profile' setting to True for ApplicationPoolIdentity (or some new Identity that I create) and potentially set the ORACLE_HOME and PATH variables there to see if that fixes it. But this is a production environment so I want to be fairly certain that this will work before making a potentially intrusive change. (And I don't have another server with a similar setup to test it on). Is it possible to force ArcGIS Server to use the 32-bit ORACLE_HOME when all other apps on the server are using a different (64-bit) ORACLE_HOME? If so, how can this be done?
... View more
12-11-2012
11:18 AM
|
0
|
1
|
671
|
|
POST
|
Excellent! Should've thought of that. Got it working. Turns out defining the fields to omit as a semi-colon-separated string instead of a list worked for me. I.e this didn't work: omitFields = ["SHAPE_Length", "SHAPE.len", "SHAPE", "OBJECTID", "SHAPE.STLength()"] And this worked: "OBJECTID;SHAPE;SHAPE.STLength();SHAPE.len" What's more (and probably more relevant) is that the fields in the list of fields to omit must actually be in one of the feature classes being compared, i.e. you can't throw a bunch of fields in the omit list "just in case" they're in the feature classes. If you include a field that's not in one of the feature classes, you get the "ERROR 000800". So still not sure how/if this will work effectively if I throw a bunch of feature classes at it that have native SQL Server geometry types, since having that seems to create many oddly-named fields.
... View more
10-30-2012
06:23 AM
|
0
|
0
|
541
|
|
POST
|
I'm attempting to use arcpy.TableCompare_management and am passing tables that have a SHAPE.STLength() field, since we're using SQL Server Native spatial types. I include 'SHAPE.STLength()' in my "omit fields list", but it throws the error:
omitFields = ["SHAPE_Length", "SHAPE.len", "SHAPE", "OBJECTID", "SHAPE.STLength()", "STLength__"]
arcpy.TableCompare_management(baseTable, testTable, "OBJECTID", "SCHEMA_ONLY", "", "", omitFields, "CONTINUE_COMPARE", "")
ExecuteError: ERROR 000622: Failed to execute (TableCompare). Parameters are not valid.
ERROR 000800: The value is not a member of OBJECTID | AUTOCAD_LAYER | PIPENO | ASSETNUMBER | SHAPE | SHAPE.len | SHAPE.STLength().
ERROR 000800: The value is not a member of OBJECTID | AUTOCAD_LAYER | PIPENO | ASSETNUMBER | SHAPE | SHAPE.len | SHAPE.STLength().
Failed to execute (TableCompare).
If I run TableCompare in ArcCatalog, the field shows up in the list of available fields to omit, and when I do so it works fine. If I do an arcpy.ListFields on the feature classes, it correctly shows me the SHAPE.STLength() field: SHAPE.STLength() is a type of Double with a length of 0 Any thoughts on how I can get arcpy.TableCompare_management to work as I need it to?
... View more
10-29-2012
10:53 PM
|
0
|
2
|
1148
|
|
POST
|
Thanks for the reply James. I don't think it's user permissions since I'm able to select from the problem table in SQLDeveloper. If I view the GRANTS in SQLDeveloper for a problem table and one that I'm able to see in arcpy, there is no difference in the grants. (There actually aren't any at all for either table, but that could be not because they're not there, but because of what my login ID has permission to view). I just downloaded cx_Oracle and may take the same tack. If you have any code to share, I'd be most grateful.
... View more
10-23-2012
07:12 AM
|
0
|
0
|
3300
|
|
POST
|
I am having a very similar but subtly different issue: I have an OLE DB connection to an Oracle 11g database using ArcGIS v10 SP2 and python v2.6. I can connect to the database and when I set my arcpy.env.workspace and list the tables, I can see all tables in the entire database. But arcpy.Exists(table) works for some tables and not others. And of course for the one table I'm interested in, it doesn't work. The table I'm interested in is in the schema for the user that the OLE DB connection uses ("survey"). Here's the code: import sys, string, arcpy
from arcpy import env
import traceback
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "C:/Temp/My_DB_Connection.odc"
tableList = arcpy.ListTables()
for table in tableList:
print table # <-- WORKS
if not arcpy.Exists("C:/Temp/My_DB_Connection.odc/SURVEY.CONTROL"):
print "table does NOT exist"
else:
print "Oracle table exists" Prints "table does NOT exist". Also note that when I connect to the DB in ArcCatalog using the same exact connection file, I can see all tables in the DB (not just SURVEY tables, but I do see them all).
... View more
10-22-2012
11:56 PM
|
0
|
0
|
3300
|
|
POST
|
We are having the exact problem posted at this thread from the 'Desktop General' forum. Thought this forum might have insights. Thanks, Chris
... View more
10-11-2012
08:26 AM
|
0
|
1
|
819
|
|
POST
|
. . . First off, make sure you have a current backup. Then use 'sdetable -o delete' (as the owner) . . . - V Thanks Vince. Tried this: >sdetable -o delete -t CityLimits -s SERVER_NAME -i sql:sqlserver:SERVER_NAME
-D DATABASE_NAME -u TABLE_OWNER -p OWNER_PWD But got this: Delete table CityLimits! Are you sure? (Y/N): Y
Error: Underlying DBMS error (-51).
Error: Unable to delete table CityLimits.
Microsoft SQL Server Native Client 10.0: No value given for one or more required parameters. FYI, not using a versioned db. Google did not turn up any ideas. Any thoughts on that error? Also, looks like the table is actually visible w/ '-o describe'. Thanks again, Chris
... View more
10-08-2012
02:41 PM
|
0
|
0
|
541
|
|
POST
|
I have a feature class that through a series of unfortunate events, I can no longer see it in ArcCatalog. However I have a backup in another geodatabase and when I try to copy the backup fc to my original geodatabase, it complains that it already exists. And indeed it is visible in SQL Server Mgmt Studio, but doing 'sdelayer -o describe_long' or arcpy.ListFeatureClasses does not display the feature class. I'm using SQL Server 2008 SP3 and ArcSDE v10.0. The series of "unfortunate events" includes updating a field value using TSQL and running a delete_features tool against it. Any ideas how I can remove the feature class so that ArcSDE is no longer half aware of it?
... View more
10-05-2012
12:56 PM
|
0
|
3
|
756
|
|
POST
|
Having the same issue here, AGS for SP v.2.1.1 on SP 2010. I'm a member of the SP Administrators group, but not seeing the ArcGIS Mapping Configuration Files under the Document Libraries section of All Site Content.
... View more
07-11-2012
10:33 AM
|
0
|
0
|
354
|
|
POST
|
This is resolved for me, but I'm not sure of the exact resolution. Our SP admin rebooted, among other things, and verified that I was in the SP Admin group, per this thread.
... View more
07-11-2012
10:28 AM
|
0
|
0
|
566
|
|
POST
|
I'm having exactly the same issue. Editing the 'ArcGIS Mapping Base Maps' list may work for Base Maps, but it doesn't allow us to maintain all of the other ArcGIS for SharePoint administration tasks (Connections, Locators, Symbols, etc.) In our case, our SP admin can see the ArcGIS for SharePoint settings, and she has added what *should* be the required perms for me to see them, but I still cannot. What permissions are required?
... View more
07-11-2012
09:38 AM
|
0
|
0
|
566
|
|
POST
|
Hi, I am using following code sample and I am able to overlay an ArcGIS Server WMS on top of MapQuest OSM which is the same projection as Google Maps... Thanks Yingqi. Out of curiosity, did you do anything special to publish the ArcGIS WMS layer? I see you used CRS 3857 and a WMS version of 1.3.0. Anything else you had to do to get this to work? Thanks, crb
... View more
05-04-2012
09:58 AM
|
0
|
0
|
2204
|
|
POST
|
Figured this out, thanks to James Fee, his 2009 Dev Summit presentation, and the spherical mercator example at mkgeomatics. Basically just had to publish an AGS service in WGS84 and in OL use a map.projection of EPSG:102113. Also found some cool stuff for using AGS json in OL (and important potato cooking safety tips) at mapbutcher in the process...
... View more
12-30-2011
08:22 AM
|
0
|
0
|
2204
|
|
POST
|
I'm trying to add an AGS v10 layer to an OL map but it only seems to work if: - map.projection = WGS84 - map.displayProjection = WGS84 - isBaseLayer = true My end goal is to use Bing or ESRI cloud-based maps in EPSG:900913 as the base maps, so my map.projection will be EPSG:900913 and my map.displayProjection will be EPSG:4326. But the only way I can get AGS v10 REST and WMS services to display in an OL map is to set the map.projection, map.displayProjection and layer.projection to EPSG:4326. I'm using OL v2.11. I have AGS v10 services published as both REST and WMS. The CRS of the REST service is '102100 (3857)'. EPSG doesn't recognize 102100 which I believe is ESRI's own designation, so I experimented using 3857. If I view the service in an ESRI client (ArcMap, ArcCatalog) then it displays with the correct projection. But the only way I can display the layer at all in an OL map, whether using a OpenLayers.Layer.ArcGIS93Rest or a OpenLayers.Layer.WMS layer, is to use 4326 for both map.projection and map.displayProjection, which of course will not overlay on top of the Bing/ESRI base layers in EPSG:90013. While I'd prefer to be able to use WMS, any workaround would be acceptable. I wasn't able to get WFS to display at all, but that may be because I don't have all the OL layer params that are required. I tried:
var layer = new OpenLayers.Layer.WFS(
"Counties",
"http://myserver/arcgis/services/county_wm/MapServer/WFSServer?",
{ layers: "0" }
);
I found this information as well and tried that solution using a map.projection of 3857 for map.projection, map.displayProjection and layer.projection, e.g.:
var options =
{
'units': 'm'
};
var map = new OpenLayers.Map('gxmap', options);
mapprj = new OpenLayers.Projection("EPSG:3857");
dspprj = new OpenLayers.Projection("EPSG:3857");
map.projection = mapprj;
map.displayProjection = dspprj;
var layer = new OpenLayers.Layer.WMS(
"Counties",
"http://myserver/arcgis/services/county_wm/MapServer/WMSServer?",
{
layers: "0",
format: 'image/png',
srs: 'EPSG:3857'
},
{
opacity: 0.5,
singleTile: false,
projection: 'EPSG:3857'
}
);
but still no go. My WMS capabilities file for this layer looks thus:
<Layer queryable="1">
<Name>0</Name>
<Title>
<![CDATA[ county_webmerc ]]>
</Title>
<Abstract>
<![CDATA[ county_webmerc ]]>
</Abstract>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<CRS>EPSG:3857</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-90.4182892958519</westBoundLongitude>
<eastBoundLongitude>-82.4134778047652</eastBoundLongitude>
<southBoundLatitude>41.6961255799368</southBoundLatitude>
<northBoundLatitude>48.262692384982</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-90.4182892958519" miny="41.6961255799368" maxx="-82.4134778047652" maxy="48.262692384982"/>
<BoundingBox CRS="EPSG:4326" minx="-90.4182892958519" miny="41.6961255799368" maxx="-82.4134778047652" maxy="48.262692384982"/>
<BoundingBox CRS="EPSG:3857" minx="-10065317.9228131" miny="5115568.65804322" maxx="-9174226.38372922" maxy="6150669.28758651"/>
<Style>
<Name>default</Name>
<Title>0</Title>
<LegendURL width="32" height="16">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gis4/arcgis/services/MI/county_wm/MapServer/WMSServer?request=GetLegendGraphic%26version=1.3.0%26format=image/png%26layer=0" xlink:type="simple"/>
</LegendURL>
</Style>
</Layer>
Have also tried using 'crs' for layer instead of 'srs' per this thread, but still no go. Also worried that the 'isBaseLayer=true' will be required even if I do figure out the projection issue, since I need to display these as overlays. Has anyone been able to get a non-WGS84 ArcGIS v10 layer -- either REST or WMS -- to display in an OL map?
... View more
12-29-2011
11:56 AM
|
0
|
4
|
8274
|
|
POST
|
Hi Adam, <snip> In this case, I need to run a stored procedure to get the right OBJECTID from the next row id. <snip> Example SQL code: INSERT INTO GIS.BUILDINGS (objectid, fid, type, subtype, shape) VALUES (sde.version_user_ddl.next_row_id('GIS', 40), 18907, 'BLD', 'RES', sde.st_geometry ('polygon (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077, 2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505, 2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 17) ); As long as you are using ArcGIS software dealing with the SDE feature class, you don't need to worry about the gaps between ObjectIDs. For your reference, here are some help documents relate with this topic. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_is_an_objectID/006z00000009000000/ http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Workflow_Using_SQL_with_existing_feature_classes/006z000000q7000000/ -Ben Thanks Ben, this is exactly what I was looking for. Also in case anyone else was wondering, the referenced link has the SQL for how to get the registration_id from the table and owner names. Additional question: I'm using Oracle 10g (and eventually 11g) but the procedure "version_user_ddl.next_row_id" doesn't seem to exist. If I run the command: exec sde.version_user_ddl.next_row_id('SDE', 50); Oracle returns: Error starting at line 13 in command:
exec sde.version_user_ddl.next_row_id('SDE', 50)
Error report:
ORA-06550: line 1, column 7:
PLS-00221: 'NEXT_ROW_ID' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action: I don't see any like-named procedures in my SDE instance. What should I be using for Oracle10g/11g? Or is that a custom procedure?
... View more
12-23-2011
09:30 AM
|
0
|
0
|
1578
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 10-28-2016 10:51 AM | |
| 1 | 07-20-2023 05:07 PM | |
| 1 | 07-05-2017 03:06 PM | |
| 1 | 07-05-2017 03:39 PM | |
| 7 | 12-09-2022 04:49 PM |
| Online Status |
Offline
|
| Date Last Visited |
06-19-2025
08:18 AM
|