| Documentation Contents |
Instantiating the Document that Contains the Signature
Specifying the Signature Element to be Validated
Unmarshaling the XML Signature
What If the XML Signature Fails to Validate?
The Java XML Digital Signature API is a standard
Java API for generating and validating XML Signatures. This API was
defined under the Java Community Process as JSR 105 (see
http://jcp.org/en/jsr/detail?id=105
). This JSR
is final and this release of Java SE contains an FCS access
implementation of the Final version of the APIs.
XML Signatures can be applied to data of any type,
XML or binary (see http://www.w3.org/TR/xmldsig-core/
). The
resulting signature is represented in XML. An XML Signature can be
used to secure your data and provide data integrity, message
authentication, and signer authentication.
After providing a brief overview of XML Signatures and the XML Digital Signature API, this document presents two examples that demonstrate how to use the API to validate and generate an XML Signature. This document assumes that you have a basic knowledge of cryptography and digital signatures.
The API is designed to support all of the required or recommended features of the W3C Recommendation for XML-Signature Syntax and Processing. The API is extensible and pluggable and is based on the Java Cryptography Service Provider Architecture. The API is designed for two types of developers:
JCA
provider
The six packages listed below comprise the XML Digital Signature API:
The javax.xml.crypto
package contains common
classes that are used to perform XML cryptographic operations, such
as generating an XML signature or encrypting XML data. Two notable
classes in this package are the KeySelector
class, which allows developers to
supply implementations that locate and optionally validate keys
using the information contained in a KeyInfo
object, and the URIDereferencer
class, which allows developers
to create and specify their own URI dereferencing
implementations.
The javax.xml.crypto.dsig
package includes
interfaces that represent the core elements defined in the W3C XML
digital signature specification. Of primary significance is the
XMLSignature
class, which allows you to sign
and validate an XML digital signature. Most of the XML signature
structures or elements are represented by a corresponding interface
(except for the KeyInfo
structures,
which are included in their own package and are discussed in the
next paragraph). These interfaces include: SignedInfo
, CanonicalizationMethod
, SignatureMethod
, Reference
, Transform
, DigestMethod
, XMLObject
, Manifest
, SignatureProperty
, and SignatureProperties
. The XMLSignatureFactory
class is an abstract
factory that is used to create objects that implement these
interfaces.
The javax.xml.crypto.dsig.keyinfo
package
contains interfaces that represent most of the KeyInfo
structures defined in the W3C XML digital
signature recommendation, including KeyInfo
, KeyName
, KeyValue
, X509Data
, X509IssuerSerial
, RetrievalMethod
, and PGPData
. The KeyInfoFactory
class is an abstract
factory that is used to create objects that implement these
interfaces.
The javax.xml.crypto.dsig.spec
package
contains interfaces and classes representing input parameters for
the digest, signature, transform, or canonicalization algorithms
used in the processing of XML signatures.
Finally, the javax.xml.crypto.dom
and javax.xml.crypto.dsig.dom
packages
contains DOM-specific classes for the javax.xml.crypto
and javax.xml.crypto.dsig
packages,
respectively. Only developers and users who are creating or using a
DOM-based XMLSignatureFactory
or KeyInfoFactory
implementation will need
to make direct use of these packages.
A JSR 105 cryptographic service is a concrete
implementation of the abstract XMLSignatureFactory
and KeyInfoFactory
classes and is
responsible for creating objects and algorithms that parse,
generate and validate XML Signatures and KeyInfo
structures. A concrete implementation of
XMLSignatureFactory
must provide support for each of the required algorithms as specified by the W3C
recommendation for XML Signatures. It can optionally support other
algorithms as defined by the W3C recommendation or other
specifications.
JSR 105 leverages the JCA provider model for
registering and loading XMLSignatureFactory
and KeyInfoFactory
implementations.
Each concrete XMLSignatureFactory
or KeyInfoFactory
implementation supports a specific
XML mechanism type that identifies the XML processing mechanism
that an implementation uses internally to parse and generate XML
signature and KeyInfo
structures. This
JSR supports one standard type, DOM. The XML Digital Signature
provider implementation that is bundled with Java SE supports the
DOM mechanism. Support for new standard types, such as JDOM, may be
added in the future.
An XML Digital Signature API implementation
should use underlying JCA engine
classes, such as java.security.Signature
and java.security.MessageDigest
, to perform
cryptographic operations.
In addition to the XMLSignatureFactory
and KeyInfoFactory
classes, JSR 105 supports a service
provider interface for transform and canonicalization algorithms.
The TransformService
class allows you to
develop and plug in an implementation of a specific transform or
canonicalization algorithm for a particular XML mechanism type. The
TransformService
class uses the standard
JCA provider model for registering and loading implementations.
Each JSR 105 implementation should use
the TransformService
class to find a
provider that supports transform and canonicalization algorithms in
XML Signatures that it is generating or validating.
You can use an XML Signature to sign any arbitrary data, whether it is XML or binary. The data is identified via URIs in one or more Reference elements. XML Signatures are described in one or more of three forms: detached, enveloping, or enveloped. A detached signature is over data that is external, or outside of the signature element itself. Enveloping signatures are signatures over data that is inside the signature element, and an enveloped signature is a signature that is contained inside the data that it is signing.
The easiest way to describe the contents of an XML Signature is to show an actual sample and describe each component in more detail. The following is an example of an enveloped XML Signature generated over the contents of an XML document. The contents of the document before it is signed are:
The resulting enveloped XML Signature, indented and formatted for readability, is as follows:
<?xml version="1.0" encoding="UTF-8"?> <Envelope xmlns="urn:envelope"> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>uooqbWYa5VCqcJCbuymBKqm17vY=</DigestValue> </Reference> </SignedInfo> <SignatureValue> KedJuTob5gtvYx9qM3k3gm7kbLBwVbEQRl26S2tmXjqNND7MRGtoew== </SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> <P> /KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxe Eu0ImbzRMqzVDZkVG9xD7nN1kuFw== </P> <Q>li7dzDacuo67Jg7mtqEm2TRuOMU=</Q> <G> Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/ XPaF5Bpsy4pNWMOHCBiNU0NogpsQW5QvnlMpA== </G> <Y> qV38IqrWJG0V/mZQvRVi1OHw9Zj84nDC4jO8P0axi1gb6d+475yhMjSc/ BrIVC58W3ydbkK+Ri4OKbaRZlYeRA== </Y> </DSAKeyValue> </KeyValue> </KeyInfo> </Signature> </Envelope>
The Signature
element
has been inserted inside the content that it is signing, thereby
making it an enveloped signature. The required SignedInfo
element contains the information that is
actually signed:
<SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>uooqbWYa5VCqcJCbuymBKqm17vY=</DigestValue> </Reference> </SignedInfo>
The required CanonicalizationMethod
element defines the algorithm
used to canonicalize the SignedInfo
element before it is signed or validated. Canonicalization is the
process of converting XML content to a canonical form, to take into
account changes that can invalidate a signature over that data.
Canonicalization is necessary due to the nature of XML and the way
it is parsed by different processors and intermediaries, which can
change the data such that the signature is no longer valid but the
signed data is still logically equivalent.
The required SignatureMethod
element defines the digital
signature algorithm used to generate the signature, in this case
DSA with SHA-1.
One or more Reference
elements identify the data that is digested. Each Reference
element identifies the data via a URI. In
this example, the value of the URI is the empty String
(""), which indicates the root of the document. The
optional Transforms
element contains a
list of one or more Transform
elements,
each of which describes a transformation algorithm used to
transform the data before it is digested. In this example, there is
one Transform
element for the enveloped
transform algorithm. The enveloped transform is required for
enveloped signatures so that the signature element itself is
removed before calculating the signature value. The required
DigestMethod
element defines the
algorithm used to digest the data, in this case SHA1. Finally the
required DigestValue
element contains
the actual base64-encoded digested value.
The required SignatureValue
element contains the base64-encoded
signature value of the signature over the SignedInfo
element.
The optional KeyInfo
element contains information about the key that is needed to
validate the signature:
<KeyInfo> <KeyValue> <DSAKeyValue> <P> /KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxe Eu0ImbzRMqzVDZkVG9xD7nN1kuFw== </P> <Q>li7dzDacuo67Jg7mtqEm2TRuOMU=</Q> <G> Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/ XPaF5Bpsy4pNWMOHCBiNU0NogpsQW5QvnlMpA== </G> <Y> qV38IqrWJG0V/mZQvRVi1OHw9Zj84nDC4jO8P0axi1gb6d+475yhMjSc/ BrIVC58W3ydbkK+Ri4OKbaRZlYeRA== </Y> </DSAKeyValue> </KeyValue> </KeyInfo>
This KeyInfo
element
contains a KeyValue
element, which in
turn contains a DSAKeyValue
element
consisting of the public key needed to validate the signature.
KeyInfo
can contain various content such
as X.509 certificates and PGP key identifiers. See the KeyInfo section
of the XML Signature
Recommendation for more information on the different KeyInfo
types.
The following sections describe two examples that show how to use the XML Digital Signature API:
You can find the code shown in this section in the
Validate.java
file in the
docs/technotes/guides/security/xmldsig
directory.
The file on which it operates, envelopedSignature.xml
, is in the same
directory.
To compile and run the example, execute the
following commands from the docs/technotes/guides/security/xmldsig
directory:
$ javac Validate.java
$ java Validate signature.xml
signature.xml
in the current working directory.
This example shows you how to validate an XML Signature using the JSR 105 API. The example uses DOM (the Document Object Model) to parse an XML document containing a Signature element and a JSR 105 DOM implementation to validate the signature.
First we use a JAXP DocumentBuilderFactory
to parse the XML document
containing the Signature. An application obtains the default
implementation for DocumentBuilderFactory
by calling the following line
of code:
We must also make the factory namespace-aware:
Next, we use the factory to get an instance of a
DocumentBuilder
, which is used to parse
the document:
DocumentBuilder builder = dbf.newDocumentBuilder(); Document doc = builder.parse(new FileInputStream(argv[0]));
We need to specify the Signature
element that we want to validate, since
there could be more than one in the document. We use the DOM method
Document.getElementsByTagNameNS
, passing
it the XML Signature namespace URI and the tag name of the
Signature
element, as shown:
NodeList nl = doc.getElementsByTagNameNS (XMLSignature.XMLNS, "Signature"); if (nl.getLength() == 0) { throw new Exception("Cannot find Signature element"); }
This returns a list of all Signature
elements in the document. In this example,
there is only one Signature
element.
We create an XMLValidateContext
instance containing input
parameters for validating the signature. Since we are using DOM, we
instantiate a DOMValidateContext
instance (a subclass of XMLValidateContext
), and pass it two parameters, a
KeyValueKeySelector
object and a
reference to the Signature
element to be
validated (which is the first entry of the NodeList
we generated earlier):
The KeyValueKeySelector
is explained in greater detail in Using
KeySelectors.
We extract the contents of the Signature
element into an XMLSignature
object. This process is called
unmarshalling. The Signature
element is
unmarshalled using an XMLSignatureFactory
object. An application can
obtain a DOM implementation of XMLSignatureFactory
by calling the following line of
code:
We then invoke the unmarshalXMLSignature
method of the factory to
unmarshal an XMLSignature
object, and
pass it the validation context we created earlier:
Now we are ready to validate the signature. We do
this by invoking the validate
method on
the XMLSignature
object, and pass it the
validation context as follows:
The validate
method
returns "true" if the signature validates successfully
according to the core validation rules
in the W3C XML Signature Recommendation
,
and false otherwise.
If the XMLSignature.validate
method returns false, we can
try to narrow down the cause of the failure. There are two phases
in core XML Signature validation:
Each phase must be successful for the signature to be valid. To check if the signature failed to cryptographically validate, we can check the status, as follows:
boolean sv = signature.getSignatureValue().validate(valContext); System.out.println("signature validation status: " + sv);
We can also iterate over the references and check the validation status of each one, as follows:
Iterator i = signature.getSignedInfo().getReferences().iterator(); for (int j=0; i.hasNext(); j++) { boolean refValid = ((Reference) i.next()).validate(valContext); System.out.println("ref["+j+"] validity status: " + refValid); }
KeySelectors
are used
to find and select keys that are needed to validate an
XMLSignature. Earlier, when we created a DOMValidateContext
object, we passed a KeySelector
object as the first argument:
Alternatively, we could have passed a PublicKey
as the first argument if we already knew
what key is needed to validate the signature. However, we often
don't know.
The KeyValueKeySelector
is a concrete implementation of the abstract KeySelector
class. The KeyValueKeySelector
implementation tries to find an
appropriate validation key using the data contained in KeyValue
elements of the KeyInfo
element of an XMLSignature
. It does not determine if the key is
trusted. This is a very simple KeySelector
implementation, designed for
illustration rather than real-world usage. A more practical example
of a KeySelector
is one that searches a
KeyStore
for trusted keys that match
X509Data
information (for example,
X509SubjectName
, X509IssuerSerial
, X509SKI
, or X509Certificate
elements) contained in a
KeyInfo
.
The implementation of the KeyValueKeySelector
is as follows:
private static class KeyValueKeySelector extends KeySelector { public KeySelectorResult select(KeyInfo keyInfo, KeySelector.Purpose purpose, AlgorithmMethod method, XMLCryptoContext context) throws KeySelectorException { if (keyInfo == null) { throw new KeySelectorException("Null KeyInfo object!"); } SignatureMethod sm = (SignatureMethod) method; List list = keyInfo.getContent(); for (int i = 0; i < list.size(); i++) { XMLStructure xmlStructure = (XMLStructure) list.get(i); if (xmlStructure instanceof KeyValue) { PublicKey pk = null; try { pk = ((KeyValue)xmlStructure).getPublicKey(); } catch (KeyException ke) { throw new KeySelectorException(ke); } // make sure algorithm is compatible with method if (algEquals(sm.getAlgorithm(), pk.getAlgorithm())) { return new SimpleKeySelectorResult(pk); } } } throw new KeySelectorException("No KeyValue element found!"); } static boolean algEquals(String algURI, String algName) { if (algName.equalsIgnoreCase("DSA") && algURI.equalsIgnoreCase(SignatureMethod.DSA_SHA1)) { return true; } else if (algName.equalsIgnoreCase("RSA") && algURI.equalsIgnoreCase(SignatureMethod.RSA_SHA1)) { return true; } else { return false; } } }
The code discussed in this section is in the
GenEnveloped.java
file in the
docs/technotes/guides/security/xmldsig
directory. The
file on which it operates, envelope.xml
,
is in the same directory. It generates the file envelopedSignature.xml.
To compile and run this sample, execute the
following command from the
docs/technotes/guides/security/xmldsig
directory:
$ javac GenEnveloped.java
$ java GenEnveloped envelope.xml
envelopedSignature.xml
The sample program will generate an enveloped signature of the
document in the file envelope.xml and store it in the file
envelopedSignature.xml
in the current working
directory.
This example shows you how to generate an XML Signature using the XML Digital Signature API. More specifically, the example generates an enveloped XML Signature of an XML document. An enveloped signature is a signature that is contained inside the content that it is signing. The example uses DOM (the Document Object Model) to parse the XML document to be signed and a JSR 105 DOM implementation to generate the resulting signature.
A basic knowledge of XML Signatures and their
different components is helpful for understanding this section. See
http://www.w3.org/TR/xmldsig-core/
for more
information.
First, we use a JAXP DocumentBuilderFactory
to parse the XML document
that we want to sign. An application obtains the default
implementation for DocumentBuilderFactory
by calling the following line
of code:
We must also make the factory namespace-aware:
Next, we use the factory to get an instance of a
DocumentBuilder
, which is used to parse
the document:
DocumentBuilder builder = dbf.newDocumentBuilder(); Document doc = builder.parse(new FileInputStream(argv[0]));
We generate a public key pair. Later in the
example, we will use the private key to generate the signature. We
create the key pair with a KeyPairGenerator
. In this example, we will create a
DSA KeyPair
with a length of 512 bytes
:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); kpg.initialize(512); KeyPair kp = kpg.generateKeyPair();
In practice, the private key is usually previously
generated and stored in a KeyStore
file
with an associated public key certificate.
We create an XML Digital Signature XMLSignContext
containing input parameters for
generating the signature. Since we are using DOM, we instantiate a
DOMSignContext
(a subclass of
XMLSignContext
), and pass it two
parameters, the private key that will be used to sign the document
and the root of the document to be signed:
We assemble the different parts of the
Signature
element into an XMLSignature
object. These objects are all created
and assembled using an XMLSignatureFactory
object. An application obtains a
DOM implementation of XMLSignatureFactory
by calling the following line of
code:
We then invoke various factory methods to create
the different parts of the XMLSignature
object as shown below. We create a Reference
object, passing to it the following:
Next, we create the SignedInfo
object, which is the object that is
actually signed, as shown below. When creating the SignedInfo
, we pass as parameters:
Next, we create the optional KeyInfo
object, which contains information that
enables the recipient to find the key needed to validate the
signature. In this example, we add a KeyValue
object containing the public key. To create
KeyInfo
and its various subtypes, we use
a KeyInfoFactory
object, which can be
obtained by invoking the getKeyInfoFactory
method of the XMLSignatureFactory
, as follows:
We then use the KeyInfoFactory
to create the KeyValue
object and add it to a KeyInfo
object:
KeyValue kv = kif.newKeyValue(kp.getPublic()); KeyInfo ki = kif.newKeyInfo(Collections.singletonList(kv));
Finally, we create the XMLSignature
object, passing as parameters the
SignedInfo
and KeyInfo
objects that we created earlier:
Notice that we haven't actually generated the signature yet; we'll do that in the next step.
Now we are ready to generate the signature, which
we do by invoking the sign
method on the
XMLSignature
object, and pass it the
signing context as follows:
The resulting document now contains a signature, which has been inserted as the last child element of the root element.
You can use the following code to print the resulting signed document to a file or standard output:
OutputStream os; if (args.length > 1) { os = new FileOutputStream(args[1]); } else { os = System.out; } TransformerFactory tf = TransformerFactory.newInstance(); Transformer trans = tf.newTransformer(); trans.transform(new DOMSource(doc), new StreamResult(os));
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved. Please send comments using this Feedback page. |
Java Technology |


I don't know who said it, and I'm not really quoting it verbatim either; but who cares I still like it:
"Linux is great, just like C is great; it's useful, powerful, and can blow your leg off if you're not careful."
--- layout: post title: "Linux Quote" date: 2007-12-05T14:19:00-07:00 categories: - Linux - Quote - C/C++ - Humor ---
I don't know who said it, and I'm not really quoting it verbatim either; but who cares I still like it:
"Linux is great, just like C is great; it's useful, powerful, and can blow your leg off if you're not careful."


In order to enter, you must correctly guess the password... otherwise, you will be shut out from glory!


This website acts a central repository for submitting and finding lost identification cards.
The motivation behind creating this website is to eliminate the agony and anguish that Kenyan citizens go through when they lose their ID's, the inability to perform routine daily tasks such as operating an Mpesa account is near impossible without this crucial document.
We aim to enabling people to register and retrieve their ID cards with an estimated turnaround time of at least a week.


YOU'VE GOT MAIL (PG). (Warner Bros/Village Roadshow) Director: Nora Ephron Stars: Tom Hanks, Meg Ryan, Parker Posey, Greg Kinnear, Jean Stapleton, Steve Zahn, Dave Chappelle, Heather Burns, Dabney Coleman, John Randolph Running time: 119 minutes.
With the charming Sleepless In Seattle, writer/director Nora Ephron successfully remade the '40's tear jerker An Affair To Remember, as a vehicle for Tom Hanks and Meg Ryan. Ephron attempts to recapture much of that same magic with this pleasant enough remake of Ernst Lubitsch's 1940 comedy The Shop Around The Corner. Based on Nikolaus Laszlo's play Parfumerie, the film has previously been remade, as In The Good Old Summertime, with Judy Garland.
Ephron's contemporary take on this classic tale of two shop assistants who turn out to be pen pals updates the plot for the computer literate '90's. In You've Got Mail, Ephron uses the possibilities of the internet as its central plot device. This sleepless in cyberspace explores how two people who regularly communicate over the net can actually live close by and pass each other in the street without ever knowing it. The catch here is that the two people who enjoy a cosy e-mail romance by night are actually business rivals by day. Eventually romance blossoms between the pair as they realise that they actually have quite a lot in common.
Hanks plays Joe Fox, an entrepreneurial book dealer who runs a chain of bookstores. His latest superstore opens in New York, a block away from the small book shop, quaintly known as The Shop Around The Corner, and threatens to close this 42 year old family business. Joe frequently clashes with the shop's owner Kathleen Kelly (Ryan).
While rivals in business, Joe and Kathleen are already secretly correspondents, who share a sort of intimacy through their nightly communications in an Internet chat room. He is known as NY152, while she calls herself Shopgirl. They share many of their personal secrets and details of their daily lives. But it is only when Joe helps her with her business problems that the anonymity begins to break down, and their relationship becomes more personal. Joe has to somehow break down Kathleen's resistance before he can tell her the truth.
Within the context of the romantic comedy, Ephron also addresses the changing face of our society, and the clash between the old ways of doing business and the modern way of life. Kathleen's boyfriend Frank (played with ease and charm by Greg Kinnear) is a journalist who rails against technology and the corporatisation of America from his old fashioned typewriter. The script, co-written by Ephron and her sister Delia, contains some nice one liners, and the sparkling dialogue is delivered with verve by an attractive cast.
There is plenty of chemistry between the two charismatic stars, teamed together for the third time. Their easy going rapport and laid back charm should ensure that this lesser effort is, nonetheless, a huge hit over the Christmas holiday season. Ryan is vivacious and perky, and delivers her usual delightful performance. Hanks is solid, but somehow is not as convincing as the hard hearted businessman who discovers his humanity. The supporting cast consists of indie regulars Parker Posey and Steve Zahn, and their ensemble performances add to the material's broad appeal. You've Got Mail is innocuous enough and quite enjoyable for the most part. The main problem with this light weight film is that it is overlong, and eventually outstays its welcome. There is a sense of unnecessary padding, and the second half of the film becomes a little tiresome as it limps towards its predictable conclusion. Nonetheless, You've Got Mail is not without appeal, and this delightful, feel good, but occasionally saccharine romantic comedy will undoubtedly please fans of the genre.
*** Greg King http://www.netau.com.au/gregking
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


