I have a GP service published on ArcGIS Server 10.2.2. This GP service is going to be used by multiple users at the same time and for intermediate data storage I use in_memory workspace.

I was not able to find on the Internet though whether the datasets I save in in_memory in one GP service session will be "visible" in another one, and thus result in lock issues when trying to overwrite an existing dataset or delete a dataset that is currently being used by another GP service session.

I am hoping for having in_memory encapsulated for each GP service run (session), but wanted to check if anyone knows for sure how it works with GP services.

I know that I can use arcpy.env.scratchGDB for the intermediate data storage in a file geodatabase (which will be unique for each GP service run), but it is way slower and since I have to write many times during the run, this will negatively affect the service performance.

The same question available here on GeoNet with no answer.


Output to the in_memory workspace is not available from one instance to another. An instance is a process (ArcSOC.exe). These processes do not share memory, nor talk to one another.

  • Thank you, Kevin! Good to know. I asked this because I have gotten some locks established when running multiple GP service sessions of the same service. Then those locks were probably on the database level. Thanks again. – Alex Tereshenkov Nov 4 '14 at 8:47
  • 1
    Yeah, you could still be getting locks on the database. That would have nothing to do with writing output to in_memory. It would be what tool(s) are being used and if they need to put a read or schema lock on the input features. (schema being the possible problematic lock depending what you're doing) – KHibma Nov 4 '14 at 14:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.