home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JaggServer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  6.5 KB  |  313 lines

  1. import java.awt.Event;
  2. import java.io.File;
  3. import java.net.ServerSocket;
  4. import java.net.Socket;
  5. import java.sql.Connection;
  6. import java.util.Date;
  7. import java.util.Vector;
  8.  
  9. class JaggServer {
  10.    static final int DISABLED = 0;
  11.    static final int ENTRY_LEVEL = 1;
  12.    static final int STANDARD = 2;
  13.    static final int HIGH_END = 3;
  14.    int enterpriseServerLevel = 3;
  15.    int enterpriseJobsAllowed = 100;
  16.    int purgeJobNameAfterDays = 7;
  17.    int UnixTrialDays = 90;
  18.    static final boolean localDeveloperOnly = false;
  19.    static final int DEVELOPERS = 1;
  20.    static final String JAGG_LICENSE0 = "";
  21.    static final int JAGG_LICENSEDUSER0 = 0;
  22.    static final String JAGG_LICENSE1 = "";
  23.    static final int JAGG_LICENSEDUSER1 = 0;
  24.    static final String JAGG_LICENSE2 = "";
  25.    static final int JAGG_LICENSEDUSER2 = 0;
  26.    static final String JAGG_LICENSE3 = "";
  27.    static final int JAGG_LICENSEDUSER3 = 0;
  28.    static final String JAGG_LICENSE4 = "";
  29.    static final int JAGG_LICENSEDUSER4 = 0;
  30.    static final String JAGG_LICENSE5 = "";
  31.    static final int JAGG_LICENSEDUSER5 = 0;
  32.    static final String JAGG_LICENSE6 = "";
  33.    static final int JAGG_LICENSEDUSER6 = 0;
  34.    static final String JAGG_LICENSE7 = "";
  35.    static final int JAGG_LICENSEDUSER7 = 0;
  36.    static final String JAGG_LICENSE8 = "";
  37.    static final int JAGG_LICENSEDUSER8 = 0;
  38.    static final String JAGG_LICENSE9 = "bulletproof.com";
  39.    static final int JAGG_LICENSEDUSER9 = 50;
  40.    private static final String version = "3.0";
  41.    static final boolean JDP = true;
  42.    static final boolean JAGG_REL_TRIAL = true;
  43.    static final boolean JAGG_REL_INTERNAL = false;
  44.    static final boolean JAGG_REL_EXTERNAL = false;
  45.    private static final int DEFAULTPORT = 4899;
  46.    static String DEFAULTJDBC = "sun.jdbc.odbc.JdbcOdbcDriver";
  47.    static String DEFAULTCXN = "jdbc:odbc:";
  48.    Vector dbConnection;
  49.    private ServerSocket serverSocket;
  50.    private int port;
  51.    String connectionString;
  52.    Vector ndsInstances = new Vector();
  53.    String NDSusername = "";
  54.    String NDSpassword = "";
  55.    private static long closeAfterSeconds = 600L;
  56.    // $FF: renamed from: K java.lang.String
  57.    String field_0 = "";
  58.    long nextRequestNum;
  59.    long nextConnectionNum;
  60.    JDPSubsystemMgr manager;
  61.    static JDesignerPro jdesignerpro;
  62.    Vector cusips;
  63.    Vector cusipData;
  64.    int lastDate;
  65.  
  66.    public JaggServer(int var1, String var2, String var3) {
  67.       this.port = var1;
  68.       this.connectionString = var3;
  69.       this.dbConnection = new Vector();
  70.       JDPJagg.jaggServer = this;
  71.       JDesignerPro.serverSeparator = File.separator;
  72.       if (System.getProperty("java.vendor").startsWith("Microsoft") && var2.equals("sun.jdbc.odbc.JdbcOdbcDriver")) {
  73.          var2 = "com.ms.jdbc.odbc.JdbcOdbcDriver";
  74.          DEFAULTJDBC = var2;
  75.       }
  76.  
  77.       this.field_0 = "JDP09betaERW9Q" + "3.0";
  78.  
  79.       try {
  80.          this.serverSocket = new ServerSocket(var1);
  81.          System.out.println("Enterprise Server running on port:" + Integer.toString(var1) + "   (Press Ctrl-C to close)");
  82.       } catch (Exception var8) {
  83.          System.err.println(var8);
  84.          if (jdesignerpro == null) {
  85.             this.delay(20000);
  86.             System.exit(1);
  87.          } else {
  88.             System.out.println("Enterprise Server running locally.");
  89.          }
  90.       }
  91.  
  92.       this.manager = new JDPSubsystemMgr(this);
  93.       int var4 = 0;
  94.  
  95.       while(this.serverSocket != null) {
  96.          try {
  97.             Socket var5 = this.serverSocket.accept();
  98.             if (var5 != null) {
  99.                new JaggServerCxn(this, var5, (long)(this.nextRequestNum++));
  100.                if (var4++ > 50) {
  101.                   var4 = 0;
  102.                   System.gc();
  103.                   this.closeUnusedConnections();
  104.                }
  105.             }
  106.          } catch (Exception var7) {
  107.             this.logException(var7);
  108.          }
  109.       }
  110.  
  111.    }
  112.  
  113.    void closeUnusedConnections() {
  114.       Date var1 = new Date();
  115.       long var2 = var1.getTime() / 1000L;
  116.  
  117.       for(int var4 = 0; var4 < this.dbConnection.size(); ++var4) {
  118.          Vector var5 = (Vector)this.dbConnection.elementAt(var4);
  119.          long var6 = Long.parseLong((String)var5.elementAt(3));
  120.          String var8 = (String)var5.elementAt(1);
  121.          if (!var8.equals("Active") && (var2 - var6 > closeAfterSeconds || var8.equals("Close"))) {
  122.             Connection var9 = (Connection)var5.elementAt(2);
  123.  
  124.             try {
  125.                var9.close();
  126.             } catch (Exception var12) {
  127.             }
  128.  
  129.             String var10 = (String)var5.elementAt(0);
  130.             int var11 = var10.indexOf("DSN=");
  131.             if (var11 > 0) {
  132.                var10 = var10.substring(0, var11);
  133.             }
  134.  
  135.             var11 = var10.indexOf(";");
  136.             if (var11 > 0) {
  137.                var10 = var10.substring(0, var11);
  138.             }
  139.  
  140.             var11 = var10.indexOf("UID");
  141.             if (var11 > 0) {
  142.                var10 = var10.substring(0, var11);
  143.             }
  144.  
  145.             if (var8.equals("Close")) {
  146.                this.println("Closed connection to " + var10 + " due to previous error");
  147.             } else {
  148.                this.println("Closed connection to " + var10 + " due to inactivity");
  149.             }
  150.  
  151.             this.dbConnection.removeElement(var5);
  152.             Object var13 = null;
  153.             Object var14 = null;
  154.          }
  155.       }
  156.  
  157.    }
  158.  
  159.    boolean checkKey(JaggServerCxn var1) {
  160.       try {
  161.          if (this.field_0.equals(var1.K)) {
  162.             return true;
  163.          }
  164.  
  165.          System.out.println("ACCESS_VIOLATION:" + var1.thisSocket.getInetAddress());
  166.          var1.writeLn("JAGG_ERROR:ACCESS_VIOLATION");
  167.          var1.writeLn(JaggServerCxn.NL);
  168.          var1.writeLn(JaggServerCxn.EOT);
  169.       } catch (Exception var4) {
  170.          ((Throwable)var4).printStackTrace();
  171.       }
  172.  
  173.       return false;
  174.    }
  175.  
  176.    int checkLicense(JaggServerCxn var1) {
  177.       byte var2 = 0;
  178.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  179.          var2 = (boolean)0;
  180.       }
  181.  
  182.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  183.          var2 = (boolean)0;
  184.       }
  185.  
  186.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  187.          var2 = (boolean)0;
  188.       }
  189.  
  190.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  191.          var2 = (boolean)0;
  192.       }
  193.  
  194.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  195.          var2 = (boolean)0;
  196.       }
  197.  
  198.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  199.          var2 = (boolean)0;
  200.       }
  201.  
  202.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  203.          var2 = (boolean)0;
  204.       }
  205.  
  206.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  207.          var2 = (boolean)0;
  208.       }
  209.  
  210.       if ("".length() > 0 && var1.SERV.indexOf("") >= 0) {
  211.          var2 = (boolean)0;
  212.       }
  213.  
  214.       if ("bulletproof.com".length() > 0 && var1.SERV.indexOf("bulletproof.com") >= 0) {
  215.          var2 = (boolean)50;
  216.       }
  217.  
  218.       var2 = 0;
  219.       return var2;
  220.    }
  221.  
  222.    public static void main(String[] var0) {
  223.       String var2 = DEFAULTJDBC;
  224.       String var3 = DEFAULTCXN;
  225.       if (var0.length <= 0 || !var0[0].equals("-h") && !var0[0].equals("/?") && !var0[0].equals("-help")) {
  226.          int var1;
  227.          try {
  228.             var1 = Integer.parseInt(var0[0], 10);
  229.  
  230.             try {
  231.                closeAfterSeconds = Long.parseLong(var0[1], 10);
  232.                if (var0.length > 2) {
  233.                   var2 = var0[2];
  234.                   DEFAULTJDBC = var2;
  235.                }
  236.  
  237.                if (var0.length > 3) {
  238.                   var3 = var0[3];
  239.                   DEFAULTCXN = var3;
  240.                }
  241.             } catch (Exception var4) {
  242.                closeAfterSeconds = 600L;
  243.                if (var0.length > 1) {
  244.                   var2 = var0[1];
  245.                }
  246.  
  247.                if (var0.length > 2) {
  248.                   var3 = var0[2];
  249.                }
  250.             }
  251.          } catch (Exception var5) {
  252.             if (var0.length > 0) {
  253.                var2 = var0[0];
  254.             }
  255.  
  256.             if (var0.length > 1) {
  257.                var3 = var0[1];
  258.             }
  259.  
  260.             var1 = 4899;
  261.          }
  262.  
  263.          new JaggServer(var1, var2, var3);
  264.       } else {
  265.          displayHelp();
  266.       }
  267.    }
  268.  
  269.    static void displayHelp() {
  270.       System.out.println("JaggServer Usage:");
  271.       System.out.println("JaggServer <serverPort> <dropUnusedCxnAfter>");
  272.    }
  273.  
  274.    void logException(Exception var1) {
  275.       if (JaggServerCxn.jaggServerJob != null) {
  276.          JaggServerCxn.jaggServerJob.logException(var1);
  277.       } else {
  278.          ((Throwable)var1).printStackTrace();
  279.       }
  280.    }
  281.  
  282.    void delay(int var1) {
  283.       try {
  284.          Thread.sleep((long)var1);
  285.       } catch (Exception var2) {
  286.       }
  287.    }
  288.  
  289.    int checkDevelopers(JaggServerCxn var1) {
  290.       byte var2 = 0;
  291.       var2 = 1;
  292.       return var2;
  293.    }
  294.  
  295.    public boolean handleEvent(Event var1) {
  296.       switch (var1.id) {
  297.          case 201:
  298.             System.exit(0);
  299.             return true;
  300.          default:
  301.             return false;
  302.       }
  303.    }
  304.  
  305.    void println(Object var1) {
  306.       if (JaggServerCxn.jaggServerJob != null) {
  307.          JaggServerCxn.jaggServerJob.appendJobLog(var1.toString());
  308.       } else {
  309.          System.out.println(var1);
  310.       }
  311.    }
  312. }
  313.