Select to view content in your preferred language

Server Manager logs say drawing error, invalid column name?

3215
10
04-18-2023 04:28 PM
Hayley
by
Frequent Contributor

We recently updated some field names, then changed them back after some issues, in one of our Enterprise services. 

Looking the map, the layer is fully drawing and all symbology, labels and pop-ups are how they should be. 

However in the Server Manager logs, it is spitting out constant errors about the layer saying:

There is an error drawing layer: *layer name*
There is an error during the draw *layer name*. Attribute column not found [42S22:[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name *old field name*,(2.) ] [*layer name*][STATE_ID = 12].

 

Is it getting hung up on an old field name? We have already repathed the symbolgy, pop-ups and labels to the current field names as well as in the Visualisation tab of the feature layer (unable to do in the map image)?

HL
0 Kudos
10 Replies
MichaelVolz
Esteemed Contributor

Did you delete the layers from the Pro with the field name changes?  I'm thinking that the Pro project is still looking for those field names somewhere in the project like ghost field names.

If it's not too much work maybe recreate the project and publish and see if those errors persist.

0 Kudos
Hayley
by
Frequent Contributor

Hi @MichaelVolz, thanks for your response. 

The layers were already published to Enterprise, and we just applied changes to the field names from the database so they do not sit in a project. They are referenced layers so any changes flow without needing to publish again, we are getting that error in the change log for the published service in our Enterprise

HL
0 Kudos
MichaelVolz
Esteemed Contributor

I thought the workflow would be that you would need to overwrite the service with a project that has the layers.  That is the workflow that I would use.

0 Kudos
Hayley
by
Frequent Contributor

Hi @MichaelVolz , do you mean overwrite the layer/service?

HL
0 Kudos
GoranGobac
Occasional Contributor

Hi @Hayley just want to add to @MichaelVolz here.
As I read this it is as you are using a Referenced Database.
And if so like we do on Oracle example ArcGIS needs Admin SDE Schema User where ArcGIS Enterprise DB Infra is saved.
That said you should NEVER change the field names in DB for Tables that are used as source for Referenced Services. You should always do the change in ArcGIS Pro through Field Designer option.
Also if done this it is not always needed to overwrite the Service but if you are cloning content between stages it is highly recommended.
So that is my take on this matter.
Br
Goran  

0 Kudos
Hayley
by
Frequent Contributor

Hi @GoranGobac, yes we did make the changes in ArcGIS Pro in the Field Designer. 

Can you explain what you mean by needing Admin SDE Schema User?

HL
0 Kudos
GoranGobac
Occasional Contributor

Hi @Hayley  if you are using Oracle DB as Geodatabase than you will have to have an SDE User.
SDE is a Oracle Schema name that is used standardly with ArcGIS Enterprise.
Under this user you will have necessary ArcGIS Enterprise Structure (Tables and Views) 
This User has Admin Privileges in ArcGIS Enterprise.
ArcGIS Enterprise is using this user as broker between ArcGIS Enterprise and Oracle technology.
Under this User information is saved like which Fields from a table are shown in your published Service in Portal. That is why if a change is done directly on Oracle the SDE User will not get this Info and therefor this Field wont be visible per Default as wenn you do the same in ArcGIS Pro. 
More to this topic you can find here
Privileges for geodatabases in Oracle—ArcGIS Pro | Documentation 

0 Kudos
Hayley
by
Frequent Contributor

Hi @GoranGobac  thanks for the info, we are using SQL databases

HL
0 Kudos
Brownschuh
Frequent Contributor

Running into a very similar issue today.  We had performed some schema changes, had to go through a whole process of converting a numeric field to text while preserving the old field name.  Basically we add a new temp field (eg. FieldNameNEW), populate it with the old data, delete the older original field, create a new field with the old name, populate that, and delete the temp field with the suffix NEW.  Republish the map service and of course it broke one of our production dashboard.  The server manager is still trying to reference that intermediate, temp field wit the NEW suffix.

Geodatabase error: Attribute column not found[42S22:[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'FieldNameNEW'.]. Attribute column not found.

 

Weird thing is that it only broke the dashboard.  I can see the map service in the rest endpoint, access the data in a web map, open the attribute table (in both the dashboard and a web map).  

And I've tried to troubleshoot this a ton of different ways, but nothing has worked:

  • republish map service
  • delete and recreate map service
  • assign the layer a new sublayer ID, repulbish
  • remove layer from map service, republish, re-add layer from DB, and republish
  • create new map service with brand new unique name
  • open a brand new dashboard and add layer from original map service
  • open a brand new dashboard and add the same layer from a different map service

I've basically boiled it down to the feature class level, but I cannot figure out why or where there is still a reference to a field that doesn't exist anymore ... 

0 Kudos