Corporate Info | News | Solutions | Products | Partners | Services | Events | Download | How To Buy

WebLogic's Independent Software Vendors Guide

About This Document

What Is An ISV?

Types Of Licenses

Evaluation License

Developer License

Production License

Products That Can Be Licensed

WebLogic Core Server

Clustering

SSL

Type 4 JDBC Drivers

How An ISV License Works

How To Obtain An ISV License

What To Do With A License Once You Have It

How To Run WebLogic

How To Run WebLogic As An NT Service

How To Use The Type 2 JDBC Driver

How To Use The Type 4 JDBC Drivers

How To Obtain Technical Support

About This Document

This document provides information for Independent Software Vendors (ISVs) who have partnered with BEA's WebLogic Application Server. It includes details on the special agreement between the ISV and BEA, as well as instructions on how to license, execute and distribute the product. This document should serve as a primary source for support when handling ISV issues or problems.

What Is An ISV?

An ISV is a software vendor that has opted to build its product on top of the WebLogic Application Server and sell the two products bundled together. By doing so, the ISV can leverage the benefits of WebLogic, such as:

- Faster development of e-commerce applications by using built-in Enterprise Java application services

- Expandability to support large growth rates in customer base

- Reliability of a robust server that has been heavily tested

BEA grants special licenses that allow the ISV to distribute the server to the vendor's own customer base. These licenses function much like a usual WebLogic license, except that they are coded specifically for use and distribution by the ISV. Only the ISV, by knowing the special encryption code used to create the key, is able to start the server and use its functionality.

Types Of Licenses

There are three main types of licenses for the WebLogic Server that would be used by an ISV or its customer. The three types are as follows: evaluation licenses, developer licenses and production licenses.

Evaluation License

An evaluation license is a limited WebLogic license that is used during the time when a customer is assessing the product's value and benefits. These licenses usually expire in a short period of time after which the customer must decide whether to purchase a permanent developer or production license.

Developer License

A developer license allows a customer access to all of WebLogic's functionality for an unlimited period of time, but restricts the number of connections that can be made to the server. These licenses are not restricted by IP, and therefore may be installed on any machine. The function of this license is to allow customers to develop their application on top of the server. Once the development cycle is complete, the product must be deployed with a production license.

Production License

A production license is the least restrictive license available for the WebLogic Server. These licenses allow unlimited connections for an unconstrained period of time and are usually limited to a specific IP address, allowing the server to run on only one machine. However, ISVs require special consideration since they will in turn distribute the server to numerous customers. Production licenses for ISVs are generated to allow the WebLogic server to run on any machine, as long as a special encryption key known only to the ISV is specified at server startup. This puts the license control in the hands of the ISV. The ISV must create its own startup class to pass the special encryption key to the WebLogic server, as described in How To Run WebLogic.

Products That Can Be Licensed

Licenses are available for several products, and an ISV should know which products are needed when requesting licenses. In most cases, the core server license will fulfill all of the requirements for an ISV. But additional optional features, such as clustering, SSL and Type 4 JDBC drivers are also available.

WebLogic Core Server

The Core Server license will grant ISVs and their customers access to all of WebLogic's implementation of Enterprise Java (J2EE) standards. This includes JavaBeans, Servlets, JSP, JMS and JDBC. It also provides access to features such as connection pools, workspaces and events. With the WebLogic Server, ISVs can develop and distribute enterprise applications that are large-scale and portable.

Clustering

Clustering is a powerful feature of WebLogic that allows several WebLogic servers to operate cooperatively. This provides greater scalability and fault tolerance for intensive applications. A special set of license keys is required to enable clustering and must be specifically requested. Clustered WebLogic servers can replicate services and sessions so that if one server fails another cluster member can resume the task transparently to the calling client. For more information about clustering, as well as how to configure and start a cluster, refer to the on-line WebLogic documents at:

http://www.weblogic.com/docs/classdocs/API_cluster.html

SSL

WebLogic offers encrypted, authenticated connections via Secure Socket Layer (SSL). SSL is a standard protocol proposed by Netscape for negotiating a secure connection. SSL is not generally included in an ISV agreement. If security is a major issue with an application developed and deployed on WebLogic, the ISV should request a license key allowing the use of WebLogic SSL. There are two strengths of SSL encryption: 40-bit exportable strength encryption and 128-bit domestic strength encryption. The United States government regulates the export of 128-bit encrypted software. For this reason a totally separate build of the WebLogic Server must be obtained for ISVs requiring strong encryption. The ISV should contact sales to obtain the 128-bit domestic build of the software and the 128-bit SSL license keys. For more information on WebLogic SSL, refer to the on-line WebLogic documents at:

