6

Is it possible to check licences in/out as needed within modelbuilder? or will the following work -write a script to turn arcinfo licence on when the tool requires it and off once it's done?

I need to run a complex model on 100+ segments of data on multiple machines concurrently and we have only one arcinfo licence which is required only by the eliminate tool. Each segment takes about an hour which is approx 100hrs of processing time. We don't have this much time so need to split the process into 6 machines running the arcview licence...the blocker is one-step needing arcinfo. As the machines will need the licence for only 10mins or so at differeing times, I want to get the model to run in arcview upto the eliminate, check-out arcinfo (or if unavailable keep checking every 5 mins), finish the tool and then check-in the info licence so another machine can take it and continue.

3
  • Is your license single-use or a concurrent floating license?
    – Mapperz
    Commented Nov 18, 2011 at 3:26
  • Wouldn't it be simpler to dedicate a single machine to running the eliminate tool, as you can only run it on one machine at a time anyway. Commented Nov 18, 2011 at 12:32
  • It's a concurrent licence so we need to grab the info licence when needed. We can't afford to dedicate a single machine as there are to many zones to process (100+) and so farming them out to all 6 licences cuts the time, since info will only be required at different times (since each machine will get to that step at a certain time).
    – GeorgeC
    Commented Nov 18, 2011 at 21:30

2 Answers 2

7

You mention using a script, so what about in the script utilizing the SetProduct function? If I understand it properly, you have to explicitly set the product (by importing it) before you import the arcpy module:

import arcinfo 
import arcpy

arcpy.env.workspace = "C:/Data"
arcpy.do_whatever_requires_arcinfo

Edit: I haven't tested this, but based on your comment below, how about checking for the availability of the ArcInfo license:

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>> import arcpy
>>> arcpy.CheckProduct("ArcView")
u'Available'
>>> arcpy.CheckProduct("ArcInfo")
u'Available'
>>> if arcpy.CheckProduct("ArcInfo") == "Available":
...     import arcinfo
... 

...and then if it's available, import arcinfo and do your task. You could perhaps incorporate Python's time.sleep function to wait until you check again, assuming the license is still tied up.

2
  • Yes this is what I was refering to but it's more complicated than that as it has to set the info licence from within a model running in arcview and if not available continue to the next area but check for the info licence and when available contine processing on the incomplete areas.
    – GeorgeC
    Commented Nov 18, 2011 at 21:32
  • @GeorgeC - see edit Commented Nov 18, 2011 at 22:16
3

If each process can reset the license manager it can re-signin the arcview license.

The image below shows available concurrent (floating) license.

enter image description here

Dirty Hack - the license server admin can be 'hacked' to loop the existing license to make more licenses available - but basically this breaks the license agreement. (google it)

5
  • thanks, how can the process reset the licence manager. Can't do a hack as then I wouldn't be employed anymore :-)
    – GeorgeC
    Commented Nov 18, 2011 at 4:17
  • 1
    ArcStorm? That sounds a lot more cool than I am assuming it probably is.
    – Nathanus
    Commented Nov 18, 2011 at 22:23
  • an old cataloging system - arcstorm
    – Brad Nesom
    Commented Nov 18, 2011 at 22:25
  • ArcStorm (Arc Storage Manager) is ESRI’s implementation of Client/Server technology for managing distributed ARC/INFO databases. cagis.hamilton-co.org/CAGIS/DataDictionary/asoverview.html
    – Mapperz
    Commented Nov 18, 2011 at 22:33
  • Definitely not as cool.
    – Nathanus
    Commented Nov 18, 2011 at 23:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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