use of com.cubrid.cubridmanager.core.broker.model.ApplyServerInfo in project cubrid-manager by CUBRID.
the class DatabaseDashboardEditor method createBrokerComposite.
/**
* craete broker composite
*
* @param bar
* @param bar index
*
*/
public void createBrokerComposite(ExpandBar bar, int index) {
ExpandItem brokerItem = new ExpandItem(bar, SWT.NONE, index);
brokerItem.setText(Messages.exportDashboardBrokerTableTitle);
Composite brokerComposite = new Composite(bar, SWT.None);
brokerComposite.setLayout(new FillLayout());
brokerInfoTableViewer = new TableViewer(brokerComposite, SWT.BORDER | SWT.FULL_SELECTION);
brokerInfoTable = brokerInfoTableViewer.getTable();
brokerInfoTable.setHeaderVisible(true);
brokerInfoTable.setLinesVisible(true);
final TableViewerColumn columnVolumn = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnVolumn.getColumn().setWidth(100);
columnVolumn.getColumn().setText("Broker");
columnVolumn.getColumn().setToolTipText(com.cubrid.cubridmanager.ui.host.Messages.tipBrokerName);
final TableViewerColumn columnType = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnType.getColumn().setWidth(80);
columnType.getColumn().setText("ID");
columnType.getColumn().setToolTipText(Messages.brokerTableIDColumnTip);
final TableViewerColumn columnSize = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnSize.getColumn().setWidth(100);
columnSize.getColumn().setText("PID");
columnSize.getColumn().setToolTipText(Messages.brokerTablePIDColumnTip);
final TableViewerColumn columnQPS = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnQPS.getColumn().setWidth(100);
columnQPS.getColumn().setText("QPS");
columnQPS.getColumn().setToolTipText(com.cubrid.cubridmanager.ui.host.Messages.tipQps);
final TableViewerColumn columnFreeSize = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnFreeSize.getColumn().setWidth(100);
columnFreeSize.getColumn().setText("LQS");
columnFreeSize.getColumn().setToolTipText(Messages.brokerTableLQSColumnTip);
final TableViewerColumn columnTotalSize = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnTotalSize.getColumn().setWidth(80);
columnTotalSize.getColumn().setText(Messages.multiDatabaseLoginDialogColumnStatus);
columnTotalSize.getColumn().setToolTipText(Messages.multiDatabaseLoginDialogColumnStatus);
final TableViewerColumn columnLocation = new TableViewerColumn(brokerInfoTableViewer, SWT.CENTER);
columnLocation.getColumn().setWidth(140);
columnLocation.getColumn().setText(Messages.brokerTableLastConnectTimeColumnLabel);
columnLocation.getColumn().setToolTipText(Messages.brokerTableLastConnectTimeColumnLabel);
brokerInfoTableViewer.setContentProvider(new TableContentProvider());
brokerInfoTableViewer.setLabelProvider(new TableLabelProvider());
brokerInfoTableViewer.setInput(brokerInfoListData);
brokerItem.setControl(brokerComposite);
brokerItem.setHeight(140);
brokerItem.setExpanded(true);
Menu menu = new Menu(this.getSite().getShell(), SWT.POP_UP);
final MenuItem itemRestartCAS = new MenuItem(menu, SWT.PUSH);
itemRestartCAS.setText(Messages.exportDashboardMenuRestartServer);
itemRestartCAS.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
int i = brokerInfoTable.getSelectionIndex();
if (i < 0) {
return;
}
String brokerName = brokerInfoTable.getItem(i).getText(0);
String serverId = brokerInfoTable.getItem(i).getText(1);
if (!CommonUITool.openConfirmBox(Messages.bind(com.cubrid.cubridmanager.ui.broker.Messages.restartBrokerServerMsg, serverId))) {
return;
}
ServerInfo serverInfo = database.getServer().getServerInfo();
RestartBrokerTask restartTask = new RestartBrokerTask(serverInfo);
restartTask.setBrokerName(brokerName);
restartTask.setApplyServerNum(serverId);
TaskExecutor taskExecutor = new CommonTaskExec(Messages.bind(com.cubrid.cubridmanager.ui.broker.Messages.restartBrokerServerTaskName, serverId));
taskExecutor.addTask(restartTask);
new ExecTaskWithProgress(taskExecutor).exec();
if (taskExecutor.isSuccess()) {
// refresh
brokerInfoListData.clear();
asinfoLst.clear();
brokerInfoTable.remove(i);
loadBrokerInfo();
//recompute database's qps
long qps = 0;
for (HashMap<String, ApplyServerInfo> brokerValueMap : asinfoLst) {
for (Entry<String, ApplyServerInfo> entry : brokerValueMap.entrySet()) {
ApplyServerInfo applyServerInfo = entry.getValue();
qps += Long.valueOf(applyServerInfo.getAs_num_query());
}
}
Map<String, String> dbInfoMap = brokerInfoListData.get(0);
dbInfoMap.put("2", Long.toString(qps));
if (CompatibleUtil.isSupportGetCPUAndMemoryInfo(database.getDatabaseInfo())) {
dbInfoTableViewer.refresh();
}
brokerInfoTableViewer.refresh();
}
}
});
final MenuItem itemShowSqlLog = new MenuItem(menu, SWT.PUSH);
itemShowSqlLog.setText(Messages.exportDashboardMenuShowSQLLog);
itemShowSqlLog.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
showLogView("sql");
}
});
final MenuItem itemShowSlowQueryLog = new MenuItem(menu, SWT.PUSH);
itemShowSlowQueryLog.setText(Messages.exportDashboardMenuShowSlowQueryLog);
itemShowSlowQueryLog.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
showLogView("slow");
}
});
menu.addMenuListener(new MenuListener() {
public void menuHidden(MenuEvent e) {
}
public void menuShown(MenuEvent e) {
int i = brokerInfoTable.getSelectionIndex();
if (i < 0) {
Menu menu = (Menu) e.getSource();
menu.setVisible(false);
}
}
});
brokerInfoTable.setMenu(menu);
tableViewOnBarIndexMap.put(brokerInfoTableViewer, index);
}
use of com.cubrid.cubridmanager.core.broker.model.ApplyServerInfo in project cubrid-manager by CUBRID.
the class DatabaseDashboardEditor method loadBrokerInfo.
/**
* load broker information
*/
public void loadBrokerInfo() {
// if database is stop, do not get data
if (database.getRunningType() != DbRunningType.CS) {
return;
}
// broker info tasks
BrokerInfos brokerInfos = new BrokerInfos();
final CommonQueryTask<BrokerInfos> brokerInfosTask = new CommonQueryTask<BrokerInfos>(database.getServer().getServerInfo(), CommonSendMsg.getCommonSimpleSendMsg(), brokerInfos);
new Thread(new Runnable() {
public void run() {
brokerInfosTask.execute();
if (!brokerInfosTask.isSuccess()) {
brokerInfosTask.finish();
return;
}
Display.getDefault().asyncExec(new Runnable() {
public void run() {
process();
}
});
}
private void process() {
asinfoLst.clear();
brokerInfoListData.clear();
BrokerInfos brokerInfos = brokerInfosTask.getResultModel();
if (null != brokerInfos) {
BrokerInfoList list = brokerInfos.getBorkerInfoList();
if (list != null && list.getBrokerInfoList() != null) {
// all broker
List<BrokerInfo> newBrokerInfoList = list.getBrokerInfoList();
for (BrokerInfo brokerInfo : newBrokerInfoList) {
BrokerStatusInfos brokerStatusInfos = new BrokerStatusInfos();
final GetBrokerStatusInfosTask<BrokerStatusInfos> statisTask = new GetBrokerStatusInfosTask<BrokerStatusInfos>(database.getServer().getServerInfo(), CommonSendMsg.getGetBrokerStatusItems(), brokerStatusInfos);
statisTask.setBrokerName(brokerInfo.getName());
statisTask.execute();
brokerStatusInfos = statisTask.getResultModel();
if (brokerStatusInfos != null) {
//one broker status
List<ApplyServerInfo> applyServerInfoList = brokerStatusInfos.getAsinfo();
for (ApplyServerInfo applyServerInfo : applyServerInfoList) {
if (database.getName().equalsIgnoreCase(applyServerInfo.getAs_dbname())) {
HashMap<String, ApplyServerInfo> valueMap = new HashMap<String, ApplyServerInfo>();
valueMap.put(brokerInfo.getName(), applyServerInfo);
asinfoLst.add(valueMap);
}
}
}
statisTask.finish();
}
}
}
//set task obejct to table view
for (HashMap<String, ApplyServerInfo> brokerValueMap : asinfoLst) {
for (Entry<String, ApplyServerInfo> entry : brokerValueMap.entrySet()) {
String brokerName = entry.getKey();
ApplyServerInfo applyServerInfo = entry.getValue();
Map<String, String> brokerInfoMap = new HashMap<String, String>();
brokerInfoMap.put("0", brokerName);
brokerInfoMap.put("1", applyServerInfo.getAs_id());
brokerInfoMap.put("2", applyServerInfo.getAs_pid());
brokerInfoMap.put("3", applyServerInfo.getAs_num_query());
brokerInfoMap.put("4", applyServerInfo.getAs_long_query());
brokerInfoMap.put("5", applyServerInfo.getAs_status());
brokerInfoMap.put("6", applyServerInfo.getAs_lct());
brokerInfoListData.add(brokerInfoMap);
}
}
setBrokerInfoData();
brokerInfosTask.finish();
}
}).start();
}
use of com.cubrid.cubridmanager.core.broker.model.ApplyServerInfo in project cubrid-manager by CUBRID.
the class BrokerDashboardViewPart method createPartControl.
/**
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*
* @param parent the parent composite
*/
public void createPartControl(Composite parent) {
final ScrolledComposite scrolledComp = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
composite = new Composite(scrolledComp, SWT.NONE);
composite.setLayout(new GridLayout());
BrokerTblColumnSetHelp bcsh = BrokerTblColumnSetHelp.getInstance();
bcsh.loadSetting(BrokerTblColumnSetHelp.StatusColumn.BrokerStatusBasicColumn, BrokerStatusBasicColumn.values());
bcsh.loadSetting(BrokerTblColumnSetHelp.StatusColumn.BrokerStatusAsColumn, BrokerStatusAsColumn.values());
bcsh.loadSetting(BrokerTblColumnSetHelp.StatusColumn.BrokerStatusJqColumn, BrokerStatusJqColumn.values());
brokerTablePart.setServerInfo(serverInfo);
brokerTablePart.setAppendDiag(true);
basicTableViewer = brokerTablePart.createBasicTable(composite);
asTableViewer = brokerTablePart.createAsTable(composite);
jqTableViewer = brokerTablePart.createJobTable(composite);
makeActions();
composite.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent event) {
updateTableLayout();
}
});
MenuManager menuManager = new MenuManager();
menuManager.setRemoveAllWhenShown(true);
menuManager.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
IStructuredSelection selection = (IStructuredSelection) asTableViewer.getSelection();
ApplyServerInfo as = (ApplyServerInfo) (selection.toArray()[0]);
RestartAction restartAcion = new RestartAction(as.getAs_id());
manager.add(restartAcion);
}
});
Menu contextMenu = menuManager.createContextMenu(asTableViewer.getControl());
asTableViewer.getControl().setMenu(contextMenu);
scrolledComp.setContent(composite);
scrolledComp.setExpandHorizontal(true);
scrolledComp.setExpandVertical(true);
scrolledComp.setMinHeight(300);
scrolledComp.setMinWidth(800);
}
use of com.cubrid.cubridmanager.core.broker.model.ApplyServerInfo in project cubrid-manager by CUBRID.
the class BrokerStatusView method refresh.
/**
*
* Refresh the page content
*
* @param isUpdateTable whether update table
* @param isRefreshChanged whether refresh changed
*/
public void refresh(boolean isUpdateTable, boolean isRefreshChanged) {
ServerInfo site = brokerNode.getServer().getServerInfo();
if (isSupportNewBrokerParamPropery) {
refreshBasicTable(site);
}
BrokerStatusInfos brokerStatusInfos = new BrokerStatusInfos();
final GetBrokerStatusInfosTask<BrokerStatusInfos> task = new GetBrokerStatusInfosTask<BrokerStatusInfos>(site, CommonSendMsg.getGetBrokerStatusItems(), brokerStatusInfos);
task.setBrokerName(nodeName);
task.execute();
if (!task.isSuccess()) {
return;
}
brokerStatusInfos = task.getResultModel();
//job queue
if (brokerStatusInfos != null) {
jobinfoLst = brokerStatusInfos.getJobinfo();
jqTableViewer.setInput(jobinfoLst);
jqTableViewer.refresh();
}
//apply server
List<ApplyServerInfo> newAsInfoLst = null;
if (null != brokerStatusInfos) {
newAsInfoLst = brokerStatusInfos.getAsinfo();
}
List<ApplyServerInfo> changedAsInfoLst = new ArrayList<ApplyServerInfo>();
for (int i = 0; newAsInfoLst != null && i < newAsInfoLst.size(); i++) {
ApplyServerInfo newAsInfo = newAsInfoLst.get(i);
ApplyServerInfo changedAsInfo = newAsInfo.clone();
for (int j = 0; oldAsInfoLst != null && j < oldAsInfoLst.size(); j++) {
ApplyServerInfo oldAsInfo = oldAsInfoLst.get(j);
if (newAsInfo.getAs_id().equalsIgnoreCase(oldAsInfo.getAs_id())) {
long newQuery = StringUtil.intValue(newAsInfo.getAs_num_query());
long newTran = StringUtil.intValue(newAsInfo.getAs_num_tran());
long newLongQuery = StringUtil.longValue(newAsInfo.getAs_long_query());
long newLongTran = StringUtil.longValue(newAsInfo.getAs_long_tran());
long newErrQuery = StringUtil.intValue(newAsInfo.getAs_error_query());
long oldQuery = StringUtil.intValue(oldAsInfo.getAs_num_query());
long oldTran = StringUtil.intValue(oldAsInfo.getAs_num_tran());
long oldLongQuery = StringUtil.longValue(oldAsInfo.getAs_long_query());
long oldLongTran = StringUtil.longValue(oldAsInfo.getAs_long_tran());
long oldErrQuery = StringUtil.intValue(oldAsInfo.getAs_error_query());
long changedQuery = newQuery - oldQuery;
long changedTran = newTran - oldTran;
long changedLongTran = newLongTran - oldLongTran;
long changedLongQuery = newLongQuery - oldLongQuery;
long changedErrQuery = newErrQuery - oldErrQuery;
changedAsInfo.setAs_num_query(String.valueOf(changedQuery > 0 ? changedQuery : 0));
changedAsInfo.setAs_num_tran(String.valueOf(changedTran > 0 ? changedTran : 0));
changedAsInfo.setAs_long_tran(String.valueOf(changedLongTran > 0 ? changedLongTran : 0));
changedAsInfo.setAs_long_query(String.valueOf(changedLongQuery > 0 ? changedLongQuery : 0));
changedAsInfo.setAs_error_query(String.valueOf(changedErrQuery > 0 ? changedErrQuery : 0));
break;
}
}
changedAsInfoLst.add(changedAsInfo);
}
oldAsInfoLst = newAsInfoLst;
if (isUpdateTable) {
if (isRefreshChanged) {
asTableViewer.setInput(changedAsInfoLst);
} else {
asTableViewer.setInput(oldAsInfoLst);
}
}
asTableViewer.refresh();
//job queue
jobinfoLst = brokerStatusInfos.getJobinfo();
jqTableViewer.setInput(jobinfoLst);
jqTableViewer.refresh();
}
use of com.cubrid.cubridmanager.core.broker.model.ApplyServerInfo in project cubrid-manager by CUBRID.
the class ClientNode method propertyChange.
/**
* Litsen the broker's status changing.
*
* @param evt PropertyChangeEvent
*/
public void propertyChange(PropertyChangeEvent evt) {
if (BrokerNode.PROP_BROKER_STATUS.equals(evt.getPropertyName())) {
BrokerStatusInfos bsi = brokerNode.getBrokerStatusInfos();
clientList.clear();
if (bsi == null || bsi.getAsinfo() == null || bsi.getAsinfo().isEmpty()) {
fireStructureChange(PROP_CLIENT_LIST, clientList);
return;
}
for (ApplyServerInfo asi : bsi.getAsinfo()) {
if (StringUtil.isEmpty(asi.getAs_client_ip()) || clientList.contains(asi.getAs_client_ip())) {
continue;
}
clientList.add(asi.getAs_client_ip());
}
fireStructureChange(PROP_CLIENT_LIST, clientList);
}
}
Aggregations