AnsweredAssumed Answered

Unable to make many concurrent SDE connections using arcpy

Question asked by Nobel2020 on Oct 10, 2019

I am try to make concurrent connections to the my SQL Server SDE using arcpy and multiprocessing libraries 

When the number of working is large i.e. 16 , I got this error:

 

ERROR 000229: Cannot open GeoDB.sde/GeoDB.dbo.Layer1

 

while the code works fine if I am using small number of workers i.e. 4 or just without multiprocessing

 

Here is the simple code that successfully run without multiprocessing 

 

 

arcpy.MakeFeatureLayer_management("GeoDB.sde/GeoDB.dbo.Layer1", "mylayer","status = 1")

 

 

here is the code with multiprocessing 

 

def exe_task(layer_name):

      arcpy.MakeFeatureLayer_management("GeoDB.sde/GeoDB.dbo.Layer1", layer_name,"status = 1")

      return True

 

from multiprocessing import Pool

import arcpy

if __name__ == "__main__":

      number_of_workers = 4

      p = Pool(number_of_workers)

      tasks = ["layer1","layer2","layer3","layer4"]
      result = p.map(exe_task, tasks)
      p.close()
      p.join()
      print(result)

This is just a sample code to show the problem, if the number of workers 4 it works fine, if it is large like 16 it gives the error above. (also you need to increase the tasks number equal to workers numbers)

 

is there any configuration on arcpy or sde to fix this problem? 

Outcomes