 The first, and probably most common method is to present a Cinematic or Cutscene event. To help with this, Verve comes with a few handy scripts and GUIs to help with this.
Inside the script file, "scripts/server/VCinematicController.cs", you will find a script class for a Cinematic controller. This class will setup a GUI and relieve the user of control of their avatar until the sequence is complete. To use this class, all you need to do is call the following method:
Verve::PlayCinematic( "sequences/mySequence.vsf" );
Just replace the argument, "sequences/mySequence.vsf", with the path to the sequence file you wish to play.
Not all sequences that you play will be classified as a full-blown Cinematic or Cutscene, so you'll need to know how to play your own sequence through script as well. The first thing you need to do is to create a VController object. If you haven't yet familiarised yourself with this class, now would be a good time to, but basically this is the object that controls the entire sequence.
// Create the Controller. %controller = new VController();
Now that the controller has been created, you need to load the sequence:
// Load the Sequence. %controller.readFile( %sequenceFile );
In case you wanted to preload a sequence at initialisation, the controller will not play the sequence until it is requested:
// Play the Sequence. %controller.play();
You also have direct control over how the sequence plays and can stop or pause the sequence at any stage during playback:
// Pause the Sequence. %controller.pause(); // Stop the Sequence. %controller.stop();


Man who tried to break up fight on subway in Brooklyn slashed in the face
by Eyewitness NewsWILLIAMSBURG, Brooklyn (WABC) -- A man who tried to break up a fight on the subway in Brooklyn ended up getting slashed in the face.
And now the Good Samaritan is speaking out about the frightening attack on the L train in Williamsburg.
Zorikh Lequidre and his friends recreate middle age culture, including armored combat. And he likes comic books.
"Mostly I'm just reading books about the many different Captain Marvels," he said.
Lequidre, 51, has a new distinguishing feature: a 15 stitch memory of his most honorable moment.
It started on a crowded L train at Union Square late Friday night. It was crowded and Zorikh was reading a comic book.
He says one man on the train was pushing another, much smaller man out of the car. They had all just boarded.
"There's this guy pushing the shorter guy out of the train, like really angry and aggressive like," Zorikh said. "He's doing it again and again. The guy doesn't seem to know what's going on."
But the man did it again. "Wham, and I'm like hey dude, what's going on here?", said Lequidre. "What's your problem, just let him on the train. Then he proceeded to spit in my face."
Then there was some yelling and it all seemed to be over, but it wasn't. Several stops later, now in Brooklyn, the man who had spit was a couple of feet away.
"Swipe, and I thought he was trying to punch me," said Lequidre. "And I didn't have time to block or do anything. The people were like, dude, you're bleeding. And at that point the guy turned and left."
The people on the train stayed with him until police and an ambulance got there. No one has been arrested.
Would he do it again, stand up for the little guys he reads about? "I would call out the guy who was being rude," he said. "I would also get off the train at the next stop."


If you do not enter account information, a Brightcove sample account will be used.
Account id:
Client id:
Client secret:
Date Range:
Generate the Report
Current API request
Current API response
Copy and paste the data below into a an empty text file, and save it with a .csv extension. You can then open the file to view it in your spreadsheet application.


Welcome to TVSeries Web Server.
To download information about your favourite TV Shows just a make request to https://tvserieswebserver.herokuapp.com/
Searching a TV Show
https://tvserieswebserver.herokuapp.com/series/seriesName/<seriesName>
Get Series Details By its TVDB ID
https://tvserieswebserver.herokuapp.com/series/seriesId/<seriesTvdbId>/seriesOnly
Get Cast Details
https://tvserieswebserver.herokuapp.com/series/seriesId/<seriesTvdbId>/actors
Get Banners
https://tvserieswebserver.herokuapp.com/series/seriesId/<seriesTvdbId>/banners
Get Complete Series Information with Cast and Banners
https://tvserieswebserver.herokuapp.com/series/seriesId/<seriesTvdbId>/seriesPlusActorsPlusBanners
Authors and Contributors
The project maintained by Mayank Lohani@knayamlohani.


|
UMI3D Unity SDK
2.5.b.221125
A UMI3D sdk implementation using Unity
|
UMI3D body pose. More...
Classes | |
| class | JointRotation |
| class | TargetTransform |
Public Member Functions | |||||
| virtual LoadEntity | GetLoadEntity (HashSet< UMI3DUser > users=null) | ||||
Ask the clients to load the entity.
| |||||
| DeleteEntity | GetDeleteEntity (HashSet< UMI3DUser > users=null) | ||||
Ask the clients to delete the entity.
| |||||
| ulong | Id () | ||||
| UMI3D Id of an entity. More... | |||||
| IEntity | ToEntityDto (UMI3DUser user) | ||||
Convert the entity to a DTO.
| |||||
| Bytable | ToBytes (UMI3DUser user) | ||||
Convert the entity to a list of bytes as a bytable.
Used in networking with bytes. More... | |||||
| UMI3DBodyPoseDto | ToDto () | ||||
| bool | LoadOnConnection (UMI3DUser user) | ||||
| Condition to be loaded on connection. More... | |||||
| bool | AddConnectionFilter (UMI3DUserFilter filter) | ||||
| Add a filtering condition from the user filtering. More... | |||||
| bool | RemoveConnectionFilter (UMI3DUserFilter filter) | ||||
| Remove a filtering condition from the user filtering. More... | |||||
| LoadEntity | GetLoadEntity (HashSet< UMI3DUser > users=null) | ||||
| Ask the clients to load the entity. More... | |||||
| DeleteEntity | GetDeleteEntity (HashSet< UMI3DUser > users=null) | ||||
| Ask the clients to delete the entity. More... | |||||
| IEntity | ToEntityDto (UMI3DUser user) | ||||
| Convert the entity to a DTO. More... | |||||
| Bytable | ToBytes (UMI3DUser user) | ||||
| Convert the entity to a list of bytes as a bytable. More... | |||||
| bool | LoadOnConnection (UMI3DUser user) | ||||
| Condition to be loaded on connection. More... | |||||
| bool | AddConnectionFilter (UMI3DUserFilter filter) | ||||
| Add a filtering condition from the user filtering. More... | |||||
| bool | RemoveConnectionFilter (UMI3DUserFilter filter) | ||||
| Remove a filtering condition from the user filtering. More... | |||||
| ulong | Id () | ||||
| UMI3D Id of an entity. More... | |||||
Public Attributes | |
| ulong | PoseId |
| Entity UMI3D id. More... | |
| bool | IsActive = false |
| bool | AllowOverriding = false |
| bool | isRelativeToNode = false |
| string | PoseName |
| Vector3 | BodyPosition = Vector3.zero |
| Vector3 | BodyEulerRotation = Vector3.zero |
| List< JointRotation > | JointRotations = new List<JointRotation>() |
| List< TargetTransform > | TargetTransforms = new List<TargetTransform>() |
Protected Member Functions | |
| ulong | GetId () |
| void | RegisterPose (AbstractEntityDto pose) |
| void | OnEnable () |
| void | SetId (ulong id) |
UMI3D body pose.
A hand pose description is composed of the position and rotation of limbs and the position and rotation of every bone joints of the body.
See BodyDescription andBodyAnimation.
| bool umi3d.edk.userCapture.UMI3DBodyPose.AddConnectionFilter | ( | UMI3DUserFilter | filter | ) |
Add a filtering condition from the user filtering.
| filter |
Implements umi3d.edk.UMI3DMediaEntity.
| DeleteEntity umi3d.edk.userCapture.UMI3DBodyPose.GetDeleteEntity | ( | HashSet< UMI3DUser > | users = null | ) |
Ask the clients to delete the entity.
| users | Target clients user set. |
Implements umi3d.edk.UMI3DLoadableEntity.
|
protected |
|
virtual |
Ask the clients to load the entity.
| users | Target clients user set. |
Implements umi3d.edk.UMI3DLoadableEntity.
| ulong umi3d.edk.userCapture.UMI3DBodyPose.Id | ( | ) |
UMI3D Id of an entity.
Null id is 0
Ids are set between 1 and 18,446,744,073,709,551,615.
Actualy between 1 and 9,223,372,036,854,775,807 due to the serializer not sutporting unsigned values.
Implements umi3d.edk.UMI3DEntity.
| bool umi3d.edk.userCapture.UMI3DBodyPose.LoadOnConnection | ( | UMI3DUser | user | ) |
Condition to be loaded on connection.
| user |
Implements umi3d.edk.UMI3DMediaEntity.
|
protected |
|
protected |
| bool umi3d.edk.userCapture.UMI3DBodyPose.RemoveConnectionFilter | ( | UMI3DUserFilter | filter | ) |
Remove a filtering condition from the user filtering.
| filter |
Implements umi3d.edk.UMI3DMediaEntity.
|
protected |
Convert the entity to a list of bytes as a bytable.
| baseSize | |
| user |
Used in networking with bytes.
Implements umi3d.edk.UMI3DLoadableEntity.
| UMI3DBodyPoseDto umi3d.edk.userCapture.UMI3DBodyPose.ToDto | ( | ) |
Convert the entity to a DTO.
| user |
Implements umi3d.edk.UMI3DLoadableEntity.
| bool umi3d.edk.userCapture.UMI3DBodyPose.AllowOverriding = false |
| Vector3 umi3d.edk.userCapture.UMI3DBodyPose.BodyEulerRotation = Vector3.zero |
| Vector3 umi3d.edk.userCapture.UMI3DBodyPose.BodyPosition = Vector3.zero |
| bool umi3d.edk.userCapture.UMI3DBodyPose.IsActive = false |
| bool umi3d.edk.userCapture.UMI3DBodyPose.isRelativeToNode = false |
| List<JointRotation> umi3d.edk.userCapture.UMI3DBodyPose.JointRotations = new List<JointRotation>() |
| ulong umi3d.edk.userCapture.UMI3DBodyPose.PoseId |
Entity UMI3D id.
| string umi3d.edk.userCapture.UMI3DBodyPose.PoseName |
| List<TargetTransform> umi3d.edk.userCapture.UMI3DBodyPose.TargetTransforms = new List<TargetTransform>() |


Library: Foundation
Package: Threading
Header: Poco/ActiveRunnable.h
Description
The base class for all ActiveRunnable instantiations.
Inheritance
Direct Base Classes: Runnable, RefCountedObject
All Base Classes: RefCountedObject, Runnable
Known Derived Classes: ActiveRunnable
Member Summary
Inherited Functions: duplicate, referenceCount, release, run
Types
Ptr
typedef AutoPtr < ActiveRunnableBase > Ptr;


Spotivibe
Set the tune. Set the mood. Instantly.
Scroll
Select an Activity
add
Create Activity
Create New Activity
Playlist Name
Choose A Genre…
Chill
Metal
HipHop
Genre
Spotify Playlist URI…
Songs By…
Created By…
CANCEL
SAVE CHANGES


The gender gap in the technology industry is not a secret, but what can we do about it? Could volunteer opportunities open more doors for women in the field? And through them, can we keep more women interested in staying?
Women in the technology field are in short supply, many of them leave after only a year. There have been many studies on the factors that led us to this point. However, the solution to this problem remains to be found. "In 1995, 37% of computer scientists were women. Today, it's only 24%" (Girls Who Code).
Volunteering creates a community and provides a safe place for women to communicate with each other, support one another, and encourage the next generation. It’s a way to stem the loneliness that can come from not being around people that think similarly to them or have a comparative perspective. Women could have a better chance of entering and staying in the tech industry if they are provided better social resources.


Jean Rivier, expert on stress hormones, dies at age 78
SAN DIEGO (AP) - Jean Rivier, a chemist who led groundbreaking research on stress and helped discover drugs that treated endometriosis and prostate cancer, has died. He was 78.
The San Diego Union-Tribune reports Rivier died in San Diego Wednesday from complications of Parkinson’s disease.
Rivier devoted his career to studying a stress hormone called corticotropin-releasing factors. His research showed how CRFs are responsible for many of the body’s reactions to stress, including disabling the immune system in irritable bowel syndrome.
TOP STORIES
Justice Department clears Trump of wrongdoing on Ukraine call
Democrats huff, puff, bluff and blow, but impeachment falls down
'There will be blood': Maher sees civil war breaking out if we don't 'learn to live with each other'
His work resulted in eight drugs used to diagnose and treat a variety of diseases, including endometriosis, a painful uterine disorder; prostate cancer; and intractable pain.
Rivier studied chemistry in Lausanne, Switzerland, where he met his wife and scientific partner, Catherine. They moved to San Diego in 1970 to work at the Salk Institute for Biological Studies.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


It had been a rather stressful day emotionally. I'd just returned from vacation and was still making the reentry to normal life. I'd gotten past all the issues that had come up that day, but it was late--about 11:30 PM--and I was getting quite sleepy. But I'd been looking forward to the salvia experience the whole time I was away, so I decided to go ahead. I did the usual physical preparations: brushing tongue and mouth surfaces with toothbrush, rinsing with mouthwash. I also spent a few moments in prayer, as I try always to do before salvia. (Believe it or not, I'm a moderately conservative Christian.)
The dilution was enough to reduce the burning sensation of the tincture's alcohol content. It also greatly reduced the salivation I'd experienced before while holding the tincture in my mouth. I swallowed after six or seven minutes.
By this time I was already very sleepy so I went to bed immediately and began to drift off to sleep. Even before I had settled into bed, though, I could already feel a little of what I call 'slow vertigo'--the feeling that I'm slowly rotating and drifting in free space, and the gravity-like sensation many others have described with salvia.
Before long I was far enough into both sleep and salvia that I felt uncertain whether or not I was asleep and dreaming semilucidly, or just experiencing salvia's effects. My first clear, visual salvia effect this time was as follows,
I stood somewhere outdoors surrounded by a landscape of nondescript trees, hills, and small buildings. My arms extended, I felt myself slowly rotating about one or more unfamiliar axis or axes. As I rotated, my range of senses, even my body itself, seemed to sweep outward through my fingertips, to encompass vast expanses of the space and time surrounding me, even the lives, joys, and sorrows of others as well as myself. The spacetime-scape seemed laden with memories, and as my sense-fingers swept across it I caught brief deja-vu flashes of sights and emotions tied to each point I touched.
Briefly, I was confused about what was me and what was not-me. Certainly I don't really include in myself the entire scope of things I was experiencing. Then I remembered: 'Oh yeah, it's the salvia.' I managed to awaken briefly and opened my eyes for a sort of sanity check. Sure enough, the familiar, ordinary bedroom still stood there, with me still snugly in bed.
I can only vaguely and briefly describe the remainder of the experience. I was swept with cascades of sweet and bitter emotions both my own and not my own, deluged with flashes of spreading landscapes known and unknown (yet deja-vu familiar again), and carried up by unseen wings into a realm where some understanding of all this was possible. And this is what I learned:
God, as it were, had spread out before me a glimpse of the cosmos as He saw it, but infinitely compressed and folded up to make it accessible to my small self. Compared to all that vastness, and especially to Him, I was a mere infinitesimal. Yet He had made me, and all those creatures 'in His image' (as Genesis puts it), to live and experience there, and had provided that they and I might someday realize His penetrating understanding of and empathy with our own joys and pains. By no merit of mine, I had been given a tiny glimpse of it all.
For obvious reasons I don't know how long the peak of the experience lasted, but subjectively, the flow of time seemed almost completely suspended.
There was an aura of sacredness to the experience when I eventually came out of it enough to awake normally. When I returned to sleep, my dreams were very vivid but entirely normal.
It is not an experience I expect to repeat, but one whose memory I will ponder for years.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use org.joda.beans | |
|---|---|
| org.joda.beans | Base interfaces and annotations defining Joda-Beans. |
| org.joda.beans.impl | Base implementations of Joda-Bean interfaces. |
| org.joda.beans.impl.direct | Implementation of Joda-Beans designed for extension by the code generator. |
| org.joda.beans.impl.flexi | Implementation of Joda-Beans as a flexible map of data. |
| org.joda.beans.impl.light | Implementation of light immutable Joda-Beans. |
| org.joda.beans.impl.map | Implementation of Joda-Beans extending a map. |
| org.joda.beans.impl.reflection | Implementation of Joda-Beans using reflection. |
| org.joda.beans.integrate.freemarker | Integration of Joda-Beans and Freemarker. |
| org.joda.beans.integrate.mongo | Integration of Joda-Beans and MongoDB. |
| org.joda.beans.query | Support for the BeanQuery interface. |
| org.joda.beans.ser | Serialization of Joda-Beans. |
| org.joda.beans.ser.bin | Serialization of Joda-Beans using a binary format. |
| org.joda.beans.ser.json | Serialization of Joda-Beans using JSON. |
| org.joda.beans.ser.xml | Serialization of Joda-Beans using XML. |
| org.joda.beans.test | Utility to assist with testing and comparing Joda-Beans. |
| Classes in org.joda.beans used by org.joda.beans | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| BeanQuery
A query based on beans. |
|
| DynamicBean
A dynamic bean that allows properties to be added and removed. |
|
| DynamicMetaBean
A dynamic meta-bean which works with DynamicBean . |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
|
| Property
A property that is linked to a specific bean. |
|
| PropertyMap
A map of properties that is linked to a specific bean. |
|
| PropertyStyle
An enumeration of property styles. |
| Classes in org.joda.beans used by org.joda.beans.impl | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| BeanQuery
A query based on beans. |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
|
| Property
A property that is linked to a specific bean. |
|
| PropertyMap
A map of properties that is linked to a specific bean. |
|
| PropertyStyle
An enumeration of property styles. |
| Classes in org.joda.beans used by org.joda.beans.impl.direct | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| BeanQuery
A query based on beans. |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
|
| Property
A property that is linked to a specific bean. |
|
| PropertyStyle
An enumeration of property styles. |
| Classes in org.joda.beans used by org.joda.beans.impl.flexi | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| DynamicBean
A dynamic bean that allows properties to be added and removed. |
|
| DynamicMetaBean
A dynamic meta-bean which works with DynamicBean . |
|
| Property
A property that is linked to a specific bean. |
| Classes in org.joda.beans used by org.joda.beans.impl.light | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
|
| PropertyMap
A map of properties that is linked to a specific bean. |
| Classes in org.joda.beans used by org.joda.beans.impl.map | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| DynamicBean
A dynamic bean that allows properties to be added and removed. |
|
| DynamicMetaBean
A dynamic meta-bean which works with DynamicBean . |
|
| Property
A property that is linked to a specific bean. |
| Classes in org.joda.beans used by org.joda.beans.impl.reflection | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| BeanQuery
A query based on beans. |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
|
| Property
A property that is linked to a specific bean. |
|
| PropertyMap
A map of properties that is linked to a specific bean. |
|
| PropertyStyle
An enumeration of property styles. |
| Classes in org.joda.beans used by org.joda.beans.integrate.freemarker | |
|---|---|
| Bean
A bean consisting of a set of properties. |
| Classes in org.joda.beans used by org.joda.beans.integrate.mongo | |
|---|---|
| Bean
A bean consisting of a set of properties. |
| Classes in org.joda.beans used by org.joda.beans.query | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanQuery
A query based on beans. |
| Classes in org.joda.beans used by org.joda.beans.ser | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
| BeanBuilder
A builder for a bean, providing a safe way to create it. |
|
| MetaBean
A meta-bean, defining those aspects of a bean which are not specific to a particular instance, such as the type and set of meta-properties. |
|
| MetaProperty
A meta-property, defining those aspects of a property which are not specific to a particular bean, such as the property type and name. |
| Classes in org.joda.beans used by org.joda.beans.ser.bin | |
|---|---|
| Bean
A bean consisting of a set of properties. |
| Classes in org.joda.beans used by org.joda.beans.ser.json | |
|---|---|
| Bean
A bean consisting of a set of properties. |
| Classes in org.joda.beans used by org.joda.beans.ser.xml | |
|---|---|
| Bean
A bean consisting of a set of properties. |
| Classes in org.joda.beans used by org.joda.beans.test | |
|---|---|
| Bean
A bean consisting of a set of properties. |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


DASHBOARD
APPLY
LOANS
PROFILE
LOG OUT
Apply for loan
Loan application
View Loans
Loan repayments
Profile
User details


674
|
|
Oracle Performance Tuning and Optimization
by Edward Whalen
Sams, Macmillan Computer Publishing
ISBN: 067230886x Pub Date: 04/01/96
|
22
1000
Appendix E Oracle Tuning Parameters
This appendix lists the Oracle tuning parameters. The appendix first groups them into general areas of use and then sorts them alphabetically within the group. The section headings are the syntax for the parameters. The syntax contains information in the following format:
PARAMETER[option1, option2, option3,etc..]<DEFAULT VALUE>
These parameters are divided into sections based on whether the parameter affects performance, is a parameter that enables system analysis, is a general parameter, and so on. Because there may be some overlap, if a parameter is not in the section where you expected it, keep looking.
Performance Parameters
These parameters change the performance characteristics of the system.
CURSOR_SPACE_FOR_TIME [ TRUE,FALSE ] < FALSE >
CURSOR_SPACE_FOR_TIME causes the system to use more space for cursors, thus increasing performance. This parameter affects both the shared SQL areas and the users private SQL area. This parameter speeds performance but uses more memory.
If CURSOR_SPACE_FOR_TIME is TRUE, the shared SQL areas remain pinned in the shared pool as long as an open cursor references them. This parameter should be used only if you have a sufficiently large shared pool to hold all the processes cursors simultaneously.
The users private SQL area is also retained during cursor execution, thus saving time and I/Os at the expense of memory.
DB_BLOCK_BUFFERS [ 4..65535 ] < 32 buffers >
This parameter controls the number of database block buffers in the SGA. DB_BLOCK_BUFFERS is probably the most significant instance tuning parameter because the majority of I/Os in the system are generated by database blocks. Increasing DB_BLOCK_BUFFERS increases performance at the expense of memory. You can calculate the amount of memory that will be consumed with the following formula:
Buffer Size = DB_BLOCK_BUFFERS * DB_BLOCK_SIZE
A larger number of database block buffers in the system creates a higher cache-hit rate, thus reducing the amount of I/O and CPU utilized and improving performance.
DB_BLOCK_CHECKPOINT_BATCH [ 0..DB_BLOCK_WRITE_BATCH ] < DB_BLOCK_WRITE_BATCH / 4 >
This parameter specifies the number of blocks that the DBWR writes in one batch when performing a checkpoint. Setting this value too high causes the system to flood the I/O devices during the checkpoint, severely degrades performance, and increases response timesmaybe to unacceptable levels.
You should set DB_BLOCK_CHECKPOINT_BATCH to a level that allows a checkpoint to finish before the next checkpoint occurs. Because setting DB_BLOCK_CHECKPOINT_BATCH to zero causes the default value to be used, changing DB_BLOCK_WRITE_BATCH is automatically reflected in the default value of DB_BLOCK_CHECKPOINT_BATCH.
DB_BLOCK_SIZE [ 1024-8192 (OS dependent) ] < OS dependent >
This parameter specifies in bytes the size of the Oracle database blocks. The typical values are 2048 and 4096. If you set the block size relative to the size of the rows in database, you c
1000
an reduce I/O. In some types of applications in which large amounts of sequential accesses are done, a larger database block size can be of benefit. This value is of use only at database creation time.
DB_FILE_MULTIBLOCK_READ_COUNT [ number (OS dependent) ] < OS dependent >
DB_FILE_MULTIBLOCK_READ_COUNT specifies the maximum number of blocks read in one I/O during a sequential scan. The default is a function of DB_BLOCK_BUFFERS and PROCESSES. Reasonable values are 4, 16, or 32. The maximum allowed values are OS dependent.
This parameter can be especially useful if you do a large number of table scans such as in a DSS system.
DB_FILE_SIMULTANEOUS_WRITES [ 1..24 ] < 4 >
Specifies the number of simultaneous writes for each database file when written by the DBWR. For disk arrays that handle large numbers of requests in the hardware simultaneously, it is advantageous to set DB_FILE_SIMULTANEOUS_WRITES to its maximum.
DISCRETE_TRANSACTIONS_ENABLED [ TRUE/FALSE ] < FALSE >
This parameter implements a simpler, faster rollback mechanism that, under certain conditions, can improve performance. In this mode, you can obtain greater efficiency but the qualification criteria for what kind of transactions can take advantage of discrete transactions are quite strict.
DML_LOCKS [ 20..unlimited,0 ] < 4 * TRANSACTIONS >
This parameter specifies the maximum number of DML locks. A DML lock is used for each table modification transaction. DML locks are used in the DROP TABLE, CREATE INDEX, and LOCK TABLE IN EXCLUSIVE MODE statements. If the value is set to zero, enqueues are disabled, which improves performance slightly.
LOG_ARCHIVE_BUFFER_SIZE [ 1..OS dependent ] < OS dependent >
When running in ARCHIVELOG mode, this parameter specifies the size of each archival buffer in redo log blocks. This parameter, in conjunction with the LOG_ARCHIVE_BUFFERS parameter, can be used to tune the speed of archiving faster or slower as desired to affect overall system performance.
LOG_ARCHIVE_BUFFERS [ 1..OS dependent ] < OS dependent >
When running in ARCHIVELOG mode, this parameter specifies the number of buffers to allocate to archiving. This parameter is used with the LOG_ARCHIVE_BUFFER_SIZE parameter to control the speed of archiving.
LOG_BUFFER [ OS dependent ] < OS dependent >
LOG_BUFFER specifies the number of bytes allocated to the redo log buffer. Larger values reduce I/Os to the redo log by writing fewer blocks of a larger size. Particularly in a heavily used system, this may help performance.
LOG_CHECPOINT_INTERVAL [ 2..unlimited ] < OS dependent >
This parameter specifies the number of redo log file blocks to be filled to cause a checkpoint to occur. Remember that a checkpoint always happens when a log switch occurs. This parameter can be used to cause checkpoints to occur more frequently. Sometimes, frequent checkpoints have less effect on the system than one large checkpoint when the log switch occurs.
LOG_CHECKPOINT_TIMEOUT [ 0..unlimited ] < OS dependent >
This parameter specifies the maximum amount of time that can pass before another checkpoint must occur. This parameter can also be used to increase the frequency of the checkpoint process, thus changing the overall system affect.
LOG_SIMULTANEOUS_COPIES [ 0..unlimited ] < CPU_COUNT >
LOG_SIMULTANEOUS_COPIES specifies the number of redo buffer copy latches simultaneously availab
1000
le to write log entries. You can have up to two redo copy latches per CPU. This helps the LGWR process keep up with the extra load generated by multiple CPUs.
If this parameter is zero, redo copy latches are turned off and all log entries are copied on the redo allocation latch.
LOG_SMALL_ENTRY_MAX_SIZE [ number (OS dependent) ] < OS dependent >
This parameter specifies the size in bytes of the largest copy to the log buffers that can occur under the redo allocation latch without obtaining the redo buffer copy latch. If LOG_SIMULTANEOUS_COPIES is zero, this parameter is ignored.
OPTIMIZER_MODE [ RULE/COST/FIRST_ROWS/ALL_ROWS ] COST
When set to RULE, this parameter causes rule-based optimization to be used, unless hints are supplied in the query. When set to COST, this parameter causes a cost-based approach for the SQL statement, providing that there are any statistics in the data dictionary. When set to FIRST_ROWS, the optimizer chooses execution plans that minimize response time. When set to ALL_ROWS, the optimizer chooses execution plans that minimize total execution time.
PRE_PAGE_SGA [ TRUE/FALSE ] < FALSE >
When set to TRUE, this parameter specifies that, at instance startup, all pages of the SGA are touched, causing them to be allocated in memory. This increases startup time but reduces page faults during run time. This is useful if you have a large number of processes starting at once. This parameter can increase the system performance in that case by avoiding memory allocation overhead.
ROLLBACK_SEGMENTS [ Any rollback segment names ] < NULL >
ROLLBACK_SEGMENTS specifies one or more rollback segment names to be allocated to this instance. If ROLLBACK_SEGMENTS is not specified, the public rollback segments are used. If you want to move your rollback segments to a different disk device, you must specify it here. The parameter is specified as follows:
ROLLBAC_SEGMENTS = ( roll1, roll2, roll3 )
If you use the Oracle Parallel Server option, you must name different rollback segments for each instance.
ROW_CACHE_CURSORS [ 10..3300 ] < 10 >
This parameter specifies the number of cached recursive cursors used by the row cache manager for selecting rows from the data dictionary. The default is usually sufficient unless you have particularly high access to the data dictionary.
ROW_LOCKING [ ALWAYS/INTENT ] < ALWAYS >
The value ALWAYS specifies that only row locks are acquired when a table is updated. If you set this value to INTENT, row locks are acquired on a SELECT FOR UPDATE, but when the update occurs, a table lock is acquired.
SEQUENCE_CACHE_ENTRIES [ 10..32000 ] < 10 >
This parameter specifies the number of sequences that can be cached in the SGA. By caching the sequences, an immediate response is achieved for sequences. Set a large value for SEQUENCE_CACHE_ENTRIES if you have a high concurrency of processes requesting sequences.
SEQUENCE_CACHE_HASH_BUCKETS [ 1..32000 (prime number) ] < 7 >
This parameter specifies the number of buckets to speed up access to sequences in the cache. The cache is arranged as a hash table.
SERIALIZABLE [ TRUE/FALSE ] < FALSE >
If this value is set to TRUE, it causes queries to obtain table-level read locks, which prohibits modifications to that table until the transaction has committed or rolled back the transaction. This mode provides repeatable reads and ensures that, w
1000
ithin the transactions, multiple queries to the same data achieve the same result.
With SERIALIZABLE set to TRUE, degree-three consistency is provided. There is a performance penalty paid when you run in this mode, which is usually not necessary.
SESSION_CACHED_CURSORS [ 0..OS dependent ] < 0 >
This parameter specifies the number of session cursors to cache. If parse calls of the same SQL statement are repeated, this can cause the session cursor for that statement to be moved into the session cursor cache. Subsequent calls need not reopen the cursor.
SHARED_POOL_SIZE [ 300KB..OS dependent ] < 3.5Mbytes >
This parameter specifies the size of the shared pool in bytes. The shared pool contains the data dictionary cache (row cache) and the library cache as well as session information. Increasing the size of the shared pool should help performance, at the cost of memory.
SMALL_TABLE_THRESHOLD [ 0..OS dependent ] < 4 >
This parameter specifies the number of buffers available in the SGA for table scans. A small table may be read entirely into cache if it fits in SMALL_TABLE_THRESHOLD number of buffers. When scanning a table larger than this, these buffers are reused immediately. This provides a mechanism to prohibit a single-table scan from taking over the buffer cache.
SORT_AREA_RETAINED_SIZE [ 0..SORT_AREA_SIZE ] < SORT_AREA_SIZE >
SORT_AREA_RETAINED_SIZE defines the maximum amount of session memory in bytes that can be used for an in-memory sort. The memory is released when the last row is fetched from the sort area.
If the sort does not fit in SORT_AREA_RETAINED_SIZE bytes, a temporary segment is allocated and the sort is done in this temporary table. This is called an external (disk) sort. This value is important if sort performance is critical.
SORT_AREA_SIZE [ number of bytes ] < OS dependent >
This value specifies the maximum amount of PGA memory to use for an external sort. This memory is released when the sorted rows are written to disk. Increasing this value increases the performance of large sorts.
Remember that each user process has its own PGA. You can calculate the potential memory usage if all the users are doing a large sort with the following formula:
Potential Memory Usage = SORT_AREA_SIZE * ( number of users doing a large sort)
If very large indexes are being created, you may want to adjust this parameter up.
SORT_SPACEMAP_SIZE [ bytes ] < OS dependent >
The size in bytes of the sort spacemap in the context area. If you have very large indexes, adjust this parameter up. Optimal performance is achieved when this parameter has the following value:
SORT_SPACEMAP_SIZE = ( total-sort-bytes / sort-area-size ) + 64
In this formula, total-sort-bytes has the following value:
total-sort-bytes = record-count * ( sum-of-average-column-sizes +
( 2 * number-of-columns ) )
The number-of-columns include the SELECT list for the ORDER BY, the GROUP BY, and the key list for the CREATE INDEX. Also add a 10 or 20 extra bytes for overhead.
Parallel Query Option Parameters
The following parameters affect the operation of the Parallel Query option, which has been available in Oracle since version 7.1. The Parallel Query option can affect performance of certain operations dramatically.
PARALLEL_DEFAULT_MAX_SCANS [ 0..unlimited ] < OS dependent >
This value specifies the maximum number of query servers to be used by default for a query. This valued is used only if there are no values specified in a PARALLEL hint or in the PARALLEL definition clause. This limits the number of query servers used by default when the value of PARALLEL_DEFAULT_SCANSIZE is used by the query coordinator.
PARALLEL_DEFAULT_SCANSIZE [ 0..OS dependent ] < OS dependent >
This parameter is used to determine the number of query servers to be used for a particular table. The size of the table divided by PARALLEL_DEFAULT_SCANSIZE determines the number of query servers, up to PARALLEL_DEFAULT_MAX_SCANS.
PARALLEL_MAX_SERVERS [ 0..100 ] < OS dependent >
This parameter specifies the maximum number of query servers or parallel recovery processes available for this instance.
PARALLEL_MIN_SERVERS [ 0..PARALLEL_MAX_SERVERS ] < 0 >
This parameter determines the minimum number of query servers for an instance. It is also the number of query servers started at instance startup.
PARALLEL_SERVER_IDLE_TIME [ 0..unlimited ] < OS dependent >
This parameter specifies the number of minutes before Oracle terminates an idle query server process.
RECOVERY_PARALLELISM [ 0..PARALLEL_MAX_SERVERS ] < OS dependent >
This parameter specifies the number of processes to be used for instance or media recovery. A large value can greatly reduce instance recovery time. A value of 0 or 1 indicates that parallel recovery will not be done and that recovery will be serial.
Analysis Tool Parameters
The following parameters turn on special features in Oracle for detailed analysis and debugging.
DB_BLOCK_CHECKSUM [ TRUE/FALSE ] < FALSE >
Setting this parameter to TRUE causes the DBWR and direct loader to calculate a checksum for every block they write to disk. This checksum is written into the header of each block.
DB_LOG_CHECKSUM [ TRUE/FALSE ] < FALSE >
Setting this parameter to TRUE causes the LGWR to calculate a checksum for every block it writes to disk. The checksum is written into the header of the redo block.
DB_BLOCK_LRU_EXTENDED_STATISTICS [ 0..unlimited ] < 0 >
This parameter enables statistics in the X$KCBRBH table to be gathered. These statistics estimate the increased number of database block buffer cache hits for each additional buffer. Any value over zero specifies the number of buffers to estimate the cache hits for. If you are interested in estimating the cache hits for an additional 100 buffers, set this parameter to 100.
This parameter affects performance and should be turned off during normal operation.
DB_BLOCK_LRU_STATISTICS [ TRUE/FALSE ] < FALSE >
This parameter specifies whether statistics are gathered for database block buffer cache-hit estimates as specified in DB_BLOCK_LRU_EXTENDED_STATISTICS. Set this parameter to TRUE when you want to gather these statistics.
EVENT < NULL >
The EVENT parameter modifies the scope of ALTER SESSION SET EVENTS commands so that they pertain to the entire instance rather than just the session. This is an Oracle internal parameter and should be changed only at the direction of Oracle support.
FIXED_DATE [ date string ] < NULL >
FIXED_DATE allows you to set as a constant the Oracle function SYSDATE
1000
in the format YYYY-MM-DD-HH24:MI:SS. Use this parameter for debug only. This parameter allows you to test your applications functionality with certain dates, such as the turn of the century.
SQL_TRACE [ TRUE/FALSE ] < FALSE >
This parameter specifies whether the SQL Trace facility is enabled. The SQL Trace facility can provide valuable information but at the price of some overhead. Use SQL Trace only when you are tracking down a specific problem.
TIMED_STATISTICS [ TRUE/FALSE ] < FALSE >
When TIMED_STATISTICS is set to TRUE, the time-related statistics in the dynamic performance tables are enabled. This information can be quite useful but there is considerable overhead involved. Only enable TIMED_STATISTICS when you are analyzing the system.
General Parameters
These parameters are of a general nature; typically they set limits and do not significantly affect performanceexcept that they may take up space in the SGA.
BACKGROUND_DUMP_DEST [ path-name ] < OS dependent >
This parameter specifies the destination directory where the debugging trace files for the background processes are written. The background processes log all startup and shutdown messages and errors to these files, as well as any other error logs. A log of all CREATE, ALTER, or DROP statements is also stored here.
BLANK_TRIMMING [ TRUE/FALSE ] < FALSE >
If the value of BLANK_TRIMMING is TRUE, this allows a data assignment of a string variable to a column value that is smaller (assuming that the truncated characters are blank).
CHECKPOINT_PROCESS [ TRUE/FALSE ] < FALSE >
This parameter determines whether the CKPT background process is enabled. During a checkpoint, the headers of all the data files must be updated. This task is usually performed by the LGWR process. The job of writing the blocks to disk belongs to the DBWR process. If you notice that the LGWR is slowing down during checkpoints, it may be necessary to enable CKPT to eliminate the extra work that LGWR is doing.
CLEANUP_ROLLBACK_ENTRIES [ number ] < 20 >
This parameter specifies the number of undo records processed at a time when a rollback occurs. This breaks up the rollback and limits a large rollback from locking out smaller rollbacks.
CLOSE_CHACHED_OPEN_CURSORS [ TRUE/FALSE ] < FALSE >
This parameter specifies whether cursors that have been opened and cached by PL/SQL are automatically closed at commit. A value of FALSE allows these cursors to remain open for further use. If cursors are rarely reused, you can save space in the SGA by setting this value to TRUE. If cursors are reused, you can improve performance by leaving this parameter at the default value of FALSE.
COMPATABLE [ variable ] < release dependent >
Setting this variable guarantees that the DBMS will remain compatible with the specified release. Some features may have to be limited for the compatibility to be maintained.
COMPATIBLE_NO_RECOVERY [ variable ] < release dependent >
This parameter works like the COMPATABLE parameter except that the earlier version (specified as the parameter) may not work on the current database if recovery is necessary.
CONTROL_FILES [ 1..8 filenames ] < OS dependent >
This parameter specifies the path names of one to eight control files. It is recommended that there always be more than one control file and that they exist on different physica
1000
l devices.
DB_DOMAIN [ extension components of a global db name ] < WORLD >
This parameter specifies the extension components of the global database name consisting of valid identifiers separated by periods (for example, texas.us.widgets.com). This allows multiple divisions to each have an ACCOUNTING database that is uniquely identified by the addition of the domain.
DBLINK_ENCRYPT_LOGIN [ TRUE/FALSE ] < FALSE >
When you connect to another server, Oracle encrypts the password. If the value of DBLINK_ENCRYPT_LOGIN is FALSE and the connection fails, Oracle tries to connect again with a nonencrypted password. If DBLINK_ENCRYPT_LOGIN is TRUE and the connection fails, Oracle does not attempt a reconnection.
DB_FILES [ min: MAXDATAFILES, max OS dependent ] < OS dependent >
This parameter specifies the maximum number of database files that can be open. This value can be reduced if you want to reclaim space in the SGA. There is no performance degradation by leaving this value high, just additional memory usage in the SGA.
DB_NAME [ valid name ] < NULL >
This parameter provides a string up to eight characters in length that specifies the name of the database. The following characters are valid:
- Alphabetic characters
- Numbers
- Underscore (_)
- Pound sign (#)
- Dollar sign ($)
No other characters can be used. Double quotation marks (that may be used in the name specified by the user) are removed; they cannot be part of the name. The characters used in the DB_NAME parameter are case insensitive. Thus, SALES is the same as Sales is the same as sales.
ENQUEUE_RESOURCES [ 10..65535 ] < derived >
This parameter specifies the number of resources that can be locked by the lock manager. The default value is derived from PROCESSES and is usually sufficient. The value is derived from this formula:
PROCESSES <= 3; default values = 20
PROCESSES 4-10; default value = ((PROCESSES - 3) * 5) + 20
PROCESSES > 10; default value = ((PROCESSES - 10) * 2) + 55
If you use a large number of tables, you may have to increase this value. This value should never exceed DML_LOCKS + DDL_LOCKS + 20 (overhead).
GLOBAL_NAMES [ TRUE/FALSE ] < FALSE >
This parameter determines whether a database link is required to have the same name as the database to which it connects. Oracle recommends setting this parameter to TRUE to ensure the use of consistent naming conventions for databases and links.
IFILE [ parameter file name ] < NULL >
This parameter embeds another parameter file into the current parameter file. This can be very useful to separate specific changes from the general changes that you often make. The parameter also allows you to separate different types of parameters such as parallel options.
INIT_SQL_FILES [ SQL file name ] < NULL >
This parameter lists the names of SQL files that should be run immediately after database creation. This parameter can be used to automatically create the data dictionary.
JOB_QUEUE_INTERVAL [ 1..3600 ] < 60 >
This parameter specifies, in seconds, the interval between wake-ups of the SNP background process. The processes run jobs that have been queued.
JOB_QUEUE_KEEP_CONNEC
1000
TIONS [ 1..10 ] < 0 >
This parameter specifies the number of SNP background processes per instance.
JOB_QUEUE_PROCESSES [ TRUE/FALSE ] < FALSE >
This parameter specifies whether remote connections should be shut down after remote jobs have finished executing.
LICENSE_MAX_SESSIONS [ 0..number of session licenses ] < 0 >
LICENSE_MAX_USERS sets the maximum number of concurrent user sessions allowed. When this limit is reached, only users with RESTRICTED SESSION privilege can connect to the server. A zero value indicates that this constraint is not enforced. Either LICENSE_MAX_USERS or LICENSE_MAX_SESSIONS should be set, not both.
LICENSE_MAX_USERS [ 0..number of user icenses ] < 0 >
LICENSE_MAX_USERS sets the maximum number of concurrent users you can create in the database. When you reach this limit, you can no longer create users. A zero value indicates that this constraint is not enforced. Either LICENSE_MAX_USERS or LICENSE_MAX_SESSIONS should be set, not both.
LICENSE_SESSIONS_WARNING [ 0..LICENSE_MAX_SESSIONS ] < 0 >
Sets a warning limit so that the administrator can be aware that the LICENSE_MAX_SESSIONS limit may soon be reached. After LICENSE_SESSIONS_WARNING number of users have connected, a message is written to the alert log for each additional user connecting in.
LOG_ARCHIVE_DEST [ valid path or device name ] < OS dependent >
When running in ARCHIVELOG mode, this text value specifies the default location and root of the file or tape device to use when archiving redo log files. Archiving to tape is not supported under all operating systems.
LOG_ARCHIVE_FORMAT [ valid filename ] < OS dependent >
This parameter uses a text string and variables to specify the default filename format of the archive log files. This string is appended to the LOG_ARCHIVE_DEST parameter name. The following variables can be used in the string:
| %s
| Log sequence number
|
| %t
| Thread number
|
Using uppercase letters (%S, %T) causes the value to be fixed length, padded to the left with zeros. A good value is similar to the following:
LOG_ARCHIVE_FORMAT = 'log%S_%T.arc'
LOG_ARCHIVE_START [ TRUE/FALSE ] < FALSE >
When running in ARCHIVELOG mode, LOG_ARCHIVE_START specifies whether archiving should be started up automatically at instance startup. A setting of TRUE indicates that archiving is automatic; FALSE indicates that archiving is manual.
LOG_CHECKPOINTS_TO_ALERT [ TRUE/FALSE ] < FALSE >
This parameter specifies whether you want to log the checkpoints to the alert log. This can be useful in verifying the frequency of checkpoints.
LOG_FILES [ 2..255 ] < 255 >
This parameter specifies the maximum number of redo log files that can be opened at instance startup. Reducing this value can save some space in the SGA. If this value is set higher than the value of MAXLOGFILES used at database creation, it does not override MAXLOGFILES.
MAX_DUMP_FILE_SIZE [ 0..unlimited ] < 500 blocks >
This parameter specifies the maximum size in OS blocks of any trace file written. Set this if you are worried that trace files may consume too much space.
MAX_ENABLED_ROLES [ 0..48 ] < 20
1000
>
This parameter specifies the maximum number of database roles (including subroles) that a user can enable.
MAX_ROLLBACK_SEGMENTS [ 1..65536 ] < 30 >
This parameter specifies the maximum number of rollback segments that can be online for one instance.
OPEN_CURSORS [ 1..OS limit ] < 50 >
This parameter specifies the maximum number of open cursors that a single user process can have open at once.
OPEN_LINKS [ 0..255 ] < 4 >
This parameter specifies the maximum number of concurrent open connections to remote database processes per user process. This value should exceed the maximum number of remote systems accessed within any single SQL statement.
PROCESSES [ 6 to OS dependent ] < 50 >
This parameter specifies the maximum number of OS user processes that connect to the Oracle instance. This number must take into account the background processes and the login process that started up the instance. Be sure to add an additional 6 processes for the background processes.
REMOTE_LOGIN_PASSWORDFILE [ NONE/SHARED/EXCLUSIVE ] < NONE >
This parameter specifies whether Oracle checks for a password file. A value of NONE indicates that users are authenticated through the operating system. A value of EXCLUSIVE indicates that the password file can be used only by one database and can contain names other than SYS and INTERNAL. Setting this parameter to SHARED allows more than one database to use this password file but only SYS and INTERNAL are recognized by this password file.
SESSIONS [ number ] < 1.1 * PROCESSES >
This parameter specifies the total number of user and system sessions. Because recursive sessions may occur, this number should be set slightly higher than PROCESSES. The DDL_LOCKS is derived from this parameter.
SNAPSHOT_REFRESH_INTERVAL [ 1..3600 ] < 60 >
This parameter specifies the number of seconds between wake-ups for the instances snapshot refresh process.
SNAPSHOT_REFRESH_KEEP_CONNECTION [ TRUE/FALSE ] < FALSE >
This parameter specifies whether the snapshot refresh process should keep remote connections after the refresh. If set to FALSE, the remote database connections are closed after the refreshes occur.
SNAPSHOT_REFRESH_PROCESS [ 0..10 ] < 0 >
This parameter specifies the number of snapshot refresh processes per instance. You must set this value to 1 or higher for automatic refreshes. One snapshot refresh process is usually sufficient.
SINGLE_PROCESS [ TRUE/FALSE ] < FALSE >
If SINGLE_PROCESS is set to TRUE, the database instance is brought up in a single user mode. A value of FALSE indicates that the database is brought up in a multiprocess mode.
TEMPORARY_TABLE_LOCKS [ 0..OS dependent ] < SESSIONS >
TEMPORARY_TABLE_LOCKS specifies the number of temporary tables that can be created in the temporary segment space. A temporary table lock is required whenever a sort occurs that cannot be held in memory (that is, the sort exceeds SORT_AREA_RETAINED_SIZE). If your application contains a large number of ORDER BY clauses or you perform a large number of index sorts, you may want to increase this number.
TRANSACTIONS [ number ] < 1.1 * PROCESSES >
This parameter specifies the maximum number of concurrent transactions in the instance. The default
1000
value is greater than PROCESSES to provide for recursive transactions. A larger value increases the size of the SGA. If you increase the number of transactions allowed in the system, you may also want to increase the number of rollback segments available.
TRANSACTIONS_PER_ROLLBACK_SEGMENT [ 1..OS dependent ] < 30 >
This value specifies the maximum number of concurrent transactions allowed per rollback segment. You can calculate the minimum number of rollback segments enabled at startup with this formula:
Rollback Segments = TRANSACTIONS / TRANSACTIONS_PER_ROLLBACK_SEGMENT
Performance can be improved if there is less contention on rollback segments. In a heavily used system, you may want to reduce TRANSACTIONS_PER_ROLLBACK_SEGMENT to decrease this contention.
USER_DUMP_DEST [ valid path name ] < OS dependent >
USER_DUMP_DEST specifies the path to where the debugging trace files are written.
Multithreaded Server Parameters
These parameters are used if you are using the multithreaded server process.
MTS_DISPATCHERS [ protocol, number ] < NULL >
This parameter specifies the configuration of the dispatcher processes created at startup time. The value of this parameter is a quoted string of two values separated by a comma. The values are the network protocol and the number of dispatchers. Each protocol requires a separate specification. This parameter can be specified multiple times. Here is an example of two dispatcher definitions:
MTS_DISPATCHERS = "tcp, 2"
MTS_DISPATCHERS = "ipx, 1"
MTS_LISTENER_ADDRESS [ configuration ] < NULL >
This parameter specifies the configuration of the listener process addresses. There must be a listener process address for each protocol used in the system. Addresses are specified as the SQL*Net description of the connection address.
Because each connection is required to have its own address, this parameter may be specified several times. Here is an example:
MTS_LISTENER_ADDRESS = "(ADDRESS=(PROTOCOL=tcp)(HOST=hostname)(PORT=7002))"
MTS_LISTENER_ADDRESS = "(ADDRESS=(PROTOCOL=ipx)()())"
MTS_MAX_DISPATCHERS [ OS dependent ] < 5 >
This parameter specifies the maximum number of dispatcher processes allowed to run simultaneously.
MTS_MAX_SERVERS [ OS dependent ] < 20 >
This parameter specifies the maximum number of shared server processes allowed to run simultaneously.
MTS_SERVERS [ OS dependent ] < 0 >
This parameter specifies the number of server processes created at instance startup.
MTS_SERVICE [ name ] < DB_NAME >
This parameter specifies the name of the service to be associated with the dispatcher. Using this name in the CONNECT string allows users to connect using the dispatcher. The name should be unique. Do not specify this name in quotes. Usually, it is a good idea to make this name the same as the instance name. Because the dispatcher is tried first, if it is not available, the CONNECT string can still connect the user to the database through a normal database connection.
Distributed Option Parameters
These parameters are meaningful only when you use the distributed option.
COMMIT_POINT_STRENGTH [ 0..255 ] < OS dependent >
This value is
1000
used to determine the commit point site when executing a distributed transaction. The site with the highest value for COMMIT_POINT_STRENGTH is the commit point site. The site with the largest amount of critical data should be the commit point site.
DISTRIBUTED_LOCK_TIMEOUT [ 1..unlimited ] < 60 seconds >
DISTRIBUTED_LOCK_TIMEOUT specifies, in seconds, how long distributed transactions should wait for locked resources.
DISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIME [ 1..1800 ] < 200 seconds >
DISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIME specifies, in seconds, how long to hold a remote connection open after a distributed transaction fails. A larger value holds the connection longer but also continues to use local resources, even though the connection may have been severed. Any value larger than 1800 seconds interferes with the reconnection and recovery background processes and will never drop a failed connection.
DISTRIBUTED_TRANSACTIONS [ 0..TRANSACTIONS ] < OS dependent >
DISTRIBUTED_TRANSACTIONS specifies the maximum number of distributed transactions that the database can process concurrently. This value cannot exceed the value of TRANSACTIONS. If you are having problems with distributed transactions because network failures are causing many in-doubt transactions, you may want to limit the number of distributed transactions.
If DISTRIBUTED_TRANSACTIONS is set to zero, no distributed transactions are allowed and the RECO process does not start at instance startup.
REMOTE_OS_AUTHENT [ TRUE/FALSE ] < FALSE >
If this parameter is set to TRUE, it allows authentication to remote systems with the value of OS_AUTHENT_PREFIX.
REMOTE_OS_ROLES [ TRUE/FALSE ] < FALSE >
If this parameter is set to TRUE, it allows remote clients to have their roles managed by the OS. If REMOTE_OS_ROLES is FALSE, roles are managed and identified by the database for the remote system.
Parallel Server Parameters
These parameters are used only in conjunction with the Oracle Parallel Server option.
CACHE_SIZE_THRESHOLD [ number ] < 0.1 * DB_BLOCK_BUFFERS >
This parameter specifies the maximum size of a cached partition table split among the caches of multiple instances. If the partition is larger than this value, the table is not split among the caches.
GC_DB_LOCKS [ 0..unlimited ] < 0 >
This parameter specifies the number of PCM locks allocated. The value of GC_DB_LOCKS should be at least 1 greater than the sum of the locks specified with the parameter GC_FILES_TO_LOCKS.
GC_FILES_TO_LOCKS [ file_number=locks:filename=locks ] < NULL >
This parameter supplies a list of filenames, each specifying how many locks should be allocated for that file. Optionally, the number of blocks and the value EACH can be added to further specify the allocation of the locks.
GC_LCK_PROCS [ 0..10 ] < 1 >
This parameter specifies the number of lock processes (LCK0 to LCK9) to create for the instance. Usually, the default value of 1 is sufficient unless an unusually high number of locks are occurring.
GC_ROLLBACK_LOCKS [ number ] < 20 >
This parameter specifies the number of distributed locks available for each rollback segment. The default value is usually sufficient.
GC_ROLLBACK_SEGMENTS [ number ] < 20 >
GC_ROLLBACK_SEGME
1000
NTS specifies the maximum number of rollback segments system wide. This includes all instances in the parallel server system, including the SYSTEM rollback segment.
GC_SAVE_ROLLBACK_LOCKS [ number ] < 20 >
This parameter specifies the number of distributed locks reserved for deferred rollback segments. These deferred rollback segments contain rollback entries for segments taken offline.
GC_SEGMENTS [ number ] < 10 >
This parameter specifies the maximum number of segments that may have space management activities performed by different instances simultaneously.
GC_TABLESPACES [ number ] < 5 >
This parameter specifies the maximum number of tablespaces that can be brought online or offline simultaneously.
INSTANCE_NUMBER [ 1..OS dependent ] < lowest available number >
This parameter specifies a unique number that maps the instance to a group of free space lists.
MAX_COMMIT_PROPAGATION_DELAY
This parameter specifies the maximum amount of time that can pass before the SCN (System Change Number) is changed by the DBWR. This value helps in certain conditions where the SCN may not be refreshed often enough because of a high load from multiple instances.
PARALLEL_DEFAULT_MAX_INSTANCES [ 0..instances ] < OS dependent >
This parameter specifies the default number of instances to spit a table among for parallel query processing. This value is used if the INSTANCES DEFAULT is specified in the table/cluster definition.
THREAD [ 0..max threads ] < 0 >
This parameter specifies the number of the redo thread to be used by this instance. Any number can be used, but the value must be unique within the cluster.
Security Parameters
The following parameters help set up system security; manipulate them to obtain the best mix of efficiency and security.
AUDIT_TRAIL [ NONE,DB,OS ]
The AUDIT_TRAIL parameter enables auditing to the table SYS$AUD$. Auditing causes a record of database and user activity to be logged. Because auditing causes overhead, it limits performance. The amount of overhead and the effect on performance is determined by what and how much is audited. Once AUDIT_TRAIL is enabled, auditing is turned on by the Oracle command AUDIT.
OS_AUTHENT_PREFIX [ ] < OPS$ >
This is the value concatenated to the beginning of the users OS login account to give a default Oracle account name. The default value of OPS$ is OS dependent and is provided for backward compatibility with previous Oracle versions. Typically, you use the default or set the value to (NULL) to eliminate prefixes altogether.
OS_ROLES [ TRUE/FALSE ] < FALSE >
Setting this parameter to TRUE allows the OS to have control over the usernames roles. If set to FALSE, the usernames roles are controlled by the database.
SQL92_SECURITY [ TRUE/FALSE ] < FALSE >
This parameter specifies whether the table-level SELECT privileges are needed to execute an update or delete that references table column values.
Trusted Oracle7 Parameters
The following parameters apply to the Trusted Oracle7 option.
AUTO_MOUNTING [ TRUE/FALSE ] < TRUE >
When set to TRUE, this parameter specifies that a secondary database is mounted by the primary database whenever
1000
a user connected to the primary database requests data from the secondary database.
DB_MOUNT_MODE [ NORMAL/READ_COMPATIBLE ] < NORMAL >
This parameter specifies the access mode to which the database is mounted at instance startup. A value of NORMAL starts the database in normal read-write mode; READ_COMPATIBLE starts the database in read-write mode with the addition that it supports concurrent mounting by one or more read-secure instances.
LABEL_CACHE_SIZE [ number > 50 ] < 50 >
This parameter specifies the cache size for dynamic comparison of labels. This number should be greater than the label-category combinations in the OS and should never be less than 50.
MLS_LABEL_FORMAT [ valid label format ] < sen >
This parameter specifies the format used to display labels. The default value sen specifies sensitive.
OPEN_MOUNTS [ 0..255 ] < 5 >
This parameter specifies the maximum number of databases that an instance can simultaneously mount in OS MAC mode. This value should be large enough to handle all the primary and secondary databases you might mount.
National Language Support Parameters
The following parameters are used in the configuration of National Language Support features.
NLS_CURRENCY [ character string ] < derived from NLS_TERRITORY >
This parameter specifies the string to use as the local currency symbol for the L number format element.
NLS_DATE_FORMAT [ format mask ] < derived from NLS_TERRITORY >
This parameter defines the default date format to use with the TO_CHAR and TO_DATE functions. The value of this parameter is any valid date format mask. Here is an example:
NLS_DATE_FORMAT = 'DD/MM/YYYY'
NLS_DATE_LANGUAGE [ NLS_LANGUAGE value ] < value for NLS_LANGUAGE >
This parameter determines the language to use for the day and month names and date abbreviations (AM, PM, AD, BC).
NLS_ISO_CURRENCY [ valid NLS_TERRITORY value ] < derived from NLS_TERRITORY>
This parameter defines the string to use as the international currency symbol for the C number format element.
NLS_LANGUAGE [ NLS_LANGUAGE value ] < OS dependent >
This parameter defines the default language of the database. This specifies the language to use for messages, the language of day and month names, symbols to be used for AD, BC, AM, and PM, and the default sorting mechanisms.
NLS_NUMERIC_CHARACTERS [ two characters ] < derived from NLS_TERRITORY >
This parameter defines the characters to be used as the group separator and decimal. The group separator is used to separate the integer groups (that is, hundreds, thousands, millions, and so on). The decimal separator is used to distinguish between the integer and decimal portion of the number. Any two characters can be used but they must be different. The parameter is specified by two characters within single quotes. To set the group separator to , (comma) and the decimal separator to . (period), use the following statement:
NLS_NUMBERIC_CHARACTERS = ',.'
NLS_SORT [ BINARY or named linguistic sort ] < derived from NLS_LANGUAGE >
If this parameter is set to BINARY, the collating sequence for
ecb
ORDER_BY is based on the numeric values of the characters. A linguistic sort decides the order based on the defined linguistic sort. A binary sort is much more efficient and uses much less overhead.
NLS_TERRITORY [ territory name ] < OS dependent >
This parameter specifies the name of the territory whose conventions are used for day and week numbering. The parameter also provides defaults for other NLS parameters.
|


The Login for non-root users and Password for non-root users fields must be filled in with a username and password accepted by the LDAP server, respectively. The login will typically be an LDAP distinguished name, like cn=Manager,dc=my-domain,dc=com.
Because this login and password is visible to all Unix users on your system, it is typically set to that of a LDAP user with limited privileges (such as read-only access, and no ability to view passwords). Because passwords do need to be checked in some situations, the Login for root user and Password for root user fields should be set to an LDAP username and password who has read access to the entire LDAP server. This second password is stored in a file that is only readable by the root user, and thus is secure from regular un-trusted Unix users.


Hi, I am Sanket Sonavane
An enthusiastic coder with electronics and telecommunication background
though interested in web development, cloud technology and machine learning.

If you want to connect with me
use following social media links:


Sujets
Question
Matching concepts
Corpus
Concepts
Display
Aggregate concepts
Aggregate resources
Draw graph


---
sort_order: 79
tei_id: rdx_b5h9g.p.idp7885808
annotation_count: 0
images:
small-thumbnail: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pckxx/mini-thumbnail/
json: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pckxx/info/
full: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pckxx/fs/
page: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pckxx/single-page/
thumbnail: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pckxx/thumbnail/
title: Page 79
number: 79
---
{% raw %}JACOB HODGES.{% endraw %}
{% raw %}71{% endraw %}
{% raw %}ol God that burdened his heart. He{% endraw %}
{% raw %}wrestled with God like the patriarchs of{% endraw %}
{% raw %}old, and he rose early, like the Saviour, to{% endraw %}
{% raw %}renew his vows and his service of de{% endraw %}
{% raw %}votion. The same comprehensiveness{% endraw %}
{% raw %}and fervour, propriety and directness of{% endraw %}
{% raw %}expression, characterized all his religious{% endraw %}
{% raw %}exercises, and those that read his history{% endraw %}
{% raw %}were at no loss to discover the secret of{% endraw %}
{% raw %}his piety and the source of his abiding{% endraw %}
{% raw %}consolation.{% endraw %}
{% raw %}There was always something remark¬{% endraw %}
{% raw %}able in his whole deportment and car¬{% endraw %}
{% raw %}riage. While his stature was manly and{% endraw %}
{% raw %}erect, his movement strikingly dignified{% endraw %}
{% raw %}and commanding, and in his intercourse{% endraw %}
{% raw %}nothing servile- and low, there was at the{% endraw %}
{% raw %}same time a winning modesty, a just ap¬{% endraw %}
{% raw %}preciation of himself. And while he{% endraw %}
{% raw %}made no claim to the kind regard and{% endraw %}
{% raw %}attention of others, he was never ungrate¬{% endraw %}
{% raw %}ful for their condescension to his low{% endraw %}
{% raw %}estate.{% endraw %}
{% raw %}He never seemed to krow that his{% endraw %}
{% raw %}mind was at all sup re: to that of others{% endraw %}