POST
|
Hi Betty, What's your license level for ArcGIS Server? At the basic level, you'd only get Feature Services and Geodata Services. I'm unsure if that's related to your caching question though. Randall
... View more
06-20-2013
11:58 AM
|
0
|
0
|
982
|
POST
|
After investigation, I've submitted the following defect report to the development teams at Esri: [#NIM092220 Operations Dashboard crashes on a Virtual Machine (VM) immediately after configuring the MAP widget.] This is reproducible in multiple environments, the common theme is that this failure is only reported on virtual machines. I'd be curious to know if anyone has been able to get past this crash on a VM, and if so, what flavor of virtualization technology is in place. I've tested using VMWare LabManager and with EC2 instances on the Amazon cloud (which use XEN).
... View more
06-12-2013
11:32 AM
|
0
|
0
|
329
|
POST
|
I'm reproducing crashes when configuring the map widget as well. In all my repro cases I'm working with a VM. I have not yet been able to reproduce on a physical machine. VM1: EC2 instance VM2: VMWare Lab Manager instance I'm continuing to test, but could folks please reply regarding whether crashes configuring the Map widget occur on a physical or virtual machine in your respective environments?
... View more
06-06-2013
07:01 AM
|
0
|
0
|
329
|
POST
|
Hi Harold, In this scenario, the web services will attempt to start when the GIS Server is started and will not be staggered. You can script staggering a service restart by writing a python script to start the services from a scheduled task. An example script can be found here.
... View more
05-29-2013
03:17 PM
|
0
|
0
|
401
|
POST
|
Hi Angeleta, Do those lines only persist in a map service, or do they also display in ArcGIS Desktop when working with your original map document? Trying to determine where the point of failure lies. Also, are you publishing an optimized (.msd based) or 'classic' (.mxd based) map service? Thanks, Randall
... View more
05-13-2013
11:57 AM
|
0
|
0
|
273
|
POST
|
You can use a custom capabilities file: http://resources.arcgis.com/en/help/main/10.1/index.html#//0154000002rt000000
... View more
05-02-2013
12:27 PM
|
0
|
0
|
475
|
POST
|
I haven't had any problems after updating my Windows and Linux boxes to 10.1 sp1. If you're unable to log into manager, dump your browser cache. That generally clears up any issues logging into manager.
... View more
11-02-2012
08:32 AM
|
0
|
0
|
387
|
POST
|
Hi Jacob, 1. I'm assuming you're working with 10.1, is that correct? 2. It also looks like you're authenticating using a Windows user, is that also correct? 3. Do you have authentication defined at the GIS tier or at the Web Tier, and do you use tokens?
... View more
11-02-2012
08:30 AM
|
0
|
0
|
823
|
POST
|
Hi Roma_N, I think we'll need more information to be able to help. a. Where is the source imagery located? b. Are you registering the data source or are you trying to copy the data up to the server for publishing? c. Can you describe where the process is failing? Is it failing while trying to create the service definition? Thanks~ R
... View more
10-23-2012
11:09 AM
|
0
|
0
|
631
|
POST
|
Is the ArcGIS Server 10.0 web ADF application builder installed on the same website on this machine? It sounds like there may be a conflict between the ADF/Server Manager application builder and the web adaptor.
... View more
10-11-2012
05:19 AM
|
0
|
0
|
293
|
POST
|
This can be done in ArcCatalog or the ArcGIS Server admin API, but I believe that there is a bug with making this change using ArcCatalog. NIM085533: Changing the output directory for a service in ArcCatalog does not change the virtual directory of the service
... View more
10-10-2012
01:12 PM
|
0
|
0
|
457
|
BLOG
|
First, what is JMeter? From the JMeter website: “The Apache JMeter™ desktop application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. “What can I do with it? “Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load." That’s all great, but here’s what I do with it: I use JMeter to simulate the load of a group of users concurrently working with ArcGIS Server. These simulated users are SUPERHUMAN, as my JMeter tests fire off requests at the rate of hundreds or thousands per minute. I recently tested memory utilization of 10.1 after sending literally 100 million + query feature requests to ArcGIS Server on an AMI over the course of a week or so. (You’ll be happy to know that I found that memory was well managed during this test). Remember that JMeter is not a browser. While the server is going to complete whatever operation you submit to it, JMeter will not render the response graphically. You get results in the form of a PASS/FAIL notification. Nice. Let’s put that together and run a test. Allow me to walk you through it.What do I need? Great question. You’ll need:
There’s not really an installer for JMeter, everything you need is inside the application folder. The first thing to do is open the JMeterbin folder, and have a look at the JMeter.bat file. On line 71, find the line that reads as follows:set HEAP=-Xms512m –Xmx512m This variable defines the amount of memory dedicated to the Java Heap. I’d increase this to 1024, devoting a full gigabyte of memory to the JVM, like so:set HEAP=-Xms1024m -Xmx1024m Otherwise, particularly on larger tests, you run the risk of going over the Java Heap threshold, which can cause the JVM dedicated to JMeter to fail. After you’ve downloaded JMeter, installed the JRE, and set the JAVA_HOME environment variable to point to your Java install location, it’s time to fire up JMeter. To do this, open a command prompt and navigate down into the JMeter BIN directory (the same place where JMeter.bat lives). Call JMeter.bat from a command line, and the JMeter application will open. With JMeter open, it’s time to first define some defaults. To do that, right click on the Test Plan icon (It looks like a beaker) and add an HTTP Request Defaults Element. (Add>Config Element>HTTP Request Defaults) Now we will populate some of these parameters on the HTTP Request Defaults page. Server name or IP: that’s self-explanatory. Insert the IP address or hostname of the machine that runs ArcGIS Server (or the proxy that points to server). I don’t usually define any connect or response timeouts here in JMeter. The path will be the path to your SOAP or REST endpoint – to the operation you want to perform (query, export map, etc.). The parameters that are sent with the request are similar to the parameters that are defined if you’re querying through the REST Services Directory. I find it helpful to use the Fiddler tool to capture the URLs of queries sent either through the service’s REST page or your web application to assist with populating these parameters. For instance, you may issue a query based on a set of X/Y coordinates with the intention of retrieving some attributes for a given feature. In that case, you may capture a URL similar to the following in Fiddler: http://randall:6080/arcgis/rest/services/usa/MapServer/0/query?where= &text=&objectIds=&time=&geometry=-119.78861600000%2C35.30318900030 &geometryType=esriGeometryPoint&inSR=4269&spatialRel=esriSpatialRel Intersects&relationParam=&outFields=*&returnGeometry=true&maxAllowable Offset=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields =&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false &f=pjson In this URL, I’m issuing a query to layer ‘0’ in a service called ‘usa’ serviced from port 6080 on machine called ‘randall’. I’m not using any real SQL operators (the where clause), nor am I looking for a specific text attribute (text). I don’t care about the object ID, or the time element. I do care about the geometry, that’s where my XY values are specified. In fact, the only elements I care about in this test is the spatial reference (4326), the spatial relationship (intersect), the outfields (*, since I want them all), and I’m submitting the geometry as a point. Finally, for this test, I would like for the server to respond to the requests I send in JSON format. With that in mind, I can truncate the URL that I’ll be parsing a bit, to make setting up the JMeter test a bit more manageable: http://localhost:6080/ArcGIS/rest/services/usa/MapServer/0/query?&geometry =-149.54518800000%2C70.42196900010&geometryType=esriGeometryPoint&inSR=4269 &spatialRel=esriSpatialRelIntersects&returnCountOnly=false&returnIdsOnly= false&returnGeometry=true&outFields=*&f=json Once I’ve gathered these defaults, I putthese inputs into my JMeter project: Next, I’ll need to set up some simulated users. While we’ve got the request defaults down, we want to test with a good many values – in other words, we don’t want our application to just take the same request over and over, that’s too easy. It’s best if we can test with many different samples. In JMeter, this is accomplished by creating ‘thread groups’. Right-click on the test plan and select ‘Add’, then ‘Threads (Users). In my case, we’re simulating a load of 16 users, so each thread group will contain 2 threads. I want to see how much load my application can take before it fails, so I’m setting this test to loop forever. Once the Thread Groups are set up, we’ll need to set up the actual requests, which contain the defaults we set up earlier, as well as the variables that we want to pass in our requests. To that end, right click on a Thread Group; choose ‘Add’, ‘Config Element’, and then ‘HTTP request defaults’. This screen should look familiar; it’s exactly like the defaults we originally created. In this case, the objective of the test is to see how much load the server can handle if many hundreds of thousands of query requests are sent to gather the attributes of a feature based on XY coordinates passed through the query. So, for each request sent by JMeter, the only query element that changes from request to request will be the input point geometry. To that end, I’ve compiled a .CSV file, and set up a CSV Data Set Configuration element in my test project (Add>Config element>CSV data set Config). Your data source doesn’t have to be CSV, you can use a database table if you prefer – use a JDBC connection for that. Per the figure above, my CSV file is called xycord.csv (I’ve got the CSV stored in the same folder as my test plan – if yours is stored somewhere else, set the filename to the absolute path where it’s located. Be sure to set the variable names properly – if there are spaces and commas in your CSV file; make sure that this element reflects those spaces. The comma delimitation here only separates variable names in the CSV – the actual delimiter used in the CSV file is described in the ‘Delimiter’ parameter. Since I’m allowing my test to run until I force it to stop, I’m recycling the requests and am not stopping when JMeter detects that the end of the file is reached. For my test, I’ve replicated each HTTP request parameter for each of the users that I’m simulating in the thread groups I’ve set up. Now it’s time to test. Save the test plan. In JMeter, go to ‘Run’, then ‘Start’. Click on one of the reports. With luck, your requests will run. If the error percentage you get is 100%, then you’re likely shooting bad requests. You can examine the requests you’re sending to the server by working with the Fiddler tool: If Fiddler is installed on the same machine as JMeter, then in the main HTTP request defaults page, you may force traffic to go through the Fiddler proxy so that requests and subsequent responses are captured. By default, Fiddler listens on port 8888, so you can set up JMeter as follows: When you start your JMeter run again, Fiddler will capture the traffic, which will allow you to see what JMeter is passing so that you may make adjustments according to your needs.A Few Tips Use as few listeners as possible. For smaller tests, the graphical counters are great. These counters are memory intensive, however, and I’ve crashed my JVM with larger tests when running with counters. I just use the Summary Report – it’s got the information I need. Consider using JMeter from a command line interface once your configuration is set up. The Command Line option is minimally resource intensive. That’s about it for this installment. I’ll follow up with additional testing workflows as I can.Randall W. - Server Support Analyst |