Oracle® Database Release Notes
10g Release 1 (10.1.0.2.0) for hp Tru64 UNIX Part No. B13613-05 |
|
Copyright © 1996, 2005 Oracle. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Release Notes
10g Release 1 (10.1.0.2.0) for hp Tru64 UNIX
Part No. B13613-05
March 2005
This document contains important information that was not included in the platform-specific or product-specific documentation for this release.
It contains the following topics:
This document may be updated after release. To check for updates to this document and to view other product-specific release notes, see the Documentation section on the OTN Web site:
http://otn.oracle.com/documentation
For additional information about this release, see the readme files located in the $ORACLE_HOME/relnotes
directory.
The following sections contain information about issues related to Oracle Database 10g and associated products:
Oracle Real Application Clusters Installation and Configuration Guide
Remote Undo Tablespaces Do Not Autoexetend in RAC Seed Databases
The Oracle Real Application Clusters Installation and Configuration Guide has been revised. You can download a copy of the revised book, part number B10766-04, from the Documentation section of the OTN Web site:
http://otn.oracle.com/documentation
If you install Oracle CRS on a system that also contains an Oracle9i Real Application Clusters (RAC) cluster, you must reboot all of the Oracle CRS nodes. You can reboot the nodes one at a time to avoid affecting any Oracle9i databases that may be in use.
Oracle assumes that when you install Oracle CRS 10g software, you will also install Oracle Real Application Clusters 10g. If there will be a significant delay before you perform phase two of the RAC installation to install Oracle Real Application Clusters 10g, then run the /crs_home
/bin/gsdctl start
command to start the GSD manually to service the 9.2 SRVCTL tool and assistants. Then before installing Oracle Real Application Clusters 10g, run the /
crs_home
/bin/gsdctl stop
command to stop the GSD.
If you perform a silent installation of Oracle CRS on multiple nodes, on a system that does not have other Oracle installations, the Installer does not set up the Oracle Inventory correctly. In this case, after the installation is complete, follow these steps:
Run the orainstRoot.sh
script on a local node.
Copy the oraInventory
directory from the local node to each of the remote nodes.
Log in as the root
user and run the following script on each remote node:
oraInventory/orainstRoot.sh
During an Oracle CRS installation, the Installer uses SSH (if available) to run commands and copy files to the other nodes. During the installation, you might see errors similar to the following if a "dot" file on the system (for example, .bashrc
or .cshrc
) contains stty
commands:
stty: standard input: Invalid argument stty: standard input: Invalid argument
To avoid this problem, Oracle recommends that you modify these files to suppress all output on STDERR, as follows:
Bourne, Bash, or Korn shell:
if [ -t 0 ]; then stty intr ^C fi
C shell:
test -t 0 if ($status == 0) then stty intr ^C endif
Note: When SSH is not available, the Installer uses thersh and rcp commands instead of ssh and scp . If there are "dot" files that contain stty commands that are loaded by the remote shell, this error can also occur.
|
This issue is tracked through Oracle bug 3414362.
You cannot use the silent installation method to install Oracle Database 10g and create a database that uses Automatic Storage Management (ASM) for database storage during the same installation. This is because the root.sh
script must run before the Database Configuration Assistant (DBCA) can start an ASM instance.
If you want to use the silent installation method to install Oracle Database 10g and create a database that uses ASM, follow these steps:
Use the enterprise.rsp
response file to complete a software-only installation.
Run $ORACLE_HOME/root.sh
after the installation completes.
Use the dbca.rsp
response file to run DBCA in silent mode, using a command similar to the following:
$ $ORACLE_HOME/bin/dbca -silent -responseFile /full_path/dbca.rsp
To remove the ASM instances, the delete node procedure requires the following additional steps on UNIX-based systems:
If this is the Oracle home from which the per-node listener named LISTENER_nodename
runs, then use NetCA to remove this listener and its CRS resources. If necessary, re-create this listener in another Oracle home.
If this is the Oracle home from which the ASM instance runs, then enter the following commands to remove the ASM configuration:
$ srvctl stop asm -n node $ remove asm -n node
If you are using a cluster file system for your ASM Oracle home, then run the following commands on the local node:
$ rm -r $ORACLE_BASE/admin/+ASM $ rm -f $ORACLE_HOME/dbs/*ASM*
If you are not using a cluster file system for your ASM Oracle home, then run the rm
commands listed in the previous step on each node on which the Oracle home exists.
Remove oratab
entries beginning with +ASM
.
After installing Oracle RAC 10g and after ensuring that the system is functioning properly, make a backup of the voting disk. In addition, make a backup of the voting disk contents after you complete any node additions or node deletions and after running any de-installation procedures.
If you create a RAC database with two or more instances and you choose to create General Purpose, Transaction Processing, or Data Warehouse databases, and if you use a shared cluster file system or Automatic Storage Management (ASM) for database files, then the Database Configuration Assistant (DBCA) creates undo tablespace datafiles with an initial size of 25 MB and AUTOEXTEND ON
for the local instance but AUTOEXTEND OFF
for remote instances.
You can set AUTOEXTEND ON
for undo tablespace datafiles for remote instances after creating a RAC database using DBCA as follows:
Connect to the database instance on the node from which you ran DBCA:
$ sqlplus "/ AS SYSDBA"
Enter the following command to find the datafile names for UNDOTBS
tablespaces for remote instances:
SQL> SELECT file_name FROM SYS.DBA_DATA_FILES WHERE tablespace_name LIKE 'UNDOTBS%' AND AUTOEXTENSIBLE='NO';
Set AUTOEXTEND ON
for the datafiles that you found in the previous step:
SQL> ALTER DATABASE DATAFILE datafile_name AUTOEXTEND ON;
If you choose the Custom installation path and have previous versions of Oracle databases installed, then the Oracle Universal Installer gives you the option of upgrading the existing databases. If you choose to upgrade an existing database, the Oracle Universal Installer displays another screen asking whether you want to create a starter database.If you choose to create a starter database, the DBCA upgrades the older version of the database to Oracle Database 10g release 1 (10.1), but does not create a starter database.
If you upgrade an Oracle9i database to Oracle Database 10g release 1, Oracle Flashback features using a timestamp may fail. To work around this problem, enter the following SQL script from the Oracle Database 10g database:
SQL> DELETE FROM smon_scn_time WHERE orig_thread <> 0; SQL> COMMIT;
This issue is tracked with Oracle bug 3994270.
On Tru64 UNIX systems, before upgrading Oracle9i release 2 (9.2) to Oracle Database 10g, do the following:
Review Oracle bug 2586417.
If necessary, contact Oracle Support Services for assistance with the instructions in this bug.
Before upgrading OPS release 8.1.7 to Oracle RAC 10g, perform the following steps:
Contact Oracle Support Services to optain an upgrade patch.
Install the patch in the OPS release 8.1.7 home directory.
Enter the following command to list the nodes in the Oracle RAC 10g installation:
$ /oracle10g_home/bin/lsnodes -n
If necessary, e dit the /
oracle817_home
/ops/conf/
db_name
.conf
file to ensure that the node numbers listed in the node_list
parameter correspond to the node numbers for the same nodes listed by the lsnodes -n
command.
In the following example, OPS release 8.1.7 is installed on two cluster nodes, patruoq3
and patruoq4
, and the database name is u817
:
Change directory to the oracle10g_home
/bin
directory and enter the following command:
$ lsnodes -n
This command returns the following output:
patruoq3 3 patruoq1 1 patruoq2 2 patruoq4 4
Enter the following command to view the contents of the $ORACLE_HOME/ops/conf/u817.conf
:
$ cat $ORACLE_HOME/ops/conf/u817.conf
This command returns the following output:
node_list = "1,2" inst_oracle_sid = (u8171,u8172) lsnr_listener_name = "LISTENER1"
Compare the output from step 1 and step 2.
In this example, the node_list
parameter in the u817.conf
file has the value "1,2"
, and the node numbers of patruoq3
and patruoq4
are 3
and 4
.
Change the value of the node_list
parameter in the u817.conf
file to "3,4"
.
This issue is tracked through Oracle bug 3518091.
In the Net Configuration Assistant (NetCA) help, the link to the Select Oracle Context help topic is broken. The text for this topic is as follows:
Directory Usage Configuration, Select Oracle Context
Oracle administrative content has been found in more than one location in the directory. Oracle administrative content is stored in an Oracle Context, a subtree in the directory that stores Oracle entries.
From the list, select or enter the location you want to use as the default Oracle Context location from which this computer will access Oracle entries, such as connect identifiers.
If a user invokes the Flashback Table or Flashback Analysis operation, and that user has FLASHBACK ANY TABLE privileges but does not have specific flashback privileges on the objects that flashback is invoked on and does not have DBA privileges, then the following errors may occur:
ORA-02002: error while writing to audit trail ORA-00600: internal error code, arguments: [kzasps1], [4], [47], [],[],
To fix this problem, as SYSDBA grant the user FLASHBACK privilege on the objects that are referred to in the FLASHBACK TABLE statement and then invoke the flashback operation.
For example:
SQL> GRANT FLASHBACK ON SCOTT.EMP_1 TO user1;
This issue is tracked through Oracle bug 3403666.
Although Oracle Workflow is listed on the Companion CD installation screens, it is not included on the Companion CD for this release.
While installing Oracle Database, the Specify Backup and Recovery Options screen may appear truncated if your system does not have the required fonts installed. If your system has only fixed-width fonts, you may not be able to fully specify the required information in the Backup Job Credentials area of the screen. To work around this issue, do not select Enable Automated Backups on this screen. After the installation is complete, use the Oracle Enterprise Manager 10g Database Control to enable automated backups.
This release includes the Oracle Internet Directory (OID) client tools, but it does not include OID server components. OID server components are included with Oracle Application Server 10g. If you require the OID server tools for Oracle Database components, then run them from an Oracle Application Server 10g installation.
The OID client tools include:
LDAP command-line tools
Oracle Internet Directory SDK
Oracle Directory Manager
The OID server components include the following servers and tools for starting and stopping them:
Directory server
Directory replication server
Directory integration server
Viewing the execution plan of a Period SQL in Korean causes an internal server error. This problem is unique to Korean; it does not reproduce in Japanese or Chinese. The only workaround currently available is to run the product in a language other than Korean when you need to view this page.
Quick Tour is not available in Oracle Change Management Pack. If you try to run it, then an error results.
To enable the extjob
executable to locate required libraries, the $ORACLE_HOME/lib
directory and all of its parent directories must have execute permissions for group
and other
.
Oracle Database New Features for Oracle Database 10g release 1 (10.1) lists two Grid features that are not available in the first release of Oracle Database 10g; Resonance and Transparent Session Migration. These features will be available in a future release.
In addition to the attributes listed in the Oracle Database Installation Guide for UNIX Systems and the Oracle Database Quick Installation Guide for hp Tru64 UNIX, you must also set the exec_disable_arg_limit
attribute in the proc subsystem to 1.
See Also: For information on how to check and set subsystem attributes, see the Oracle Database Installation Guide for UNIX Systems and the Oracle Database Quick Installation Guide for hp Tru64 UNIX. |
In addition to the patches listed in the Oracle Database Installation Guide for UNIX Systems and the Oracle Database Quick Installation Guide for hp Tru64 UNIX, the following patches are required for Tru64 UNIX V5.1B Patch Kit 2:
T64KIT0021665-V51BB22-E-20040220 T64KIT0021681-V51BB22-E-20040223 T64KIT0019662-V51BB22-E-20030818
See Also: For information on how to check whether patches are installed, see the Oracle Database Installation Guide for UNIX Systems and the Oracle Database Quick Installation Guide for hp Tru64 UNIX. |
You can set the shm_max kernel subsystem attribute to greater than 4 GB. The recommended value for a single instance database is 4278190080 (4 GB minus 16 MB).
For this release, cross-platform transportable tablespaces are not supported on Tru64 UNIX.
Note: This issue occurs only if the cloned and source Oracle homes are on the same system. |
If you use the Installer to remove a cloned Oracle home, and the cloned Oracle home is on the same system as the source Oracle home, the Installer removes essential files from the source Oracle home. To avoid this issue, remove the cloned Oracle home as follows:
Remove the cloned Oracle home manually by deleting the cloned Oracle home directory.
Start the Installer from the source Oracle home directory:
$ source_oracle_home/oui/bin/runInstaller
In the Welcome window, click Deinstall Products.
The Inventory window appears, listing all of the Oracle homes on the system.
In the Inventory window, select the cloned Oracle home, then click Remove.
This issue is tracked through Oracle bug 3417663.
The following sections contain updates to Oracle documentation:
The following sections describe corrections and supplemental information for the Oracle Real Application Clusters 10g documentation for UNIX platforms:
The Oracle Real Application Clusters Installation and Configuration Guide, Chapter 8, "Installing Cluster Ready Services", under the heading "Installing Cluster Ready Services with the OUI", explains how to run the following script before running Oracle Universal Installer from the Oracle CRS CD-ROM:
ORACLE_HOME/bin/localconfig delete
Instead, run this script after starting the Oracle CRS installation when Oracle displays the warning to stop all Oracle services.
Note: The documentation is correct by instructing you to stop the existing ASM instances before installing Oracle CRS. Only the timing of when to runlocalconfig delete is changed from before to during the installation.
|
In the Oracle Real Application Clusters Installation and Configuration Guide, Chapter 10, "Installing Oracle Database 10g with Real Application Clusters", on page 10-12, do not execute Step 6:
"On UNIX-based systems, remove the OCR by executing the script CRS_Home/install/rootdeinstall.sh
on a local node".
This step is not required.
The following points describe corrections for the node addition procedures in Chapter 5, "Adding and Deleting Nodes and Instances" in the Oracle Real Application Clusters Administrator's Guide.
Under the heading "Step 2 Adding Nodes at the Oracle Clusterware Layer (UNIX and Windows)", point 9 on page 5-6, the format for the racgons
command should be:
racgons add_config new_node_name:4948
Under the heading "Step 4: Adding Nodes at the Oracle RAC Database Layer", point 8 on page 5-9, explains that you must run the Virtual Internet Protocol Assistant (VIPCA). You must run the VIPCA with root
user privileges.
Under the heading "Step 4: Adding Nodes at the Oracle RAC Database Layer", point 9 on page 5-10 explains that you must run the oifcfg
command. The correct syntax for this command requires that you specify either the -n nodename
option or the -global
option to complete the command. The correct syntax for the oifcfg
command is as follows:
oifcfg iflist oifcfg setif {-node nodename | -global} {if_name/subnet:if_type}... oifcfg getif [-node nodename | -global] [ -if if_name[/subnet] [-type if_type] ] oifcfg delif [-node nodename | -global] [if_name[/subnet]] oifcfg [-help]
A standard Oracle CRS installation issues the oifcfg
command as in the following example:
oifcfg setif -global eth0/146.56.76.0:public \ eth1/192.0.0.0:cluster_interconnect'
This sets both networks to global
. Therefore, you do not need to run the oifcfg
command manually after you add a node.
When you add a node to a RAC database, you must also add a listener to the new node by running the Net Configuration Assistant (NetCA).
The following corrections are for the node deletion procedures for UNIX-based systems as described in Chapter 5, "Adding and Deleting Nodes and Instances" in the Oracle Real Application Clusters Administrator's Guide. These corrections assume that you have a three-node cluster and that you are deleting the third node.
Step 2 in the node deletion procedure for UNIX-based systems should read:
After you have deleted the instances from the nodes that you want to delete, delete the node applications for each node by running the following command where <node1, node2>
are the nodes that you are removing from your cluster:
rootdeletenode.sh <node1>,<node2>
For Step 3 in the node deletion procedure for UNIX-based systems, the runInstaller
command is located in the $ORACLE_HOME/oui/bin directory
. In addition, executing this command does not launch the Installer.
For Step 5 in the node deletion procedure for UNIX-based systems, only run the <CRS Home>/install/rootdelete.sh
command once for that step. Use the argument nosharedhome
when using local file systems. The default is sharedhome
which prevents updating the permissions of local files such that they can be removed by the oracle
user.
For Step 7 in the node deletion procedures for UNIX-based systems, the command is located in the Oracle CRS Home directory. In this step, ORACLE_HOME
should read CRS_Home
and the text for Step 7 should read:
On the same node and as the oracle
user, run the command <CRS home>/oui/bin/runInstaller -updateNodeList ORACLE_HOME=<CRS home> CLUSTER_NODES=node1,node2,... <nodeN>
where node1
through <nodeN>
is a comma-separated list of nodes that are remaining in the cluster.
The following two sections that describe shadow events and high availability callouts with Oracle Notification Services (ONS) events are supplements for Appendix A, "Services Deployment Example", in the Oracle Real Application Clusters Deployment and Performance Guide, part number B10768-01.
When using Transparent Application Failover (TAF) PRECONNECT, Real Application Clusters (RAC) high availability maintains a preconnect service to support TAF Preconnect and applications that are configured to manage work on secondary RAC instances. Secondary instances are RAC instances that are not supporting the primary service.
In this type of configuration, Oracle maintains the shadow service on all instances that do not support the primary service. You can use events to stop and start secondary work. The events are posted to callouts and to the Oracle Notification Service (ONS).
To use events, configure the payload with the following format:
Up Event Format:
SRV_PRECONNECT VERSION=1.0 service=db_unique_name.db_domain database=database_name instance instance_name host=host_name status=preconn_up reason=timestamp=27-Jan-2004 16:53:58 reported=Tue Jan 27 16:53:59 PST 2004
Down Event Format:
SRV_PRECONNECT VERSION=1.0 service=db_unique_name.db_domain database=database_name instance=instance_name host=host_name status=preconn_down reason=timestamp=27-Jan-2004 16:58:01 reported=Tue Jan 27 16:58:02 PST 2004
Up Event Example:
@ SRV_PRECONNECT VERSION=1.0 service=MYSERV.us.oracle.com database=RACEY instance=RACEY1 host=sun880-1 status=preconn_up reason=timestamp=27-Jan-2004 16:53:58 reported=Tue Jan 27 16:53:59 PST 2004
Down Event Example:
@ SRV_PRECONNECT VERSION=1.0 service=MYSERV.us.oracle.com database=RACEY instance=RACEY1 host=sun880-1 status=preconn_down reason=timestamp=27-Jan-2004 16:58:01 reported=Tue Jan 27 16:58:02 PST 2004
The notification interface is available as a server-side callout and as an Oracle Notification Services (ONS) event. The server-side callout is a script with the same payload as the ONS event that is immediately executed on the server when the condition occurs. Use this method to start and stop server-side applications, to relocate low-priority services when high priority services arrive, and to post tickets for fault tracking. The following table describes the event payload:
Parameter | Description |
---|---|
Event type | The event type for the component such as service, service_member, database, instance, or node |
Service name | The service name; matches the configured service in SERVICE$ |
Database name | The database supporting the service; matches the initialization parameter value for DB_UNIQUE_NAME, which in turn defaults to the value of the initialization parameter DB_NAME |
Instance | The name of the instance that supports the service; matches the instance name |
Node name | The name of the node that supports the service or the node that has failed; matches the CSS node name |
Status | The new status; values are UP, DOWN, and NOT_RESTARTING |
Cardinality | Cardinality for the service on UP events |
Time stamp | The local time zone to use when ordering notification events |
Incarnation | Cluster incarnation for node down |
When a session connects, mid-tiers can record the following values that match the HA event payload:
sys_context('userenv', 'instance_name'); sys_context('userenv', 'server_host'); sys_context('userenv', 'service_name'); sys_context('userenv', 'db_unique_name');
The following text appears on page 5-10 of the Oracle Real Application Clusters Administrator's Guide:
Execute the following procedures on each new node to add instances:
Start the Database Configuration Assistant (DBCA) by entering dbca
at the system prompt from the bin
directory in the $ORACLE_HOME
on UNIX.
This text should be changed as follows:
Execute the following procedures for each new node to add instances:
The following sections contain updates to the Oracle Database 10g documentation:
Although the Oracle Database Companion CD Installation Guide states that you can install Oracle HTML DB into an existing Oracle home that contains Oracle Application Server 10g or Oracle Enterprise Manager 10g, this type of installation is not supported with this release. You must install Oracle HTML DB with the Apache Standalone component in a separate Oracle home directory.
The instructions about the ORA_NLS10 environment variable in the "Using Oracle9i Database Language and Territory Definition Files with Oracle Database 10g" section of the Oracle Database 10g README file are incorrect. This is because the $ORACLE_HOME/nls/data/old
directory contains definitions files which have changed in Oracle Database 10g release 1 only, and not the complete set of the database locale definition files. To include the Oracle9i definitions:
Create a new directory:
$ mkdir $ORACLE_HOME/nls/data/9i
Copy the contents of the $ORACLE_HOME/nls/data
directory to the new directory:
$ cp $ORACLE_HOME/nls/data/*.nlb $ORACLE_HOME/nls/data/9i
Copy the contents of the $ORACLE_HOME/nls/data/old
directory to the directory that you created in step 1:
$ cp $ORACLE_HOME/nls/data/old/*.* $ORACLE_HOME/nls/data/9i
Set the ORA_NLS10 environment variable to specify the directory that you created, for example:
Bourne, Bash, or Korn shell:
$ ORA_NLS10=$ORACLE_HOME/nls/data/9i ; export ORA_NLS10
C shell:
% setenv ORA_NLS10 $ORACLE_HOME/nls/data/9i
See Also: Refer to the Oracle Database 10g Globalization Support Guide and the Oracle Database 10g README for more information about the changes in the language and territory definition files between Oracle9i and Oracle Database 10g. |
For full-text searching with Oracle Text, you must create XML tables manually.
If you will need to use Oracle Text indexes for text-based ora:contains
searches over a collection of XML elements, then do not use XML schema annotation storeVarrayAsTable="true"
. This annotation causes element collections to be persisted as rows in an Index Organized Table (IOT). Oracle Text does not support IOTs.
To be able to use Oracle Text to search the contents of element collections, set parameter genTables="false"
during schema registration. Then create the necessary tables manually, without using the clause ORGANIZATION INDEX OVERFLOW
. The tables will then be heap-organized instead of index-organized (IOT), as shown in the following example:
CREATE TABLE PurchaseOrder of XMLTYPE XMLSCHEMA http://localhost:8080/home/SCOTT/poSource/xsd/purchaseOrder.xsd ELEMENT "PurchaseOrder" VARRAY "XMLDATA"."ACTIONS"."ACTION" STORE AS TABLE ACTION_TABLE ((PRIMARY KEY (NESTED_TABLE_ID, ARRAY_INDEX))) VARRAY "XMLDATA"."LINEITEMS"."LINEITEM" STORE AS TABLE LINEITEM_TABLE ((PRIMARY KEY (NESTED_TABLE_ID, ARRAY_INDEX)));
Oracle Database Performance Tuning Guide, Chapter 10, "Instance Tuning Using Performance Views", has two incorrect view descriptions. The view names and correct descriptions are as follows:
V$EVENT_HISTOGRAM
The V$EVENT_HISTOGRAM view displays a histogram of the number of waits, the maximum wait, and total wait time on an event basis.
V$SYSTEM_WAIT_CLASS
The V$SYSTEM_WAIT_CLASS view provides the instance-wide time totals for the number of waits and the time spent in each class of wait events. (This description removes the reference to object number.)
In Oracle High Availability Architecture and Best Practices, Chapter 8, "Using Enterprise Manager for Monitoring and Detection", the section "Configure At Least Two Service Processes and Load Balance Them" should read as follows: For the middle tier, the baseline recommendation is to have a minimum of two Management Service processes, using a hardware server load balancer to mask the location of an individual Management Service process and a failure of any individual component. This provides immediate coverage for a single failure in the most critical components in the Enterprise Manager architecture with little interruption of service for all systems monitored using Enterprise Manager. Management Service processes connect to the repository instances using Oracle Net.
In Oracle Database Globalization Support Guide, Chapter 5, "Linguistic Sorting and String Searching", the section called "Monolingual Linguistic Sorts" should end with the following note:
Monolingual linguistic sorting is not available for non-Unicode multibyte database character sets. If a monolingual linguistic sort is specified when the database character set is non-Unicode multibyte, then the default sort order is the binary sort order of the database character set. One exception is UNICODE_BINARY. This sort is available for all character sets.
XDK error messages are available at the XML Technology Center on the OTN Web site:
http://otn.oracle.com/tech/xml/doc/production10g/Javaerrormsgs.html
Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For additional information, visit the Oracle Accessibility Program Web site at
http://www.oracle.com/accessibility/
Accessibility of Code Examples in Documentation
JAWS, a Windows screen reader, may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, JAWS may not always read a line of text that consists solely of a bracket or brace.