Poll an ArcGIS Server for features Error

4918
7
01-12-2014 11:19 PM
aymansalah
New Contributor III
I have created a service on ArcGIS Server 10.2 containing layer on Oracle Database.
I used the Rest to query the layer and every thing working fine.
I used this service as an input in GEP (Poll an ArcGIS Server for features).
It dosn't work. ArcGIS Server shows an error when GEP tryies to get the features (Data base error: Attribute column not found [ORA-00904:" ESRI_OID invalid identifier])
0 Kudos
7 Replies
MingZhao
New Contributor III
I assume you are using the "Get Only the New Features" option.  If it is true, could you try it while setting it to false?  Just a way to narrow down the problem.  The problem appears to be GEP sent a query assuming ESRI_OID as the object id field but the Oracle database says there is no such field.  Could you send me a map package that contains your feature classes?  I would like to publish it to my ArcGIS Server and try to reproduce this problem in 10.2.

Thanks,

Ming
0 Kudos
aymansalah
New Contributor III
Actually I didn't use this option, but I tried both when  "Get Only the New Features" On and Off. the same problem,
attached the map package.
Not the map package contains a layer that contains OBJECTID. this field doesn't exists in the real data I have.
0 Kudos
aymansalah
New Contributor III
I have created a service on ArcGIS Server using the attached file map package. I create an input ("POLL an arcgis server for features) from this service and created a GEP service using this input. No error appears in the ArcGIS Server or GEP. but no data coming  from the input.
0 Kudos
MingZhao
New Contributor III
I published your mpk in my ArcGIS Server on an Oracle database.  With 10.2 and 10.2.1 versions of GEP, I got 14 features each poll.  The log file indicates null features caused the problem. 

2014-01-16 13:44:46,547 | ERROR | in DataProcessor | InboundStreamImpl                | 302 - com.esri.ges.manager.internal-streammanager - 10.2.1 | The Adapter for Input 'fs-poll-in' reported an error
java.lang.NullPointerException
at com.esri.ges.adapter.json.FeatureJsonInboundAdapter.parseFeature(FeatureJsonInboundAdapter.java:190)[242:com.esri.ges.framework.adapter.feature-json-adapter:10.2.1]
at com.esri.ges.adapter.json.FeatureJsonInboundAdapter.receive(FeatureJsonInboundAdapter.java:127)[242:com.esri.ges.framework.adapter.feature-json-adapter:10.2.1]
at com.esri.ges.manager.stream.internal.InboundAdapterProxy.receive(InboundAdapterProxy.java:40)[302:com.esri.ges.manager.internal-streammanager:10.2.1]

If you look at the table, there are some records with null coordinates.  You won't find a feature for these records because the features are null.  As a result the feature json inbound adapter choked on these. 

First, make sure you see the same problem as what I described.  If not, we have to look at a different direction.  Secondly, see if you can remove these records from the feature class and try polling again.

This problem is fixed in 10.2.2. 

Let me know.

Thanks,

Ming
0 Kudos
aymansalah
New Contributor III
I created a new layer in GeoDatabase from the same old layer excluding the null features. then followed the process of creating input (POLL an arcgis features)  then creating a GEP services.
No features polled from arcGIS, put this time no errors on ArcGIS Server or on GEP. nothing happend no error no where and no features polled.
attached the new MAP package from the new data
0 Kudos
aymansalah
New Contributor III
Any one can help, why this happened? is there something I am missing or it's a bug
0 Kudos
RJSunderman
Esri Regular Contributor
Hello Ayman "?

If the event count for your Input polling ArcGIS Server for Features is not indicating that any features are being received, this is usually because an existing event definition does not match the data being received so the Input"?s adapter is not able to create a GeoEvent.

I opened your map document from the map package you posted. None of the feature coordinates contain null values, but I did notice that several hundred of the UNIT_DBID attribute values were null. I used ArcMap"?s field calculator to assign those value to -1, just so that all of the features and attributes would have valid non-null values.

I published the map document to my local ArcGIS for Server as a map service with feature access enabled (so I have a feature service as well).

In GeoEvent Processor I created a new Input "?Poll an ArcGIS Server for Features"? with the following configuration.

[ATTACH=CONFIG]30956[/ATTACH]

The Input fs-poll-in immediately received 804 new events "� and every 60 seconds another 804 events were polled from the feature service. The GeoEvent Definition generated for the events looks like:

[ATTACH=CONFIG]30957[/ATTACH]

Note that you do not need to incorporate the Input in a GeoEvent Service or send event data to an Output to verify that an Input is able to poll ArcGIS Server for features.

I would recommend using GeoEvent Processor Manager to delete the Input, GeoEvent Service, and Output you have created. Also delete any generated GeoEvent Definitions you have created for this data. Make sure that a newly created Input is able to create a new GeoEvent Definition.

Be aware that the JSON adapter - the component used by the Input to interpret the data being received -  will generate a GeoEvent Definition based on the content of the first event received. The adapter will omit any fields from the GeoEvent Definition whose value is null. This is the behavior at 10.2.1 "� we are looking at changing it at 10.2.2 so that the fields will be created even if the attribute value in the first event received is null so that the generated GeoEvent Definition matches the schema defined by the feature service being polled.

Hope this helps -
RJ
0 Kudos