|
POST
|
I have data collected and stored in database. Then I read the data from Arcgis Pro, PGAadmin and Navicat. Strangely, the 2 types of apps give out different readings. First, in arcgis pro. I filtered the result using : orig_fid = 2827 or orig_fid = 6242. The result is as follows : Second, using Navicat and PGAdmin. I run these very same queries on both apps : select orig_fid, sts_survey,coalesce(sts_survey,'xyz') as sts_survey2 from ptt_survey.ptt_bnba_2026 where (orig_fid = 2827 or orig_fid = 6242) The query has 2 different methods in pulling the data. One is using "sts_survey", the other one is using "coalesce(sts_survey,'xyz')" The result is as follows : Question: 1. Why are the reads not consistent ? PGAdmin / Navicat VS Arcgispro give out different results. PGAdmin / Navicat give out "NULL" and "done_", where as Arcgispro is always "done_". The correct one is "done_". 2. How does Arcgispro read the records ? There is no versioning. Thanks
... View more
02-01-2026
11:34 PM
|
0
|
0
|
178
|
|
POST
|
I want to share my experience. Hopefully its still related. It seems that changing the service type from Dedicated to Shared does effect the system. In my experince, Shared Instance is way better... Here is the graph of Service Maximum Running Instances of 4 Service : 1. Map Service 1 (min 2, max 4) --heavily used 2. Feature Service 2 (min 2, max 7) --heavily used 3. Feature Service 3 (min 1, max 2) --seldomly used 4. Map Service 4 (min 1, max 4) --seldomly used Here is the graph of Max running Instances : The previous value of Map Service #2 was Shared while the others are the same. The system runs smoothly. No error. Can anyone explain what are the drawbacks of Shared compared to Dedicated in terms of data being collected ? I read that if using Shared, the instance can be destroyed if maximum time has passed. What does it really means ? losing data that has not been saved during edits ? or something else... ? My setup is : Portal running on AWS Xeon 2.5 GHz with 2 physical core (4 logical cores) and 16 GB RAM
... View more
01-27-2026
08:48 PM
|
0
|
0
|
1671
|
|
POST
|
I have ArcGIS Enterprise 11.0 with components consisting of Portal (hosted on AWS), Enterprise Geodatabase (hosted locally on Postgres) . I have just a handfull of services that are being used. Some of them are used on daily basis and heavy edits too. Here are the few services that I have : 1. Map Services. The biggest one contains building layer in polygon. There are 50K objects here. Some other 7 map services contains relatively really small records (around 100 records in total). These 8 map services are served using visibility range (visible on particular zoom scale). 2. Feature Service. containing point that their attributes will be updated. There are 50K objects. This is also served using visibility range. But, when I look to its statistics, I am a little bit confused because of how the graph of Service Maximum Running Instances looks like. Here is the image of server statistics: The "Building - Polygon" is acting as background. It is a Map Service which I (accidentally) set the instance to Dedicate (min 3, max 7). The "data entry - point" is where the actual transaction happenning. It is a Feature Service where users accessing data via Field Map and Arcgis Pro. The questions are: 1. Why the Service Maximum Running Instances of "data entry - point" is flat 0, although its Total Request and Maximum Response Time are always higher ? Is it normal ? 2. In my case, what is the implication of having Shared Instance for the WFS service to the data being collected ? 3. Shouldn't it be the WFS hosted using Dedicated Instance ? I feel weird now.. we have been thought to use Dedicated Instance for WFS services. The system feels more stable now, only crash once for these 4 weeks running. When I had WFS hosted in a Dedicated Instance, I experienced more crashes... In the previous experience, in another service in the very same server, I used to set the WFS layer to a Dedicated Instance. I tried some combinations between Max Number of instances and Heap Memory. The system *eventually crash* every some days when I have 8 - 9 Dedicated Instances and 256 - 1024 MB of Heap Memory. After a few combinations, I have settled with Max Dedicated Instance of 7 and 128 MB of Heap Memory. Need any advice. Thanks
... View more
01-25-2026
08:09 PM
|
0
|
1
|
317
|
|
POST
|
I come to a conclusion that somehow the Field Map can not handle such error in a correct manner. Allow me to summarize the trouble after a trigger is implemented: 1. First, entry an *incorrect* record (data that has already existed) 2. The response from the Field Map : "Error.." 3. Second, entry a *correct* data. 4. The response from the Field Map : "Error.." 5. Repeat step 3 by directly hitting the Save button 6. The response from the Field Map : "Success !" So, for my case above, the second entry (step number 3), the Field Map still regard it as error. The subsequent entry (step number 5), is success. The trigger is not a problem. It seems that the Field Map still regard the second entry (step number 3) incorrect due to the first entry (step number 1). Perhaps there is a cache that has not been cleared. Or maybe something else. I can not confirm the exact cause. thanks
... View more
01-25-2026
07:19 PM
|
0
|
0
|
1581
|
|
POST
|
I want to estimate the components along with the cost of field survey using Field Map and AGOL. This survey activity includes : - Field Map apps (contains maximum of 2 Feature Services) which will be accessed by 60 surveyors - Dashboard for monitoring survey result (such as daily surveyors achievement, number of data collected daily, number of surveyors each day and monitoring some survey parameter results). This will be accessed by 2 people for twice a day. - Custom background using our own shapefile data published as Map Service. Propably we need 4-6 Map Services. - Tabular data analysis via Arcgis Pro (we already got the licenses for arcgis pro) which will be accessed by 10-15 people - No need to monitor each surveyor's position. I guess this will reduce cost of AGOL credits Any other cost components that I missed out ? Thanks
... View more
01-21-2026
07:44 PM
|
0
|
0
|
224
|
|
POST
|
Here are some results that I pulled from Arcgis Server Log: === else RAISE EXCEPTION SQLSTATE '90001' USING MESSAGE = 'DUP'; return null; SEVERE Dec 12, 2025, 14:36:02 An error occurred. /test_1.MapServer SEVERE Dec 12, 2025, 14:36:02 Error: Underlying DBMS error [ERROR: 504 INSERT CONTEXT: PL/pgSQL function test() line 17 at RAISE (schema1.test_1)::SQLSTATE=P0001] [test_1]. Test01/test_1.MapServer ===else RAISE EXCEPTION SQLSTATE '90001' USING MESSAGE = 'DUP'; return 0; Error: Underlying DBMS error [ERROR: cannot return non-composite value from function returning composite type CONTEXT: PL/pgSQL function test() line 19 at RETURN (schema1.test_1)::SQLSTATE=42804] [test_1]. ===else RAISE EXCEPTION SQLSTATE '90001' USING MESSAGE = 'DUP'; Error: Underlying DBMS error [ERROR: control reached end of trigger procedure without RETURN CONTEXT: PL/pgSQL function test() (schema1.test_1)::SQLSTATE=2F005] [test_1]. ===Without raise dan Without return No error message
... View more
12-12-2025
01:30 AM
|
0
|
1
|
2117
|
|
POST
|
@JeffSilberberg Yes.. shouldn't be "scema". I just want to show that the table reside in a schema. Thanks Anyway, I did try the code you give me. Still the same behaviour on the Field Map, just like what I have described above. The problem is not with the trigger, but how the Field Map reacts to the trigger.
... View more
12-10-2025
10:11 PM
|
0
|
2
|
2134
|
|
POST
|
Hi @JeffSilberberg The code you provide gives out the same result. Anyway, now I find out behaviour in Field Map this : 1. I enter duplicate value. press SUBMIT 2. Error comes up "Unable to submit. Service error code 500. bla bla" 3. Then without exiting, I edit the value again. Now type in a non-duplicate value. press SUBMIT again 4. Error comes up "Unable to submit. Service error code 500. bla bla" 5. Then I press SUBMIT again straight away. Success. 6. I check the database. The record is there with objectID x+3 What I want is, when I press SUBMIT for the second time (step #3), the record will be inserted without error. The trigger itself is not a problem when executed using database query run from PGADMIN. Thanks FYI, Anyway, these 3 codes give out the same result in postgres: 1.IF (SELECT EXISTS(SELECT FROM scema1.chamber where id = new.id)) = 'false' THEN 2.IF (SELECT EXISTS(SELECT 1 FROM scema1.chamber where id = new.id)) = 'false' THEN 3.IF NOT EXISTS (SELECT 1 FROM schema1.chamber WHERE id = NEW.id) THEN
... View more
12-10-2025
06:55 PM
|
0
|
4
|
2139
|
|
POST
|
Hi @RobertKrisher The database is run locally, not in the cloud. I am planning to move the Arcgis Server out of AWS next year. So this will make both of them rum locally. FYI, I found that the attribute rule (Constraint) in gdb_items. This is the query : select definition from sde.gdb_items where physicalname = 'DB.SCHEMA.TABLE_NAME'. So, does this mean that the Constraint run on the Server Side ? How do you differentiate between attribute rules that run on the Client Side vs Server Side ? Additional: I found 2 good readings : Atributes Rules Tips and Best Practices and Pros Cons Attribute Rules vs Trigger
... View more
12-09-2025
04:26 PM
|
0
|
1
|
304
|
|
POST
|
The main reason I am worrying too much is that the Portal is hosted on cloud (AWS). FYI, any traffics that enter / leave to / from Portal will generate expenditure for us. I am talking about a really heavy traffic. So, I need to spread the balance between the servers, DB and Portal. I am hoping that the Attribute Validation, if it is runs in the Portal server, is implemented on the DB via Trigger.
... View more
12-08-2025
11:45 PM
|
0
|
0
|
1348
|
|
POST
|
I might add one more thing : Cons of Arcade Attribute Calculation Rule is: if it uses $datastore in the script and the data is accessed via Feature Service hosted on Cloud (like AWS or AGP), it will generate cost on the cloud usage. "if (id == null || id == "") { return true; }var fs = FeatureSetByName( $datastore, "db1.sch1.FC1", ["Oid", "objectid"], false );
... View more
12-05-2025
01:22 AM
|
0
|
0
|
162
|
|
POST
|
@RobertKrisher "The attribute rule is stored in the geodatabase and is exposed through a validation service to clients" 1. Where can I see the attribute rule in the geodatabase ? 2. What is the validation service looks like ? Is it a some sort of wer services ? I need to see the object.
... View more
12-05-2025
01:02 AM
|
0
|
0
|
1428
|
|
POST
|
@RobertKrisher any technical insight regarding why one is better than another one ? I am thinking that database trigger works on Database Tier, whereas the Attribute Validation works on Server Tier. So the the database tier will work better because it is more efficient. But I dont know how this Attribute Validation works in Map Feature Service ? The Attribute Validation never gets published as service but how can it work when one access the data via Map Feature Service ? Where is it stored ? On the other hand, database trigger can be seen as database object in the database. I need more explanation. Thanks
... View more
12-03-2025
11:38 PM
|
0
|
1
|
1444
|
|
POST
|
I am just wondering if Attribute Validation is better with Database Trigger or Arcade. Suppose I want to do Attribute Validation about the value of one coloumn that depends on the value of another coloumn OR maybe I want to limit the data entry of a coloumn OR maybe I want to populate a date coloumn automatically. In a scenario in which the data (stored in SDE) have to be accessed by many people via Map / Feature Service, which one is more suitable in term of fastness and reliability ? What are the considerations in choosing a particular method ? Thank you
... View more
12-03-2025
12:57 AM
|
0
|
11
|
1808
|
|
POST
|
I have Attribute Validation created in Arcgis Pro. This validation is used to check a coloumn uniqueness. The Feature Class is then published to be consumed by Field Map apps via Feature Service. This is the code : var id = $feature.code_oid; if (id == null || id == "") { return true; } var fs = FeatureSetByName( $datastore, "db1.schema1.FC1", ["code_oid", "objectid"], false ); var oid_self = $feature.objectid; var others = Filter(fs, "code_oid = @ID AND objectid <> @oid_self"); if (Count(others) > 0) { return { "errorMessage": "code_oid already existed." }; } return true; The validation works eventhough it is accessed via Field Map. I am wondering : 1. How can this Attribute Validation be accessed via Field Map ? Where is it actually stored ? 2. "var others = Filter(fs, "code_oid = @ID AND objectid <> @oid_self");" a. can this part be changed to other logic ? More like code refactoring. I am thinking of using a Postgres-like function like "EXISTS" to avoid scanning all rows. b. Can the fields involved in the Filter here (code_oid and objectid) be indexed ? How to index them if they are stored in Datastore? 3. "var fs = FeatureSetByName($datastore,"db1.schema1.FC1",["code_oid", "objectid"],false);" a. Does this mean that the data are stored in the Datastore ? If yes, it will mean that its space will increase as the amount of data increasing. Where to check the physical location of Datastore ? b. Does $datastore acts as pointer to database or it acts as storage of the table itself (ie: the data are copied from database into Arcgis Server) ? Thanks
... View more
12-01-2025
09:59 PM
|
0
|
1
|
532
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 11-25-2024 12:33 AM | |
| 1 | 11-21-2025 12:57 AM | |
| 1 | 11-12-2024 08:22 PM | |
| 1 | 10-13-2024 11:55 PM | |
| 1 | 02-25-2022 05:49 AM |
| Online Status |
Offline
|
| Date Last Visited |
02-04-2026
05:39 PM
|