home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.Panel;
- import java.awt.Rectangle;
- import java.awt.TextArea;
- import java.util.Date;
- import java.util.StringTokenizer;
-
- public class JDPActiveJdbcMaint extends JDPClassLayout {
- JDPUser user;
- JDPJagg jaggSQL;
- JDPPopupMessage popuppanel;
- JDPMaskEdit JDPMaskEditMain;
- String moduleParameter;
- Panel Main;
- JDPPopupMenu PopupMenu1;
- JDPChiselFramePanel ChiselPanel1;
- Panel Panel1;
- JDPButtons JDPButtons1;
- JDPSplitPanel SplitPanel1;
- JDPTextGrid GridPanel1;
- TextArea jobLog;
- JDPMessageDialog MessageBox1;
- Thread thisThread;
- JDPJagg jaggSQL1;
- boolean firsttime = true;
- long waitSeconds = 60L;
- boolean jobLogShowing = true;
- boolean loading = false;
- String[][] data;
- String[][] cxnData;
-
- public void InitClass(JDPUser var1, Panel var2, String var3) {
- this.user = var1;
- this.moduleParameter = var3;
- super.targetPanel = var2;
- this.jaggSQL = new JDPJagg(var1.jaggPath);
- ((Container)this).setLayout(new BorderLayout());
- this.popuppanel = new JDPPopupMessage(var1, this);
- ((Container)this).add(this.popuppanel);
- this.JDPMaskEditMain = new JDPMaskEdit();
- this.Main = new Panel();
- this.PopupMenu1 = new JDPPopupMenu(var1.getJDPUser(), this.Main);
- this.ChiselPanel1 = new JDPChiselFramePanel(var1, "Active Users Display");
- this.Panel1 = new Panel();
- String[] var4 = new String[]{"Refresh", "Hide Details"};
- int[] var5 = new int[]{JDPButton.getIconValue("Undo"), JDPButton.getIconValue("Delete")};
- this.JDPButtons1 = new JDPButtons(var1, var4, var5, JDPButtons.getAlignmentValue("Horizontal"));
- this.SplitPanel1 = new JDPSplitPanel(var1);
- this.GridPanel1 = new JDPTextGrid(var1);
- this.jobLog = new TextArea("", 3, 20);
- this.MessageBox1 = new JDPMessageDialog(var1, this);
- this.Main.setLayout(new BorderLayout());
- ((Container)this).add("Center", this.Main);
- this.Main.add("West", this.PopupMenu1);
- this.Main.add("Center", this.ChiselPanel1);
- this.ChiselPanel1.add("Center", this.Panel1);
- this.Panel1.setLayout(new BorderLayout());
- this.Panel1.add("South", this.JDPButtons1);
- this.Panel1.add("Center", this.SplitPanel1);
- this.SplitPanel1.add("Left", this.GridPanel1);
- this.SplitPanel1.add("Left", this.jobLog);
- this.SplitPanel1.setLeftPercentage(50.0F);
- this.SplitPanel1.setTopPercentage(75.0F);
- this.GridPanel1.setBackground(var1.u._cvtcolor("LightGray"));
- this.popuppanel.addComponent(this.GridPanel1, "", "Click on a connection or request for Options.");
- this.GridPanel1.setTableDimensions(7, 50);
- this.GridPanel1.setColumnHeader(0, "Data Source| Request");
- this.GridPanel1.setColumnHeader(1, "Connection|Request Detail");
- this.GridPanel1.setColumnHeader(2, "Last connection|");
- this.GridPanel1.setColumnHeader(3, " |Duration");
- this.GridPanel1.setColumnHeader(4, "Idle for|");
- this.GridPanel1.setColumnHeader(5, "#Requests|Priority");
- this.GridPanel1.setColumnHeader(6, "Status|");
- this.GridPanel1.setColumnHeader(6, "Status|");
- this.GridPanel1.setColumnHeader(6, "Status|");
- this.GridPanel1.setColumnWidth(0, 120);
- this.GridPanel1.setColumnWidth(1, 170);
- this.GridPanel1.setColumnWidth(2, 100);
- this.GridPanel1.setColumnWidth(3, 60);
- this.GridPanel1.setColumnWidth(4, 70);
- this.GridPanel1.setColumnWidth(5, 70);
- this.GridPanel1.setColumnWidth(6, 60);
- this.GridPanel1.setColumnWidth(6, 60);
- this.GridPanel1.setColumnWidth(6, 60);
- this.GridPanel1.setColumnHeaderHeight(26);
- this.jobLog.setBackground(var1.u._cvtcolor("LightGray"));
- this.jobLog.setEditable(false);
- this.MessageBox1.setTitle("Confirm");
- this.MessageBox1.setButtonCount(2);
- this.MessageBox1.setButtonIcon(0, 8);
- this.MessageBox1.setButtonIcon(1, 6);
- this.MessageBox1.setButtonText(0, "Delete");
- this.MessageBox1.setButtonText(1, "Cancel");
- var1.gParm.addElement(this);
- this.InitComponents();
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 503:
- case 504:
- case 505:
- this.popuppanel.postEvent(var1);
- return false;
- case 701:
- if (var1.target.equals(this.GridPanel1)) {
- if (!this.PopupMenu1LoadMenu()) {
- return true;
- }
-
- this.PopupMenu1.display(var1.x, var1.y);
- return true;
- }
-
- return false;
- case 1001:
- if (var1.target.equals(this.PopupMenu1)) {
- this.PopupMenu1HandleSelection();
- return true;
- } else if (var1.target.equals(this.JDPButtons1.button[0])) {
- this.LoadGridWithJdbcData();
- return true;
- } else {
- if (var1.target.equals(this.JDPButtons1.button[1])) {
- this.setJobLogVisible(false);
- return true;
- }
-
- return false;
- }
- default:
- return false;
- }
- }
-
- public void InitComponents() {
- this.setJobLogVisible(false);
- this.jaggSQL.loadSettings(this.user);
- this.jaggSQL.setKeepConnectionOpen(false);
- this.GridPanel1.setGridColor(Color.white);
- this.LoadGridWithJdbcData();
- this.thisThread = new Thread(this);
- this.thisThread.start();
- this.jaggSQL1 = new JDPJagg(this.user.jaggPath);
- this.jaggSQL1.loadSettings(this.user);
- Rectangle var1 = super.targetPanel.bounds();
- if (var1.width - 585 > 170) {
- this.GridPanel1.setColumnWidth(1, var1.width - 585);
- }
-
- }
-
- public void ResetGridSize(int var1, int var2) {
- this.GridPanel1.setTableDimensions(var1, var2);
-
- for(int var3 = 0; var3 < var2; ++var3) {
- this.GridPanel1.setCellEnabled(0, var3, false);
- }
-
- for(int var4 = 1; var4 < var1; ++var4) {
- this.GridPanel1.setColumnEnabled(var4, false);
- }
-
- for(int var5 = 0; var5 < var2; ++var5) {
- this.GridPanel1.setRowHeader(var5, "");
- }
-
- if (this.firsttime) {
- Graphics var6 = super.targetPanel.getGraphics();
- int var7 = 2 * this.user.u.StringHeight(var6) - 2;
- if (var7 > 0) {
- this.GridPanel1.setColumnHeaderHeight(var7);
- }
-
- int var8 = this.user.u.StringWidth(this.user.mainmsg.message.getGraphics(), "O");
- int var9 = this.user.u.StringWidth(var6, "O");
- float var10 = (float)var9 / (float)var8;
- if (var10 != 1.0F && var10 != 0.0F) {
- for(int var11 = 0; var11 < var1; ++var11) {
- this.GridPanel1.setColumnWidth(var11, (int)((float)this.GridPanel1.getColumnWidth(var11) * var10));
- }
- }
-
- if (var10 != 0.0F) {
- this.firsttime = false;
- }
- }
-
- }
-
- public void run() {
- while(true) {
- try {
- for(; this.waitSeconds > 0L; Thread.sleep(this.waitSeconds * 1000L)) {
- if (((Component)this).isShowing()) {
- this.LoadGridWithJdbcData();
- }
- }
-
- Thread.sleep(600000L);
- } catch (Exception var1) {
- }
- }
- }
-
- public void setJobLogVisible(boolean var1) {
- if (var1) {
- if (!this.jobLogShowing) {
- this.jobLog.show();
- this.SplitPanel1.layout();
- this.SplitPanel1.paintAll(this.SplitPanel1.getGraphics());
- this.jobLogShowing = true;
- this.JDPButtons1.button[1].show();
- this.JDPButtons1.layout();
- this.JDPButtons1.paintAll(this.JDPButtons1.getGraphics());
- }
- } else if (this.jobLogShowing) {
- this.jobLog.hide();
- this.SplitPanel1.layout();
- this.SplitPanel1.paintAll(this.SplitPanel1.getGraphics());
- this.jobLogShowing = false;
- this.JDPButtons1.button[1].hide();
- this.JDPButtons1.layout();
- this.JDPButtons1.paintAll(this.JDPButtons1.getGraphics());
- }
- }
-
- public String convertTime(String var1) {
- long var2 = Long.valueOf(var1);
- long var4 = var2 / 86400000L;
- long var6 = var2 / 3600000L;
- long var8 = (var2 - var6 * 3600000L) / 60000L;
- long var10 = (var2 - var6 * 3600000L - var8 * 60000L) / 1000L;
- String var12 = "";
- if (var4 > 0L) {
- var12 = var12 + Long.toString(var4) + "d ";
- }
-
- if (var6 > 0L) {
- var12 = var12 + Long.toString(var6) + "h ";
- }
-
- var12 = var12 + Long.toString(var8) + "m " + Long.toString(var10) + "s";
- return var12;
- }
-
- public boolean LoadGridWithJdbcData() {
- if (this.loading) {
- return false;
- } else {
- this.loading = true;
- String var1 = this.jaggSQL.getSEP();
- this.jaggSQL.setKeepConnectionOpen(true);
- this.user.mainmsg.setStatusMsg("Refreshing...", 0);
- String var2 = (String)this.jaggSQL.invoke("JDPJaggCxnMgr", "getJdbcConnections");
- if (var2 == null) {
- this.ResetGridSize(7, 10);
- this.loading = false;
- return false;
- } else {
- StringTokenizer var3 = new StringTokenizer(var2, var1);
- int var4 = var3.countTokens() / 7;
- this.data = new String[var4 + 1][7];
- int var5 = 0;
- int var6 = 0;
-
- while(var3.hasMoreTokens()) {
- this.data[var5][var6] = var3.nextToken().trim();
- ++var6;
- if (var6 == 7) {
- var6 = 0;
- ++var5;
- }
- }
-
- String var7 = (String)this.jaggSQL.invoke("JDPJaggCxnMgr", "getConnections");
- if (var7 == null) {
- this.ResetGridSize(7, 10);
- this.loading = false;
- return false;
- } else {
- this.jaggSQL.setKeepConnectionOpen(false);
- var3 = new StringTokenizer(var7, var1);
- int var8 = var3.countTokens() / 20;
- this.cxnData = new String[var8 + 1][20];
- int var9 = 0;
- var6 = 0;
-
- while(var3.hasMoreTokens()) {
- this.cxnData[var9][var6] = var3.nextToken().trim();
- ++var6;
- if (var6 == 20) {
- var6 = 0;
- ++var9;
- }
- }
-
- int var10 = var5 * 2 + var9 + 2;
- this.ResetGridSize(7, var10);
- this.GridPanel1.setRowKeyArray(new String[var10][2]);
- int var11 = 0;
-
- for(int var21 = 0; var21 < var5; ++var21) {
- this.GridPanel1.setCellFont(0, var11, this.user.boldFont);
- String var12 = "";
- int var13 = this.data[var21][0].indexOf("DSN=");
- if (var13 >= 0) {
- var12 = this.data[var21][0].substring(var13 + 4);
- var12 = var12.substring(0, var12.indexOf(";"));
- }
-
- this.GridPanel1.setText(var12, 0, var11);
- this.GridPanel1.setText(this.data[var21][3], 1, var11);
- this.GridPanel1.setText(this.data[var21][1], 6, var11);
- Date var14 = null;
- long var15 = Long.valueOf(this.data[var21][6]);
- if (!this.data[var21][2].equals("0")) {
- var14 = new Date(Long.valueOf(this.data[var21][2]) * 1000L);
- this.GridPanel1.setText(JDPDate.format(var14, JDPDate.defaultFormat + " hh:mm am"), 2, var11);
- }
-
- if (var14 != null && this.data[var21][1].equals("Inactive")) {
- this.GridPanel1.setText(this.convertTime(Long.toString(var15 - var14.getTime())), 4, var11);
- }
-
- this.GridPanel1.setText(this.data[var21][4], 5, var11);
- this.GridPanel1.setRowKey(this.data[var21][5], var11, 0);
-
- for(int var17 = 0; var17 < var9; ++var17) {
- if (this.data[var21][5].equals(this.cxnData[var17][18])) {
- ++var11;
- this.GridPanel1.setCellFont(0, var11, this.user.plainFont);
- this.GridPanel1.setText(" " + this.cxnData[var17][0], 0, var11);
- this.GridPanel1.setText(this.cxnData[var17][1], 1, var11);
- if (!this.cxnData[var17][12].equals("0")) {
- Date var18 = new Date(Long.valueOf(this.cxnData[var17][12]));
- var15 = Long.valueOf(this.cxnData[var17][19]);
- this.GridPanel1.setText(JDPDate.format(var18, JDPDate.defaultFormat + " hh:mm am"), 2, var11);
- this.GridPanel1.setText(this.convertTime(Long.toString(var15 - var18.getTime())), 3, var11);
- } else {
- this.GridPanel1.setText("", 2, var11);
- this.GridPanel1.setText("", 3, var11);
- }
-
- this.GridPanel1.setText(this.cxnData[var17][16], 5, var11);
- this.GridPanel1.setText(this.cxnData[var17][17].equals("Y") ? "Held" : "Active", 6, var11);
- this.GridPanel1.setRowKey(this.cxnData[var17][15], var11, 0);
- this.GridPanel1.setRowKey(Integer.toString(var17), var11, 1);
- }
- }
-
- var11 += 2;
- }
-
- this.user.mainmsg.clearStatusMsg();
- this.user.JDesignerPro.gc();
- this.loading = false;
- return true;
- }
- }
- }
- }
-
- public boolean PopupMenu1LoadMenu() {
- String var1 = this.GridPanel1.getText(0, this.GridPanel1.getCurrentRow());
- this.PopupMenu1.clear();
- if (var1.equals("")) {
- return false;
- } else {
- this.GridPanel1.setRowSelected(this.GridPanel1.getCurrentRow(), true);
- if (!var1.startsWith(" ")) {
- if (this.GridPanel1.getText(6, this.GridPanel1.getCurrentRow()).equals("Inactive")) {
- this.PopupMenu1.addEntry("Close Connection");
- }
-
- String[] var2 = new String[]{"Refresh Every", "10 Seconds"};
- this.PopupMenu1.addEntry(var2);
- var2[1] = "30 Seconds";
- this.PopupMenu1.addEntry(var2);
- var2[1] = "Minute";
- this.PopupMenu1.addEntry(var2);
- var2[1] = "5 Minutes";
- this.PopupMenu1.addEntry(var2);
- var2[1] = "10 Minutes";
- this.PopupMenu1.addEntry(var2);
- var2[1] = "30 Minutes";
- this.PopupMenu1.addEntry(var2);
- var2[1] = "Hour";
- this.PopupMenu1.addEntry(var2);
- } else {
- if (this.GridPanel1.getText(6, this.GridPanel1.getCurrentRow()).equals("Active")) {
- this.PopupMenu1.addEntry("Hold");
- } else {
- this.PopupMenu1.addEntry("Release");
- }
-
- this.PopupMenu1.addEntry("Kill Request");
- this.PopupMenu1.addEntry("");
- this.PopupMenu1.addEntry("Display Details");
- this.PopupMenu1.addEntry("");
- String[] var4 = new String[]{"Set Priority", ""};
-
- for(int var3 = 10; var3 >= 1; --var3) {
- var4[1] = Integer.toString(var3);
- this.PopupMenu1.addEntry(var4);
- }
- }
-
- return true;
- }
- }
-
- public void PopupMenu1HandleSelection() {
- String var1 = this.PopupMenu1.getSelectedMenu(0);
- String var2 = "";
- if (this.PopupMenu1.getCurrentMenuLvl() == 1) {
- var2 = this.PopupMenu1.getSelectedMenu(1);
- }
-
- if (var1.equals("Refresh Every")) {
- if (var2.equals("10 Seconds")) {
- this.waitSeconds = 10L;
- } else if (var2.equals("30 Seconds")) {
- this.waitSeconds = 30L;
- } else if (var2.equals("Minute")) {
- this.waitSeconds = 60L;
- } else if (var2.equals("5 Minutes")) {
- this.waitSeconds = 300L;
- } else if (var2.equals("10 Minutes")) {
- this.waitSeconds = 600L;
- } else if (var2.equals("30 Minutes")) {
- this.waitSeconds = 1800L;
- } else if (var2.equals("Hour")) {
- this.waitSeconds = 3600L;
- }
-
- this.thisThread.interrupt();
- } else {
- String var3 = this.GridPanel1.getText(0, this.GridPanel1.getCurrentRow());
- if (!var3.startsWith(" ")) {
- if (var1.equals("Close Connection")) {
- String[] var4 = new String[]{"long"};
- String[] var5 = new String[]{this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 0)};
- String var6 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "closeConnection", var4, var5);
- this.user.mainmsg.setStatusMsg(var6, 10);
- }
- } else {
- this.GridPanel1.getText(1, this.GridPanel1.getCurrentRow());
- String var8 = this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 0);
- if (var1.equals("Set Priority")) {
- String[] var9 = new String[]{"long", "int"};
- String[] var13 = new String[]{var8, var2};
- String var7 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestPriority", var9, var13);
- this.user.mainmsg.setStatusMsg(var7, 10);
- }
-
- if (var1.equals("Hold")) {
- String[] var10 = new String[]{"long", "boolean"};
- String[] var14 = new String[]{var8, "true"};
- String var17 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestHeld", var10, var14);
- this.user.mainmsg.setStatusMsg(var17, 10);
- }
-
- if (var1.equals("Release")) {
- String[] var11 = new String[]{"long", "boolean"};
- String[] var15 = new String[]{var8, "false"};
- String var18 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestHeld", var11, var15);
- this.user.mainmsg.setStatusMsg(var18, 10);
- }
-
- if (var1.equals("Kill Request")) {
- String[] var12 = new String[]{"long"};
- String[] var16 = new String[]{var8};
- String var19 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "killRequest", var12, var16);
- this.user.mainmsg.setStatusMsg(var19, 10);
- }
-
- if (var1.equals("Display Details")) {
- this.setJobLogVisible(true);
- this.showDetails(Integer.parseInt(this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 1)));
- }
- }
-
- this.LoadGridWithJdbcData();
- }
- }
-
- public void showDetails(int var1) {
- StringBuffer var2 = new StringBuffer();
- var2.append("Request:\t\t");
- var2.append(this.cxnData[var1][0] + "\n");
- var2.append("Detail:\t\t");
- var2.append(this.cxnData[var1][1] + "\n");
- if (this.cxnData[var1][0].equals("SQL")) {
- var2.append("JDBC Driver:\t");
- var2.append(this.cxnData[var1][2] + "\n");
- var2.append("JDBC Prefix:\t");
- var2.append(this.cxnData[var1][3] + "\n");
- var2.append("JDBC Suffix:\t");
- var2.append(this.cxnData[var1][4] + "\n");
- var2.append("JDBC UID:\t");
- var2.append(this.cxnData[var1][5] + "\n");
- var2.append("Timeout After:\t");
- var2.append(this.cxnData[var1][9] + "\n");
- var2.append("Max Rows:\t");
- var2.append(this.cxnData[var1][10] + "\n");
- }
-
- this.jobLog.setText(var2.toString());
- }
- }
-