LP#1596595 Targeter use child editor for settings
authorBill Erickson <berickxx@gmail.com>
Tue, 7 Feb 2017 15:27:52 +0000 (10:27 -0500)
committerKathy Lussier <klussier@masslnc.org>
Fri, 17 Feb 2017 05:58:53 +0000 (00:58 -0500)
commit129a38be37e524298767e01a991f7e83a3ad25ea
tree833d7f5f52be24efc7eccb63fb05045c6d647ae3
parentdbcd6ec54caf3f4571edfadca184e67b517b1bba
LP#1596595 Targeter use child editor for settings

Use the CStoreEditor linked to the ::Single (child) targeter object when
possible to fetch org unit setting values.

In cases where settings for many org units have to be retrieved at once,
the settings lookups can take long enough that the in-transaction editor
on the child targeter can timeout.  Using the child's editor directly
for the lookups will prevent this timeout and make the lookups a little
bit faster, since a new connect will not be required for each lookup.

This timeout scenario can occur with settings like
circ.holds.max_org_unit_target_loops and
circ.holds.target_when_closed, when there is wide variety of targetable
copies, because each have to be fetched once per target-able copy circ lib.

A secondary optimization would be a batch org setting lookup that
batches on org unit instead of setting name.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Open-ILS/src/perlmods/lib/OpenILS/Utils/HoldTargeter.pm