Table of Contents Previous Next PDF


Managing ATMI Java Server

Managing ATMI Java Server
This topic contains the following sections:
Overview
The ATMI Java server TMJAVASVR, is a new Oracle Tuxedo system server acting as a bridge between the Tuxedo system and Java-implemented services. Tuxedo Java server mainly performs the following tasks:
Configurations in UBBCONFIG
You need to do the following configurations in UBBCONFIG.
Specify MINDISPATCHTHREADS and MAXDISPATCHTHREADS for Java server to decide its running mode: the multi-thread mode or the single-thread mode. More specifically, if neither MINDISPATCHTHREADS nor MAXDISPATCHTHREADS is specified or if MAXDISPATCHTHREADS is specified to 1, Java server runs in the single-thread mode; other than that, Java server runs in the multi-thread mode.
Listing 18‑1 shows an example.
Listing 18‑1 Example for TMJAVASVR's Configurations in UBBCONFIG
*SERVERS
TMJAVASVR SRVGRP=TJSVRGRP SRVID=3
CLOPT="-- -c /home/oracle/app/javaserver/TJSconfig.xml"
MINDISPATCHTHREADS=2 MAXDISPATCHTHREADS=3
 
Tuxedo Java Server Configuration File
Tuxedo Java server configuration file is an XML file that defines the parameters necessary to run the Java-implemented services in JVM.
There are two versions of Oracle Tuxedo Java server configuration file called version 1.0 and 2.0; the corresponding schema files are TJSconfig_1.0.xsd and TJSconfig_2.0.xsd that are both installed in $TUXDIR/udataobj/tuxj directory.
Though both versions are supported, you are strongly suggested using version 2.0 by specifying version attribute in TJSconfig to 2.0; if version is not set, Java server treats the configuration file as a version 1.0 file.
Tuxedo Java Server Configuration File Version 2.0
Configuration File Elements
Tuxedo Java server configuration file contains the following elements.
TJSconfig
It is the root element of Tuxedo Java server configuration file. Java server firstly does a pre-fetching operation to verify whether TJSconfig exists in the current configuration file. If TJSconfig is not found, Java server logs an error and exits. The following table lists the complete set of TJSconfig attribute.
 
Table 18‑1 TJSconfig Attribute
java-config
java-config specifies JVM options that are read by Java server and passed to JVM when Java server creates JVM. These options are used to tune JVM or pass extra properties to JVM. With this element, users can control JVM behaviors in terms of GC policy, stack size, heap size, and so on. The following table lists the complete set of java-config nested elements.
 
It is allowable to specify multiple JVM options in one jvm-options; these options should be separated by spaces.
Note:
Java server doesn’t validate any specified JVM options but only construct the standard JNI JVM initialization data structure with these options and pass them into JVM to handle; however, for -Xms and -Xmx, if users do not specify these two options, Oracle Tuxedo Java server replaces their built-in values with 256m and 256m, respectively, on IBM AIX 6.1 (32-bit) on IBM PowerPC, or with 256m and 512m, respectively, on Oracle Linux 5.6 (64-bit) on Exalogic 2.0.
tux-config
tux-config specifies attributes related to Tuxedo applications. The following table lists the complete set of tux-config nested elements.
 
It specifies some startup options for the implemented methods, tpsvrinit(String []) and tpsvrthrinit(String[]), in Java server classes. More specifically, if users' Java server classes implement at least one of these two methods, Java server reads these options, constructs a string array, and passes the string array to the implemented method(s).
It is allowable to specify multiple options in one server-clopt; these options should be separated by spaces.
classpath-config
classpath-config specifies the packages used to look for user-defined classes. Differed from ClassPaths in version 1.0, classpath string in version 2.0 can be specified with a variable externally defined by an environment variable or a JVM option string specified in jvm-options with "-D" option. For example,
<classpath>${USER_JAVA_LIB}/lib1</classpath>
When adding this class path, Java server firstly searches jvm-options list to find whether -DUSER_JAVA_LIB=… is already specified. If it is found, Java server replaces the USER_JAVA_LIB with the value specified in -DUSER_JAVA_LIB= and passes the result to the class path searching list; otherwise, Java server finds whether the environment variable USER_JAVA_LIB is specified and passes the result to the class path searching list. If neither -DUSER_JAVA_LIB=… nor the environment variable USER_JAVA_LIB is found, Java server skips the unspecified class paths and logs an error in ULOG.
Note:
The following table lists the complete set of classpath-config nested elements.
 
