Oracle Checkpoint and task of DBW0/LGWR

Hi All,
I am a bit confused about the working of DBW0 and LGWR processes.
"A checkpoint performs the following three operations:
Every dirty block in the buffer cache is written to the data files. That is, it synchronizes the datablocks in the buffer cache with the datafiles on disk.
It's the DBWR that writes all modified databaseblocks back to the datafiles. "
I know this is very basic question and have read many documents about this.
But my question is,if DBW0 itself writes the blocks to disk(datafiles) then what is the task of LGWR ( writing from redo log buffer to online redo log and then to datafiles).Online redo logs will store all modified (committed) redo records and will flush the contents to datafile at some interval.Then isnt the same task performed by DBWR???
Thanks,
Aashish S.

Hi Aashish
Redo consists of only the specific changes made to a (say) data block and the necessary overheads to clearly "date" and identify it. So this is the bare minimum required for recovery purposes and the bare minimum that needs to be written to disk to ensure committed data is "safe" and protected.
Oracle writes this information into a special area of memory (log buffer) and the LGWR's job is focused on purely on writing this out to disk as necessary.
The actual "full" BIG blocks themselves therefore can generally stay in the buffer cache(s) and Oracle generally doesn't have to worry about writing changes to these blocks to disk as it's a somewhat significant overhead to do so and is generally only necessary when it needs to clear out space for new blocks. Transactions are safe, the redo being written to disk ensures that.
These blocks include the "BIG" undo blocks as again, they're generally only needed for the general running of the database (rollback/read consistency) and generally only get written to disk when space is an issue.
Oracle wants to delay and avoid writing the full blocks/buffers to disk (task of DBR0) as much as possible.
Oracle needs to write the redo to disk much more often to protect committed changes.
I probably just confused you more !!
Cheers
Richard Foote
http://richardfoote.wordpress.com/

