SQLJ.DB2_INSTALL_JAR stored procedure
SQLJ.DB2_INSTALL_JAR creates a new definition of a JAR file in the local DB2® catalog or in a remote DB2 catalog.
SQLJ.DB2_INSTALL_JAR authorization
Privilege set: If the CALL statement is embedded in an application program, the privilege set consists of the privileges that are held by the authorization ID of the owner of the plan or package. If the statement is dynamically prepared, the privilege set consists of the privileges that are held by the authorization IDs of the process.
- EXECUTE privilege on SQLJ.DB2_INSTALL_JAR
- Ownership of SQLJ.DB2_INSTALL_JAR
- SYSADM authority
- CREATEIN privilege on the schema of the JAR
The authorization ID that matches the schema name implicitly has the CREATEIN privilege on the schema.
- SYSADM or SYSCTRL authority
SQLJ.DB2_INSTALL_JAR syntax
>>-CALL--SQLJ.DB2_INSTALL_JAR-----------------------------------> >--(--Jar-locator,--JAR-name,--deploy--)-----------------------><
SQLJ.DB2_INSTALL_JAR parameters
- JAR-locator
- A BLOB locator input parameter that points to the JAR file that is to be installed in the DB2 catalog.
- JAR-name
- A VARCHAR(257) input parameter that contains the DB2 name of the JAR, in the form schema.JAR-id or JAR-id. JAR-name is the name that you use when you refer to the JAR in SQL statements. If you omit schema, DB2 uses the SQL authorization ID that is in the CURRENT SCHEMA special register. The owner of the JAR is the authorization ID in the CURRENT SQLID special register.
- deploy
- An INTEGER input parameter that indicates whether additional actions are to be performed after the JAR file is installed. Additional actions are not supported, so this value is 0.
SQLJ.DB2_INSTALL_JAR example
Suppose that you want to install the JAR file that is in path /u/db2inst3/apps/BUILDPLAN/BUILDPLAN.jar. You want to refer to the JAR file as DB2INST3.BUILDPLAN in SQL statements. The following Java program installs that JAR file.
import java.sql.*; // JDBC classes
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
class SimpleInstallJar
{
public static void main (String argv[])
{
String url = "jdbc:db2://sysmvs1.stl.ibm.com:5021";
String jarname = "DB2INST3.BUILDPLAN";
String jarfile =
"/u/db2inst3/apps/BUILDPLAN/BUILDPLAN.jar";
try
{
Class.forName ("com.ibm.db2.jcc.DB2Driver").newInstance ();
Connection con =
DriverManager.getConnection(url, "MYID", "MYPW");
File aFile = new File(jarfile);
FileInputStream inputStream = new FileInputStream(aFile);
CallableStatement stmt;
String sql = "Call SQLJ.DB2_INSTALL_JAR(?, ?, ?)";
stmt = con.prepareCall(sql);
stmt.setBinaryStream(1, inputStream, (int)aFile.length());
stmt.setString(2, jarname);
stmt.setInt(3, 0);
boolean isrs = stmt.execute();
stmt.close();
System.out.println("Installation of JAR succeeded");
con.commit();
con.close();
}
catch (Exception e)
{
System.out.println("Installation of JAR failed");
e.printStackTrace ();
}
}
}