It is allowable to specify multiple class paths in one classpath; these class paths should be separated by system path separators (";" in Windows platforms; ":" in Unix-like platforms).
Additionally, Java server wildcard mode is enhanced to support recursively searching all sub directories to find matched results.
tux-resources
tux-resources specifies view/view32 and fml/fml32 typed buffer classes to instantiate buffer resource objects. The following table lists the complete set of tux-resources nested elements.
 
Users can specify multiple FML/FML32/VIEW/VIEW32 classes in one element; these classes should be separated by commas.
Please refer to Developing Oracle WebLogic Tuxedo Connector Applications for Oracle WebLogic Server for more information about jatmi typed buffer.
Users can directly use viewj/viewj32 compilers and mkfldclass/mkfldclass32 utilities to generate corresponding VIEW/VIEW32 classes and FML/FML32 classes. Before running these compilers or utilities, please specify the class path, where $TUXDIR/udataobj/tuxj/com.bea.core.jatmi_2.0.0.0.jar is included.
jdbc-resources
jdbc-resources specifies the JDBC compatible data source parameters. The following table lists the complete set of jdbc-resources nested elements.
 
Table 18‑7 and Table 18‑8 list the complete set of data-source attributes and nested elements.
 
 
The following table lists the complete set of driver-params nested elements.
 
tux-server-config
tux-server-config specifies Java server class parameters. The following table lists the complete set of tux-server-config nested elements.
 
The following table lists the complete set of server-class attributes.
 
server-class also has a nested element called services. services has a nested element called service. The following tables list the complete set of service attributes.
 
Table 18‑12 service Attributes
Configuration File Example
Listing 18‑2 lists an example to create Tuxedo Java server configuration file.
Listing 18‑2 Example for Creating Tuxedo Java Server Configuration File
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-XX:MaxPermSize=192m</jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-DMYVAR="var01" -DMYVAR02="var02"</jvm-options>
</java-config>
<tux-config>
<server-clopt>-C dom=TMJSVRDOM -t 1000</server-clopt>
<server-clopt>-n 200</server-clopt>
</tux-config>
<classpath-config>
<classpath>${USER_JAVA_LIB}/lib1</classpath>
</classpath-config>
<tux-resources>
<fld-tbl16-class>myfmltbl</fld-tbl16-class>
<fld-tbl32-class>myfmltbl32,customerflds32</fld-tbl32-class>
<view16-class>myView</view16-class>
<view32-class>myView32,customerView32</view32-class>
</tux-resources>
<jdbc-resources>
<data-source vendor="Oracle" driver-type="thin" enabled="true">
<datasource-classname>oracle.jdbc.xa.client.OracleXADataSource</datasource-classname>
<driver-params>
<connection-url>
jdbc:oracle:thin:@//Server:1521/orcl
</connection-url>
</driver-params>
</data-source>
</jdbc-resources>
<tux-server-config>
<classpath>$TUXJRE/jce.jar</classpath>
<server-class name="MyTuxedoJavaServer">
<services>
<service name="JAVATOUPPER" target="JAVATOUPPER"></service>
<service name="JAVATOUPPERFORWARD" target="JAVATOUPPERFORWARD"></service>
</services>
</server-class>
</tux-server-config>
</TJSconfig>
Mapping Java Services
Java server retrieves all service methods implemented in application server classes and advertises services under the following rules.
Only the methods that have been declared to public in the server class are retrieved by Java server to participate the advertising action.
Tuxedo Java Server Configuration File Version 1.0
Table 18‑13 lists available properties in a Java server configuration file. Please see the corresponding Java Server Configuration File Schema, which checks the validation of the configuration XML file for more precise information.
 
