exam watch: The configuration settings in the OC4J configuration files apply directly to the OC4J server, not the deployed J2EE applications.
|----→rmi.xml
|----> jms.xml
|---→application.xml
| |--------→principals.xml
| ---------→data-sources.xml
|----→global-web-application.xml
-----→default-web-site.xml
|------→default-web-app
-------→web-app
- Configuring OC4J
- Referencing other configuration files
- Specifying J2EE applications
- Global application, global Web application, and default Web site
- Number of HTTP connections the OC4J server will permit
- Logging settings
- Transaction time-input settings
- SMTP host
- data-sources.xml location
- jazn-data.xml location
- jms.xml and rmi.xml locations
on the job: If you’re using a standalone OC4J instance, port 8888 is used by default to access the OC4J listener. In the OracleAS environment, OPMN overrides this port setting. OracleAS by default allocates port 7777 for access via the Oracle HTTP Server when you enable the OracleAS Web Cache.You specify the deployed J2EE applications in the server.xml file by using the <application> element.Structure of the server.xml FileThe server.xml file consists of several elements, each of which is responsible for a certain area of OC4J-related configuration. Here’s a typical server.xml file:<?xml version="1.0" standalone='yes'?>
<!DOCTYPE application-server PUBLIC "Orion Application Server Config" "http://xmlns.oracle.com/ias/dtds/application-server-9_04.dtd">
<application-server
application-directory="../applications"
deployment-directory="../application-deployments"
connector-directory="../connectors"
>
<rmi-config path="./rmi.xml" />
<!--Interoperability config link-->
<sep-config path="./internal-settings.xml" />
<!--JMS-server config link, uncomment to activate the JMS service-->
<jms-config path="./jms.xml" />
<javacache-config path="../../../javacache/admin/javacache.xml" />
<j2ee-logging-config path="./j2ee-logging.xml" />
<log>
<file path="../log/server.log" />
<!--Uncomment this if you want to use ODL logging capabilities
<odl path="../log/server/" max-file-size="1000" max-directory-size=
"10000"/>
-->
</log>
<global-application name="default" path="application.xml" />
<global-web-app-config path="global-web-application.xml" />
<!--<web-site path="./secure-web-site.xml" />-->
<web-site default="true" path="./default-web-site.xml" />
<!--Add the http-web-site in this way and uncomment this line
<web-site path="./http-web-site.xml" />
</application-server>Note that all the directories referred to inside the server.xml file are relative to the $ORACLE_HOME/j2ee/config directory. In the example shown previously, there are several elements such as application-server and the like. I’ll briefly describe the important elements of the server.xml file in the rest of this section. Note that the example file shown in the previous section doesn’t happen to contain all of the following elements.<application-server> You use the top-level element of the server.xml file, called the <application-server> element, to specify the application server configuration information. The <application-server> element has attributes such as the following:
- The application-auto-deploy element specifies the directory the OC4J server automatically deploys applications from.
- The application-directory element specifies the directory where the OC4J instance will store the application .ear files. If you don’t specify any directory values for this element, the .ear files are, by default, stored in the $ORACLE_HOME/j2ee/home/applications directory. The application-directory element specifies that any files placed in the directory you specify for this element should be automatically deployed.
- The deployment-directory element specifies the directory where the OC4J instance should store the files it generates for permanent storage. Each of the applications you deploy will have its own deployment-directory element.
<application> The <application> element specifies the name of the application and the path to the application archive (EAR).<global-application> The <global-application> element specifies the default application for an OC4J server.<global-web-app-config> The <global-web-app-config> element specifies the location of the web-application.xml file. <jms-config> and <rmi-config>The <jms-config> and <rmi-config> elements specify the path to the jms.xml and the rmi.xml files, respectively. <max-http-connections> The <max-http-connections> element specifies the number of maximum concurrent connections that the Web site can accept.<web-site> The <web-site> element specifies the path to a web-site.xml file that’s used to define a Web site, as shown in the following example:Path=''. . . /my-web-site.xml''Besides the main OC4J configuration file, server.xml, several other OC4J server XML files help to configure the OC4J instance. Let’s take a quick look at these.jazn.xml and jazn-data.xml The jazn-data.xml and the jazn.xml files are used for security configuration if you’re using the Java Authentication and Authorization (JAAS) Service. The file contains user and group configuration information for the default JAZNUserManager client-admin console.The data-sources.xml file To make their applications portable across servers, application developers use logical representation of databases and publish these data sources in the Java Naming and Directory Interface (JNDI) tree. The applications retrieve database connections through javax.sql.dataSource objects and look up the objects through the JNDI. These objects are called data sources, and the deployer must specify the mapping between a logical dataSource object and the physical databases. The connection methods that are specified are used by the applications to connect to the specified database.on the job: The properties and methods of the data source objects are specified by the javax.sql.DataSource interface.The data-sources.xml file lets you configure OC4J database sources used by the various applications hosted by the OC4J instance. In addition, the file contains information on retrieving JDBC connections. The data-sources.xml file contains the following types of information:
- JDBC driver
- JDBC URL
- Database schema
- Maximum number of database connections allowed
- Username and password for the data source
- JNDI name in the JNDI lookup, to retrieve the data source
Note that the data-sources.xml file establishes the data source object definitions at the OC4J instance level. These global data sources are specified by an XML tag, and the XML attributes for each data source include the JDBC connection string and sometimes the username and password information. All applications deployed in the OC4J container can share the data sources defined at the container level. Applications can also use application-specific data sources by incorporating the <data-sources> tag in the application.xml file to refer to the data-sources.xml file and directly use the data sources defined therein.When the OC4J instance starts, it parses the data-sources.xml file, instantiates the DataSource objects, and binds them into the JNDI namespace. After you deploy an application, the application accesses the data sources by looking up the JNDI tree. Note that there’s a separate JNDI namespace for each application.The different types of data sources, such as emulated and non-emulated data sources as well as native data sources, are discussed in detail later in this chapter. Here’s a typical data-sources.xml file showing how to use the Oracle JDBC driver to create a JDBC thin connection type data source:<data-sources><data-source>
class=<<">>com.evermind.sql. DriverManagerDataSource
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott" password="->pwForScott"
url=
"jdbc:oracle:thin:@localhost:1521:oracle"
inactivity-timeout="30"
connection-retry-interval="1" />
<data-source>
</data-sources>In the sample data-sources.xml file, this is what the various elements stand for:
- Class is the type of data resources or the DataSource class.
- Name is the name of the data source—in our case, OracleDS, which is the default data source.
- Location, xa-location, and ejb-location are the JNDI names that the data source will bind to. You must specify all three of the location attributes for emulated data sources, but you use only the value specified for the ejb-location attribute.
- Connection-driver is the type of connection to be returned. This attribute refers to the class that actually implements the data source connection.
- Username and password are the username and password for the database users.
- url is the JDBC connection URL for the database being mapped to this data source.
- Inactivity-timeout and connection-retry-interval are the default timeout and connection retry intervals, in seconds.
principals.xml The principals.xml file contains user and group information as well as permissions and certificates.rmi.xml The rmi.xml file contains Remote Method Invocation (RMI) configuration information. The RMI listener, which provides remote access for EJBs, has its settings defined in this file as well. Here are the main components of the rmi.xml file:
- Host name or IP address
- Port number to which the RMI server binds
- Clustering and log settings
jms.xml The jms.xml file contains the OC4J Java Messaging Service (JMS) implementation configuration information. The following are the key components in this file:
- Host name or IP address
- Port number to which the JMS server binds
- Settings for queues bound to the JMDI tree
- Log settings
on the job: The global application for the OC4J server acts as the parent for all applications in that OC4J instance. The applications inherit the parent application’s properties, but you can override the default parent application properties with application-specific properties.The Web site–related XML files configure ports, protocols, and Web contexts for the OC4J Web site, and are in the following format:*-web-site.xmlThe web-site.xml file contains the Web site configuration information, including the following:
- Host name, IP addresses, and listener ports
- Default Web application for the site
- SSL configuration
- Settings for user Web applications
Here’s a typical web-site.xml file:<?xml version="1.0" standalone='yes'?>
<!DOCTYPE web-site PUBLIC "OracleAS XML Web-site"
"http://xmlns.oracle.com/ias/dtds/web-site-9_04.dtd">
<web-site host="localhost" port="3302" protocol="ajp13"
display-name="My Java Web Site" cluster-island="1" >
<web-site port="3302" protocol="ajp13" display-name="My Java Web Site">
<!--The default web-app for this site, bound to the root-->
<default-web-app application="default" name="defaultWebApp" root="/j2ee" />
<web-app application="default" name="dms" root="/dmsoc4j" access-log="false" /> <access-log path="../log/default-web-access.log" />
</web-site>exam watch: The web-site.xml file is the OC4J Web server configuration file.Here are the key elements of the web-site-xml file:
- web-site The name of your Web site.
- host The name of the server hosting the Web server.
- display-name A user-friendly Web site name.
- default-web-app The default Web application.
- name The name of the WAR file for the application, minus its .war extension.
- port The Oracle HTTP Server forwards requests over the AJP listening port defined here. The OPMN configuration contains information about the range of AJP ports that can be used.
- protocol The protocol used is AJP1.3, which is the Apache Jserver Protocol, used by mod_oc4j running on the Oracle HTTP Server (which is based on the Apache Web server), to communicate with the OC4J instance.
- root The value for this attribute is /j2ee in our example; note that this must match the value specified for the Oc4jMount command in the oc4j.conf file. The root variable shows the root context for the application off your Web site. If your Web site is [url]http://myhost:7777/j2ee[/url], you initiate your application by going to [url]http://myhost:7777/j2ee/testapp[/url] (testapp is the name of your J2EE application).
- access-log Name of the log where access information is logged.
Please check back next week for the continuation of this article.
DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.