[open-ils-commits] [GIT] Evergreen ILS branch rel_2_10 updated. 9eab5d3c026008d695dd8cea5ec22e0580cd8f04
Evergreen Git
git at git.evergreen-ils.org
Fri Feb 10 17:26:58 EST 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_2_10 has been updated
via 9eab5d3c026008d695dd8cea5ec22e0580cd8f04 (commit)
from ce50485cc2433753dc496276874df49ddda9ab7b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9eab5d3c026008d695dd8cea5ec22e0580cd8f04
Author: Bill Erickson <berickxx at gmail.com>
Date: Tue Jan 3 11:59:26 2017 -0500
LP#1653742 Copy tree authoritative API share cstores
Avoid opening one cstore connection per requested org unit in the
open-ils.cat.asset.copy_tree.retrieve.authoritative API by creating a
single shared cstore connection at the top of the API shared by all
API actions.
To test:
1. In one terminal:
% tail osrfsys.log | grep transaction.begin
2. In another terminal:
srfsh% request open-ils.cat
open-ils.cat.asset.copy_tree.retrieve.authoritative "AUTOTOKEN", 217,
[1,2,3,4,5,6,7,8,9]
3. 9 cstore transactions are opened before patching. After patching,
only 1 is created.
Signed-off-by: Bill Erickson <berickxx at gmail.com>
Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
index 5267ddd..87409e2 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm
@@ -640,14 +640,19 @@ sub retrieve_copies {
@org_ids = ($user_obj->home_ou);
}
+ # Create an editor that can be shared across all iterations of
+ # _build_volume_list(). Otherwise, .authoritative calls can result
+ # in creating too many cstore connections.
+ my $e = new_editor();
+
if( $self->api_name =~ /global/ ) {
- return _build_volume_list( { record => $docid, deleted => 'f', label => { '<>' => '##URI##' } } );
+ return _build_volume_list($e, { record => $docid, deleted => 'f', label => { '<>' => '##URI##' } } );
} else {
my @all_vols;
for my $orgid (@org_ids) {
- my $vols = _build_volume_list(
+ my $vols = _build_volume_list($e,
{ record => $docid, owning_lib => $orgid, deleted => 'f', label => { '<>' => '##URI##' } } );
push( @all_vols, @$vols );
}
@@ -660,10 +665,12 @@ sub retrieve_copies {
sub _build_volume_list {
+ my $e = shift;
my $search_hash = shift;
+ $e ||= new_editor();
+
$search_hash->{deleted} = 'f';
- my $e = new_editor();
my $vols = $e->search_asset_call_number([
$search_hash,
-----------------------------------------------------------------------
Summary of changes:
.../src/perlmods/lib/OpenILS/Application/Cat.pm | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list