Jelajahi Sumber

AMBARI-8320. Error in persisting web client state at ambari server: Error 500 \!hex:5c. (jaimin)

Jaimin Jetly 10 tahun lalu
induk
melakukan
2afc26d4df

+ 1 - 0
ambari-web/app/config.js

@@ -31,6 +31,7 @@ App.defaultStackVersion = 'HDP-2.2';
 App.defaultJavaHome = '/usr/jdk/jdk1.6.0_31';
 App.timeout = 180000; // default AJAX timeout
 App.maxRetries = 3; // max number of retries for certain AJAX calls
+App.sessionKeepAliveInterval  = 60000;
 App.bgOperationsUpdateInterval = 6000;
 App.componentsUpdateInterval = 6000;
 App.contentUpdateInterval = 15000;

+ 17 - 0
ambari-web/app/controllers/application.js

@@ -23,6 +23,8 @@ App.ApplicationController = Em.Controller.extend(App.UserPref, {
 
   name: 'applicationController',
 
+  isPollerRunning: false,
+
   clusterName: function () {
     return (App.router.get('clusterController.clusterName') || 'My Cluster');
   }.property('App.router.clusterController.clusterName'),
@@ -51,6 +53,21 @@ App.ApplicationController = Em.Controller.extend(App.UserPref, {
     this._super();
   },
 
+  startKeepAlivePoller: function() {
+    if (!this.get('isPollerRunning')) {
+     this.set('isPollerRunning',true);
+      App.updater.run(this, 'getStack', 'isPollerRunning', App.sessionKeepAliveInterval);
+    }
+  },
+
+  getStack: function(callback) {
+    App.ajax.send({
+      name: 'router.login.clusters',
+      sender: this,
+      callback: callback
+    });
+  },
+
   dataLoading: function () {
     var dfd = $.Deferred();
     var self = this;

+ 2 - 0
ambari-web/app/router.js

@@ -387,6 +387,8 @@ App.Router = Em.Router.extend({
 
   logOffSuccessCallback: function (data) {
     console.log("invoked logout on the server successfully");
+    var applicationController = App.router.get('applicationController');
+    applicationController.set('isPollerRunning',false);
   },
 
   logOffErrorCallback: function (req) {

+ 2 - 0
ambari-web/app/routes/installer.js

@@ -29,6 +29,8 @@ module.exports = Em.Route.extend({
 
     router.getAuthenticated().done(function (loggedIn) {
       if (loggedIn) {
+        var applicationController = router.get('applicationController');
+        applicationController.startKeepAlivePoller();
         // check server/web client versions match
         App.router.get('installerController').checkServerClientVersion().done(function () {
 

+ 2 - 0
ambari-web/app/routes/main.js

@@ -26,6 +26,8 @@ module.exports = Em.Route.extend({
     console.log('in /main:enter');
     router.getAuthenticated().done(function (loggedIn) {
       if (loggedIn) {
+        var applicationController = App.router.get('applicationController');
+        applicationController.startKeepAlivePoller();
         App.router.get('mainController').checkServerClientVersion().done(function () {
           App.router.get('mainViewsController').loadAmbariViews();
           App.router.get('clusterController').loadClusterName(false).done(function () {