http://www.weblogic.com/docs/classdocs/API_secure.html

Type 4 JDBC Drivers

The WebLogic Core Server includes a type 2 JDBC driver for Oracle called jDriver. Type 2 drivers use client libraries written in native code, and are provided by database vendors. There are some limitations to the use of type 2 drivers. Specifically, type 2 drivers can not be used in applets because the native libraries can not be downloaded over the wire to the browser client. As an optional feature, WebLogic provides Type 4 JDBC drivers for Microsoft SQL Server and Informix, which are pure-Java drivers that do not require any native client libraries. These drivers must be obtained separately from the WebLogic Server and license keys for them must be specifically requested. For ISVs, the Type 4 driver licenses function differently from the core server license keys. The licenses are still in XML format, but special code must be written to enable the type 4 driver licenses. See How To Use The Type 4 JDBC Drivers for more information.

How An ISV License Works

ISV license keys work in the same way as regular WebLogic license keys, with the difference being the code used to create the encrypted license key. Each ISV is assigned a unique code that must be used when starting the server. During startup, Weblogic will decipher the license keys with the ISV's specific code and also use the special ISV suffix (text obtained from the name of the ISV) for validation. This allows the ISV to distribute the server and license keys with their product in a controlled manner.

How To Obtain An ISV License

To obtain an ISV license key, contact your WebLogic representative. If you do not have a WebLogic representative, please email sales@weblogic.com

What To Do With A License Once You Have It

WebLogic license keys are sent out in two formats: Java class files and XML files. ISVs running a version of WebLogic prior to 4.0 would obtain a set of license keys that would look something like the following java file:

    add("Tengah-SoftwareCo,any,unlimited,never|" +
        "0000aaaa1111bbbb2222cccc3333dddd");
    add("jdbcKona/Oracle-SoftwareCo,any,unlimited,never|" +
        "0000aaaa1111bbbb2222cccc3333dddd");
    add("jdbcKona/Informix4-SoftwareCo,any,unlimited,never|" +
        "0000aaaa1111bbbb2222cccc3333dddd");
    add("jdbcKona/MSSQLServer4-SoftwareCo,any,unlimited,never|" +
        "0000aaaa1111bbbb2222cccc3333dddd");

The license keys should be copied into the file WebLogicLicense.java (which comes with the WebLogic distribution) and the file should be compiled and placed into the system classpath. For ISVs running WebLogic 4.0 or later, the license keys can be in a Java file as above or an XML file as follows:

    <WEBLOGIC-LICENSES>
      <LICENSE PRODUCT="WebLogic-SoftwareCo"
        IP="any"  UNITS="unlimited"  EXPIRATION="never"
        KEY="0000aaaa1111bbbb2222cccc3333dddd"
      />
      <LICENSE PRODUCT="jdbcKona/Oracle-SoftwareCo"
        IP="any"  UNITS="unlimited"  EXPIRATION="never"
        KEY="0000aaaa1111bbbb2222cccc3333dddd"
      />
      <LICENSE PRODUCT="jdbcKona/Informix4-SoftwareCo"
        IP="any"  UNITS="unlimited"  EXPIRATION="never"
        KEY="0000aaaa1111bbbb2222cccc3333dddd"
      />
      <LICENSE PRODUCT="jdbcKona/MSSQLServer4-SoftwareCo"
        IP="any"  UNITS="unlimited"  EXPIRATION="never"
        KEY="0000aaaa1111bbbb2222cccc3333dddd"
      />
    </WEBLOGIC-LICENSES>

It is highly recommended that customers obtain licenses in XML format as future versions of WebLogic may no longer support Java class file licenses. Likewise, the latest version of the WebLogic type 4 JDBC drivers only support XML licenses. These XML license keys should be copied into the file WebLogicLicense.xml and placed in the weblogic\license directory under the WebLogic installation. If you are using WebLogic 4.5.1 or higher, weblogic\license should also be in the WebLogic classpath. If you are using an earlier version of WebLogic, weblogic\license should be in the system classpath. Weblogic\license also should be in the system classpath, or for WebLogic 4.5.1. or higher it should be in the WebLogic classpath. Once these license keys are in place, the WebLogic server can be run and distributed without any further modification. Refer to the online documents for general licensing information:

