Added support for "migratable" opensrf services.
authorerickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 5 Dec 2007 14:44:54 +0000 (14:44 +0000)
committererickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 5 Dec 2007 14:44:54 +0000 (14:44 +0000)
See http://list.georgialibraries.org/pipermail/open-ils-dev/2007-October/001904.html

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1156 9efc2488-bf62-4759-914b-345cdb29e865

src/perlmods/OpenSRF/Transport.pm

index 33de5c4..4629e57 100644 (file)
@@ -102,11 +102,18 @@ sub handler {
        my $app_session = OpenSRF::AppSession->find( $sess_id );
        if( $app_session and $app_session->endpoint == $app_session->SERVER() and
                        $app_session->remote_id ne $remote_id ) {
-               $logger->transport( "Backend Gone or invalid sender", INTERNAL );
-               my $res = OpenSRF::DomainObject::oilsBrokenSession->new();
-               $res->status( "Backend Gone or invalid sender, Reconnect" );
-               $app_session->status( $res );
-               return 1;
+
+           my $c = OpenSRF::Utils::SettingsClient->new();
+        if($c->config_value("apps", $app_session->service, "migratable")) {
+            $logger->debug("service is migratable, new client is $remote_id");
+        } else {
+
+                   $logger->warn("Backend Gone or invalid sender");
+                   my $res = OpenSRF::DomainObject::oilsBrokenSession->new();
+                   $res->status( "Backend Gone or invalid sender, Reconnect" );
+                   $app_session->status( $res );
+                   return 1;
+        }
        } 
 
        # Retrieve or build the app_session as appropriate (server_build decides which to do)