[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