http://www.weblogic.com/docs/techstart/license.html

How To Run WebLogic

In order to run WebLogic, an ISV must specify its encryption code as an argument to WebLogic's main() method. To achieve this an ISV must create its own entry point into WebLogic. Please note that WebLogic 4.5.1 ISV users must have installed Service Pack 11, or higher. The server can then be started in the following manner:

    public class ISVServer
      {
         public static void main(String args[]) throws Exception
       {
         weblogic.Server.main(args, "soft.txt", "-SoftwareCo");
      }
    }

In this example, the custom startup class is calling WebLogic's Server.main() method, with three arguments. The first argument is the String array of command line arguments. The second argument ("soft.txt") is the ISV's unique encryption key. Note that this is simply a string and does not refer to any file on the system. Each ISV is given its own unique key to use, which should be used in place of "soft.txt" here. The final argument ("-SoftwareCo") is the ISV suffix required to verify the license keys. This should be replaced with the ISV suffix as found in the license (for example if the license contains Weblogic-SoftwareCo the suffix is SoftwareCo). Compile this file (ISVServer.java in this example) as follows:

    javac -classpath /weblogic/classes/boot;
    /weblogic/classes;/weblogic/lib/weblogicaux.jar
    -d /weblogic/classes/boot ISVServer.java

After this file (ISVServer.java in this example) is compiled into the weblogic\boot directory, the WebLogic server can be started on the command line as follows:

    java -mx64m -ms64m -classpath .\lib\weblogic451sp11boot.jar;.\classes\boot
    -Dweblogic.class.path=.\lib\weblogic451sp11.jar;.\license;.\classes;.\lib\weblogicaux.jar
    -Djava.security.manager  -Djava.security.policy==.\weblogic.policy ISVServer

Note: You must have the .\classes\boot directory specified in the java classpath. You may simply wish to set this with the classpath in your setEnv script.

How To Run WebLogic As An NT Service

For customers installing on NT, WebLogic provides the option of running the server as an NT Service. Just as the encryption code and ISV suffix must be specified when starting WebLogic from the command line, so should it be when starting as an NT Service. The entry point for running WebLogic as an NT Service is a file called NTServiceHelper.class located in weblogic\classes\boot\weblogic. ISVs must create their own version of NTServiceHelper.class defined as follows:

    package weblogic;

    /**

     * @author Copyright (c) 1997-98 by WebLogic, Inc. All Rights Reserved.
     * @author Copyright (c) 1999 by BEA WebXpress, Inc. All Rights Reserved.
     */

    import weblogic.Server;

    class NTServiceHelper implements Runnable {

        private String[] c;

        NTServiceHelper(String[] argv) {
      c = argv;
        }

        public void run() {

      try {

           e.printStackTrace();
      }
          Server.main(c, "soft.txt", "-SoftwareCo");

         } catch (Throwable e) {
          e.printStackTrace();
      } finally {
          System.exit(0);
      }
        }
    }

Again, the "soft.txt" is a special code specific to the ISV. This code will be provided by WebLogic to the ISV and is the same code used in the ISVServer.java example in Section 8. Once this class is created, the existing NTServiceHelper.class in weblogic\classes\boot\weblogic should be renamed (to oldNTServiceHelper.class for example) and the new version should be compiled with a command like:

    javac -d c:\weblogic\classes\boot NTServiceHelper.java

WebLogic must then be installed as an NT Service, if it isn't already. To do this, run the command weblogic\bin\install.exe. Refer to the online documents for more information on installing WebLogic as an NT Service:

http://www.weblogic.com/docs/admindocs/ntservice.html

How To Use The Type 2 JDBC Driver

In order to use the Type 2 JDBC driver that ships with WebLogic, an ISV must create a wrapper class around the driver to uphold the ISV licensing scheme. This wrapper class is used to specify the encryption key and ISV suffix just as in running the core server. The wrapper class can have an innocuous name. In this example it is named Obj1:

    public class Obj1 extends weblogic.jdbc.oci.Driver {
      static {
        Properties props = new Properties();
        props.put("ocifileprop", "jdbcKona/Oracle-SoftwareCo");
        props.put("ocilogprop",  "soft.txt");
        setProperties(props);
      }
    }