Setting the Class Path Element
Following <ClassPath> element settings are supported in Tuxedo Java configuration file:
<ClassPath>customer_lib_path/*.jar</ClassPath> or <ClassPath>customer_lib_path/*.zip</ClassPath>
Adds all the .jar or .zip archives under customer_lib_path to JVM classpath.
<ClassPath>customer_lib_path</ClassPath>
Adds all the classes under customer_lib_path to JVM classpath.
<ClassPath>customer_lib_path/*</ClassPath>
Adds all the .jar files, .zip files, and classes under customer_lib_path to JVM classpath.
<ClassPath>customer_lib_path/lib1.jar</ClassPath> or <ClassPath>customer_lib_path/lib2.zip</ClassPath>
Adds customer_lib_path/lib1.jar or customer_lib_path/lib2.zip to JVM classpath.
Notes:
All the file searches in customer_lib_path are non-recursive.
The customer_lib_path to $APPDIR can be either absolute path or relative path.
The $APPDIR is added into classpath by default.
Setting the FML/View Field Table Class
To use the View/View32, you need to specify the View class in <Resources></Resources> element. To use the Fldid()/Fname() properly, you need to specify the FML/FML32 field table class in <Resources></Resources> element.
Configuration Rules
You need to follow the following rules when creating Java server configuration file:
Only <TuxedoServerClasses> is mandatory in Java server configuration file, and at least one TuxedoServerClass should be configured.
Currently, only one <DataSource> element is allowed to be configured in <DataSources> in configuration file. The name property for <DataSource> does not take effect for the present.
Only <ClassPath>, <fieldTable16Class>, <fieldTable32class>, <viewFile16Class>, <viewFile32Class>, and <Service> element can have multiple entities.
In <Resources> section, you should configure <fieldTable16Class> first and then <fieldTable32class>, <viewFile16Class>, and <viewFile32Class> in sequence.
Note:
The configuration file (e.g. TJSconfig.xml) will be checked against the Schema file TJSconfig.xsd which is located in $TUXDIR/udataobj/tuxj/TJSconfig.xsd (Unix) or $TUXDIR\udataobj\tuxj/TJSconfig.xsd (Windows). Oracle recommends you refer to TJSconfig.xsd for more information about configuration rules.
Advertising Services
Each Tuxedo Java server class that implements services must implement a set of methods, of which input argument parameter is the TPSVCINFO interface. The methods that are advertised as services must be the public method and have the return type set to void.
Tuxedo Java server advertises all of public methods as services into bulletin board. If Services is specified in configuration file, Tuxedo Java server uses the value of name property as the service name, otherwise, the method name is used as the service name.
Configuration File Example
Listing 18‑3 shows a Tuxedo Java server configuration file example.
Suppose the MyTuxedoServerClass1 Java class defines JAVASTRINGSVC, JAVAFML32SVC, and svc3 methods, and the MyTuxedoServerClass2 Java class defines svc4 method, this example initiates the connection to Oracle database with JDBC connection and exports the services: svc1, svc2, svc3, and svc4.
Note that the method name svc3 and svc4 are exported as the service name because there is no <Service> property specified for them in the configuration file.
Listing 18‑3 Tuxedo Java Server Configuration Example
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig>
<ClassPaths>
<ClassPath>/home/oracle/app/javaserver/MyTuxedoServerClass.jar</ClassPath>
<ClassPath>/home/oracle/app/oracle/product/11.2.0/dbhome_2/ucp/lib/ucp.jar</ClassPath>
<ClassPath>/home/oracle/app/oracle/product/11.2.0/dbhome_2/jdbc/lib/ojdbc6.jar</ClassPath>
</ClassPaths>
<Resources>
<FieldTable16Classes>test1.FML16TBL, test2.FML16TBL</FieldTable16Classes>
<FieldTable16Classes>test3.FML16TBL, test4.FML16TBL</FieldTable16Classes>
<FieldTable32Classes>test1.FML32TBL1, test2.FML32TBL</FieldTable32Classes>
<FieldTable32Classes>test3.FML32TBL1, test4.FML32TBL</FieldTable32Classes>
<ViewFile16Classes>test1.VIEW16, test2.VIEW16</ViewFile16Classes>
<ViewFile16Classes>test3.VIEW16, test4.VIEW16</ViewFile16Classes>
<ViewFile32Classes>test1.VIEW32, test2.VIEW32</ViewFile32Classes>
<ViewFile32Classes>test3.VIEW32, test4.VIEW32</ViewFile32Classes>
</Resources>
<DataSources>
<DataSource name="oracle">
<DriverClass>oracle.jdbc.xa.client.OracleXADataSource</DriverClass>
<JdbcDriverParams>
<ConnectionUrl>jdbc:oracle:thin:@//10.182.54.144:1521/javaorcl</ConnectionUrl>
</JdbcDriverParams>
</DataSource>
</DataSources>
<TuxedoServerClasses>
<TuxedoServerClass name="MyTuxedoServerClass1">
<Services>
<Service name="svc1" target="JAVASTRINGSVC"></Service>
<Service name="svc2" target="JAVAFML32SVC"></Service>
</Services>
</TuxedoServerClass>
<TuxedoServerClass name="MyTuxedoServerClass2"></TuxedoServerClass>
</TuxedoServerClasses>
</TJSconfig>
 
Notes:
Configuration for Tuxedo Java Server Transaction Manager
Java server provides a getter method to create a new or acquire an existing JTA compliant transaction manager. Listing 18‑4 demonstrates how to configure a Tuxedo transaction manager in Spring application context configuration file.
For more information about Spring application context configuration file, see Create Spring Application Context.
Listing 18‑4 Sample of Tuxedo Transaction Manager Configuration
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
 
<bean id="TuxTransactionManager"
class="com.oracle.tuxedo.tjatmi.TuxTransactionManager"
factory-method="getTransactionManager">
</bean>
 
<bean id="springAppTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="TuxTransactionManager"/>
<property name="transactionManager" ref="TuxTransactionManager"/>
</bean>
 
</beans>
 
Create Spring Application Context
Java server does not create, destroy, or maintain the Spring application context; Spring applications do.
The Spring Framework libraries and all dependent libraries need to be configured in the Java server configuration file. Listing 18‑5 demonstrates how to specify Spring Framework libraries in Java server configuration file.
For more information about Java server configuration file, see Tuxedo Java Server Configuration File.
Listing 18‑5 Sample of Specifying Spring Framework Libraries
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-DSPRING_LIB=/home/tuxdev/Spring/3.2.4</jvm-options>
<jvm-options>-DSPRING_DEP=/home/tuxdev/Spring/deps</jvm-options>
</java-config>
<classpath-config>
<classpath>${SPRING_LIB}/*.jar</classpath>
<classpath>${SPRING_DEP}/*.jar</classpath>
</classpath-config>
</TJSconfig>
 
Java server loads Spring Framework and all dependent libraries according to the configuration information in the Java server configuration file at the booting stage. Spring applications can directly import the Spring Framework classes as they want.
Transaction Management
The Tuxedo Java-based transaction is implemented based on the existing Tuxedo transaction management framework. As before, the configuration you need to make in the UBB configuration file for transaction is, define the attributes of transaction manager servers (TMSs) and resource managers (RMs) for a particular group. The Tuxedo Java Server (TMJAVASVR) should belong to this group.
Listing 18‑6 UBB Configurations for Java-Based Transaction
*GROUP
ORASVRGRP LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/system/oracle+SesTm=120+MaxCur=5+LogDir=.+SqlNet=orcl"
TMSNAME=TMSORA TMSCOUNT=2
*SERVERS
TMJAVASVR SRVGRP=ORASVRGRP SRVID=3 CLOPT="-- -c TJSconfig_ORA.xml"
MINDISPATCHTHREADS=2 MAXDISPATCHTHREADS=2
 
For more information about how to configure the transaction in UBB config file, see Configuring Your ATMI Application to Use Transactions.
Since the Java-implemented services need to connect the data source in Java world, it is necessary to provide parameters that define how to connect the data source in Tuxedo Java server configuration file.
In this release, the Java-implemented services can only connect the database with JDBC connection, so you need to specify JDBC parameters in Tuxedo Java server configuration file using ConnectionUrl property.
Because the Java server retrieves user name and password from OPENINFO, you should provide the user name and password in OPENINFO in UBB configuration file. This way encrypts the password and ensures the high security.
Different DataSource have different ConnectionURL format.
For Oracle database, the format is:
jdbc:oracle:thin:@//hostname:portnumber/servicename
For DB2 database, the format is:
jdbc:db2://hostname:portnumber/DatabaseName
Listing 18‑7 is a configuration example of Oracle database.
Listing 18‑7 Oracle Database Configuration Example
<DataSources>
<DataSource name="oracle">
<DriverClass>oracle.jdbc.xa.client.OracleXADataSource</DriverClass>
<JdbcDriverParams>
<ConnectionUrl>jdbc:oracle:thin:@//10.182.54.144:1521/javaorcl</ConnectionUrl>
</JdbcDriverParams>
</DataSource>
</DataSources>
 
AUTOTRAN
The AUTOTRAN can also be configured on the services advertised by Tuxedo Java server. When the Tuxedo Java server service is configured in *SERVICES section and its AUTOTRAN attribute is specified as Y, the service starts a transaction automatically.
Supported Spring Application Transaction Modes
Spring Framework supports two transaction management modes.
Declarative transaction can support seven transaction propagation modes that can be mapped to corresponding container management transaction modes in EJB as listed in .
 
Note:
*In declarative transaction management mode, the PROPAGATION_NESTED propagation behavior is not support by Java server transaction manager.
Java server supports two initiated transaction.
The transaction attribute timeout, rollback-for, and no-rollback-for are supported.
Note:
Java Server Transaction Manager Default Timeout
If the timeout value is specified for one bean method, the timeout is used for a new transaction. If neither an explicit transaction timeout value nor a Java server transaction manager timeout is specified, the default built-in transaction timeout value is used as 30 to create a new transaction. Java server supports to specify a default transaction timeout value in the Java server configuration file. shows a sample.
Listing 18‑8 Sample of Specifying a Default Transaction Timeout Value
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-Dtuxedo.tjatmi.defaultTransactionTimeout=60</jvm-options>
</java-config>
</TJSconfig>
 
Setting Up the JVM Library Environment
The TMJAVASVR server depends on the libjvm.so (Unix)/jvm.dll (Windows) which is in the JRE package.
Before running TMJAVASVR, you must make sure the libjvm.so (Unix) or jvm.dll (Windows) is located in the library loading path of your platform.
On Unix, set LD_LIBRARY_PATH or SHLIB_PATH (HP-UX only) or LIBPATH (AIX only) accordingly.
Do one of the following according to the platform you are using:
On Oracle Enterprise Linux (64 bit) and Java SE, make sure $JRE_HOME/lib/amd64/server is included in $LD_LIBRARY_PATH.
On Oracle Enterprise Linux (64 bit) and Oracle JRockit JVM, make sure $JRE_HOME/lib/amd64/jrockit and $JRE_HOME/lib/amd64 are included in $LD_LIBRARY_PATH.
On AIX PPC64, we suggest that you include both $JRE_HOME/lib/ppc64/classic and $JRE_HOME/lib/ppc64 in $LIBPATH.
On Solaris sparc 64-bit, make sure $JRE_HOME/lib/sparcv9/server is included in $LD_LIBRARY_PATH
On Solaris x64, make sure $JRE_HOME/lib/amd64/server is included in $LD_LIBRARY_PATH
On Windows, make sure the PATH environment variable includes %JRE_HOME%\bin\server.
Note:
The $JRE_HOME points to the JRE home directory. You can also refer to $TUXDIR/tux.env for the setting.
Limitations
Java Server Configuration File Schema
Java Server Configuration Schema File for version 2.0
Listing 18‑9 shows the XML schema of the Java server configuration file for version 2.0.
Listing 18‑9 Java Server Configuration Schema File for version 2.0
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="TJSconfig">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="java-config"/>
<xs:element minOccurs="0" maxOccurs="1" ref="tux-config"/>
<xs:element minOccurs="0" maxOccurs="1" ref="classpath-config"/>
<xs:element minOccurs="0" maxOccurs="1" ref="tux-resources"/>
<xs:element minOccurs="0" maxOccurs="1" ref="jdbc-resources"/>
<xs:element minOccurs="0" maxOccurs="1" ref="jdbc-connection-pool"/>
<xs:element minOccurs="1" maxOccurs="1" ref="tux-server-config"/>
</xs:sequence>
<xs:attribute name="version" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="2.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="java-config">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="jvm-options"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="jvm-options">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="2" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="tux-config">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="server-clopt"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="server-clopt">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="2" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="classpath-config">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="classpath">
<xs:simpleType>
<xs:annotation>
<xs:documentation>10239-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="10239"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="tux-resources">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="fld-tbl16-class"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="fld-tbl32-class"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="view16-class"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="view32-class"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="view32-class">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="view16-class">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fld-tbl32-class">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fld-tbl16-class">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="jdbc-resources">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="data-source"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="data-source">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
<xs:element minOccurs="1" maxOccurs="1" ref="datasource-classname"/>
<xs:element minOccurs="1" maxOccurs="1" ref="res-type"/>
<xs:element minOccurs="1" maxOccurs="1" ref="driver-params"/>
</xs:sequence>
<xs:attribute name="vendor" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>31-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="31"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="pool-name" use="optional">
<xs:simpleType>
<xs:annotation>
<xs:documentation>63-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="63"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="object-type" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="usr"/>
<xs:enumeration value="sys"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="jndi-name" use="optional">
<xs:simpleType>
<xs:annotation>
<xs:documentation>63-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="63"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="enabled" use="optional" type="xs:boolean" default="true"/>
<xs:attribute name="driver-type" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>31-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="31"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="datasource-classname">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="res-type">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="driver-params">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="connection-url"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="connection-url">
<xs:simpleType>
<xs:annotation>
<xs:documentation>511-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="511"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:attribute name="name" use="optional">
<xs:simpleType>
<xs:annotation>
<xs:documentation>63-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="31"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value" use="optional">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="jdbc-connection-pool" type="xs:string"/>
<xs:element name="tux-server-config">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="server-class"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="server-class">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="services"/>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="services">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="service"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="service">
<xs:complexType>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>127-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="target" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>255-chars string only</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
 
Java Server Configuration Schema File for version 1.0
Listing 18‑10 shows the XML schema of the Java server configuration file for version 1.0.
Listing 18‑10 Java Server Configuration Schema File for version 1.0
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="TJSconfig">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" ref="ClassPaths"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataSources"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Resources"/>
<xs:element minOccurs="1" maxOccurs="1" ref="TuxedoServerClasses"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ClassPaths">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="ClassPath"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ClassPath" type="xs:string"/>
<xs:element name="DataSources">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="DataSource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DataSource">
<xs:complexType>
<xs:all>
<xs:element minOccurs="1" maxOccurs="1" ref="DriverClass"/>
<xs:element minOccurs="1" maxOccurs="1" ref="JdbcDriverParams"/>
</xs:all>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="DriverClass" type="xs:string"/>
<xs:element name="JdbcDriverParams">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="ConnectionUrl"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConnectionUrl" type="xs:string"/>
<xs:element name="Resources">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FieldTable16Classes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FieldTable32Classes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="ViewFile16Classes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="ViewFile32Classes"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FieldTable16Classes" type="xs:string"/>
<xs:element name="FieldTable32Classes" type="xs:string"/>
<xs:element name="ViewFile16Classes" type="xs:string"/>
<xs:element name="ViewFile32Classes" type="xs:string"/>
<xs:element name="TuxedoServerClasses">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="TuxedoServerClass"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TuxedoServerClass">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Services"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Services">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Service"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Service">
<xs:complexType mixed="true">
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="target" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
 

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.