NonStopTM Server for JavaTM Programmer's Guide Abstract This document explains the Compaq NonStopTM Server for JavaTM, a Java environment that supports compact, concurrent, dynamic, and portable programs for the enterprise server. The NonStopTM Server for Java uses the Compaq NonStopTM Kernel operating system to add scalability and program persistence to the Java environment. Product Version Compaq NonStopTM Server for Java 2.
Examples and sample programs are for illustration only and may not be suited for your particular purpose. Compaq does not warrant, guarantee, or make any representations regarding the use or the results of the use of any examples or sample programs in any documentation. You should verify the applicability of any example or sample program before placing the software into productive use. U.S. Government Customers FOR U.S.
Information Technologies Group, L.P. Microsoft, MS-DOS, Outlook, PowerPoint, Visual Basic, Visual C++, Win32, Win32s, Win64, Windows, Windows logo, Windows NT, Windows Start logo, and XENIX are either registered trademarks or trademarks of Microsoft Corporation. Intel, Pentium, and Intel Inside are registered trademarks of Intel Corporation. Motif, OSF/1, UNIX, and X/Open are registered trademarks of, and The Open Group, the "X" device, and IT DialTone are trademarks of, The Open Group.
TUXEDO is a registered trademark of Novell, Inc., exclusively licensed to BEA Systems, Inc. IPX/SPX is a trademark of Novell, Inc. used by Compaq under license from Novell. Netware is a trademark of Novell, Inc. used by Compaq under license from Novell.
SMP, SMP+, and CMW+ are trademarks of SecureWare, Inc. DIR-X and MX300i are trademarks of Siemens Nixdorf Informationssysteme AG. Wireless Location Services is a trademark of SignalSoft Corp.
The information in this publication is subject to change without notice and is provided "AS IS" WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK ARISING OUT OF THE USE OF THIS INFORMATION REMAINS WITH RECIPIENT.
NonStopTM Server for JavaTM Programmer's Guide ● ● About This Document ❍ New and Changed Information ❍ Is This Document for You? ❍ Document Structure ❍ Printing This Document ❍ Related Reading ■ Compaq Documents ■ Sun Microsystems Documents ❍ Notation Conventions ❍ Abbreviations ❍ Your Comments Invited Introduction to NonStopTM Server for Java ❍ New Features and Fixes in This Release ❍ Java Development Kit (JDKTM) Highlights ❍ Java Naming and Directory InterfaceTM (JNDI) Highlights
■ ● Installation and Configuration ❍ ❍ ❍ ❍ ● Installation Requirements ■ Hardware ■ Software Configuration Requirements ■ Creating Larger or Additional Swap Files ■ Setting Environment Variables ■ Binding Libraries into the JVM ■ Compiling the JVM Objects Using the SQL Compiler ■ Configuring TCP/IP and DNS for RMI NSJ Directory Structure ■ Directory Contents ■ Symbolic Links ■ Wrappers Running Java Tools Compaq Implementation Specifics ❍ New or Changed Files ❍ Java Abstract Wi
❍ ■ SQLMPCachedRowSet ■ SQLMPCachedRowSetInternal ■ SQLMPClob ■ SQLMPConnection ■ SQLMPDatabaseMetaData ■ SQLMPDataSource ■ SQLMPDriver ■ SQLMPPreparedStatement ■ SQLMPResultSet ■ SQLMPResultSetMetaData ■ SQLMPStatement Transactions and JDBC ■ Autocommit Mode ■ Nonautocommit Mode ❍ SQL/MP Driver Requirements ❍ JDBC Driver Types ■ Original SQL/MP Driver ■ Transaction-Aware SQL/MP Driver ❍ JDBC DriverManager ❍ Loading a Driver ❍ ■ Specifying the JDBC Driver Class on the
■ ❍ ❍ ● Troubleshooting ■ No suitable driver Error ■ Data Truncation ■ Dangling Statements Sample SQL/MP Program Accessing Pathway Servers ❍ Pathway Support ■ com.tandem.
❍ ● ■ Configuration Tool ■ Reconfiguration Tool ■ Management Tool Examples Transactions ❍ Current Class Methods ❍ Java Transaction API (JTA) ■ javax.transaction Interfaces ■ javax.transaction Exceptions ■ Examples ● Just-in-Time (JIT) Compiler ● Glossary ● Index ● List of Examples ● List of Figures ● List of Tables NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next About This Document This section explains these subjects: ● New and Changed Information ● Is This Document for You? ● Document Structure ● Printing This Document ● Related Reading ● Notation Conventions ● Abbreviations ● Your Comments Invited New and Changed Information This edition of the NonStopTM Server for JavaTM Programmer's Guide differs from the previous edition (part number 425257-001) in the following ways: ● New features in the JDK API are d
Enhancements for JDBC 2.0 Sun Microsystems has enhanced JDBCTM for version 2.0, dividing those enhancements into two parts: the JDBC 2.0 Core API and the JDBC 2.0 Standard Extension API. This Programmer's Guide briefly describes these enhancements. For a detailed description of the enhancements, see the Sun Microsystems documentation. The new features added to the JDBC 2.0 Core API are as follows: ● Result set enhancements: These consist of scrollable and updatable result sets.
vendors will use row sets in the future, this enhancement is supported. ddl2java Support for Internationalization A new option, -e, has been added to the ddl2java tool to specify encoding and decoding for international character sets. Is This Document for You? This NonStopTM Server for Java TM Programmer's Guide is for Java programmers who want to use Java on Compaq machines. They can be new to Java or experienced with it; new to Compaq machines or experienced with them.
Installation and Configuration Explains installation and configuration requirements, the NonStopTM Server for Java directory structure, and how to run Java tools. Compaq Implementation Specifics Explains new and changed files, AWT, JNI, IEEE floating-point implementation, JavaBeansTM, library file format, the Java Archiving Tool (jar), and the Java Debugger (jdb). Accessing NonStopTM SQL/MP Databases Explains how to access SQL/MP databases from the NonStopTM Server for Java.
Related Reading For background information about the features described in this guide, see the following documents: ● NonStopTM Server for Java Documents ● Compaq Documents ● Sun Microsystems Documents Compaq Documents The following Compaq documents are available on the Total Information Manager (TIM). ● C/C++ Programmer's Guide Describes the Compaq implementation of the C and C++ programming languages.
The NonStopTM ODBC Server allows programs written for the Microsoft Open Database Connectivity (ODBC) product to access NonStopTM SQL/MP databases. If the NonStopTM ODBC server is installed on a Himalaya server, and an ODBC driver is installed on a client, then the client can remotely access a NonStopTM SQL/MP database by means of a JDBC program that uses a JDBC-ODBC bridge driver.
Explains NonStopTM SQL/MP messages for the conversational interface, the application programming interface (API), and the utilities. ❍ ● Query Processing Using NonStopTM SQL/MP Explains how the database management system executes queries.
● ● ● Java Transaction API (JTA) document (http://www.javasoft.com/products/jta/index.html) Java Transaction Service (JTS)document (http://java.sun.com/products/jts/) Java Remote Method Invocation (RMI) Documents ❍ Java Remote Method Invocation (RMI) document (http://java.sun.com/products/jdk/rmi/index.html) ❍ Reference pages for the following packages: ■ java.rmi (http://www.javasoft.com/products/jdk/1.2/docs/api/java/rmi/package-summary.html) ■ java.rmi.dgc (http://java.sun.com/products/jdk/1.
A vertical line separates alternatives in a list that is enclosed in brackets or braces. For example: where [threadID|all] ... Ellipsis An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times. For example: print {objectID|objectName} ... An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times. For example: dump objectID ...
CLOB. Character Large OBject COBOL. Common Business-Oriented Language CORBA. Common Object Request Broker Architecture CPP. cryptography package provider CPU. central processing unit DBMS. database management system DCL. Data Control Language DDL. Data Definition Language DML. Data Manipulation Language DNR. Domain Name Resolver DNS. Domain Name Server DSA. digital signature algorithm DSM. Distributed Systems Management GUI. graphical user interface HTML. Hypertext Markup Language HTTP.
JTS. Java Transaction Service JVM. Java Virtual Machine LAN. local area network LDAP. Lightweight Directory Access Protocol MIF. FrameMakerTM Interface Format MP. massively parallel NonStopTM TM/MP. NonStopTM Transaction Manager/MP NonStopTM TS/MP. NonStopTM Transaction Services/MP ODBC. Open Database Connectivity OLTP. Online Transaction Processing OMG. Object Management Group OSS. Open System Services OTS. Object Transaction Services POSIX. portable operating system interface x Pthread. POSIX thread RAM.
TIM. Total Information Manager TMF. Transaction Management Facility URL. uniform resource locator WWW. World Wide Web Y2K.
Contents | Index | Glossary | Prev | Next Introduction to NonStopTM Server for JavaTM Compaq NonStopTM Server for JavaTM is a Java environment that supports compact, concurrent, dynamic, portable programs for the enterprise server. NonStopTM Server for Java requires the Compaq NonStopTM Kernel Open System Services (OSS) environment. NonStopTM Server for Java uses the Compaq NonStopTM Kernel operating system to add the Compaq fundamentals of scalability and program persistence to the Java environment.
Package java.applet Description Provides the classes necessary to create an applet and the classes an applet uses to communicate with its applet context. java.beans Contains classes related to Java Beans development. java.beans.beancontext Provides classes and interfaces relating to bean context. java.io Provides for system input and output through data streams, serializatio, and the file system. java.lang Provides classes that are fundamental to the design of the Java programming language. java.lang.
Java Naming and Directory Interface (JNDI) Highlights The Java Naming and Directory InterfaceTM (JNDI) provides naming and directory functionality to Java programs. It is independent of any specific directory service implementation; therefore, it allows a variety of directories to be accessed in a common way. The JNDI architecture consists of an Application Programming Interface (API) and a Service Provider Interface (SPI). Java programs use the JNDI API to access a variety of naming and directory services.
Connection.createStatement and Connection.PreparedStatement are used to create these objects. In some instances, NonStopTM Server for Java might need to choose an alternative result set type for a result set at Statement or PreparedStatement execution time. Concurrency Types and Result Sets An application can choose from two different concurrency types for a result set: read-only and updatable. A result set that uses read-only concurrency does not allow updates of its contents.
PreparedStatement object. The sets of parameter values together with the update command can be sent to the underlying DBMS for execution as a single unit. If an error occurs during a batch update, a BatchUpDateException is thrown. The getUpdateCounts() method can be called to return an integer array of update counts for the commands in the batch that were executed successfully. Advanced SQL Data Types The JDBC 2.
BLOBs and CLOBs A BLOB is used to represent a Binary Large OBject. A CLOB is used to represent a Character Large OBject. BLOBs are typically used to store images (such as GIFs) or serialized objects into the database. CLOBs are typically used to store large character data into the database (such as an XML file).
is a list of one or more locations in the Guardian file system where BLOB files can be stored. You must have write access to these volume/subvolume locations BlobMapFile Property A BlobMapFile property is used to specify a unique file name in the $volume.subvolume.filename format. If the specified file does not already exist, the JDBC driver creates a key-sequenced Enscribe file using the specified name.
table that will be used by the application. The JDBC driver uses the BLOB properties to decide if the object to be stored or retrieved is a BLOB. The BLOB properties are also used to decide the location where a BLOB file should be created for a particular BLOB column in a table. The JDBC driver also provides some preliminary error checking on the BLOB properties. It ensures that all information required in a BlobInfo property has been provided.
// create a PreparedStatement object for the connection PreparedStatement psmt = con.PreparedStatement(insertString); // set values to be inserted including a BLOB and insert a new row in the table. psmt.setString(1, "Mickey Mouse"); psmt.setObject(2, MickyMousePic); //MickyMousePic is a serializable Java object. psmt.executeUpdate( ); Reading a BLOB From the Database A JDBC application can retrieve a BLOB object from the database using the getObject( ) method in the ResultSet interface.
byte[ ] blob_contents = results.getBytes(2); Removing Obsolete BLOB Files A Cleanup utility is provided to periodically remove obsolete BLOB files from the file system. BLOB files become obsolete as a result of one of the following operations: ● An application updates a BLOB column. The driver creates a new BLOB file to store the new BLOB object. It then writes the name of the new BLOB file in the table. The BLOB file containing the original BLOB now becomes obsolete.
● Row sets JNDI for Naming Databases For JDBC 1.0, the only way to connect to a database was by using the JDBC driver manager. With this approach, the JDBC driver that is used to create a database connection must first be registered with the JDBC driver manager. A drawback of this approach is that the JDBC driver class name usually identifies a particular JDBC driver vendor that makes the code that loads the driver specific to that vendor's product; it is therefore not portable.
Cached Row Sets CachedRowSet components support JavaBeans events, which allows other JavaBeans components in an application to be notified when an important event on a row set occurs. A component that wants to register for CachedRowSet events must implement the RowSetListener interface. Event listeners are registered with a row set by calling the addRowSetListener method. Cached row sets can generate these types of events: ● Cursor movement events indicate that the row set's cursor has moved.
Stand-Alone Execution As in other Java environments, you can run a NonStopTM Server for Java program from the command line. The NonStopTM Server for Java program must contain a method with this signature: public static void main(String [] args); The main() method executes when you use the java command to invoke the Java Virtual Machine (JVM). No major modifications were made to the JVM standard architecture to enable command-line execution.
The JNI specifies an invocation API that native RISC programs written in C or C++ can use to invoke Java methods. The invocation API includes facilities for starting a JVM, constructing Java objects, and invoking Java methods. This API is used by programs that embed JVMs, such as Internet browsers and debuggers. The ServletServerClass (SSC) uses the invocation API for iTP Secure WebServer integration.
// Register an instance of RemImpl. Naming.rebind("My_Server", new RemImpl()); } catch (Exception x) { x.printStackTrace(); return; } } public RemImpl() throws RemoteException { super(); } public void call() throws RemoteException { System.out.println(getName()); System.out.println("Location: " + System.getProperty("LOCATION")); } public String getString() throws RemoteException { return new String("Hello from Server!"); } public void sendString(String str) throws RemoteException { System.out.
x.printStackTrace(); System.exit(-1); } } } 4. Copy all the files to the directory ./rmi1/. 5. Compile the server implementation class: javac -d . rmi1/RemImpl.java 6. Generate stub and skeleton classes: rmic -d . rmi1.RemImpl 7. Compile the client program: javac -d . rmi1/OpTest.java 8. Start the registry program: rmiregistry 9. Start the server object: java -DLOCATION=server rmi1.RemImpl 10. Run the client program: java -DLOCATION=client rmi1.
Contents | Index | Glossary | Prev | Next Installation and Configuration This section explains these subjects: ● Installation Requirements ● Configuration Requirements ● NonStopTM Server for Java Directory Structure ● Running JavaTM Tools Installation Requirements This subsection describes the minimum hardware and software required for the installation of the Compaq NonStopTM Server for Java. For installation instructions, see the README file from the product CD.
T9227G06 Native C++ RTL TNS/R Native C++ Run-Time Library The following software is required for installation of NonStopTM Server for Java only if you will use NonStopTM Server for Java for SQL processing: Software Requirements for SQL Processing Part Number Software Product Description T9095D44 TSQL SQL Compiler T9193D44 TSQLEXE Compaq NonStopTM SQL/MP T9194D46 TSQLCAT Compaq NonStopTM SQL/MP Catalog T9195D46 TSQLUTI Compaq NonStopTM SQL/MP Utilities T9196G05 TSQLFIL Compaq NonStopTM SQL/MP Library File
To run the NSKCOM tool, you must log on to your NonStopTM Kernel operating system as a super-group user. Then, from the Guardian TACL prompt, run the NSKCOM tool. From within the NSKCOM tool, use the help add and help start commands to get more information. For further information, see the Kernel Managed Swap Facility (KMSF) Manual. Setting Environment Variables You must set the environment variable PATH, but setting the environment variable JAVA_HOME is no longer required.
To modify CLASSPATH, use the following command: export CLASSPATH=.:/h/custom_path/myclasses.jar Binding Libraries into the JVM To establish an environment that permits the use of servlets and similar clients, you must bind the appropriate libraries into the JVM. To bind the libraries, use /usr/tandem/java/install/Makefile.
/usr/tandem/java/install/README_javachk. NonStop Server for Java Directory Structure TM This subsection explains: ● Directory Contents ● Symbolic Links ● Wrappers Directory Contents The /usr/tandem/java directory contains release documents and subdirectories. The following table lists the subdirectories and describes their contents.
If symbolic linking is not enabled, physical files are created instead of symbolic links. To use symbolic linking, the OSS catalogs must have been upgraded to release version 2, which supports symbolic links. Wrappers The /usr/tandem/java/bin directory contains wrappers, which are files that have the same names as executable files in another subdirectory. These wrappers are shell scripts that invoke the actual executable files.
Contents | Index | Glossary | Prev | Next Compaq Implementation Specifics This section explains these subjects:h ● New or Changed Files ● JavaTM Abstract Window Toolkit (AWT) ● Java Native Interface (JNI) ● IEEE Floating-Point Implementation ● JavaBeansTM ● jdb: Java Debugger New or Changed Files In addition to the standard Java packages, Compaq NonStopTM Server for Java 2.0 provides these files: ● tandemvm.jar ● File containing classes that Compaq changed (java.beans.*, java.awt.*, java.lang.
● can write any multithreaded code in Java. When calling a C or C++ routine, function returns and parameters of type float or double are converted from Compaq format to IEEE floating-point format and back. This might result in loss of precision because of differences between Compaq format and IEEE floating-point format. When naming library files, observe the following rules: ● Do not use names that begin with "Tandem" or "tandem".
Sockets Use only the NonStopTM Server for Java 2.0 socket implementation in java.net (the standard Java socket). All socket I/O calls are thread-safe and nonblocking. If you use a socket in a native call, you do not get the benefit of multithreading functionality. The socket call blocks the whole JVM. If you use Java sockets, the JVM can schedule other threads while one thread is waiting for socket completion.
} int main(int argc, char *argv[], char **envp) { int res; jclass cls; jmethodID mid; jobjectArray mainArgs; JavaVM *jvm; /* denotes a Java VM */ JNIEnv *env; /* pointer to a native method interface */ JavaVMOption options[1]; JavaVMInitArgs vm_args; options[0].optionString = "-Djava.class.path=."; /* where to find user classes */ vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = 1; vm_args.
fprintf(stderr, "Error creating String array.\n"); } exit(1); } /* * execute Java "main" method in Hello.class */ (*env)->CallStaticVoidMethod(env, cls, mid, mainArgs); if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionDescribe(env); } /* Destroy Java VM */ (*jvm)->DestroyJavaVM(jvm); return 0; } To run the Invocation API demo, follow the instructions for the Invocation API demo in the README file in the directory /usr/tandem/java/demo/invocation_api.
Double-Precision Ranges Floating-Point Representation Minimum Positive Decimal Value Maximum Decimal Value Compaq 1.7272337110188889e-77 1.15792089237316192e77 IEEE 4.94065645841246544E-324 1.79769313486231570E+308 If you convert a Java String that represents a Compaq double value to a Java Double value, the smaller fractional part of the IEEE double value causes loss of precision.
Contents | Index | Glossary | Prev | Next NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next Accessing NonStopTM SQL/MP Databases JavaTM programs interact with Compaq NonStopTM SQL/MP databases using the Java Database Connectivity (JDBCTM) API. The Compaq NonStopTM Server for Java includes the following items: ● The JDBC 2.0 API ● The JDBC DriverManager in the Java Development Kit (JDKTM) 1.2.
SQL/MP Support for JDBC The SQL/MP drivers support the following subset of the JDBC API: ● Exceptions ❍ ❍ ❍ ● BatchUpdateException SQLException SQLWarning The following methods are inherited from SQLException: ❍ getErrorCode ❍ getNextException ❍ getSQLState ❍ setNextException Interfaces ❍ Blob (see SQLMPBlob) ❍ Clob (see SQLMPClob) ❍ Connection (see SQLMPConnection) ❍ DatabaseMetaData (see SQLMPDatabaseMetaData) ❍ Driver (see SQLMPDriver) ❍ PreparedStatement (see SQLMPPreparedStatement) ❍ Re
different components of a remote application. For example, a SQLMPCachedRowSet can be used to send the result of a query executed by an Enterprise JavaBeans component running in a server environment to a client running in a web browser.
● ● ● ● ● ● ● ● ● setQueryTimeout(int seconds) setReadOnly(boolean value) setShort(int parameterIndex, short x) setString(int parameterIndex, java.langString x) setTimestamp(int parameterIndex, java.sql.Timestamp x) setTimestamp(int parameterIndex, java.sql.Timestamp x,, java.util.Calendar cal) setTransactionIsolation(int level) setType(int type) setUrl(java.lang.String url) setUserName(java.lang.String name) The following CachedRowSet methods are not supported: ● setArray(int i, java.sql.
● ● ● ● ● ● ● ● ● ● ● getTransactionIsolation(), which always returns TRANSACTION_READ_COMMITTED getWarnings() isClosed() isReadOnly() nativeSQL() nativeSQL(String str), which returns a translated statement; that is, any long-name macros in the original statement are translated to the appropriate Guardian names prepareStatement(String) prepareStatement(String sql, int resultSetType, int resultSetConcurrency) rollback() setAutoCommit(boolean) setCatalog() setCatalog(String str), which can accept a long-na
implements the javax.sql.DataSource interface. The SQLMPDataSource class implements the following methods: ● getConnection() ● getConnection(String username, password) ● getLoginTimeout() ● getLogWriter() ● setLogWriter(PrintWriter out) ● setServer(url) The setLoginTimeout(int seconds) method, which sets the maximum time in seconds that a data source can wait while attempting to connect to a database, is not supported.
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● setByte()* setBytes()* setClob(int i, Clob x)* setDate(), which supports the SQL/MP data type DATE setDouble()* setFetchDirection setFetchSize setFloat()* setInt()* setLong()* setNull(), which sets the value of a particular column to null for all SQL/MP data types setObject()* setShort()* setString()* setTime(), which supports the SQL/MP data type TIME setTimestamp(), which supports the SQL/MP data type TIMESTAMP * These methods support the following SQL/MP data types: ● BI
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● getBigDecimal(int colIndex) getBigDecimal(String colname) getBignum(int, int) getBignum(String, int) getBlob(int i) getBlob(String colname) getBoolean(int) getBoolean(String) getByte(int) getByte(String) getBytes(int) getBytes(String) getCharacterStream(int colIndex) getCharacterStream(String colname) getClob(int i) getClob(String colName) getConcurrency() getCursorName() getDate(int) getDate(int columnIndex, Calendar cal) getDate(Strin
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● isAfterLast() isBeforeFirst() isFirst() isLast() last() moveToCurrentRow() moveToInsertRow() next() previous() relative(int rows) rowDeleted() rowInserted() rowUpdated() setFetchDirection(int direction) setFetchSize(int rows) updateAsciiStream(String colname, InputStream x,, int length) updateAsciiStream(int columnIndex, InputStream x,, int length) updateBigDecimal(String colname, BigDecimal x) updateBigDecimal(int columnIndex, Big
● ● ● ● updateString(int columnIndex, String x) updateString(String colname, String x) updateTime(int columnIndex, Time x) updateTime(String colname, Time x) updateTimeStamp(int columnIndex, TimeStamp x) updateTimeStamp(String colname, TimeStamp x) wasNull() The SQL/MP drivers do not support the following SQLMPResultSet methods: ● getArray(int i) getArray(String colname) ● getBinaryStream(int) getBinaryStream(String) ● getObject(int i, Map map) getObject(String colname, Map map) ● getRef(int i) getRef(
SQLMPStatement SQLMPStatement executes a static SQL/MP statement and obtains the results of the statement.
Autocommit Mode In autocommit mode, the driver automatically commits a transaction without your having to call commit(). Each statement forms a separate transaction that is committed when the statement is completed or when the next execution occurs (whichever comes first). When a result set is returned, the statement is completed when the last row of the result set is retrieved or when the result set is closed.
JDBC Driver Types The following table describes the types of JDBC drivers. JDBC Driver Types Type Written in Java Description No. Name 1 JDBC-to-ODBC bridge Possibly Uses a JDBC-to-ODBC bridge to translate JDBC calls into ODBC calls, which are handled by an ODBC driver. This requires an ODBC driver on the client side and an ODBC server on the server side. 2 Native protocol Partially Translates JDBC calls into the native API for a particular database.
Transaction-Aware SQL/MP Driver The transaction-aware SQL/MP driver, sqlmptx, requires that you manage the transactions, explicitly beginning and ending them using Current class methods. By default, the transaction-aware driver connects to an SQL/MP database using nonautocommit mode. Note: setAutocommit(true) causes the tranasaction-aware driver to throw an SQLException. JDBC DriverManager The JDBC DriverManager maintains a list of available JDBC drivers.
Legend 1. 2. 3. 4. 5. 6. JDBC driver class Java Virtual Machine (JVM) JDBC Driver Manager SQL/MP database Oracle database JavaDB database Specifying the JDBC Driver Class on the java Command Line To specify the JDBC driver class on the java command line, use the -Djdbc.drivers option. For example, the following java command loads the SQL/MP driver, whose class name is com.tandem.sqlmp.SQLMPDriver: java -Djdbc.drivers=com.tandem.sqlmp.
Connecting a Program to a Database After a driver is loaded, you can use it to connect your Java program to a database by passing the URL of the database to the DriverManager.getConnection() method. You do not need to specify a username and a password to connect to an SQL/MP database. Original Driver Example In a Java program, the following code uses the original driver, sqlmp, to create a connection (myConnection) between the program and the local SQL/MP database: import java.sql.*; ...
import java.sql.*; ... // Create a statement: Statement myStatement = myConnection.createStatement(); // Pass the string argument directly to the database; // results are returned in the ResultSet object, r: ResultSet r = myStatement.executeQuery("SELECT * from $DATA1.DBASE.EMPL"); // Retrieve successive rows from the result set and // print the first column of each row, which is a String: while (r.next()) System.out.println("Column 1: " + r.
e AsciiStream s UnicodeStream BinaryStream Object n n n s n n n s n n n s n n n s n n n s n n n s s n n s nRR nn n nn n s s s n n n n n n n n n n n n Legend R. Recommended s. Supported n. Not supported for current release Referring to Database Objects By default, the SQL/MP driver uses Guardian filenames for SQL/MP database objects, as the following table shows. Default SQL/MP Database Object Names Database Object Default Name * Examples Catalog [\node.][$volume.]subvol $sqldata.sales \tokyo.
Note: Previous versions of NSJ used an equal sign (=) instead of a plus sign. For compatibility, NSJ 1.6 supports the equal sign, but the plus sign is recommended for new programs. 3. If the put() calls for the previous step are in a separate file, use the properties.load method to load that file into the java.util.Properties object. 4. Connect your program to the database, passing the java.util.Properties object to DriverManager.getConnection(). 5.
// Connect the program to the database, passing prop conn = DriverManager.getConnection("jdbc:sqlmp:", prop); // Create an SQL statement stmt = conn.createStatement(); // Use the aliases instead of their Guardian filenames rslt = stmt.executeQuery("select * from longname1 where col1='pickme'"); rslt = stmt.executeQuery("select * from longname2 where col1='pickme'"); Loading a Properties File Using a System Property The JDBC driver (optionally) looks for a System property called jdbcPropfile.
DROP ❍ HELP TEXT ❍ UPDATE STATISTICS In the Data Manipulation Language (DML): ❍ DECLARE CURSOR ❍ DELETE ❍ INSERT ❍ SELECT ❍ UPDATE ❍ ● Substitution also works on subqueries. The alias substitution mechanism does not substitute Guardian filenames and Guardian DEFINEs. If your SQL query uses a DEFINE, you cannot use this alias substitution mechanism. In the following example, no alias substitution is possible: select jobcode, deptnum, first_name, last_name from persnl.
No suitable driver Error The error message No suitable driver means that the Java Virtual Machine (JVM) could not load the JDBC driver that the program needs. For instructions on loading JDBC drivers, see Loading a Driver. Data Truncation Data truncation occurs without warning. To prevent data truncation, use Java data types that are large enough to hold the SQL data items that are to be stored in them (see Compatible Java and SQL/MP Data Types).
Sample SQL/MP Program The following Java program connects itself to an SQL/MP database, sends a simple select statement to the database, and processes the results. import java.sql.*; class sqlmpExample { // Load SQL/MP driver the first time, so you do not have to specify // -Djava.drivers=com.tandem.sqlmp.SQLMPDriver when running java. static { try { Class.forName("com.tandem.sqlmp.
catch (SQLException sqlex) { System.out.println(sqlex); // other error handling res.close(); stmt.close(); sqlmpConn.close(); } } } Contents | Index | Glossary | Prev | Next NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next Accessing Pathway Servers The Compaq NonStopTM Transaction Services/MP (Compaq NonStopTM TS/MP) product supports the creation of Pathway servers to access Compaq NonStopTM SQL/MP or Enscribe databases in an online transaction processing (OLTP) environment. Programs written using Compaq NonStopTM Server for JavaTM can send requests to these Pathway servers and receive replies from them.
Legend 1. 2. 3. 4. 5. 6. WWW client Compaq server Java Virtual Machine (JVM) Servlet Pathway server class Database The preceding figure simplifies the servlet environment. Both the JVM containing the servlet and the iTP Secure WebServer itself run as Pathway server classes. com.tandem.tsmp com.tandem.
❍ ❍ ❍ ❍ ❍ character Numeric string unsigned, including pic 9(n), pic 9(n)v9(n), pic v9(n) Numeric string trailing embedded sign, including pic 9t, pic 9(n)t, pic 9v9t, and so on Numeric string trailing separate sign, including pic 9(n)s, pic 9s, pic 9(n)v9(n)s, and so on Numeric string leading embedded sign, including pic t9, pic t9(n), pic t9v9(n), and so on Numeric string leading separate sign, including pic s9, pic s9(n), pic s9(n)v9(n), and so on ● TYPE ● binary 8 ❍ binary 16 ❍ binary 16, scale ❍ b
SQL Example Any SQL data type can (optionally) have a "null indicator," which is two additional bytes of data. A data item of the type SQL VARCHAR always has two additional bytes of data for its length. For the following DDL code: 05 05 05 05 a-varchar type sql a-varchar-nullable c-sqldate type sql c-sqldate-nullable varchar 6. type sql varchar 6 sqlnullable. date. type sql date sqlnullable.
DDL definition: DEF nationalChars. 02 ascii-field pic x(10). 02 kanji-field1 pic n(20). 02 kanji-field2 pic n(40). end If you want to use encoding for the class generated for this DEF, you could invoke ddl2java by specifying: ddl2java -e mycode.encoding ..... When you execute the java application that uses the generated class, you could indicate that Kanji is the default encoding by invoking java as follows: java -Dmycode.encoding=SJIS myprog In this example, mycode.
The ddl2java tool produces Java source files (.java files) and compiled class files (.class files). 3. Supply the Java source files to the javadoc tool. The javadoc tool produces HTML files (.html files) that document the classes. You will need this documentation to set up the requests and read the replies. The following figure shows the preceding procedure. Creating Classes Using ddl2java and javadoc Legend 1. 2. 3. 4. 5. 6. 7. DDL dictionary Item list file ddl2java tool Java source files (.
Definition EMPLOYEE-RP. 02 replyCode 02 replyMessage End Pic 99. Pic X(30). 1. Create an item list file. For the preceding request and reply data, the item list file might look like this: DEF employee-def,RQ,C,NT DEF employee-rp,RP,C,NT The first line of the item list file means "Look for a DDL definition (DEF) (as opposed to a DDL record) named employee-def and generate a request (RQ) class from this definition.
myRequest.setLast(Gupta); This example assumes that the server will accept a request that does not contain all of the fields in the definition. Sending a Request To send a request to a Pathway server, you must instantiate a TsmpServer object and call its service() method. The TsmpServer object represents a communication session with a particular Pathway server or server class.
// Create an RPEmployee_rp object (using the class generated by ddl2java) // called myReply, passing it the generic reply object myGenReply // so that it can access the message buffer. RPEmployee_rp myReply = new RPEmployee_rp(myGenReply); // Call the generated getReplyMessage method to return the reply message as // a Java String. System.out.println(Reply message: + myReply.getReplyMessage()); Exceptions The methods that interact with Pathway servers can throw the following exceptions.
Reply Data All C and COBOL data types in the reply are converted to Java Strings. Decimal Points If the DDL description of a field contains an implied decimal point, the data conversion method inserts an explicit decimal point in the Java String. The decimal point is inserted as many bytes from the right as is indicated by the precision of the DDL description.
DDL Definitions for Requests and Replies The DDL for the request and possible reply definitions are: Definition EMPLOYEE-DEF. 02 EMPNUM 02 EMPNAME. 03 FIRST 03 LAST 03 MIDDLE 02 REGNUM 02 BRANCHNUM End Pic 9(4). Pic Pic Pic Pic Pic X(20). X(30). X. 99. 99. Definition EMPLOYEE-ADD. 02 REQUEST-CODE 02 EMPLOYEE-INFO End Pic 99. Type EMPLOYEE-DEF. Definition EMPLOYEE-REPLY. 02 REPLY-CODE 02 EMPLOYEE-INFO End Pic 99. Type EMPLOYEE-DEF. Definition ERROR-REPLY. 02 REPLY-CODE 02 ERROR-TEXT End Pic 99.
import employee_class.*; import java.io.*; import java.util.*; // Pathway access classes import com.tandem.tsmp.*; // jts.Current-style transaction class import com.tandem.tmf.*; // Compaq utility classes import com.tandem.util.*; class employeeInfo { static protected String pmonName; static protected String svrClassName; static protected Properties properties = null; public static void main(String args[]) { String pmonName = null; String svrClassName = null; int i = 0; if((args.length == 0) || (!args[0].
String firstName[] = {Anne, Mike, Steve, Frank}; String lastName[] = {Smith, Jones, Brown, Green}; String middleInitial[] = {A, B, C, D}; String regnum[] = {01, 01, 02, 03}; String branchnum [] = {00, 01, 00, 01}; String request_code = new String(02); Current tx = new Current(); // Create a TsmpServer object supplying the pathmon name and // the serverclass name.
try { tx.rollback(); } catch (FSException er3) {} System.exit(1); } } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } } return; } private static void getEmployeeInfo(String pmonName, String svrClassName) { String getempNum[] = {0001,0002,0003,0004}; String empnum; String firstName; String lastName; String middleInitial; String regnum; String branchnum; String request_code = new String(01); // Create a TsmpServer object supplying the PATHMON name and // the serverclass name.
System.out.println(Invalid reply code returned: > + greply.getString(0,1)); System.exit(1); \ } } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } } } private static void deleteEmployee(String pmonName, String svrClassName) { String delEmpNum[] = {0001, 0002, 0003, 0004}; String empNum; Current tx = new Current(); // Create a TsmpServer object supplying the pathmon name // and the serverclass name.
NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next Scalable TCP/IP (SIP) Scalable TCP/IP (SIP) for Compaq NonStopTM Server for JavaTM provides a transparent way to give the Compaq NonStopTM fundamentals of scalability and persistence to a network server (SIP server) written in Java. Existing servers written in Java and their clients can take advantage of SIP without being changed. SIP provides a distributor and tools. The distributor and the SIP server run in Compaq NonStopTM TS/MP server classes.
SIP Distributor The SIP distributor runs as a single server in a TS/MP server class. If a program has more than one SIP server (and therefore, more than one server class), a SIP distributor is created for each server class. If you use the configuration tool to configure the SIP server (or servers) in a TS/MP application, the configuration tool automatically configures the SIP distributor (or distributors).
Accessing the Tools You access the SIP tools from a browser by using the following URL: http://sipconf-system:port Where: sipconf-system is either the host name of the system where sipconf is running or the dotted decimal address of the system where sipconf is running. port is the port number that you supplied when you started sipconf. Configuration Tool The configuration tool allows you to configure a new SIP application. To configure a new SIP application, follow this procedure: 1.
● ● ● ● ● ● ● ● ● ● ● executable is not used TCP/IP transport name Path to the .class files, .jar files, or .zip files that the SIP server needs Name of the .
Examples The following figure shows the execution of an application that has a single SIP server running in a single server class. During configuration of the application, the configuration tool was given the following information: PATHMON name: $SIP Port(s): 4049 Number of concurrent clients for each server: 1 Number of static servers: 4 Number of dynamic servers: 6 Application That Has One Type of SIP Server Legend 1. 2. 3. 4. 5. 6. 7. 8. 9.
PATHMON Starts a New Copy of a SIP Server Legend 1. 2. 3. 4. 5. 6. 7. Clients (* new client) PATHMON $SIP SIP distributor, which listens on port 4049 [listen(port 4049)] Original SIP servers Processors Himalaya New client constructs a new socket and requests a connection to port 4049 [Socket(\\NSJ,4049)] 8. SIP distributor forwards new client’s request to a SIP server 9. Because no SIP server is available, PATHMON starts a new copy of one 10.
Client 1 connects to a SIP server running in the employee-svc server class and Client 2 connects to a SIP server running in the manager-svc server class. Application That Has Two Types of SIP Servers Legend 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Contents | Index | Glossary | Prev | Next Transactions Compaq NonStopTM Server for JavaTM lets you work with transactions in several ways. You can: 1. Let the original Compaq NonStopTM SQL/MP driver define transactions for you. 2. Use the Current class methods with the transaction-aware Compaq NonStopTM SQL/MP driver to define transactions across transaction services, such as transactions that include both JDBCTM and Java-to-Pathway calls. 3.
resume(ControlRef) rollback() suspend() Sets or resumes association of a transaction with the calling thread. Rolls back the transaction associated with the calling thread. Suspends the association of the calling thread with a transaction context. When you use the Current class with JDBC to access a SQL/MP database, you must also use the transaction-aware SQL/MP driver. The following code fragment shows how to use the begin() and commit() methods of the Current class: import com.tandem.tmf.
javax.transaction.UserTransaction (see examples). The default is TMF. NonStopTM Java Transaction API-TMF is intended for non-CORBA applications. NonStopTM Java Transaction API-JTA is intended for CORBA applications. If you use NonStopTM Java Transaction API-JTS for non-CORBA applications, results are unpredictable. This subsection explains the following subjects: ● javax.transaction interfaces ● javax.
● ● ● ● ● ● ● HeuristicMixedException HeuristicRollbackException InvalidTransactionException NotSupportedException TransactionRequiredException TransactionRolledbackException SystemException Examples The following examples are identical except that: ● The first example uses NonStopTM Java Transaction API-TMF by default ● The second example requests NonStopTM Java Transaction API-TMF ● The third example requests NonStopTM Java Transaction API-JTS NonStopTM Java Transaction API-TMF by Default The follow
// Get a reference to UserTransaction based on TMF (by request). UserTransaction utx = JTAFactory.getUserTransaction(JTAFactory.TMF); // Start transaction utx.begin(); // Do work ... // Commit transaction utx.commit(); NonStopTM Java Transaction API-JTS The following code gets a reference to UserTransaction based on JTS, then starts and ends a transaction. import javax.transaction.UserTransaction; import com.tandem.jta.JTAFactory; // Get a reference to UserTransaction based on JTS.
Contents | Index | Glossary | Prev | Next Just-in-Time (JIT) Compiler JavaTM supports the use of native RISC instructions instead of Java bytecode to improve Java run-time performance. To generate RISC instructions, run the Java interpreter with the -jit option. The -jit option is a Compaq extension to standard Java. -jit performs just-in-time (JIT) compilation on each class, translating the class to native RISC code when it is loaded.
Legend 1. 2. 3. 4. Java bytecode Run-time JIT compilation Native RISC instructions Java Virtual Machine (JVM) For more information about java, see the NonStopTM Server for Java (NSJ) Tools Reference Pages. Contents | Index | Glossary | Prev | Next NonStopTM Server for JavaTM (NSJ) Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Prev | Next Glossary ABCDEFGHIJKLMNOPQRSTUVWXYZ A abstract class In JavaTM, a class designed only as a parent from which subclasses can be derived, which is not itself suitable for instantiation. An abstract class is often used to "abstract out" incomplete sets of features, which can then be shared by a group of sibling subclasses that add different variations of the missing pieces. Abstract Window Toolkit (AWT) The package that implements graphical user interfaces for Java.
communicate with other software components. ASCII See American Standard Code for Information Interchange (ASCII). autocommit mode A mode in which a JDBCTM driver automatically commits a transaction without the programmer's calling commit(). AWT See Abstract Window Toolkit (AWT). B BDK See JavaBeansTM Development Kit (BDK). BLOB A data type used to represent Binary Large OBjects. These are typically used to store, in Enscribe files, images or serialized objects in the database.
catalog In Compaq NonStopTM SQL/MP, a set of tables containing the descriptions of SQL objects such as tables, views, columns, indexes, files, and partitions. CGI See Common Gateway Interface (CGI). CISC See complex instruction set computing (CISC). class path The location where the JVM and other Java programs that are located in the /usr/tandem/java/bin directory search for class libraries (such as classes.zip). You can set the class path explicitly or with the CLASSPATH environment variable.
Compaq NonStopTM Kernel operating system The operating system for Compaq NonStopTM systems. Compaq NonStopTM ODBC Server The Compaq implementation of ODBC. Compaq NonStopTM Series/RISC Compaq computers that support the Compaq NonStopTM Kernel operating system and are based on RISC technology. Compaq NonStopTM Series/RISC processors implement the RISC instruction set and are upwardly compatible with the Compaq NonStopTM Series (TNS) system-level architecture.
and tolerate relatively dumb compilers. On TNS/R machines, CISC refers in particular to the stack-oriented, 16-bit instruction set carried over from TNS machines such as the Compaq NonStopTM VLX system. Compare to RISC. concurrency A condition in which two or more transactions act on the same record in a database at the same time. To process a transaction, a program must assume that its input from the database is consistent, regardless of any concurrent changes being made to the database.
database is created with DDL, the DDL compiler can create a library that other languages can use. Data Definition Language (DDL) dictionary A database that contains object definitions and record types created by the DDL compiler. It serves as a map of a user's business database. A DDL dictionary is a set of 14 files on the same subvolume, and a subvolume can contain only one DDL dictionary. The name of the dictionary is the subvolume name.
A class in JDBC that implements a connection to a particular database management system such as Compaq NonStopTM SQL/MP. NonStopTM Server for Java Server for Java includes drivers for SQL/MP. DriverManager The JDBC class that manages drivers. DSM/SCM See Distributed Systems Management/Software Configuration Manager (DSM/SCM). E Enscribe Compaq database management software that provides a record-at-a-time interface between servers and a database.
G garbage collection The process that reclaims dynamically allocated storage during program execution. The term usually refers to automatic periodic storage reclamation by the garbage collector (part of the run-time system), as opposed to explicit code to free specific blocks of memory. get() method A method used to read a data item. For example, the SQLMPConnection.getAutoCommit() method returns the transaction mode of the JDBC driver's connection to a SQL/MP database. Compare to set() method.
A hypertext document format used on the World-Wide Web. Hypertext Transfer Protocol (HTTP) The client-server TCP/IP protocol used on the World-Wide Web for the exchange of HTML documents. I IEC See International Electrotechnical Commission (IEC). IEEE Institute for Electrical and Electronic Engineers (IEEE). inlining Replacing a method call with the code for the called method, eliminating the call. interactive "Question-and-answer" exchange between a user and a computer system.
❍ the term "connectivity" in this context, while other vendors use "connectivity" to mean hardware compatibility. Within a Compaq node, the ability to use the features or facilities of one environment from another. For example, the gtacl command in the OSS environment allows an interactive user to start and use a Guardian tool in the Guardian environment. interpreter The component of JVM that interprets bytecode into native machine code.
The Java standard for access to relational databases such as SQL/MP. Java Development Kit (JDKTM) The JVM, core libraries, and tools for Java. NonStopTM Server for Java Server for Java 2.0 consists of the full JDK 1.2.2, but does not fully support AWT. For more information on JDK 1.2, see the Sun Microsystems JDK 1.2 Documentation (http://www.javasoft.com/products/jdk/1.2/docs/index.html). Java Foundation Classes See Core API. Java IDL See Java Interface Development Language (Java IDL).
Formerly called jeeves. Compaq does not have a license for Java Web Server, but Compaq supports servlets by using iTP Secure WebServer. For more information, see the Sun Microsystems Java Web Server document (http://jserv.java.sun.com/products/webserver/). JavaBeansTM A platform-neutral component architecture supported by Java, intended for developing or assembling software for multiple hardware and operating system environments. For more information, see the Sun Microsystems JavaBeans document (http://www.
See Java Conformance Kit (JCK). jdb The Java debugger, which helps you find and fix bugs in Java programs. Also, the command to run the Java debugger. jdb uses the Java Debugger API. JDBCTM See Java Database Connectivity (JDBC). JDK See Java Development Kit (JDK). jeeves See Java Web Server. JIT compiler See Just-in-Time (JIT) compiler. JNDI See Java Naming and Directory Interface (JNDI). JNI See Java Native Interface (JNI). jre The Java run-time environment, which interprets (executes) Java bytecode.
K key One of the following: ❍ A value used to identify a record in a database, derived by applying a fixed function to the record. The key is often simply one of the fields (a column if the database is considered as a table with records being rows). Alternatively, the key can be obtained by applying a function to one or more of the fields. ❍ A value that must be fed into the algorithm used to decode an encrypted message in order to reproduce the original plain text.
N native In the context of Java programming, something written in a language other than Java (such as C or C++) for a specific platform. native method A non-Java routine (written in a language such as C or C++) that is called by a Java class. native mode The operational environment in which native RISC instructions run. native2ascii The Native-to-ASCII converter, which converts a file with native-encoded characters into one with Unicode-encoded characters.
encoding and is then solely responsible for the external format. Object Transaction Service (OTS) The transaction service standard adopted by the OMG and used as the model for JTS. ODBC See Open Database Connectivity (ODBC). OLTP See online transaction processing (OLTP). OMG See Object Management Group (OMG). online transaction processing (OLTP) A method of processing transactions in which entered transactions are immediately applied to the database.
Pathsend interface The interface to a Pathway system that enables a Pathsend process to communicate with a server process. Pathsend process A client (requester) process that uses the Pathsend interface to communicate with a server process. A Pathsend process can be either a standard requester, which initiates application requests, or a nested server, which is configured as a server class but acts as a requester by making requests to other servers. Also called a Pathsend requester.
A family of interrelated interface standards defined by ANSI and IEEE. Each POSIX interface is separately defined in a numbered ANSI/IEEE standard or draft standard. The standards deal with issues of portability, interoperability, and uniformity of user interfaces. POSIX See Portable Operating System Interface X (POSIX). private key An encryption key that is not known to all parties. protocol A set of formal rules for transmitting data, especially across a network.
❍ Assists in disaster recovery for OLTP production databases Monitors database updates audited by the TMF subsystem on a primary system and applies those updates to a copy of the database on a remote system Remote Method Invocation (RMI) The Java package used for homogeneous distributed objects in an all-Java environment. ❍ requester See client. RISC See reduced instruction set computing (RISC). RMI See Remote Method Invocation (RMI).
The Java class used to implement security policy. serialization See Object Serialization. serialized object An object that has undergone object serialization. serialver The Serial Version Command, which returns the serialVersionUID of one or more classes. Also, the command to run the Serial Version Command. server One of the following: ❍ An implementation of a system used as a stand-alone system or as a node in an Expand network.
site update tape (SUT) The tape that Compaq sends to a customer, containing all of the software that the customer has purchased. To install the software, the customer uses the SUT as input to the INSTALL program or to the DSM/SCM program. skeleton In RMI, the complement of the stub. Together, skeletons and stubs form the interface between the RMI services and the code that calls and implements remote objects. socket A logical connection between two application programs across a TCP/IP network.
A local procedure in a remote procedure call (RPC). A client calls the stub to perform a task, not necessarily aware that the RPC is involved. The stub transmits parameters over the network to the server and returns results to the caller. Subsystem Control Facility (SCF) The interactive interface for configuring, controlling, and collecting information from Compaq data-communications subsystems. SUT See site update tape (SUT). ❍ T TACL See Compaq Tandem Advanced Command Language (TACL).
A user-defined action that a client program (usually running on a workstation) requests from a server. Transaction Management Facility (TMF) A set of Compaq software products that assures database integrity by preventing incomplete updates to a database. It can continuously save the changes that are made to a database (in real time) and back out these changes when necessary. It can also take online "snapshot" backups of the database and restore the database from these backups.
the WWW everything (documents, menus, indexes) is represented to the user as a hypertext object in HTML format. Hypertext links refer to other documents by their URLs. These can refer to local or remote resources accessible by FTP, Gopher, Telnet, or news, as well as those available by means of the HTTP protocol used to transfer hypertext documents.
Contents | Glossary | Prev Index ABCDEFGHIJKLMNOPQRSTUVWXYZ A Abbreviations used in this document Abstract Window Toolkit (AWT) Accessing Compaq NonStopTM SQL/MP databases Advanced SQL data types in JDBC 2.0 Aliases for database objects creating and using when you can use which SQL statements support Audience for this document Autocommit mode in general original driver and transaction-aware driver and AWT B Batch updates in JDBC 2.
C C/C++ methods calling from JavaTM debugging invoking the JVM from Cached row sets in JDBC 2.0 Catalogs See Database objects Changed files in NonStopTM Server for Java 1.
Compaq NonStopTM Java Transaction API Compaq NonStopTM Server for Java document set com.tandem.
contents of structure of Distributed transactions in JDBC 2.0 Distributor, SIP DNS (Domain Name Server) Document structure Domain Name Server (DNS) Double-precision values, converting DriverManager Drivers connecting programs to databases with JDBCTM classes and methods supported by loading original connecting to a database description of pure Java connecting to a database description of requirements for transaction-aware connecting to a database description of types of E Enhancements for JDBC 2.
JNDI for naming databases miscellaneous features result set enhancements Environment variables Exceptions associated with Pathway servers Execution of Java tools of NonStopTM Server for Java as a stand-alone process as a web-based servlet from C or C++ code from RMI F Failing Guardian socket calls Feedback on this document, providing Files changed in NonStopTM Server for Java 1.6 library, naming new in NonStopTM Server for Java 1.6 of properties swap Fixes in NonStopTM Server for Java 1.
G getConnection method H Hardware requirements for installing NonStopTM Server for Java I IEEE floating-point implementation Implementation specifics, Compaq Indexes See Database objects Installing NonStopTM Server for Java Invocation API demo J Java Abstract Window Toolkit (AWT) Java Checker (javachk) Java data types, converting Compaq NonStopTM SQL/MP data types to Java Database Connectivity (JDBCTM) Compaq NonStopTM SQL/MP support for DriverManager drivers See Drivers enhancements for JDBC 2.
Java Transaction API (JTA) Java Transaction Service (JTS) Java Virtual Machine (JVM) binding libraries into compiling with the SQL Compiler invoking from C or C++ code invoking from RMI JavaBeansTM javachk (Java Checker) jdb (Java Debugger) JDBCTM See Java Database Connectivity (JDBC) JDK (Java Development Kit) JIT (Just-in-Time) compiler JNDI (Java Naming and Directory InterfaceTM) JNDI for naming databases in JDBC 2.
M Makefile for binding libraries into the JVM for compiling JVM objects using the SQL Compiler Management tool for SIP applications Miscellaneous features in JDBC 2.0 N Native methods, thread-safe Network (SIP) servers New features of NonStopTM Server for Java 1.6 of JDK 1.1.6 New files in NonStopTM Server for Java 1.
put() calls for alias creation R Reader comment card Reading replies from Pathway servers Reconfiguration tool for SIP applications Related reading Compaq documents NonStopTM Server for Java documents Sun Microsystems documents Remote Method Invocation (RMI) configuring DNS and TCP/IP for example of invoking the JVM from Replies from Pathway servers conversion of data from creating classes for reading Requests to Pathway servers conversion of data for creating classes for sending setting up data for Result
S Scalable TCP/IP (SIP) Servers Pathway SIP Servlet, executing NonStopTM Server for Java as SIP (Scalable TCP/IP) Sockets C or C++ methods and Java Checker (javachk) and RMI and SIP servers and TCP/IP configuration and Software requirements for installing NonStopTM Server for Java SQL Compiler, using on JVM objects sqlmp driver See Drivers, original SQL/MP See Compaq NonStopTM SQL/MP SQLMPConnection SQLMPDatabaseMetaData SQLMPDriver SQLMPPreparedStatement SQLMPResultSet SQLMPResultSetMetaData SQLMPStatement
of this document Swap files Symbolic links T Tables See Database objects TCP/IP configuration for RMI scalable Thread-safe native methods TMF (Transaction Management Facility) Tools, Java, executing Transaction Management Facility (TMF) Transaction-aware driver See Drivers, transaction-aware Transactions Compaq NonStopTM SQL/MP drivers and original transaction-aware in general Truncation of data V Variables, environment Virtual Machine See Java Virtual Machine (JVM) W Web-based execution of NonStopTM Ser
in general for Pthreads Y Year-2000 (Y2K) compliance Your comments invited ABCDEFGHIJKLMNOPQRSTUVWXYZ Contents | Glossary | Prev Compaq NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next List of Examples Section Title Introduction to NonStopTM Server for JavaTM ● ● RMI Example Invocation API Demo Original Driver Example ● Transaction-Aware Driver Example ● Pure Java Driver Example ● Passing SQL/MP Statements to a Database ● Specifying Properties Using the put() Method ● Specifying Properties in a Properties File ● How a Dangling Statement Can Be Created ● How a Dangling Statement Can Be Avoided ● ● Sample SQL/MP Program ENUM Exam
NonStopTM Server for JavaTM Programmer's Guide (426947-001) Copyright © 2001, Compaq Computer Corporation. All rights reserved.
Contents | Index | Glossary | Prev | Next List of Figures Section Title Introduction to NonStopTM Server for JavaTM ● Accessing NonStopTM SQL/MP Databases ● Accessing Pathway Servers ● ● Scalable TCP/IP (SIP) Just-in-Time (JIT) Compiler ● Figure Title(s) Relationship of JDK, NonStopTM Server for Java, Servlets, and iTP Secure WebServer Loading a JDBCTM Driver Class Into the JVM WWW Client Accessing a Pathway Server Creating Classes Using ddl2java and javadoc Application That Has One Type of SIP Se
Contents | Index | Glossary | Prev | Next List of Tables Section Title About This Manual ● ● Table Title(s) Document Sections Related Reading Supported JDKTM 1.2.2 Features Introduction to NonStopTM Server for JavaTM ● Installation and Configuration ● Unsupported JDK 1.2.