Similar Messages

  • Understanding Oracle checkpoint in depth

    Dear All,
    I am trying to find some good information about Oracle checkpoints and SCNs to have a thorough and deep understanding of the same.
    Could someone provide me with some good links.
    Thanks.

    Hi;
    Hussein Sawwan already answered your question, In addition to his great post
    Please see:
    Difference between SCN and checkpoint.
    http://sai-oracle.blogspot.com/2006/03/difference-between-scn-and-checkpoint.html
    Oracle Checkpoint mechanisim
    http://www.adp-gmbh.ch/ora/concepts/checkpoint.html
    http://www.orafaq.com/wiki/Checkpoint
    Regard
    Helios

  • Task dependencies and scheduling in Oracle projects and project management

    Am I correct in the belief that Oracle projects/project management does not have the ability to create, manage and track dependencies between tasks in a project ? And to achieve that micro level of planning I need to use something like Microsoft Project Integration ?

    Gordon,
    Project integration is the link between Oracle Projects and MS Projects.
    If you want to define dependencies between tasks, MS Project is best bet
    for you.
    Cheers,
    Gopal
    [email protected]
    www.sagss.com

  • ORACLE SERVER AND UNIX TP MONITOR-2

    제품 : ORACLE SERVER
    작성날짜 : 1995-01-24
    Subject: Oracle Server and UNIX Transaction Processing Monitors-2
    Page(3/4)
    This file contains commonly asked questions about Oracle7 Server and UNIX
    Transaction Processing Monitors (TPMs). The topics covered in this article are
         o Oracle Parallel Server and TP Monitors
         o Oracle and DCE-based TP Monitors
         o Other commonly asked questions
    The questions answered in part 3 provide additional detail to the information
    provided in part 1.
    Oracle Parallel Server and TP Monitors
    ======================================
    How does Oracle Parallel Server (OPS) work with TP Monitors?
    If you are using Oracle-managed transactions, there are no special
    considerations. But if you are using TPM-managed transactions, and
    thus need to use the XA interface, then Oracle requires release 7.1.3
    or later and a special version of the Distributed Lock Manager, called
    the session-based lock manager. This version of the DLM is not yet
    available for all platforms. To understand this restriction, let's take
    a look at one of the technical details of XA.
    The XA specification requires that the Resource Manager be able to
    move a transaction from one process to another, and even to be
    able to commit in a separate process. In Oracle, transactions are
    attached to sessions, so that means that we also have to be able to
    move sessions. Therefore, the session/transaction can't have any state
    which is tied to a particular process. The first generation distributed
    lock managers were all built to use the process id as the lock owner,
    which doesn't work for locks which need to move with the transaction.
    Oracle and DCE-based TP Monitors
    ================================
    How does Oracle interface to the Encina TP monitor? To CICS/6000? I've
    heard that they require OSF DCE facilities in order to run?
    Oracle interfaces to Encina and CICS/6000 just as it does to any other
    TP Monitor. The TP Monitor issues XA commands to control transactions, and
    Oracle executes the commands. Encina and CICS/6000 do use DCE features for
    their own operation. However, this use is transparent to the Oracle Server.
    What DCE facilities can Oracle products take advantage of when working with
    a DCE-based TP Monitor?
    The two most commonly mentioned DCE features which might be useful
    to Oracle users are multi-threading and security. We look at these in
    the subsequent questions in this section.
    Encina documentation suggests that a Resource Manager such as Oracle can
    be either single-threaded or multi-threaded? Which way is Oracle XA
    implemented?
    The Oracle XA implementation is single-threaded, as is any Oracle client.
    Within a single process, at most one thread can access Oracle at a time.
    Does that mean that only a single Encina application can access an instance
    of Oracle transactionally at any given moment?
    No. Oracle XA is only single-threaded within a single application server
    process. Multiple applications can access Oracle simultaneously using XA
    by using different application processes. Encina allows
    (1) serial reuse of a single server by different clients. There are
    two options for this. The server can use long term reservation
    but be defined to be in shared or concurrent access mode, which
    allows the server to be used by another client as soon as an RPC
    completes. Alternatively, the server can use default reservation
    and exclusive mode, which allows the server to be used by another
    client as soon as the current transaction ends.
    (2) concurrent execution by multiple servers, even if they are accessing
    the same Oracle database. These may be executing the same or different
    procedures.
    These two features should let you get as much concurrency as you need.
    Why isn't the Oracle XA library multi-threaded?
    The XA specification specifically states that its use of the phrase
    "thread of control" means a process. If an RM were to multi-thread its
    XA, it would be in violation of the specification. This restriction
    was put place in because at the time the specification was written,
    there were numerous thread packages: if the TM used one, the application
    another, and perhaps the RM yet a third, there's no way it could work.
    As threads standards settle down, the later versions of XA will probably
    relax this restriction.
    Will Oracle change if the XA specification changes?
    Very likely. The exact time frame will of course depend on the priority of
    all work items at that time.
    Does Oracle use DCE security via the TP Monitors?
    The integrity of the connection between a DCE TP Monitor client and DCE
    TP Monitor server is protected by the DCE security functionality.
    Theoretically, the TP Monitor could make the DCE-protected client security
    information available to Oracle. Unfortunately, there's no standard way
    for a TP Monitor to pass security information information to a Resource
    Manager such as Oracle. Oracle is leading an effort to extend the X/Open
    model to allow use of the security information provided by the Monitor.
    In the meantime, the basic DCE security features such as encryption are
    useful within TP Monitors.
    Effective use of DCE security would normally also mean that the security of
    the TP Monitor client be passed through the TP Monitor, through the Oracle
    client (application server), to the Oracle Server, and possibly on
    to other Oracle Servers through database links. The ability to transfer
    security information to other processes, called delegation, is missing
    in DCE version 1.0. DCE version 1.1, expected to emerge in late 1994,
    has some delegation features. Oracle is examining these features to see
    how they might be used.
    Are there any special considerations for CICS/6000?
    There are two:
    (1) It is inefficient to run without XA. CICS/6000 is designed to
    use XA. It uses XA so that the CICS server can log on to Oracle
    when it starts, after which it makes that Oracle connection available
    to any transaction it executes. If you don't use XA, the CICS server
    does not itself log on to Oracle so each transaction has to log on
    and log off - a very expensive mode of operation. Also, it is very
    un-cics-like in that the application does the log{on,off} and also
    commits - in a mainframe CICS database program CICS would implicitly
    do these operations. Oracle does not recommend this mode because of the
    performance penalty.
    (2) CICS servers are generic and dynamically load application modules.
    In order for these modules to access the Oracle connection made by
    CICS, the applications must be built with a shared object version of
    the Oracle libraries. This is an installation option on platforms which
    support CICS/6000 and other products using its architecture such as
    CICS 9000.
    Other commonly asked questions
    ==============================
    What other Resource Managers can be included in an Oracle XA transaction?
    Several other relational database vendors have an XA implementation
    available or in progress. There is an XA C-ISAM product from
    Gresham Telecomputing. There are also Resource Managers contained
    within some of the TP Monitors which can be coordinated in the same
    transaction. For example, CICS/6000 has VSAM files and other data
    stores, Encina has its RQS queuing system, and Tuxedo has its /Q queuing
    system.
    What is Recoverable Queuing Service (RQS) and how does it interoperate with
    Oracle7 and Encina? What about /Q?
    Recoverable Queuing Service is a feature provided by Encina which allows
    transactional, distributed queuing (enqueue/dequeue). Tuxedo has a similar
    product called /Q. Because these products are themselves coordinated by the
    TM component of the TP Monitor, their queue operations are atomically
    coordinated with with operations on XA Resource Managers such as Oracle7
    Server. That is, they can atomically put something on one of their queues
    and commit an Oracle transaction, then at some later time dequeue an
    entry atomically with doing some other Oracle transaction. The queue
    system guarantees that the message will not be lost or transmitted twice.
    Can I mix TP Monitor applications with standard Oracle7 Server applications?
    Yes, you can have existing Oracle applications connected to the database
    with alongside TPM applications against the same database. The TPM does
    not manage the whole database, just those transactions which are started
    by the TPM. The Oracle Server will properly handle concurrency control
    between the transactions managed by itself and those managed by the TPM.
    Is Oracle planning to change its tools to be more suitable for TP Monitors?
    With Oracle Procedure Builder 1.5, to be available with CDE2,
    Oracle will provide a foreign function interface that allows you to
    dynamically set up PL/SQL calls that access C functions. In other
    words, you can access C routines in Windows DLLs from within your
    PL/SQL procedures. This will allow PL/SQL under Windows easy access to
    TP Monitor APIs.
    Does Oracle7 Server itself use XA-compliant TPMs as the interface to
    foreign RMs?
    No, for this purpose Oracle Server uses the SQL*Connect products or the new
    Transparent and Procedural Gateway products.
    Does Oracle7 Server use XA to coordinate Oracle7-only distributed
    transactions?
    No, it uses an internal mechanism.
    Can database links be used with XA?
    If an Oracle7 database is running under XA, it can access other Oracle7
    databases through database links, with some restrictions. First, the
    access to the other database must use SQL*Net V2 and be running MTS.
    Second, it must currently be to another Oracle7 database. Assuming those
    restrictions, the Oracle 7 database can do distributed update to another
    Oracle 7 database by using a database link, whether it is started by an
    Oracle application or a TP Monitor application. The TPM will see Oracle
    as only a single RM, but Oracle7 will propagate all the transaction
    commands to the other database, including the two-phase commit. If
    the transaction is started by a TP Monitor application and is using XA,
    it can also update non-Oracle resources managed by the TPM. If it
    is started from an Oracle application, it can only include resources
    managed by Oracle.
    Here's a sample configuration:
    | TPM | | TPM |
    | client | | client |
    | |
    | |
    | TPM |
    | |
    | |
    | Oracle | Forms, Forms, | Oracle | | non-XA | | XA |
    | client | Plus, Plus, | client | | TPM | | TPM |
    --------- Pro, Pro, --------- | server | | server |
    | Financials, Financials, | |(note 1)| ----------
    | etc. etc. | ---------- |
    | | | |
    | SQL | SQL | SQL | XA
    | commit | commit | commit | commit
    | | | |
    | Oracle | | Oracle | | Oracle | | Oracle |
    | server | | server | | server | | server |
    | | | |
    | | | |
    | | | |
    | Database 1 | | Database 2 |
    | | | |
    | A | A
    | | dblink to database 1 | |
    | ------------------------------------ |
    | |
    dblink to database 2
    Note 1: Oracle will work having both XA and non-XA servers but some TPMs
    may have restrictions on this.
    Are multiple direct connections possible from a Pro* program?
    Using XA, you can not only specify multiple direct connections to Oracle7
    databases, you can also update them both in the SAME transaction. The
    way to do this is to use a precompiler feature called a named database.
    When you use a named database, you qualify the SQL statement with the
    database name. For example, you write EXEC SQL AT dbname UPDATE emp ....
    We have a complementary feature in the xa open string to let the user
    associate the name with a particular RM instance, called the DB clause.
    You will also want to use the SqlNet clause in the open string so you
    can give the two different SIDs. This clause does not require the use of
    the SQL*Net product, it is just a naming convention. For more information,
    see Oracle7 Server for UNIX Administrator's Reference Guide.
    Some TP Monitors may not support having multiple Resource Mangers in the
    same server; check with the TPM vendor.
    Is there any collateral available for XA or TP Monitors?
    Oracle At Work 52684.0692
    Oracle7 Server for UNIX Administrator's #A10324-1
    Reference Guide
    Guide to Oracle's Products and Services #A10560
    Oracle7 Server and CICS/6000               #A14200
    Where can I get more information on the DTP model?
    X/Open's address is
    X/Open company Ltd (Publications)
    P O Box 109
    Penn
    High Wycombe
    Bucks HP10 8NP
    Tel: +44 (0)494 813844
    Fax: +44 (0)494 814989
    Request
    G307 Distributed Transaction Processing: Reference Model Version 2
    X/Open Guide G307 ISBN 1-859120-19-9 28cm.44p.pbk.220g.11/93
    Page(4/4)
    This file contains commonly asked questions about Oracle Server and UNIX
    Transaction Processing Monitors (TPMs). The topics covered in this article are
         o Performance with Oracle Server and TP monitors
         o Performance using Oracle's XA Library
    The questions answered in part 4 provide additional detail to the information
    provided in part 1.
    Performance with Oracle Server and TP Monitors
    ==============================================
    I have heard that Transaction Processing Monitors (TPMs) will increase
    Oracle Server performance. Is this true?
    Several hardware and TPM vendors have made the claim that TPMs
    will increase RDBMS performance. This claim is based on TPC-A
    benchmarks. The key point to understand about TPC-A is that it
    requires, for every transaction-per-second, ten times that many
    users to be connected. For example, to get 600 TPS, you need 6000
    users. The next question will answer in more detail how the the
    three-tier architecture addresses this requirement, but first let's
    look more generally at what TP Monitors can and can't do to improve
    performance.
    TP Monitors can provide better performance:
    (1) When there are more than several hundred users connected.
         This is because of the TP Monitor's role in the three-tier
         architecture, described in the next question. In this
         architecture, terminal handling is offloaded to one or more
         separate machines, freeing up those cycles to do database work.
         Note that this does NOT mean that Oracle itself runs faster,
         just that we've given it more CPU cycles to use.
    (2) When, because of the high potential concurrency of requests,
         significant resource contention exists. Use of a TP Monitor can
         limit the degree of concurrency and thus reduce contention.
    TP Monitors can not provide better performance:
    (1) For existing applications. The applications must be designed
         to fit the TP Monitor architecture.
    (2) For applications which are highly interactive in their use of
         the database. These applications put many messages
         through the transport system, and the TP Monitor is not as
         efficient as SQL*Net for point-to-point communication.
    (3) For CPU intensive single-query decision support. When executing
         a single large command, Oracle query facilities work efficiently,
         especially with the use of Oracle Parallel Query, available in 7.1.
    How does the three-tier solution help TPC-A, or other situations with
    thousands of on-line users?
    The TPC-A test calls for a large number of users to produce a given
    result. In the high-end results we produced in June, 1992, for example,
    6150 terminals were simulated to produce 618 TPC-A transactions.
    Thus, terminal concentration accounts for a large portion of the total
    processing time used.
    First, let's look at how the Multi Threaded Server would work for
    this benchmark. In this case, there are many client processes,
    but only a few server processes, which handle client requests on a
    first-come first serve basis. When they are done with a request,
    they take another client's request.
    ORACLE7 CLIENT/SERVER ARCHITECTURE WITH MULTI THREADED SERVER
    | Client | | Server |
    | __________ |______________|_____ _____________ _____________ |
    | | Client | | SQL*Net | |_|Dispatcher | | | |
    | | Process| | | ____| Process |___| | |
    | |________| | | | __|___________| | | |
    |____________| | | | | | | | |
    | | | | | | Oracle7 | |
    ______________ | | | __|__|____ | Server | |
    | Client | | | | __|_|_____ | | | |
    | __________ | | | | | Shared | |____| | |
    | | Client | | SQL*Net | | | | Server |_|____| | |
    | | Process|_|______________|__| | | Process|_| | | |
    | |________| | | | |________| |___________| |
    |____________| | | |
    | | |
    ______________ | | |
    | Client | | | |
    | __________ | | | |
    | | Client | | SQL*Net | | |
    | | Process|_|______________|____| |
    | |________| | | |
    |____________| | |
    |_______________________________________|
    Client processes = N Dispatcher processes >= 1
    Shared server processes >= 1
    If there are 500 clients in this environment, there will be one or more
    dispatcher processes, dynamically tunable, and one or more shared
    server processes, dynamically tunable, on the server. The reduction
    in the total number of processes handled by the server system
    results in more processing time available for RDBMS activity. Thus
    higher RDBMS transaction throughput can be obtained on the
    server system.
    But the problem for the TPC-A, and for certain large customer
    configurations, is not the only ability of the Oracle Server to
    process transactions, but also the ability of the operating
    system to handle huge numbers of incoming connections.
    There is one incoming connection for each client. Most UNIX
    operating systems have a limit on how many such connections they can
    handle. Even if a particular operating system allows a large number of
    connections, each takes some amount of overhead to manage.
    In order to service all 6150 terminals, we selected a 3-tier hardware
    environment where the middle tier, using a TPM, acted as a terminal
    concentrator. The high-end TPC-A architecture looked like the following.
    The Application Servers, which contain the Pro*C statements used to
    perform the transaction also run on the terminal concentrator machine
    in order to offload as much work from the database serve as possible.
    They send the compiled SQL over SQL*Net to the Oracle7 Server processes.
    ORACLE7 TPS-A CLIENT/SERVER ARCHITECTURE
    | Client | | Terminal | | Server |
    | ________ | | Concentrator | | |
    | | Client | |TPM | | | |
    | | Process|_|_____|__ _____ | | |
    | |________| |Comm | | | | | | |
    |____________| | | | | | | |
    | |__| | | | |
    ____________ | | TPM | | | |
    | Client | | ___| | _______ | | ________ _______ |
    | ________ | | | | |_| |__|_______|__| Oracle | | | |
    | | Client | |TPM | | | | |Appl. | |SQL*Net| | Server |__| | |
    | | Process|_|_____|_| |_____| |Server | | | | Process| | | |
    | |________| |Comm | |_______| | | |________| | | |
    |____________| | | | | | |
    |_______________________| | | | |
    | | | |
    ____________ _______________________ | |Oracle7| |
    | Client | | Terminal | | |Server | |
    | ________ | | Concentrator | | | | |
    | | Client | |TPM | | | | | |
    | | Process|_|_____|__ _____ | | __________ | | |
    | |________| |Comm | | | | _______ |SQL*Net| | Oracle | | | |
    |____________| | | | |_| |__|_______|__| Server |__| | |
    | |__| | |Appl. | | | | Process| | | |
    ____________ | | TPM | |Server | | | |________| |_______| |
    | Client | | ___| | |_______| | | |
    | ________ | | | | | | | |
    | | Client | |TPM | | | | | | |
    | | Process|_|_____|_| |_____| | | |
    | |________| |Comm | | | |
    |____________| | | | |
    |_______________________| |________________________|
    Clients = 6150 Terminal concentrators = 17
    TP Monitor instances = 17
    Application server processes Oracle Server processes
    = 17*8 = 17*8
    The TPM is the software component of the terminal concentrator. In this role
    it offloads terminal handling from the the machine running Oracle Server.
    Since more than one terminal concentrator can be configured, whereas the
    database in this case had to run on a single machine, concentrator machines
    can be added until the performance of the back-end machine was optimized.
    This three-tier solution resulted in the outstanding transaction throughput
    announced with Oracle7 Server. Even with Oracle Parallel Server, it may pay
    to offload the terminal handling so that the cluster can be exclusively used
    for database operations.
    Can you summarize the performance discussion for me?
    Depending on the number of users required, different architectures may be
    used in a client/server environment to maximize performance:
    1) For a small number of users, the traditional Oracle two-task
    architecture can be used. In this case, there is a one-to-one
    correspondence between client processes and server processes. It's
    simple, straightforward, and efficient.
    2) For a large number of users, Multi Threaded Server might be a better
    approach. Although some tuning may be required, Multi Threaded Server
    can handle a relatively large number of users for each machine size
    compared to the traditional Oracle approach. Using this approach,
    customers will be able to handle many hundreds of users on many
    platforms. Furthermore, current Oracle applications can move to this
    environment without change.
    3) For a very large number of users, where transactions are simple and
    terminal input concentration is the overriding performance issue, a
    3-tier architecture incorporating a TPM may be useful. In this case,
    terminal concentration is handled by the TPM in the middle tier. As
         you might expect, it is a more complex environment requiring more
         system management. For existing Oracle customers, significant Oracle
    application modifications will be required.
    Oracle provides all of these choices.
    Performance using Oracle's XA Library
    =====================================
    Are there any performance implications to using the XA library (in other
    words, to using TPM-managed transactions)?
    (1) The XA library imposes some performance penalty. You should use
    TPM-managed transactions only if you actually need them. Even if you
    are getting the one-phase commit optimization, the code path is
    longer because we need to map back and forth between external
    formats and internal ones. Also, prior to 7.1, XA requires you
    to release all cursors at the end of a transaction, which results
    in extra parsing. Even with shared cursors, there is time spent
    looking up the one you need and re-validating it. This has been
    improved for 7.1.
    (2) If you need to use two-phase commit, this will incur additional cost
    since extra I/Os are required. If you do need 2PC, you need to account
    for that when sizing the application.
    (3) Although some TPMs allow parallel execution of services (such as Tuxedo's
    "tpacall"), this will not normally enhance performance unless different
    resource managers are being used. In fact, Oracle Server must serialize
    accesses to the same transaction by the same Oracle instance, and the
    block/resume code will in fact degrade performance in that case compared
    to running the services sequentially.

    hello,
    the role is the same on all plattforms. the reports server takes requests for running reports, spawns an engine that executes the request. in addition to that, the server also provides scheduling services and security features for the reports environment.
    regards,
    the oracle reports team

  • ORACLE SERVER AND UNIX TP MONITOR-1

    제품 : ORACLE SERVER
    작성날짜 : 2002-05-17
    ====================================================================
    Subject: Oracle Server and UNIX Transaction Processing Monitors - 1
    =====================================================================
    PURPOSE
    This file contains commonly asked questions about Oracle Server and UNIX
    Transaction Processing Monitors (TPMs). The topics covered in this article are
         o What is a Transaction Processing Monitor (TPM)?
         o What is the X/Open Distributed Transaction Processing Model?
         o How does the Oracle Server works with TPMs?
         o How should I position TPMs with my customer?
         o What Oracle products must a customer purchase?
         o Where can my customer purchase a TPM?
         o Availability and packaging
    Explanation & Example
    What is a Transaction Processing Monitor?
    =========================================
    Under UNIX, a Transaction Processing Monitor (TPM) is a tool that coordinates
    the flow of transaction requests between front-end client processes that issue
    requests and back-end servers that process them. A TPM is used as
    the "glue" to coordinate transactions that require the services of several
    different types of back-end processes, such as application servers and
    resource managers, possibly distributed over a network.
    In a typical TPM environment, front-end client processes perform screen
    handling and ask for services from back-end server processes via calls to the
    TPM. The TPM then routes the requests to the appropriate back-end server
    process or server processes, wherever they are located on the network. Through
    configuration information, the TPM knows what services are available and where
    they are located. Generally, the back-end server processes are specialized so
    that each one handles one type of requested service. The TPM provides
    location transparency as well and can send messages through the network
    utilizing lower-level transport services such as TCP/IP or OSF DCE.
    The back-end servers process the requests as necessary and
    return the results back to the TP monitor. The TP monitor then routes
    these results back to the original front-end client process.
    A TPM is instrumental in the implementation of truly distributed processing.
    Front-end clients and back-end processes have no knowledge of each
    other. They operate as separate entities, and it is this concept that provides
    flexibility in application development. Front-end and back-end processes are
    developed in the UNIX client-server style, with each side optimized for its
    particular task. Server functionality can be deployed in stages, which makes
    it easy to add functionality as needed later in the product cycle. It also
    makes it easy to distribute both the front-end and back-end processes
    throughout the network on the most appropriate hardware for the job. In
    addition, multiple back-end server processes of the same type might be
    activated to handle increasing numbers of users.
    What is the X/Open Distributed Transaction Processing Model?
    ============================================================
    The X/Open Transaction Processing working group has been working
    for several years to establish a standard architecture to implement
    distributed transaction processing on open systems. In late 1991,
    X/Open published the initial Distributed Transaction Processing (DTP)
    model specification and defined the first of several interfaces that
    exist between the components of the model. Subsequently, other publications
    and a revised model specification have been published.
    An important function of the TPM in the X/Open DTP model is the
    synchronization of any commits and rollbacks that are required to complete
    a distributed transaction request. The Transaction Manager (TM) portion
    of the TPM is the entity responsible for ordering when distributed commits
    and rollbacks will take place. Thus, if a distributed application program
    is written to take advantage of the TM portion of the TPM, then it,
    and not the DBMS, becomes responsible for enabling the two-phase commit
    process. Article 2 has more detail on this model.
    How does the Oracle Server work with TPMs?
    ==========================================
    When a TPM is used without invoking an X/Open TM component to manage the
    transactions, Oracle Server needs no special functionality. The transaction
    will be managed by Oracle itself. However, when the TPM X/Open TM component
    is used to manage the transaction, the Oracle Server, that is the Oracle DBMS,
    acts as a Resource Manager--a type of back-end process. In the case of
    TPM-managed transactions, the TM needs a way to tell the RMs about the stages
    of the transaction. This is done by a standard, X/Open defined interface
    called XA. Article 2 of of this document gives more information about both
    the X/Open model and Oracle7's use of XA.
    Because the XA interface provides a standard interface between the TM and the
    resource manager, it follows that the TM can communicate with any XA-compliant
    resource manager (e.g., RDBMS), and, conversely, that a resource manager can
    communicate with any XA-compliant TM. Thus, the Oracle Server, beginning with
    Oracle7, works with any XA-compliant TM.
    How should I position TPMs with my customer?
    ============================================
    There's been a great deal of confusion about the need for TPM technology. Some
    software suppliers, most notably IBM, will assert that a TPM like CICS is a
    necessary requirement for high volume OLTP. Other vendors will assert that
    there is seldom a need for such technology. And yet others promote TPMs as
    providers of higher transaction throughput.
    From Oracle's standpoint, customers might choose TPM technology under any of
    the following conditions:
    1. For heterogeneous database access, especially for 2PC capability
         This means that a TPM can be used to coordinate 2PC between Oracle
         DBMS and any other XA-compliant database, such as Informix. This
         does NOT provide SQL heterogeneity - SQL calls to Oracle DBMS may be
         different than SQL calls to Informix. The TPM handles the routing,
         communication, and two-phase commit portion of the transaction, but
         does not translate one type of SQL call into another.
    2. For transaction monitoring and workload control
         The leading TPMs supply tools to actively manage the flow of
         transactions between clients and servers and to load balance the work
         load across all available processors on a network, not just on a
         single multi-processor system. Some TPMs also have the ability to
         dynamically bring up additional back-end services during peak work
         hours.
    3. For more flexible application development and installation
         One of the key features of the DTP model is application modularity.
         Modularity, that is, the decomposition of a large program into small,
         easily defined, coded and maintained "mini-programs" makes it easy to
         add new functionality as needed. Modularity also makes it much easier
         to distribute the front-end and back-end processes and the resource
         managers across hardware throughout a network.
    4. For isolating the client from details of the data model
    By using the service oriented programming model, the client program
         is unaware of the data model. The service can be recoded to use a
         different one with no change to the client. To get this advantage,
         the application developer must explicitly code the server and client
         to fit the service model.
    5. For connection of thousands of users
         TP Monitors, because of their three-tier architecture, can be used
         to connect users to an intermediate machine or machines, removing
         the overhead of handling terminal connections from the machine
         actually running the database. See Article 4 for more information.
    There are also several cases where TPM technology is not the right answer.
    These include:
    1. If the customer is simply looking for a performance improvement
         The customer may have heard a theory that "higher performance
         is possible for large scale applications only if they use a
         TP monitor". First, no performance gain can be achieved for
         existing applications; in fact, they won't even run under a TP
         Monitor without recoding. Second, performance improvements have
         only been documented for large numbers of users, and "large"
         means many hundreds or thousands. Without a TP Monitor,
         Oracle Server can handle several hundred users with its normal
         two-task architecture and several times that using the Multi
         Threaded Server. For more on performance, see Article 4.
    2. If the customer has made large investment in his existing Oracle
    applications
         TP monitor applications must be designed from the ground up to take
         advantage of TP monitor technology. Current Oracle customers will find
         it difficult to "retrofit" a TP monitor to their existing applications.
         The Multi Threaded Server, on the other hand, allows the use of
         existing Oracle applications without change.
    3. If the customer is committed to the Oracle tool set
         Currently, none of Oracle's front-end tools (Oracle Forms, etc.) is
         designed to work with TP monitors. It is possible to invoke a
         TP Monitor by using user exits. However, the fact that the TP
         Monitor model hides the data model from the client means that only
         the screen display parts of Forms can be used, not the automatic
         mapping from screen blocks to tables.
    4. If the customer does not have a staff of experienced software engineers
         This is still very young technology for UNIX. There is not a lot of
    knowledge in the industry on how to build TP monitor applications or
    what techniques are most useful and which are not. Furthermore,
         integrating products from different vendors, even with the support
         of standard interfaces, is more complex than deploying an integrated
         all-Oracle solution. Because TP monitor technology is fairly
         complex, we recommend that you let the TP monitor supplier promote
         the virtues of their technology and differentiate themselves from
         their competitors.
    What Oracle products must a customer purchase?
    ==============================================
    If your customer is only interested in building Oracle-managed TP Monitor
    transactions, the only Oracle products required are the Oracle Server
    and the appropriate Oracle precompiler for whatever language the
    application is being written in--most likely C or Cobol. If TPM-managed
    transactions are required, the Oracle7 Server with the distributed option
    is also required. SQL*Net is optional because the TPM takes care of the
    network services. Article 2 describes when you would choose to have the TP
    Monitor manage the transactions.
    Where can my customer purchase a TPM?
    =====================================
    There are many vendors offering the UNIX TPM products. (Oracle does not
    relicense TPMs.) Information on the most well known products is provided
    below:
    The following support XA:
    Product & Vendor     FCS          Known OS/Platform Ports
    "TUXEDO System/T"     1986          UNIX SVR4 & SVR3: Amdahl, AT&T,
    UNIX System Laboratories          Bull, Compaq, Dell, Fujitsu, ICL,
    190 River Road                    Motorola, Olivetti, Pyramid,Sequent,
    Summit, NJ 07901               Sun, Toshiba, Unisys, NCR, Stratus
                             Other: IBM AIX, HP/UX, DEC Ultrix
    "TOP END"      1992          UNIX SVR4: NCR
    NCR Corporation
    1334 S. Patterson Blvd.
    Dayton, OH 45479
    "ENCINA"          1992          IBM AIX, HP, Sun (SunOS and Solaris)
    Transarc Corporation               Other: OS/2, DOS, HP-UX, STRATUS
    707 Grant Street (Depends on DCE)
    Pittsburgh, PA 15219
    "CICS/6000" 1993          AIX: IBM
    IBM Corporation                    (Depends on DCE)
    "CICS 9000" 1994          HP-UX
    HP
    The following do not currently support XA:
    Product & Vendor     FCS          Known OS/Platform Ports
    "VIS/TP"          unknown          unknown
    VISystems, Inc.
    11910 Greenville Avenue
    Dallas, TX 75243
    "UniKix"          1990          UNIX: ARIX, AT&T, NCR, Pyramid,
    UniKix                     Sequent, Sun, Unisys      
    "MicroFocus           1993          SCO Unix, AIX
    Transaction System"
    Micro Focus
    26 West Street
    Newbury RG13 1JT
    UK
    There are also several third parties who are reselling the products listed
    above.
    In addition, Groupe Bull, Digital, Siemens-Nixdorf, and several other hardware
    vendors are planning to redesign their proprietary TPMs to be XA-compliant and
    suitable for use on UNIX systems.
    Availability and Packaging
    ==========================
    On what platforms is the XA Library available?
    Oracle provides the XA interface with Oracle7 Server on all platforms that
    support an XA-compliant TPM. Support for XA is included as part of the
    Oracle7 Server distributed option and has no extra charge in and of itself.
    Which version of XA does Oracle Server support?
    Oracle7 Server supports the Common Application Environment (CAE) version of
    XA, based on the specification published by X/Open in late 1991. It will
    require that the TM also be at that level. This means Tuxedo /T version 4.2,
    for example.
    Oracle Server supports all required XA functions. There are some optional
    features Oracle Server does not support, such as asynchronous operation.
    None of those options affect application programming.
    Page (2/4)
    This file contains commonly asked questions about Oracle Server and UNIX
    Transaction Processing Monitors (TPMs). The topics covered in this article are
         o Oracle Server Working with UNIX TPMs
         o TPM Application Architecture
    The questions answered in part 2 provide additional detail to the information
    provided in part 1.
    Oracle Server Working with UNIX TP Monitors
    ===========================================
    Do I need XA to use Oracle Server with TPMs? If I don't use it, what are
    the consequences?
    There are a number of real applications running today with Oracle Server and
    TPMs but not using XA. To use a TPM with Oracle without using XA, the user
    would write an "application server" program which could handle one or more
    "services". For example, a server program might handle a service called
    "debit_credit". The key requirement is that the entire transaction,
    including the "commit work", must be executed within a single service. This
    is the restriction which XA will remove, as we'll see later. Each
    server process can serially handle requests on behalf of different clients.
    Because a server process can handle many client processes, this can
    reduce the total number of active processes on the server system,
    thereby reducing resource requirements and possibly increasing overall
    throughput.
    When Oracle is used with a TPM in this mode, we call it an Oracle-managed
    transaction since the transaction commit or rollback is done with a SQL
    statement.
    What is XA? How does XA help Oracle7 work with UNIX TPMs?
    XA is an industry standard interface between a Transaction Manager and a
    Resource Manager. A Resource Manager (RM) is an agent which
    controls a shared, recoverable resource; such a resource can be
    returned to a consistent state after a failure. For example, Oracle7 Server
    is an RM and uses its redo log and undo segments to be able to do this.
    A Transaction Manager (TM) manages a transaction including the
    commitment protocol and, when necessary, the recovery after a failure.
    Normally, Oracle Server acts as its own TM and manages its own commitment
    and recovery. However, using a standards-based TM allows Oracle7 to
    cooperate with other heterogeneous RMs in a single transaction.
    The commonly used TPMs include a TM component for this purpose. In order to
    use the TM capability of the TPM rather than Oracle7's own transaction
    management, the application uses a transaction demarcation API (called TX)
    provided by the TPM rather than the SQL transaction control statements (e.g.
    "commit work"). For each TX call, the TM then instructs all RMs, by the
    appropriate XA commands, to follow the two-phase commit protocol. We
    call this a TPM-managed transaction.
    The following picture shows these interfaces within a monolithic application
    program model. This is the model most commonly described in the
    DTP literature. We'll see later what the picture looks like when we add
    Oracle7 and when we switch to a modularized client-server application
    program model.
              | |
              | |
              | Application Program (AP) |
              | |
              | |
                   | | |                    |
    Resource Manager API | | | |
    (e.g. SQL) -----|--|------------- | TX API
              | | v |          |
              --------|-------------     |          |
              | v | | v
         ---------------------- | | --------------------
         | | | | | |
         | Resource | | |<----->| Transaction |
         | Managers | |--- | Manager |
         | (RMs) | |<-------->| (TM) |
         | |--- | |
         | |<----------->| |
         ---------------------- XA --------------------
                        Interface
    The XA interface is an interface between two system components, not
    an application program interface; the application program does
    not write XA calls nor need to know the details of this interface.
    The TM cannot do transaction coordination without the assistance of
    the RM; the XA interface is used to get that assistance.
    How does the DTP Model support client-server?
    The above picture was actually simplified to make it easier to explain
    the role of XA. In a true distributed transaction architecture, there
    are multiple applications, each with an Application Program, a Resource
    Manager, and a Transaction Manager. The applications communicate by
    using a Communication Resource Manager. The CRM is generally provided
    as a component of the TPM. It includes the transaction information when
    it sends messages between applications, so that both applications can
    act of behalf of the same transaction. The following picture
    illustrates this:
    Client Application
    | AP |
    ||| | |
    SQL ||| | TX | CRM
    ||V V | API
    -||-- ----- |
    | |V | | | V
    --|-- |<---| | -----
    | V || | | | |
    ----- |<----| TM |<-->| CRM |
    | || | |XA+ | |
    | RMs |<-----| | -----
    | | XA | | A
    ----- ----- | Server Application
    | -----------------------------
    | | AP |
    | -----------------------------
    | ||| | |
    | SQL ||| | TX | CRM
    | ||V V | API
    | -||-- ----- |
    | | |V | | | V
    | --|-- |<---| | -----
    | | V || | | | |
    | ----- |<----| TM |<-->| CRM |
    | | || | |XA+ | |
    | | RMs |<-----| | -----
    | | | XA | | A
    | ----- ----- |
    | |
    | |
    -------- |
    / |
    / |
    / |
    Most TP Monitor products include both a TM and a CRM, and also provide
    additional functions such as task scheduling and workload monitoring.
    What is XA+? What does Oracle need to do to comply with it?
    XA+ is an interface that lets the X/Open model actually be distributed
    because it allows a communication resource manager to tell a TM on the
    server that a message from a client just came in for a particular
    transaction. Oracle is not currently planning to provide an X/Open
    communication resource manager, so we don't have any plans right now
    to do XA+. Version 2 of the DTP model paper from X/Open describes it.
    The status of the current XA+ specification is "snapshot".
    When would I choose an Oracle-managed transaction vs a TPM-managed
    transaction?
    Oracle Server is very efficient at managing its own transactions. If
    the TPM manages the transaction, in general some additional overhead
    will be incurred.
    The two main reasons a customer might prefer to use a TPM-managed
    transaction are as follows:
    (1) He may need to update RMs from different vendors. Experience so far
    has been that the most common case is wanting to update both Oracle and
    a TP Monitor managed resource such as a transactional queuing service
    in the same transaction (see Article 3).
    (2) He may want to use the model of having several different services in
    a transaction, even to the same database. For example, the
    "debit_credit" service could be split into a "debit" service and a
    "credit" service. This is a very attractive model, but this type of
    modularity does exact a performance penalty (see Article 4).
    Can I get a version of XA to run on Oracle Server version 6?
    No, the XA functionality uses two underlying mechanisms in the Oracle
    Server which are not available in version 6: two-phase commit and
    session switching. The upi calls for these functions do not not exist
    in version 6.
    When would I use XA vs Oracle7 to coordinate all-Oracle distributed
    transactions?
    Generally speaking, Oracle Server should be used to coordinate all-Oracle
    distributed transactions. The main reason for using XA to coordinate
    transactions would be that you want to use the TP Monitor service-oriented
    architecture. That is, you would like to construct an application built of
    services and service requests in order to benefit from the modularity and
    workload control such an environment provides.
    TP Monitor Application Architecture
    ===================================
    What might a TP Monitor application look like?
    Most TPM applications will consist of two more more programs, where
    there are front-end client programs which request services and back-end
    server programs which provide services. In this case, the TPM supplies an
    additional capability which is transactional communication. The client
    describes the boundaries of the transaction, through the use of the TX API,
    and the TPM relays that transaction information to each requested service.
    The overall application structure generally looks like the following in the
    client-server model. The "TP Monitor Services" box is not necessarily a
    process. It could be one or more processes, or just libraries coordinating
    through shared memory. Each client process and server process could be on
    a different machine. Normally, the application server processes would be
    connected to their Oracle Server processes using the IPC driver; the TPM
    would be used to deliver messages between application client processes on
    one machine and application server processes on another. However, the
    application server processes could also be connected with the standard
    Oracle SQL*Net to shadow processes on different machines. This might be
    useful if one of the databases was on a machine which did not support TPMs.
    |Application| |Application| |Application|
    | Client 1 | | Client 2 | | Client 3 |
    | | | | | |
    \ TPM API | TPM API / TPM API
    | |
    | TP Monitor Services |
    | |
         | --------------------- |
    | | Transaction Manager | |
    ---------------|---------------|---------------------
    TPM API | | XA | XA | TPM API
    | | inter- | inter- |
              | | face | face |
              | | | |
    ----------- | | -----------
    |Application| | | |Application|
    | Server 1 |--- ---| Server 2 |
    | (Pro*C) | | | | (Pro*C) |
    | SQL | SQL
    | | | |
    | Resource ----------- ----------- |
    | Manager | | | | |
    | | Oracle7 | | Oracle7 | |
    | | Server | | Server | |
    | | Process | | Process | |
    | | | | | |
    | ----------- ----------- |
    | | | |
    | ----------------------------------------------------- |
    | | | |
    | | SGA | |
    | | | |
    | ----------------------------------------------------- |
    | |
    Application client programs might be written in C and be linked with
    TPM libraries. Alternatively, they could use a screen painter product.
    Application server programs would be written in Pro*C or Pro*COBOL and
    be linked with TPM libraries, the normal Oracle7 user-side libraries
    and libxa.a. The Oracle7 Server process is the regular Oracle7 executable.
    More complicated application architectures can also be constructed. Most of
    the TPMs allow a server to become a client of another service, so you can
    involve additional servers.
    Could I use Oracle7's Multi Threaded Server as the SQL*Net connection in the
    previous picture?
    Yes, but that will not be needed in many cases. For example, both
    application server processes in the previous picture could talk to a
    single Oracle7 Server process through the Multi Threaded Server in the
    previous picture. However, since the TPM architecture typically reduces
    the number of server processes, the reduction in processes using Multi
    Threaded Server may be less significant than in an architecture without
    TPMs. If the application will use database links, however, then MTS will
    be required.
    How do I write an Oracle TP Monitor application?
    The actual API used to talk to the TPM varies between vendors, so you need
    to get the documentation from the vendor. However, all have a way to
    indicate where a transaction begins and ends and a way to send a request
    and receive a response from a client to a server. Some use an RPC model,
    some use a pseudo-RPC model, and some use a send/receive model. The TX API
    described earlier is a subset of the TPM API as defined by each of
    the TPM providers.
    The client program and server program might look something like the
    following examples. We h (such as Tuxedo's
    "tpacall
    Reference Ducumment
    ---------------------

    hello,
    the role is the same on all plattforms. the reports server takes requests for running reports, spawns an engine that executes the request. in addition to that, the server also provides scheduling services and security features for the reports environment.
    regards,
    the oracle reports team

  • Memory leak in oracle.exe and mds.exe

    We are facing Memory leak in oue MDM server. Our environment details
    are as follows;
    MDM 5.5 SP5 ( Build 5.5.41.70)
    Oracle 10.2 patch 2
    windows server 2003 SP1
    XI 7.0 SP 9
    If server is running continuously 3-4 days then Nonpaged memory is
    getting exausted and server does not respond. Now we have to retart the
    windows server manually.
    If we see the task manager it is shows more than 200,000 handles for
    oracle.exe and more than 100,000 handles for mds.exe.
    1: Oracle.exe -- more than 200000 handles ( Approx >5000 is problem)
    2: Mds.exe -- more than 100000 handles ( Approx >5000 is problem)
    Since these applications are not releasing the handles properly so all
    nonpaged memory gets exausted and server stops responding.
    If we restart the mdm server, database and OracleserviceMDMD, then
    nonpaged memory is released. But some times even if we restart these
    services, we do not get nonpaged memory released. So we have to restart
    the windows server.
    please help me if anyone else have faced the same problem.
    regards
    Saurabh

    Closing as question is answered in MDM forum.

  • "why the Psoft oracle DB and SID names should be in all upper case

    Customer is having a Question like
    "why the Psoft oracle DB and SID names should be in all upper case (according to the PsoftTools 8.50 Installation for Oracle manual)
    why the Peopletools 8.5 install book states all Oracle SID and database names should be in UpperCase.
    If we use lower case database name, would encounter any problems, what sort of problems?
    i Observed that all the Installation manual for 8.49,50,51 States the Same for Creating of Data base !
    Task 1-6-1: Determining Databases and Database Names
    You should also determine the names of the
    databases at this point, using database names that:
    • Are limited to eight characters, all UPPERCASE.
    • Capture information about the PeopleSoft product line and the type of database
    Please suggest on this !
    Thanks
    Bala

    user13798675 wrote:
    Customer is having a Question like
    "why the Psoft oracle DB and SID names should be in all upper case (according to the PsoftTools 8.50 Installation for Oracle manual)
    why the Peopletools 8.5 install book states all Oracle SID and database names should be in UpperCase.
    If we use lower case database name, would encounter any problems, what sort of problems?
    i Observed that all the Installation manual for 8.49,50,51 States the Same for Creating of Data base !
    Task 1-6-1: Determining Databases and Database Names
    You should also determine the names of the
    databases at this point, using database names that:
    • Are limited to eight characters, all UPPERCASE.
    • Capture information about the PeopleSoft product line and the type of database
    Please suggest on this !
    Thanks
    Balabcm@bcm-laptop:~$ env | grep ORA
    ORACLE_SID=v112
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    bcm@bcm-laptop:~$

  • Oracle 9i   (and the Oracle website!)

    Hello, I've been using this website for many years now and have always found it extremely difficult to navigate. Simple tasks like finding system requirements (e.g. supported operating systems, etc.) is nearly impossible in some cases. Lot's of sales propaganda everywhere though, no shortage of that.
    Just being facetious there. :-) I'm very fond of using Oracle products, and I'm no MS fan. Just don't like how this site is structured, that's all.
    Ok, here's my dilemma. I have: a
    1). Win2K Server machine for database;
    2). SuSE Linux 10.2 machine for database client.
    I figure my best bet is to go with Oracle 9i for both database and client, since SuSE 10.2 isn't supported yet for the newer Oracle 10g. So, where can I download Oracle 9i database and client?

    Thanks, I have also found that link. I go to:
    www.oracle.com ---> database ----> Standard_Edition
    Then there's a FREE DOWNLOAD link at the right for Oracle 10g (but I want Oracle 9i). I press the link and there's a long listing of 10g downloads. At the bottom there's a small link for 'previous database releases.' That's the link you provided. No info about supported systems anywhere. I have to fish through the full documentation index for that. Couldn't this be easier somehow? And shouldn't databases and clients be listed separately?
    Meant constructively of course and nothing against you, B548204BB. I appreciate your response :-)
    Anyway, it seems there is no 'secret link' anywhere for a Linux-based 9i client. But, I just saw something to indicate that Oracle 10g is now supported on SLES 10.2. That might solve my problem! I have openSUSE though. Anyone have success with installing Oracle 10g database or client on openSuSE 10.2?
    I might start a new thread for this.....

  • Oracle 10g and internet connection

    I recently installed a program which uses and installed the Oracle 10g database, but cannot run the database while I have an internet connection. If I disable my internet, I can run Oracle and my program. If I am connected to the internet and run the program it pops up this box:
    DATABASE LOGIN FAILED
    +... due to Oracle condition:+
    ORA-12541: TNS:no listener
    OK
    When I click Ok, it pops up a new box with 2 tabs: one asking for me to:
    Choose a (named database)
    This installation stores data in a named Oracle database.
    Since you may have several such databases, please select the name of
    your desired database from the list below.
    Note: If you are connecting to a local, single-user database, it may not have
    a name, or its name may not work.  In that case, you would need to choose
    the entry "<<always use default>>".
    There is a drop down box with 3 choices for the Database to use for this installation: XE, ORACLR_CONNECTION_DATA, and <<always use default>>
    The other tab is:
    Describe Privileged Account
    For maintenance purposes, this system also needs the name and password of
    a privileged Oracle user account.  It uses this privileged account
    only as needed, for various setup and maintenance tasks, such as
    o     creating the application's user account,
    o     providing it with storage space,
    o     providing backup/restore services,
    o     applying software updates.
    Please enter the privileged account's name and password below.
    If you do not know the account's name and password, please contact your
    Oracle database administrator (DBA).
    And it is asking for a user name and password. The Oracle help said that info should have been displayed somewhere during the Oracle installation process, but being as though I installed another program that did the Oracle, I don't think I ever saw it.
    I think it may matter:
    XP Pro SP 3
    2.4 GHz processor
    3 GB RAM
    To summarize; is there a way to run the Oracle database and my internet connection?
    Finally, I apologize for likely not providing all you would need to answer my question, I will provide anything else I can if it will help.
    Thanks
    gj

    Hi, thanks for the quick response.
    I went through the steps in the loopback adapter installation link you provided and have added a loopback adapter. When I do the ipconfig/all I get the following for the loopback adapter:
    Ethernet adapter Local Area Connection 4:
    Connection-specific DNS Suffix.....:
    Description...............................: Microsoft Loopback Adapter
    Dhcp Enabled...........................: No
    IP Address...............................: 192.168.25.129
    Subnet Mask............................: 255.255.255.0
    Default Gateway.......................:
    So it appears that is good to go. The issue still persists. Below is system information and Oracle information.
    System:
    Microsoft XP
    Professional
    Version 2002
    Service Pack 3
    Registered to:
    Me
    My company
    serial #
    Computer:
    Intel(R) Core (TM) i5 CPU
    M 520 @ 2.40 GHz
    2.39 GHz, 2.92 GB of RAM
    Physical Address Extension
    And Oracle is:
    Oracle Database 10g Release 2 (10.2.0.1) Express Edition for Microsoft Windows

  • Oracle SQL and PL/SQL interview questions.

    Can anyone forward me all Oracle SQL and PL/SQL Interview questions and answers asap.
    Many Thanks.
    Bba

    Dear Pal
    I not sure all the all answers are correct. I got one mail couple yrs back. I am just sharing mail contents. Kindly keep question and compare answers.
    1 Which is more faster - IN or EXISTS?
    EXISTS is more faster than IN because EXISTS returns a Boolean value whereas IN returns a value.
    2 Which datatype is used for storing graphics and images?
    LONG RAW data type is used for storing BLOB's (binary large objects).
    3 When do you use WHERE clause and when do you use HAVING clause?
    HAVING clause is used when you want to specify a condition for a group function and it is written after GROUP BY clause. The WHERE clause is used when you want to specify a condition for columns, single row functions except group functions and it is written before GROUP BY clause if it is used.
    4 What WHERE CURRENT OF clause does in a cursor?
    LOOPSELECT num_credits INTO v_numcredits FROM classesWHERE dept=123 and course=101;UPDATE studentsSET current_credits=current_credits+v_numcreditsWHERE CURRENT OF X;END LOOPCOMMIT;END;
    5 What should be the return type for a cursor variable.Can we use a scalar data type as return type?
    The return type for a cursor must be a record type.It can be declared explicitly as a user-defined or %ROWTYPE can be used. eg TYPE t_studentsref IS REF CURSOR RETURN students%ROWTYPE
    6 What is use of a cursor variable? How it is defined?
    A cursor variable is associated with different statements at run time, which can hold different values at run time. Static cursors can only be associated with one run time query. A cursor variable is reference type (like a pointer in C).Declaring a cursor variable:TYPE type_name IS REF CURSOR RETURN return_type type_name is the name of the reference type,return_type is a record type indicating the types of the select list that will eventually be returned by the cursor variable.
    7 What is the purpose of a cluster?
    Oracle does not allow a user to specifically locate tables, since that is a part of the function of the RDBMS. However, for the purpose of increasing performance, oracle allows a developer to create a CLUSTER. A CLUSTER provides a means for storing data from different tables together for faster retrieval than if the table placement were left to the RDBMS.
    8 What is the maximum buffer size that can be specified using the DBMS_OUTPUT.ENABLE function?
    1,000,00
    9 What is syntax for dropping a procedure and a function .Are these operations possible?
    Drop Procedure procedure_nameDrop Function function_name
    10 What is OCI. What are its uses?
    Oracle Call Interface is a method of accesing database from a 3GL program. Uses--No precompiler is required,PL/SQL blocks are executed like other DML statements. The OCI library provides· -functions to parse SQL statemets· -bind input variables· -bind output variables· -execute statements· -fetch the results
    11 What is difference between UNIQUE and PRIMARY KEY constraints?
    A table can have only one PRIMARY KEY whereas there can be any number of UNIQUE keys. The columns that compose PK are automatically define NOT NULL, whereas a column that compose a UNIQUE is not automatically defined to be mandatory must also specify the column is NOT NULL.
    12 What is difference between SUBSTR and INSTR?
    SUBSTR returns a specified portion of a string eg SUBSTR('BCDEF',4) output BCDEINSTR provides character position in which a pattern is found in a string. eg INSTR('ABC-DC-F','-',2) output 7 (2nd occurence of '-')
    13 What is difference between SQL and SQL*PLUS?
    SQL*PLUS is a command line tool where as SQL and PL/SQL language interface and reporting tool. Its a command line tool that allows user to type SQL commands to be executed directly against an Oracle database. SQL is a language used to query the relational database(DML,DCL,DDL). SQL*PLUS commands are used to format query result, Set options, Edit SQL commands and PL/SQL.
    14 What is difference between Rename and Alias?
    Rename is a permanent name given to a table or column whereas Alias is a temporary name given to a table or column which do not exist once the SQL statement is executed.
    15 What is difference between a formal and an actual parameter?
    The variables declared in the procedure and which are passed, as arguments are called actual, the parameters in the procedure declaration. Actual parameters contain the values that are passed to a procedure and receive results. Formal parameters are the placeholders for the values of actual parameters
    16 What is an UTL_FILE.What are different procedures and functions associated with it?
    UTL_FILE is a package that adds the ability to read and write to operating system files. Procedures associated with it are FCLOSE, FCLOSE_ALL and 5 procedures to output data to a file PUT, PUT_LINE, NEW_LINE, PUTF, FFLUSH.PUT, FFLUSH.PUT_LINE,FFLUSH.NEW_LINE. Functions associated with it are FOPEN, ISOPEN.
    17 What is a view ?
    A view is stored procedure based on one or more tables, it’s a virtual table.
    18 What is a pseudo column. Give some examples?
    It is a column that is not an actual column in the table.eg USER, UID, SYSDATE, ROWNUM, ROWID, NULL, AND LEVEL.
    19 What is a OUTER JOIN?
    Outer Join--Its a join condition used where you can query all the rows of one of the tables in the join condition even though they don’t satisfy the join condition.
    20 What is a cursor?
    Oracle uses work area to execute SQL statements and store processing information PL/SQL construct called a cursor lets you name a work area and access its stored information A cursor is a mechanism used to fetch more than one row in a Pl/SQl block.
    21 What is a cursor for loop?
    Cursor For Loop is a loop where oracle implicitly declares a loop variable, the loop index that of the same record type as the cursor's record.
    22 What are various privileges that a user can grant to another user?
    · SELECT· CONNECT· RESOURCES
    23 What are various constraints used in SQL?
    · NULL· NOT NULL· CHECK· DEFAULT
    24 What are ORACLE PRECOMPILERS?
    Using ORACLE PRECOMPILERS, SQL statements and PL/SQL blocks can be contained inside 3GL programs written in C,C++,COBOL,PASCAL, FORTRAN,PL/1 AND ADA.The Precompilers are known as Pro*C,Pro*Cobol,...This form of PL/SQL is known as embedded pl/sql,the language in which pl/sql is embedded is known as the host language. The prcompiler translates the embedded SQL and pl/sql ststements into calls to the precompiler runtime library.The output must be compiled and linked with this library to creater an executable.
    25 What are different Oracle database objects?
    · TABLES· VIEWS· INDEXES· SYNONYMS· SEQUENCES· TABLESPACES etc
    26 What are different modes of parameters used in functions and procedures?
    · IN· OUT· INOUT
    27 What are cursor attributes?
    · %ROWCOUNT· %NOTFOUND· %FOUND· %ISOPEN
    28 What a SELECT FOR UPDATE cursor represent. [ANSWER]SELECT......FROM......FOR......UPDATE[OF column-reference][NOWAIT] The processing done in a fetch loop modifies the rows that have been retrieved by the cursor. A convenient way of modifying the rows is done by a method with two parts: the FOR UPDATE clause in the cursor declaration, WHERE CURRENT OF CLAUSE in an UPDATE or declaration statement.
    29 There is a string 120000 12 0 .125 , how you will find the position of the decimal place?
    INSTR('120000 12 0 .125',1,'.')output 13
    30 There is a % sign in one field of a column. What will be the query to find it?
    '' Should be used before '%'.
    31 Suppose a customer table is having different columns like customer no, payments.What will be the query to select top three max payments?
    SELECT customer_no, payments from customer C1
    WHERE 3<=(SELECT COUNT(*) from customer C2
    WHERE C1.payment <= C2.payment)
    32 minvalue.sql Select the Nth lowest value from a table
    select level, min('col_name') from my_table where level = '&n' connect by prior ('col_name') <
    'col_name')
    group by level;
    Example:
    Given a table called emp with the following columns:
    -- id number
    -- name varchar2(20)
    -- sal number
    -- For the second lowest salary:
    -- select level, min(sal) from emp
    -- where level=2
    -- connect by prior sal < sal
    -- group by level
    33 maxvalue.sql Select the Nth Highest value from a table
    select level, max('col_name') from my_table where level = '&n' connect by prior ('col_name') >
    'col_name')
    group by level;
    Example:
    Given a table called emp with the following columns:
    -- id number
    -- name varchar2(20)
    -- sal number
    -- For the second highest salary:
    -- select level, max(sal) from emp
    -- where level=2
    -- connect by prior sal > sal
    -- group by level
    34 How you will avoid your query from using indexes?
    SELECT * FROM emp
    Where emp_no+' '=12345;
    i.e you have to concatenate the column name with space within codes in the where condition.
    SELECT /*+ FULL(a) */ ename, emp_no from emp
    where emp_no=1234;
    i.e using HINTS
    35 How you will avoid duplicating records in a query?
    By using DISTINCT
    36 How you were passing cursor variables in PL/SQL 2.2?
    In PL/SQL 2.2 cursor variables cannot be declared in a package.This is because the storage for a cursor variable has to be allocated using Pro*C or OCI with version 2.2, the only means of passing a cursor variable to a PL/SQL block is via bind variable or a procedure parameter.
    37 How you open and close a cursor variable.Why it is required?
    OPEN cursor variable FOR SELECT...Statement
    CLOSE cursor variable In order to associate a cursor variable with a particular SELECT statement OPEN syntax is used. In order to free the resources used for the query CLOSE statement is used.
    38 How will you delete duplicating rows from a base table?
    delete from table_name where rowid not in (select max(rowid) from table group by duplicate_values_field_name); or
    delete duplicate_values_field_name dv from table_name ta where rowid <(select min(rowid) from table_name tb where ta.dv=tb.dv);
    39 How do you find the numbert of rows in a Table ?
    A bad answer is count them (SELECT COUNT(*) FROM table_name)
    A good answer is :-
    'By generating SQL to ANALYZE TABLE table_name COUNT STATISTICS by querying Oracle System Catalogues (e.g. USER_TABLES or ALL_TABLES).
    The best answer is to refer to the utility which Oracle released which makes it unnecessary to do ANALYZE TABLE for each Table individually.
    40 Find out nth highest salary from emp table
    SELECT DISTINCT (a.sal) FROM EMP A WHERE &N = (SELECT COUNT (DISTINCT (b.sal)) FROM EMP B WHERE a.sal<=b.sal);
    For Eg:-
    Enter value for n: 2
    SAL
    3700
    41 Display the records between two range?
    select rownum, empno, ename from emp where rowid in (select rowid from emp where rownum <=&upto minus select rowid from emp where rownum<&Start);
    42 Display the number value in Words?
    SQL> select sal, (to_char(to_date(sal,'j'), 'jsp'))
    from emp;
    the output like,
    SAL (TO_CHAR(TO_DATE(SAL,'J'),'JSP'))
    800 eight hundred
    1600 one thousand six hundred
    1250 one thousand two hundred fifty
    If you want to add some text like, Rs. Three Thousand only.
    SQL> select sal "Salary ",
    (' Rs. '|| (to_char(to_date(sal,'j'), 'Jsp'))|| ' only.'))
    "Sal in Words" from emp
    Salary Sal in Words
    800 Rs. Eight Hundred only.
    1600 Rs. One Thousand Six Hundred only.
    1250 Rs. One Thousand Two Hundred Fifty only.
    43 Display Odd/ Even number of records
    Odd number of records:
    select * from emp where (rowid,1) in (select rowid, mod(rownum,2) from emp);
    Output:-
    1
    3
    5
    Even number of records:
    select * from emp where (rowid,0) in (select rowid, mod(rownum,2) from emp)
    Output:-
    2
    4
    6
    44 Difference between procedure and function.
    Functions are named PL/SQL blocks that return a value and can be called with arguments procedure a named block that can be called with parameter. A procedure all is a PL/SQL statement by itself, while a Function call is called as part of an expression.
    45 Difference between NO DATA FOUND and %NOTFOUND
    NO DATA FOUND is an exception raised only for the SELECT....INTO statements when the where clause of the querydoes not match any rows. When the where clause of the explicit cursor does not match any rows the %NOTFOUND attribute is set to TRUE instead.
    46 Difference between database triggers and form triggers?
    Data base trigger(DBT) fires when a DML operation is performed on a data base table. Form trigger(FT) Fires when user presses a key or navigates between fields on the screen
    Can be row level or statement level No distinction between row level and statement level.
    Can manipulate data stored in Oracle tables via SQL Can manipulate data in Oracle tables as well as variables in forms.
    Can be fired from any session executing the triggering DML statements. Can be fired only from the form that define the trigger.
    Can cause other database triggers to fire.Can cause other database triggers to fire, but not other form triggers.
    47 Difference between an implicit & an explicit cursor.
    PL/SQL declares a cursor implicitly for all SQL data manipulation statements, including quries that return only one row. However,queries that return more than one row you must declare an explicit cursor or use a cursor FOR loop.
    Explicit cursor is a cursor in which the cursor name is explicitly assigned to a SELECT statement via the CURSOR...IS statement. An implicit cursor is used for all SQL statements Declare, Open, Fetch, Close. An explicit cursors are used to process multirow SELECT statements An implicit cursor is used to process INSERT, UPDATE, DELETE and single row SELECT. .INTO statements.
    48 Can you use a commit statement within a database trigger?
    No.
    49 Can the default values be assigned to actual parameters?
    Yes
    50 Can cursor variables be stored in PL/SQL tables.If yes how. If not why?
    No, a cursor variable points a row which cannot be stored in a two-dimensional PL/SQL table.
    51 Can a primary key contain more than one columns?
    Yes
    52 Can a function take OUT parameters. If not why?
    No. A function has to return a value,an OUT parameter cannot return a value.
    53 What are various joins used while writing SUBQUERIES?
    Self join-Its a join foreign key of a table references the same table. Outer Join--Its a join condition used where One can query all the rows of one of the tables in the join condition even though they don't satisfy the join condition.
    Equi-join--Its a join condition that retrieves rows from one or more tables in which one or more columns in one table are equal to one or more columns in the second table.
    54 Differentiate between TRUNCATE and DELETE
    TRUNCATE deletes much faster than DELETE
    TRUNCATE
    DELETE
    It is a DDL statement It is a DML statement
    It is a one way trip,cannot ROLLBACK One can Rollback
    Doesn't have selective features (where clause) Has
    Doesn't fire database triggers Does
    It requires disabling of referential constraints. Does not require
    1 What is PL/SQL ?
    PL/SQL is a procedural language that has both interactive SQL and procedural programming language constructs such as iteration, conditional branching.
    2 Write the order of precedence for validation of a column in a table ?
    I. done using Database triggers.
    ii. done using Integarity Constraints.
    I & ii.
    Exception :
    3 Where the Pre_defined_exceptions are stored ?
    In the standard package.
    Procedures, Functions & Packages ;
    4 What are % TYPE and % ROWTYPE ? What are the advantages of using these over datatypes?
    % TYPE provides the data type of a variable or a database column to that variable.
    % ROWTYPE provides the record type that represents a entire row of a table or view or columns selected in the cursor.
    The advantages are : I. Need not know about variable's data type
    ii. If the database definition of a column in a table changes, the data type of a variable changes accordingly.
    5 What will happen after commit statement ?
    Cursor C1 is
    Select empno,
    ename from emp;
    Begin
    open C1; loop
    Fetch C1 into
    eno.ename;
    Exit When
    C1 %notfound;-----
    commit;
    end loop;
    end;
    The cursor having query as SELECT .... FOR UPDATE gets closed after COMMIT/ROLLBACK.
    The cursor having query as SELECT.... does not get closed even after COMMIT/ROLLBACK.
    6 What is the basic structure of PL/SQL ?
    PL/SQL uses block structure as its basic structure. Anonymous blocks or nested blocks can be used in PL/SQL.
    7 What is Raise_application_error ?
    Raise_application_error is a procedure of package DBMS_STANDARD which allows to issue an user_defined error messages from stored sub-program or database trigger.
    8 What is Pragma EXECPTION_INIT ? Explain the usage ?
    The PRAGMA EXECPTION_INIT tells the complier to associate an exception with an oracle error. To get an error message of a specific oracle error.
    e.g. PRAGMA EXCEPTION_INIT (exception name, oracle error number)
    9 What is PL/SQL table ?
    Objects of type TABLE are called "PL/SQL tables", which are modeled as (but not the same as) database tables, PL/SQL tables use a primary PL/SQL tables can have one column and a primary key.
    Cursors
    10 What is Overloading of procedures ?
    The Same procedure name is repeated with parameters of different datatypes and parameters in different positions, varying number of parameters is called overloading of procedures.
    e.g. DBMS_OUTPUT put_line
    What is a package ? What are the advantages of packages ?
    11 What is difference between a PROCEDURE & FUNCTION ?
    A FUNCTION is always returns a value using the return statement.
    A PROCEDURE may return one or more values through parameters or may not return at all.
    12 What is difference between a Cursor declared in a procedure and Cursor declared in a package specification ?
    A cursor declared in a package specification is global and can be accessed by other procedures or procedures in a package.
    A cursor declared in a procedure is local to the procedure that can not be accessed by other procedures.
    13 What is difference between % ROWTYPE and TYPE RECORD ?
    % ROWTYPE is to be used whenever query returns a entire row of a table or view.
    TYPE rec RECORD is to be used whenever query returns columns of different
    table or views and variables.
    E.g. TYPE r_emp is RECORD (eno emp.empno% type,ename emp ename %type
    e_rec emp% ROWTYPE
    cursor c1 is select empno,deptno from emp;
    e_rec c1 %ROWTYPE.
    14 What is an Exception ? What are types of Exception ?
    Exception is the error handling part of PL/SQL block. The types are Predefined and user defined. Some of Predefined exceptions are.
    CURSOR_ALREADY_OPEN
    DUP_VAL_ON_INDEX
    NO_DATA_FOUND
    TOO_MANY_ROWS
    INVALID_CURSOR
    INVALID_NUMBER
    LOGON_DENIED
    NOT_LOGGED_ON
    PROGRAM-ERROR
    STORAGE_ERROR
    TIMEOUT_ON_RESOURCE
    VALUE_ERROR
    ZERO_DIVIDE
    OTHERS.
    15 What is a stored procedure ?
    A stored procedure is a sequence of statements that perform specific function.
    16 What is a database trigger ? Name some usages of database trigger ?
    Database trigger is stored PL/SQL program unit associated with a specific database table. Usages are Audit data modifications, Log events transparently, Enforce complex business rules Derive column values automatically, Implement complex security authorizations. Maintain replicate tables.
    17 What is a cursor for loop ?
    Cursor for loop implicitly declares %ROWTYPE as loop index,opens a cursor, fetches rows of values from active set into fields in the record and closes
    when all the records have been processed.
    eg. FOR emp_rec IN C1 LOOP
    salary_total := salary_total +emp_rec sal;
    END LOOP;
    18 What is a cursor ? Why Cursor is required ?
    Cursor is a named private SQL area from where information can be accessed. Cursors are required to process rows individually for queries returning multiple rows.
    19 What happens if a procedure that updates a column of table X is called in a database trigger of the same table ?
    Mutation of table occurs.
    20 What are two virtual tables available during database trigger execution ?
    The table columns are referred as OLD.column_name and NEW.column_name.
    For triggers related to INSERT only NEW.column_name values only available.
    For triggers related to UPDATE only OLD.column_name NEW.column_name values only available.
    For triggers related to DELETE only OLD.column_name values only available.
    21 What are two parts of package ?
    The two parts of package are PACKAGE SPECIFICATION & PACKAGE BODY.
    Package Specification contains declarations that are global to the packages and local to the schema.
    Package Body contains actual procedures and local declaration of the procedures and cursor declarations.
    22 What are the two parts of a procedure ?
    Procedure Specification and Procedure Body.
    23 What are the return values of functions SQLCODE and SQLERRM ?
    SQLCODE returns the latest code of the error that has occurred.
    SQLERRM returns the relevant error message of the SQLCODE.
    24 What are the PL/SQL Statements used in cursor processing ?
    DECLARE CURSOR cursor name, OPEN cursor name, FETCH cursor name INTO or Record types, CLOSE cursor name.
    25 What are the modes of parameters that can be passed to a procedure ?
    IN,OUT,IN-OUT parameters.
    26 What are the datatypes a available in PL/SQL ?
    Some scalar data types such as NUMBER, VARCHAR2, DATE, CHAR, LONG, BOOLEAN.
    Some composite data types such as RECORD & TABLE.
    27 What are the cursor attributes used in PL/SQL ?
    %ISOPEN - to check whether cursor is open or not
    % ROWCOUNT - number of rows fetched/updated/deleted.
    % FOUND - to check whether cursor has fetched any row. True if rows are fetched.
    % NOT FOUND - to check whether cursor has fetched any row. True if no rows are featched.
    These attributes are proceeded with SQL for Implicit Cursors and with Cursor name for Explicit Cursors.
    28 What are the components of a PL/SQL Block ?
    Declarative part, Executable part and Exception part.
    Datatypes PL/SQL
    29 What are the components of a PL/SQL block ?
    A set of related declarations and procedural statements is called block.
    30 What are advantages fo Stored Procedures /
    Extensibility,Modularity, Reusability, Maintainability and one time compilation.
    1 What is PL/SQL ?
    PL/SQL is a procedural language that has both interactive SQL and procedural programming language constructs such as iteration, conditional branching.
    2 Write the order of precedence for validation of a column in a table ?
    I. done using Database triggers.
    ii. done using Integarity Constraints.
    I & ii.
    Exception :
    3 Where the Pre_defined_exceptions are stored ?
    In the standard package.
    Procedures, Functions & Packages ;
    4 What are % TYPE and % ROWTYPE ? What are the advantages of using these over datatypes?
    % TYPE provides the data type of a variable or a database column to that variable.
    % ROWTYPE provides the record type that represents a entire row of a table or view or columns selected in the cursor.
    The advantages are : I. Need not know about variable's data type
    ii. If the database definition of a column in a table changes, the data type of a variable changes accordingly.
    5 What will happen after commit statement ?
    Cursor C1 is
    Select empno,
    ename from emp;
    Begin
    open C1; loop
    Fetch C1 into
    eno.ename;
    Exit When
    C1 %notfound;-----
    commit;
    end loop;
    end;
    The cursor having query as SELECT .... FOR UPDATE gets closed after COMMIT/ROLLBACK.
    The cursor having query as SELECT.... does not get closed even after COMMIT/ROLLBACK.
    6 What is the basic structure of PL/SQL ?
    PL/SQL uses block structure as its basic structure. Anonymous blocks or nested blocks can be used in PL/SQL.
    7 What is Raise_application_error ?
    Raise_application_error is a procedure of package DBMS_STANDARD which allows to issue an user_defined error messages from stored sub-program or database trigger.
    8 What is Pragma EXECPTION_INIT ? Explain the usage ?
    The PRAGMA EXECPTION_INIT tells the complier to associate an exception with an oracle error. To get an error message of a specific oracle error.
    e.g. PRAGMA EXCEPTION_INIT (exception name, oracle error number)
    9 What is PL/SQL table ?
    Objects of type TABLE are called "PL/SQL tables", which are modeled as (but not the same as) database tables, PL/SQL tables use a primary PL/SQL tables can have one column and a primary key.
    Cursors
    10 What is Overloading of procedures ?
    The Same procedure name is repeated with parameters of different datatypes and parameters in different positions, varying number of parameters is called overloading of procedures.
    e.g. DBMS_OUTPUT put_line
    What is a package ? What are the advantages of packages ?
    11 What is difference between a PROCEDURE & FUNCTION ?
    A FUNCTION is always returns a value using the return statement.
    A PROCEDURE may return one or more values through parameters or may not return at all.
    12 What is difference between a Cursor declared in a procedure and Cursor declared in a package specification ?
    A cursor declared in a package specification is global and can be accessed by other procedures or procedures in a package.
    A cursor declared in a procedure is local to the procedure that can not be accessed by other procedures.
    13 What is difference between % ROWTYPE and TYPE RECORD ?
    % ROWTYPE is to be used whenever query returns a entire row of a table or view.
    TYPE rec RECORD is to be used whenever query returns columns of different
    table or views and variables.
    E.g. TYPE r_emp is RECORD (eno emp.empno% type,ename emp ename %type
    e_rec emp% ROWTYPE
    cursor c1 is select empno,deptno from emp;
    e_rec c1 %ROWTYPE.
    14 What is an Exception ? What are types of Exception ?
    Exception is the error handling part of PL/SQL block. The types are Predefined and user defined. Some of Predefined exceptions are.
    CURSOR_ALREADY_OPEN
    DUP_VAL_ON_INDEX
    NO_DATA_FOUND
    TOO_MANY_ROWS
    INVALID_CURSOR
    INVALID_NUMBER
    LOGON_DENIED
    NOT_LOGGED_ON
    PROGRAM-ERROR
    STORAGE_ERROR
    TIMEOUT_ON_RESOURCE
    VALUE_ERROR
    ZERO_DIVIDE
    OTHERS.
    15 What is a stored procedure ?
    A stored procedure is a sequence of statements that perform specific function.
    16 What is a database trigger ? Name some usages of database trigger ?
    Database trigger is stored PL/SQL program unit associated with a specific database table. Usages are Audit data modifications, Log events transparently, Enforce complex business rules Derive column values automatically, Implement complex security authorizations. Maintain replicate tables.
    17 What is a cursor for loop ?
    Cursor for loop implicitly declares %ROWTYPE as loop index,opens a cursor, fetches rows of values from active set into fields in the record and closes
    when all the records have been processed.
    eg. FOR emp_rec IN C1 LOOP
    salary_total := salary_total +emp_rec sal;
    END LOOP;
    18 What is a cursor ? Why Cursor is required ?
    Cursor is a named private SQL area from where information can be accessed. Cursors are required to process rows individually for queries returning multiple rows.
    19 What happens if a procedure that updates a column of table X is called in a database trigger of the same table ?
    Mutation of table occurs.
    20 What are two virtual tables available during database trigger execution ?
    The table columns are referred as OLD.column_name and NEW.column_name.
    For triggers related to INSERT only NEW.column_name values only available.
    For triggers related to UPDATE only OLD.column_name NEW.column_name values only available.
    For triggers related to DELETE only OLD.column_name values only available.
    21 What are two parts of package ?
    The two parts of package are PACKAGE SPECIFICATION & PACKAGE BODY.
    Package Specification contains declarations that are global to the packages and local to the schema.
    Package Body contains actual procedures and local declaration of the procedures and cursor declarations.
    22 What are the two parts of a procedure ?
    Procedure Specification and Procedure Body.
    23 What are the return values of functions SQLCODE and SQLERRM ?
    SQLCODE returns the latest code of the error that has occurred.
    SQLERRM returns the relevant error message of the SQLCODE.
    24 What are the PL/SQL Statements used in cursor processing ?
    DECLARE CURSOR cursor name, OPEN cursor name, FETCH cursor name INTO or Record types, CLOSE cursor name.
    25 What are the modes of parameters that can be passed to a procedure ?
    IN,OUT,IN-OUT parameters.
    26 What are the datatypes a available in PL/SQL ?
    Some scalar data types such as NUMBER, VARCHAR2, DATE, CHAR, LONG, BOOLEAN.
    Some composite data types such as RECORD & TABLE.
    27 What are the cursor attributes used in PL/SQL ?
    %ISOPEN - to check whether cursor is open or not
    % ROWCOUNT - number of rows fetched/updated/deleted.
    % FOUND - to check whether cursor has fetched any row. True if rows are fetched.
    % NOT FOUND - to check whether cursor has fetched any row. True if no rows are featched.
    These attributes are proceeded with SQL for Implicit Cursors and with Cursor name for Explicit Cursors.
    28 What are the components of a PL/SQL Block ?
    Declarative part, Executable part and Exception part.
    Datatypes PL/SQL
    29 What are the components of a PL/SQL block ?
    A set of related declarations and procedural statements is called block.
    30 What are advantages fo Stored Procedures /
    Extensibility,Modularity, Reusability, Maintainability and one time compilation.
    31 Name the tables where characteristics of Package, procedure and functions are stored ?
    User_objects, User_Source and User_error.
    32 Is it possible to use Transaction control Statements such a ROLLBACK or COMMIT in Database Trigger ? Why ?
    It is not possible. As triggers are defined for each table, if you use COMMIT of ROLLBACK in a trigger, it affects logical transaction processing.
    33 How packaged procedures and functions are called from the following?
    a. Stored procedure or anonymous block
    b. an application program such a PRC C, PRO COBOL
    c. SQL *PLUS
    a. PACKAGE NAME.PROCEDURE NAME (parameters);
    variable := PACKAGE NAME.FUNCTION NAME (arguments);
    EXEC SQL EXECUTE
    b.
    BEGIN
    PACKAGE NAME.PROCEDURE NAME (parameters)
    variable := PACKAGE NAME.FUNCTION NAME (arguments);
    END;
    END EXEC;
    c. EXECUTE PACKAGE NAME.PROCEDURE if the procedures does not have any
    out/in-out parameters. A function can not be called.
    34 How many types of database triggers can be specified on a table ? What are they ?
    Insert Update Delete
    Before Row o.k. o.k. o.k.
    After Row o.k. o.k. o.k.
    Before Statement o.k. o.k. o.k.
    After Statement o.k. o.k. o.k.
    If FOR EACH ROW clause is specified, then the trigger for each Row affected by the statement.
    If WHEN clause is specified, the trigger fires according to the returned Boolean value.
    35 Give the structure of the procedure ?
    PROCEDURE name (parameter list.....)
    is
    local variable declarations
    BEGIN
    Executable statements.
    Exception.
    exception handlers
    end;
    36 Give the structure of the function ?
    FUNCTION name (argument list .....) Return datatype is
    local variable declarations
    Begin
    executable statements
    Exception
    execution handlers
    End;
    37 Explain the usage of WHERE CURRENT OF clause in cursors ?
    WHERE CURRENT OF clause in an UPDATE,DELETE statement refers to the latest row fetched from a cursor.
    Database Triggers
    38 Explain the two type of Cursors ?
    There are two types of cursors, Implicit Cursor and Explicit Cursor.
    PL/SQL uses Implicit Cursors for queries.
    User defined cursors are called Explicit Cursors. They can be declared and used.
    39 Explain how procedures and functions are called in a PL/SQL block ?
    Function is called as part of an expression.
    sal := calculate_sal ('a822');
    procedure is called as a PL/SQL statement
    calculate_bonus ('A822');
    Programmatic Constructs
    Last Update: September 06, 2004
    1 What are the different types of PL/SQL program units that can be defined and stored in ORACLE database ?
    Procedures and Functions,Packages and Database Triggers.
    2 What are the differences between Database Trigger and Integrity constraints ?
    A declarative integrity constraint is a statement about the database that is always true. A constraint applies to existing data in the table and any statement that manipulates the table.
    A trigger does not apply to data loaded before the definition of the trigger, therefore, it does not guarantee all data in a table conforms to the rules established by an associated trigger.
    A trigger can be used to enforce transitional constraints where as a declarative integrity constraint cannot be used.
    3 What is difference between Procedures and Functions ?
    A Function returns a value to the caller where as a Procedure does not.
    4 What is Database Trigger ?
    A Database Trigger is procedure (set of SQL and PL/SQL statements) that is automatically executed as a result of an insert in,update to, or delete from a table.
    5 What is a Procedure ?
    A Procedure consist of a set of SQL and PL/SQL statements that are grouped together as a unit to solve a specific problem or perform a set of related tasks.
    6 What is a Package ?
    A Package is a collection of related procedures, functions, variables and other package constructs together as a unit in the database.
    7 What are the uses of Database Trigger ?
    Database triggers can be used to automatic data generation, audit data modifications, enforce complex Integrity constraints, and customize complex security authorizations.
    8 What are the advantages of having a Package ?
    Increased functionality (for example,global package variables can be declared and used by any proecdure in the package) and performance (for example all objects of the package are parsed compiled, and loaded into memory once)
    1 With which function of summary item is the compute at options required?
    percentage of total functions.
    2 Why is it preferable to create a fewer no. of queries in the data model?
    Because for each query, report has to open a separate cursor and has to rebind, execute and fetch data.
    3 Why is a Where clause faster than a group filter or a format trigger?
    Because, in a where clause the condition is applied during data retrieval than after retrieving the data.
    4 Which parameter can be used to set read level consistency across multiple queries?
    Read only.
    5 Which of the two views should objects according to possession?
    view by structure.
    6 Which of the above methods is the faster method?
    performing the calculation in the query is faster.
    7 Where is the external query executed at the client or the server?
    At the server.
    8 Where is a procedure return in an external pl/sql library executed at the client or at the server?
    At the client.
    9 When do you use data parameter type?
    When the value of a data parameter being passed to a called product is always the name of the record group defined in the current form. Data parameters are used to pass data to produts invoked with the run_product built-in subprogram.
    10 When a form is invoked with call_form, Does oracle forms issues a save point?
    Yes
    11 What are the important difference between property clause and visual attributes?
    Named visual attributes differ only font, color & pattern attributes, property clauses can contain this and any other properties. You can change the appearance of objects at run time by changing the named visual attributes programmatically , property clause assignments cannot be changed programmatically. When an object is inheriting from both a property clause and named visual attribute, the named visual attribute settings take precedence, and any visual attribute properties in the class are ignored.
    12 What use of command line parameter cmd file?
    It is a command line argument that allows you to specify a file that contain a set of arguments for r20run.
    13 What is WHEN-Database-record trigger?
    Fires when oracle forms first marks a record as an insert or an update. The trigger fires as soon as oracle forms determines through validation that the record should be processed by the next post or commit as an insert or update. c generally occurs only when the operators modifies the first item in the record, and after the operator attempts to navigate out of the item.
    14 What is use of term?
    The term file which key is correspond to which oracle report functions.
    15 What is trigger associated with the timer?
    When-timer-expired.
    16 What is the use of transactional triggers?
    Using transactional triggers we can control or modify the default functionality of the oracle forms.
    17 What is the use of place holder column?
    A placeholder column is used to hold calculated values at a specified place rather than allowing is to appear in the actual row where it has to appear.
    18 What is the use of image_zoom built-in?
    To manipulate images in image items.
    19 What is the use of hidden column?
    A hidden column is used to when a column has to embed into boilerplate text.
    20 What is the use of break group?
    A break group is used to display one record for one group ones. While multiple related records in other group can be displayed.
    21 What is the remove on exit property?
    For a modelless window, it determines whether oracle forms hides the window automatically when the operators navigates to an item in the another window.
    22 What is the purpose of the product order option in the column property sheet?
    To specify the order of individual group evaluation in a cross products.
    23 What is the maximum no of chars the parameter can store?
    The maximum no of chars the parameter can store is only valid for char parameters, which can be upto 64K. No parameters default to 23Bytes and Date parameter default to 7Bytes.
    24 What is the main diff. bet. Reports 2.0 & Reports 2.5?
    Report 2.5 is object oriented.
    25 What is the frame & repeating frame?
    A frame is a holder for a group of fields. A repeating frame is used to display a set of records when the no. of records that are to displayed is not known before.
    26 What is the difference between OLE Server & Ole Container?
    An Ole server application creates ole Objects that are embedded or linked in ole Containers ex. Ole servers are ms_word & ms_excel. OLE containers provide a place to store, display and manipulate objects that are created by ole server applications. Ex. oracle forms is an example of an ole Container.
    27 What is the difference between object embedding & linking in Oracle forms?
    In Oracle forms, Embedded objects become part of the form module, and linked objects are references from a form module to a linked source file.
    28 What is the difference between boiler plat images and image items?
    Boiler plate Images are static images (Either vector or bit map) that you import from the file system or database to use a graphical elements in your form, such as company logos and maps. Image items are special types of interface controls that store and display either vector or bitmap images. Like other items that store values, image items can be either base table items(items that relate directly to database columns) or control items. The definition of an image item is stored as part of the form module FMB and FMX files, but no image file is actually associated with an image item until the item is populate at run time.
    29 What is the difference between $$DATE$$ & $$DBDATE$$ $$DBDATE$$ retrieves the current database date $$date$$ retrieves the current operating system date.
    30 What is the diff. when Flex mode is mode on and when it is off?
    When flex mode is on, reports automatically resizes the parent when the child is resized.
    31 What is the diff. when confine mode is on and when it is off?
    When confine mode is on, an object cannot be moved outside its parent in the layout.
    32 What is the diff. bet. setting up of parameters in reports 2.0 reports 2.5?
    LOVs can be attached to parameters in the reports 2.5 parameter form.
    33 What is the advantage of the library?
    Libraries provide a convenient means of storing client-side program units and sharing them among multiple applications. Once you create a library, you can attach it to any other form, menu, or library modules. When you can call library program units from triggers menu items commands and user named routine, you write in the modules to which you have attach the library. When a library attaches another library, program units in the first library can reference program units in the attached library. Library support dynamic loading-that is library program units are loaded into an application only when needed. This can significantly reduce the run-time memory requirements of applications.
    34 What is term?
    The term is terminal definition file that describes the terminal form which you are using r20run.
    35 What is system.coordination_operation?
    It represents the coordination causing event that occur on the master block in master-detail relation.
    36 What is synchronize?
    It is a terminal screen with the internal state of the form. It updates the screen display to reflect the information that oracle forms has in its internal representation of the screen.
    37 What is strip sources generate options?
    Removes the source code from the library file and generates a library files that contains only pcode. The resulting file can be used for final deployment, but can not be subsequently edited in the designer. ex. f45gen module=old_lib.pll userid=scott/tiger strip_source YES output_file
    38 What is relation between the window and canvas views?
    Canvas views are the back ground objects on which you place the interface items (Text items), check boxes, radio groups etc.,) and boilerplate objects (boxes, lines, images etc.,) that operators interact with us they run your form . Each canvas views displayed in a window.
    39 What is pop list?
    The pop list style list item appears initially as a single field (similar to a text item field). When the operator selects the list icon, a list of available choices appears.
    40 What is new_form built-in?
    When one form invokes another form by executing new_form oracle form exits the first form and releases its memory before loading the new form calling new form completely replace the first with the second. If there are changes pending in the first form, the operator will be prompted to save them before the new form is loaded.
    41 What is lexical reference? How can it be created?
    Lexical reference is place_holder for text that can be embedded in a sql statements. A lexical reference can be created using & before the column or parameter name.
    42 What is forms_DDL?
    Issues dynamic Sql statements at run time, including server side pl/SQl and DDL
    43 What is difference between open_form and call_form?
    when one form invokes another form by executing open_form the first form remains displayed, and operators can navigate between the forms as desired. when one form invokes another form by executing call_form, the called form is modal with respect to the calling form. That is, any windows that belong to the calling form are disabled, and operators cannot navigate to them until they first exit the called form.
    44 What is bind reference and how can it be created?
    Bind reference are used to replace the single value in sql, pl/sql statements a bind reference can be created using a (:) before a column or a parameter name.
    45 What is an user exit used for?
    A way in which to pass control (and possibly arguments ) form Oracle report to another Oracle products of 3 GL and then return control ( and ) back to Oracle reports.
    46 What is an OLE?
    Object Linking & Embedding provides you with the capability to integrate objects from many Ms-Windows applications into a single compound document creating integrated applications enables you to use the features form .
    47 What is an object group?
    An object group is a container for a group of objects; you define an object group when you want to package related objects, so that you copy or reference them in other modules.
    48 What is an anchoring object & what is its use?
    An anchoring object is a print condition object which used to explicitly or implicitly anchor other objects to itself.
    49 What is a User_exit?
    Calls the user exit named in the user_exit_string. Invokes a 3Gl program by name which has been properly linked into your current oracle forms executable.
    50 What is a timer?
    Timer is an "internal time clock" that you can programmatically create to perform an action each time the timer expires.
    51 What is a Text_io Package?
    It allows you to read and write information to a file in the file system.
    52 What is a text list?
    The text list style list item appears as a rectangular box which displays the fixed number of values. When the text list contains values that can not be displayed, a vertical scroll bar appears, allowing the operator to view and select undisplayed values.
    53 What is a property clause?
    A property clause is a named object that contains a list of properties and their settings. Once you create a property clause you can base other object on it. An object based on a property can inherit the setting of any property in the clause that makes sense for that object.
    54 What is a physical page ? & What is a logical page ?
    A physical page is a size of a page. That is output by the printer. The logical page is the size of one page of the actual report as seen in the Previewer.
    55 What is a library?
    A library is a collection of subprograms including user named procedures, functions and packages.
    56 What is a difference between pre-select and pre-query?
    Fires during the execute query and count query processing after oracle forms constructs the select statement to be issued, but before the statement is actually issued. The pre-query trigger fires just before oracle forms issues the select statement to the database after the operator as define the example records by entering the query criteria in enter query mode. Pre-query trigger fires before pre-select trigger.
    57 What is a combo box?
    A combo box style list item combines the features found in list and text item. Unlike the pop list or the text list style list items, the combo box style list item will both display fixed values and accept one operator entered value.
    58 What does the term panel refer to with regard to pages?
    A panel is the no. of physical pages needed to print one logical page.
    59 What are visual attributes?
    Visual attributes are the font, color, pattern proprieties that you set for form and menu objects that appear in your application interface.
    60 What are three panes that appear in the run time pl/sql interpreter?
    1.Source pane. 2. interpreter pane. 3. Navigator pane.
    Regards
    B RANGARAJAN

  • Help linking oracle 11g and joomla 1.6

    Hello
    I am currently working on a project which uses Joomla 1.6 and MySQL 5.15. We now need to migrate the DB from MySQL to Oracle 11g R2 and I would like some help in finding a driver between Oracle 11g and Joomla 1.6. If anybody has worked with and successfully connected these two could you please help me out.
    Could really do with the help as I need to complete the project soon.
    Thanks
    Bharat
    Edited by: 842910 on Mar 8, 2011 11:10 PM

    Hey there...
    Well.... It sort of all depends on how Joomla is connecting to the database. Are they using a pre-built framework like PDO or Zend ?
    If they are it should be a a relatively easy task to move it to Oracle. If not then you will have to alter their DB layer and replace a lot of the mySQL calls with Oracle calls and add a few. For example MySQL does not parse a statement prior to execution but Oracle does eg:
    $oraDB = oci_connect([parms]);
    $query = oci_parse($OraDB,'select 'a' from dual');
    // If you are binding variables it would go between the parse and execute areas and it is mostly the same as doing
    // it with MySQL
    oci_execute($query);
    $data = oci_fetch_assoc($query);The instant client and the full client do things very differently and connections to the DB server are done differently so you will need to understand those differences and code accordingly.
    The OCI_8 php libraries are well established and documented. They must be installed on the server on which Joomla is running.
    If your machine is setup correctly this is as simple as:
    %pecl install oci8
    pecl will take care of pretty much everything including dealing with 32 -v- 64 bit and all you need do is make an entry in the php extension section letting it know the OCI libraries are installed. If not it is a bit more complicated.
    The software along with the instructions ca be found here: http://pecl.php.net/package/oci8
    You must have either the instant client or the regular Oracle client installed on the server on which Joomla is running.
    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlhttp://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
    After you accept the license agreement click on "See All" and you will see both the instant client and the full client for the version you require.
    It is extremely un-wise to attempt to run any version of oracle on the machine running joomla / Apache. If you do so, then you stand a better then even chance of failure as Oracle does not like to share resources.
    Make sure you read the install instructions for the oracle client and pay very close attention to things like environment settings and permissions issues on the php server as these are some of the most common problems. Once the client is installed and the oci libraries are installed things should run very smoothly. The whole php to Oracle chain is very fast and the fact that the db server is remote from the web server will not be an issue as long as the links are fast.
    If you have problems get back to us and we will do the best we can to help you sort things out.
    - FG

  • Business Component and Task flow learning

    Hi everyone,
    can anyone suggest me how and from where I need to start learning Oracle BC ,Entity objects,View object and task flows concept . I am familier with Oracle ADF but never used this components.
    so Please help me to learn the thing quickly.
    Thanks in advance

    Hi,
    have a look here ADF Insider Basics - Introduction to Oracle ADF Business Components
    Note that the Fusion Developer Guide product documentation is all about ADF BC
    Getting Started with ADF Business Components - 11g Release 1 (11.1.1.7.0)
    Frank

  • OWB, Oracle WorkFlow, and OEM

    I am a DBA who has been charged with the task of integrating Oracle Warehouse Builder, Oracle Workflow and OEM. Our source database is 9i but our Intelligence Team would like to use 10G. Does anyone know how I might install this? Should I install 10G, then create a database for OWB and Oracle Workflow? Any direction would be helpful.

    Hi,
    Have you found an answer? If not read on.
    We are also having the same combination.
    1. Identify a target server (datawarehouse server).
    2. Install 10G database on it (create a seed database with DWH option).
    3. Install OWB
    4. Install workflow server.
    Then , make OWB setups :
    1. Install a design repository, through which the team can carry out ETL in the OWB client.
    2. Install a runtime repository which creates 2 users - a runtime repository owner and a runtime access user('connect as') user when deploying the ETL mappings.
    3. Install a target schema using the runtime where the target objects - tables, dimensions and cubes will be created.
    Then, in OWB, the team have to configure the source modules as 9i and the target modules as 10g.
    Hope this helps.
    Regards,
    Usha

  • Using BI Apps with applications other than Oracle, Peoplesoft and ....

    Hi all,
    I'm new in BI Applications. We have developed our applications with oracle tools and technologies. Is there any possibility to use Oracle BI Apps with our own database and applications?
    Regards,
    Iman

    I'll try to explain the "Universal Adapter."
    So Oracle BI Applications contains the presentation catolog (prebuilt reports and dashboards), the .rpd (prebuilt business logic), and the Informatica Repository (the ETL process).
    The warehouse model stays fairly consistent regardless of the platform. The "ETL Process" runs through SDE (source depent extract), SIL (source independent), and PLP (post load) mappings.
    By utilizing the "Universal Adapter/Container" you are still able to utilize the standard .rpd and presentation catalog.
    Essentially the Universal Adapter is in place to allow a user to develop discover the data needed by the "SDE" mappings, while still utilizing the rest of the functionality provided with BI Applications. This can be an overwhelming task, and I do suggest you do fairly comprehensive analysis before you attempt to utilize Oracle BI Applications with the Universal Container.
    Depending on the magnitude and scope of your deployment, you might be better off developing the ETL process on your own. However, there are instances where the universal adapter can be incredibly usefull.
    HTH,
    Austin

  • Oracle Streams and Dataguard

    Does anyone know how to configure oracle streams and dataguard to work together? I've set up an environment which successfully captures and applies records in a streams environment using
    log_archive_config=SEND, RECEIVE, NODG_CONFIG
    as soon as I try to introduce the streams setup into a database which already has dataguard setup it begins to get convoluted as setting DG_CONFIG requires you to then set the db_unique_name and it seems that the streams log mining will not work without being fully incorporated into the Dataguard configuration.
    Has anyone set up streams in a dataguard environment?

    Lets see what's missing from your request:
    1. Oracle version number?
    2. Physical or logical Data Guard?
    3. Which Data Guard mode? Synch or Asynch?
    4. Which Data Guard protection level?
    5. ARCH or LGWR?
    6. Which streams mode? Synch or Asynch?
    7. Hotlog or Autolog?
    8. Streams on the production server or the standby server?
    I'm all out of guesses tonight. Please provide enough information for someone to help you.

Maybe you are looking for

  • Migrating Training and Event Management...

    I need to migrate between two systems, both structural content and participants of Training and Event Management and is wondering if anyone can help me as to how to go about doing so? Do there exist standard IDOCs and programs/function module to do s

  • Change color JComboBox

    Hello, a silly question, I guess... How can I change Vertical Scroll Bar color in a JScrollPane?? Changing Background color it doesn't work ... Thanks!

  • Printing CD Jewel Case - White Mosaic

    The little popup window description that comes up when you select Print>CD Jewel Case>White Mosaic finishes with the words "Prints in full color". This is a collection of 30 different versions of Somewhere Over The Rainbow. The artwork is various pic

  • Metadata without images??

    I have been working to get rid of inconsistencies in applying metadata (CA vs. California, for example), and after changing all of the photos with CA to California, I discovered that there were still 14 occurances of CA, but there are no images to go

  • Copy Chinese Text from Word to SAP Script

    Hi, I need to change Chinese form. I am not able to copy Chinese text from word document to SAP Script. When I copy Chinese text from word to SAP Script, I am getting the Chinese text 承运商签 as ?????. I have done the following steps in my PC and SAP fr