After this class is compiled, it should be placed somewhere in the WebLogic classpath. The property ocilogprop defines the encryption code used to decipher the license keys. Once this class is compiled and loaded, the type 2 jDriver for Oracle can be used as it normally would, except that the driver name used in connection pools or in Java applications would be Obj1 rather than weblogic.jdbc.oci.Driver. For example, a connection pool could be defined as:

    weblogic.jdbc.connectionPool.ISVPool=\
    url=jdbc:weblogic:oracle,\
    driver=Obj1,\
    loginDelaySecs=1,\
    initialCapacity=2,\
    maxCapacity=10,\
    capacityIncrement=2,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=10,\
    testTable=dual,\
    props=user=scott;password=tiger;server=demo

Likewise, in Java applications you can make connections with this driver using the following code:

    Driver myDriver=(Driver)Class.forName("Obj1").newInstance();
    Connection conn = myDriver.connect("jdbc:weblogic:oracle", props);

Refer to the online docs for more information on how to use the type 2 driver:

http://www.weblogic.com/docs/classdocs/API_jdbc.html

How To Use The Type 4 JDBC Drivers

WebLogic offers two Type 4 JDBC Drivers; one for Microsoft SQL Server and one for Informix. The licensing for type 4 drivers is similar to the rest of the WebLogic product. If an ISV requests a type 4 driver license, a license key is sent in the following format:

    <LICENSE PRODUCT="jdbcKona/MSSQLServer4-SoftwareCo"
        IP="any"  UNITS="unlimited"  EXPIRATION="never"
        KEY="0000aaaa1111bbbb2222cccc3333dddd"
    />

This license should be included in the WebLogicLicense.xml file. After doing so it is necessary to override the type 4 driver class in order to set the ISV properties, similar to how the type 2 driver works. This new class redefines the connect() method of the Driver class and can be defined as follows:

    import java.sql.*;
    import java.util.*;

    public class MSSQLDriver extends weblogic.jdbc.mssqlserver4.Driver {
       public Connection connect(String url, Properties info) throws
    SQLException {
           info = (Properties)info.clone();
           info.put("ocifileprop","jdbcKona/MSSQLServer4-SoftwareCo");
           info.put("ocilogprop",  "soft.txt");
           return super.connect(url, info);
       }
    }

The code is similar for the Informix type 4 driver, except jdbcKona/MSSQLServer4-SoftwareCo is replaced with jdbcKona/Informix4-SoftwareCo. In the program code that attempts to use a type 4 driver, load the custom driver and call its connect method as follows:

    Driver myDriver=(Driver)Class.forName("MSSQLDriver").newInstance();
    Connection conn = myDriver.connect("jdbc:weblogic:mssqlserver4", props);

Likewise, when setting up a connection pool using the type 4 drivers, define the properties as in the following example. Note that the driver name is the name of the custom class defined by the ISV:

    weblogic.jdbc.connectionPool.ISVPool=\
           url=jdbc:weblogic:mssqlserver4:server:port,\
           driver=MSSQLDriver,\
           loginDelaySecs=1,\
           initialCapacity=2,\
           maxCapacity=10,\
           capacityIncrement=2,\
           allowShrinking=true,\
           shrinkPeriodMins=15,\
           refreshMinutes=10,\
           testTable=dual,\
           props=user=sa

The same method is used to connect to an Informix database using the Informix Type 4 driver. Refer to the online documentation for general information on how to use Type 4 drivers:

http://www.weblogic.com/docs/classdocs/API_jmsq4.html (Using jdbcKona/MSSQLServer4)

http://www.weblogic.com/docs/classdocs/API_jinf4.html (Using jdbcKona/Informix4)

How To Obtain Technical Support

If a technical issue should arise which this guide does not address, please send email to support@weblogic.com with a full description of the problem and the complete contact information. If the issue is a licensing issue, please specify that it is an ISV license and send the following information:

- The output after running the command:
  java utils.writeLicense

- The procedure used to start WebLogic

Technical issues not related to licenses should be accompanied by (if applicable) an error stack trace, your weblogic.properties file, a description of the scenario resulting in the error and the following environment details:

- Operating system and version JDK vendor and version

- WebLogic version

Copyright © 2000 BEA Systems, Inc. All rights reserved. Required browser: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.