[GIS] Making Table data available to a map service

arcgis-10.0arcgis-flex-apimap-service

I am trying to make a non geographic table available to a map service. I thought you simply added the table to the MXD and publish it with a relate to the field they were linked and then publish the service, where the data would be available as a table layer. I have done this, and only the geographic data is shown as an available layer. Am I missing a step?

I now know, I do not want a Join or relate; I want the table to available via a query on the table.

edit

OK, there seems to be a few issues here.

We are using a direct connect, and this needs Oracle Client installed on the ArcGIS Server. The SOC and SOM accounts were a red herring. If we're going straight through the SDE connection port, then you don't need the client, but as we're going through to the db, i.e. using 2 tier architecture, rather than 3 tier, then we need the client.

So we're installing the client on the server, as we've never directly connected before, and I'll post the results. But now, looking back on it, it all seems logical really, as we're bypassing the SDE layer

This is for a Web application, so the data is exposed via REST on the 'net

I am actually not too sure it is possible, which is very odd…

edit

Just to ensure I am not going mad, and am doing this all the right way; I am creating an MXD, adding a featurelayer to it, then adding a 'flat' table (no geo data), saving it and serving it up on the ArcGIS server. when I do, all of the features display, but querying the Rest interface tells me there are no tables, just this one polygon layer.

That's all cool isn't it? I am not insane?

Best Answer

This sounds like a permissions issue, I've dealt with something similar before. I had a view in SQL Server that I needed to join onto a FC in my MXD for a map service, here's what I had to do:

  1. give my SOC account (which in my case is a domain acct) db read and db execute access to my database
  2. create a ole db connection in ArcCatalog with OS login
  3. copy that odc file to the same directory my mxd lives in (this is with a mxd service, btw, not msd)
  4. create a connection to my view using above odc connection, add view to my mxd

It's really about your SOC account having access to the db, but for some crazy reason, that odc file that defines the connection has to live in the same directory as the mxd behind the service.