当Worklight DB关闭时,在Worklight控制台上启用Access禁用消息

时间:2015-08-13 18:53:44

标签: ibm-mobilefirst

我正在尝试在worlight控制台帖子上添加访问禁用消息,我的数据库将停止进行某些活动,我是否仍然能够向我的最终用户显示来自worklight控制台的访问禁用消息。或者我的应用程序将完全停止工作,无论如何我可以测试这个。

停止mysql数据库后记录。

from PySide import QtGui, QtCore

class Model(QAbstractTableModel):
    def __init__(self, parent=None, *args):
        QAbstractTableModel.__init__(self, parent, *args)
        self.items = [['Pet', 'Dog'],['Pet', 'Cat'],['Bird','Eagle'],['Bird','Jay'],['Bird','Falcon']]

    def rowCount(self, parent=QModelIndex()):
        return len(self.items)      
    def columnCount(self, parent=QModelIndex()):
        return 2
    def data(self, index, role):
        if not index.isValid(): return 
        row=index.row()
        column=index.column()
        return self.items[row][column]

class Proxy(QSortFilterProxyModel):
    def __init__(self):
        super(Proxy, self).__init__()

    def filterAcceptsRow(self, rowProc, parentProc):  
        modelIndex=self.sourceModel().index(rowProc, 0, parentProc)
        item=self.sourceModel().data(modelIndex, Qt.DisplayRole)
        return True

class MyWindow(QWidget):
    def __init__(self, *args):
        QWidget.__init__(self, *args)
        vLayout=QVBoxLayout(self)
        self.setLayout(vLayout)

        model=Model(self)  
        proxy=Proxy()
        proxy.setSourceModel(model)

        self.combo=QtGui.QComboBox()
        self.combo.activated.connect(self.comboActivated)
        vLayout.addWidget(self.combo)

        self.combo.setModel(proxy)

        self.ViewA=QTableView(self)
        self.ViewA.setModel(model)
        self.ViewA.clicked.connect(self.viewClicked)
        vLayout.addWidget(self.ViewA)

    def viewClicked(self, indexClicked):
        print 'indexClicked() row: %s  column: %s'%(indexClicked.row(), indexClicked.column() )
        proxy=indexClicked.model()

    def comboActivated(self, arg):
        print 'comboClicked() arg:', arg

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MyWindow()
    w.show()
    sys.exit(app.exec_())
屏幕截图 enter image description here djrecker

2 个答案:

答案 0 :(得分:0)

如果服务器的数据库关闭,您甚至无法访问控制台,因此您也无法设置远程禁用规则。应用程序将尝试连接到服务器并失败。

如果您在Worklight Server前面有一些HTTP服务器(例如负载均衡器等),则可以将其配置为返回一些状态代码。您应该能够检测到此状态代码并向最终用户显示相应的消息。

我在这里进一步描述:Simulate Access disable feature in Worklight , when worklight server itself is down.

答案 1 :(得分:0)

  1. 尝试使用该消息在worklight控制台上添加访问禁用
  2. 停止数据库服务器/实例
  3. 尝试打开您的应用并将其删除,将显示通用访问禁用消息。
  4. 此外,如果DB已关闭,则仍可访问工作灯控制台 浏览器,但您的应用程序将不可见。
  5. 重新启动数据库并刷新控制台后,您的应用程序将加载到Worklight控制台
  6. 在步骤1中添加的访问禁用消息会 保持原样,并将显示在应用程序
  7. 如果您尚未在步骤1中添加访问禁用消息,并且如果数据库已停止,您将看到如下屏幕截图的基本消息,每次加载应用程序时都会看到此消息
  8. enter image description here