Tuxedo, Oracle, XA, and 2pc optimisation

Consider this: you have 1 tuxedo instance, 1 Oracle database, multiple
tuxedo servers (one connection per server), you're using xa
connections to db and handling the transaction as global transactions
(tpcommit/tpabort).
Is is possible for Oracle to detect only one database is involved in
the global transaction and so optimise the 2pc protocol? Does it?
Am I missing something?

Steven,
If all the servers accessing Oracle are in the same server group, then Tuxedo
will optimise the commit to one phase for you.
Regards,
Peter.
Steven Shaw wrote:
Consider this: you have 1 tuxedo instance, 1 Oracle database, multiple
tuxedo servers (one connection per server), you're using xa
connections to db and handling the transaction as global transactions
(tpcommit/tpabort).
Is is possible for Oracle to detect only one database is involved in
the global transaction and so optimise the 2pc protocol? Does it?
Am I missing something?

Similar Messages

  • Oracle 9 and Tuxedo 10 Compatibility

    Hi
    Are these two compatible : Oracle 9 and Tuxedo 10 ?
    Regards,
    Vishal
    Edited by: user8366449 on May 16, 2012 2:22 AM

    user8366449 wrote:
    Hi
    Are these two compatible : Oracle 9 and Tuxedo 10 ?
    Regards,
    Vishal
    Edited by: user8366449 on May 16, 2012 2:22 AMI don't know about compatibility, but Oracle 9 hasn't been supported in this millenium. Oracle 10 is at terminal release and in 'sustaining support'. Oracle 11 is mature. Oracle 12 is in beta and expected to be released this year. Are you running (or planning to run) Oracle 9 on Windows NT 4, on an intel 386?

  • 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

  • Load balancing in Tuxedo 9.1 and RAC

    Hello to all,
    I have some doubts on the way of balancing load in tuxedo 9.1 and RAC (Oracle 10gR2).
    Before, without RAC our configuration was the following one:
    GRP_A: service A001, service A002
    GRP_B: service B001, service B002
    Both groups were attacking the same BBDD, Now with the configuration in RAC we have the following thing:
    We have two intances RAC: ORARAC1 and ORARAC2
    TUXRACGROUPS=GRP_A1, GRP_B1; GRP_A2, GRP_B2
    The groups GRP_A1 = GRP_A2 and GRP_B1 = GRP_B2, but the groups GRP_A1 and GRP_B1 use the instance ORARAC1 and GRP_A2 and GRP_B2 use the instance ORARAC. Summarizing:
    GRP_A1: service A001, service A002 (ORARAC1)
    GRP_B1: service B001, service B002 (ORARAC1)
    GRP_A2: service A001, service A002 (ORARAC2)
    GRP_B2: service B001, service B002 (ORARAC2)
    Have formed the variable TUXRACGROUPS=GRP_A1, GRP_B1; GRP_A2, GRP_B2
    How is Tuxedo balancing the traffic?
    1) Does not balance load between RACGROUPS?
    2) Does it use RAC.. as favourite?
    3) Does the RACGROUPS balance when it's overlaeded or always?
    3) Does the same algorithm uses that LDBAL?, if this is affirmative, is it necessary to have formed in the ubb LDABL=Y?
    4) Tuxedo uses an algorithm of round-robin?
    5) others
    I have looked for information but I have not found any information that could help to understanding it.
    Thanks in advance
    P.D.: Excuse my english :(

    There is Oracle RAC routing information available at
    http://e-docs.bea.com/tuxedo/tux91/ads/adorac.htm#248431
    If you are not running in a transaction, then the TUXRACGROUPS environment
    variable will not be relevant and routing will be handled as it would be if
    this environment variable were not set.
    Assuming that GRP_A1 and GRP_A2 are the only groups that offer services A001
    and A002 and GRP_B1 and GRP_B2 are the only groups that offer services B001
    and B002, routing of service requests made within a transaction will be
    handled as follows:
    - Any call to A001 or A002 made within a transaction with an even GTRID
    counter value will be handled by GRP_A1. (The GTRID counter value is the
    last of the 3 hexadecimal numbers printed in the ULOG for messages printed
    within that transaction.)
    - Any call to A001 or A002 made within a transaction with an odd GTRID
    counter value will be handled by GRP_A2.
    - Any call to B001 or B002 made within a transaction with an even GTRID
    counter value will be handled by GRP_B1.
    -Any call to B001 or B002 made within a transaction with an odd GTRID
    counter value will be handled by GRP_B2.
    Ed
    <Briz Briz> wrote in message news:[email protected]...
    Hello to all,
    I have some doubts on the way of balancing load in tuxedo 9.1 and RAC
    (Oracle 10gR2).
    Before, without RAC our configuration was the following one:
    GRP_A: service A001, service A002
    GRP_B: service B001, service B002
    Both groups were attacking the same BBDD, Now with the configuration in
    RAC we have the following thing:
    We have two intances RAC: ORARAC1 and ORARAC2
    TUXRACGROUPS=GRP_A1, GRP_B1; GRP_A2, GRP_B2
    The groups GRP_A1 = GRP_A2 and GRP_B1 = GRP_B2, but the groups GRP_A1 and
    GRP_B1 use the instance ORARAC1 and GRP_A2 and GRP_B2 use the instance
    ORARAC. Summarizing:
    GRP_A1: service A001, service A002 (ORARAC1)
    GRP_B1: service B001, service B002 (ORARAC1)
    GRP_A2: service A001, service A002 (ORARAC2)
    GRP_B2: service B001, service B002 (ORARAC2)
    Have formed the variable TUXRACGROUPS=GRP_A1, GRP_B1; GRP_A2, GRP_B2
    How is Tuxedo balancing the traffic?
    1) Does not balance load between RACGROUPS?
    2) Does it use RAC.. as favourite?
    3) Does the RACGROUPS balance when it's overlaeded or always?
    3) Does the same algorithm uses that LDBAL?, if this is affirmative, is it
    necessary to have formed in the ubb LDABL=Y?
    4) Tuxedo uses an algorithm of round-robin?
    5) others
    I have looked for information but I have not found any information that
    could help to understanding it.
    Thanks in advance
    P.D.: Excuse my english :(

  • Tuxedo 7.1 and RAC

    Have anyone deployed Tuxedo 7.1 with Oracle RAC
    Specifically:
    - Is this a supported configuration?
    - Will the Tuxedo application transparently failover in case of a node failure?
    - Any specific configuration or limitation?

    Lior,
    The enhancements to Tuxedo needed to ensure that Tuxedo XA transactions
    access at most one instance of a RAC configuration and needed to ensure
    prompt and proper recovery of Oracle 10gR1 transactions in the process of
    commit at the time of a RAC failover are supported in Tuxedo 9.1 and as
    rolling patches for Tuxedo 8.1 and Tuxedo 9.0. Tuxedo 7.1 does not include
    these enhancements, so Tuxedo 7.1 with Oracle RAC is not a supported
    configuration.
    Further information on support of Oracle RAC in Tuxedo is available in the
    "Using Tuxedo with Oracle Real Application Clusters" documentation at
    http://edocs.bea.com/tuxedo/tux91/ads/adorac.htm#248431 .
    In one of your later messages, you mentioned that you are using Oracle 10g,
    but didn't mention if it is 10gR1 or 10gR2. Oracle 10gR2 RAC introduced the
    concept of DTP Services, which were not available in 10gR1. The use of DTP
    services greatly simplifies the RAC environment, and allows Oracle RAC to
    automate instance failover and failback and transaction recovery. With DTP
    services in 10gR2, the use of FAN and TMS_rac_recovery to manage RAC
    instance recovery is no longer needed.
    Ed
    <Lior Golan> wrote in message news:[email protected]..
    Have anyone deployed Tuxedo 7.1 with Oracle RAC
    Specifically:
    - Is this a supported configuration?
    - Will the Tuxedo application transparently failover in case of a nodefailure?
    - Any specific configuration or limitation?

  • Tuxedo 11g requirements and Java

    Hi,
    I've noticed that Tuxedo 11g (in both Windows Server 2008 and IBM i6 OS) have Java 6 as a requirement.
    http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/install/inspds.html
    We still have Java 1.42 in our systems, with Tuxedo 6.5 and Tuxedo 8.1, and we don't plan to update to Java 6 or 7 before upgrading Tuxedo.
    It is really necessary to upgrade to Java 6? Although we don't use any Java feature with Tuxedo Server? Is it a good idea to have Tuxedo 11g with jolt.jar from previous versions?
    Thanks in advance and king regards,
    Javier

    Hello Javier,
    The Tuxedo 11g binaries were tested against Java based applications using JDK 1.6. If you do not intend to use any Java applications (e.g Jolt,COBA Java,GAUTHSVR,Tux Admin console) with
    the Tuxedo 11g binaries then you do not need to upgrade.
    If you intend to use the Tuxedo 11g jolt.jar binaries in a Jolt application (e.g. Jolt client) then you will need to use JDK/JRE/JVM version of at least 1.6 to be supported.
    You may continue to use your Tuxedo 6.5 Jolt clients, Tuxedo 6.5 jolt.jar binaries, to connect to a Tuxedo 11g server but the Tuxedo 11g JSL must include the "-t" server option in the CLOPT defininition.
    http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/install/insup.html#wp1064069
    Regards,
    Bob Finan

  • Oracle, Null and empty Strings

    Currently I'm facing problems with a class, which contains a String, which
    is set to "" (empty String).
    When the class is persistent, oracle writes null to the table column
    (which seems to be common oracle behaviour) and when retrieving the class,
    the field is set to null as well, giving me a lot of null-pointer
    exceptions.
    Anyway ... I can cope with that (just a lot of extra work)
    far worse is the problem, wenn searching objects, that have this field set
    to "" oder null.
    Oracle can't find the records because JDO creates Querys "where
    string=null" or "where string=''" , where oracle expects "where string is
    null" to find the records.
    Is there a workaround or solution ?

    Yeah, that would work as well, thx, but since I have to cope with
    null-Strings now everywhere in my program, it doesn't hurt just to forbid
    empty strings on the program side.
    In future times I'll test on Oracle first, then porting to DB/2 - this way
    I suppose work is far less to garant compability.
    Nevertheless ... having to set the bankcode into quotes is a kodo bug in
    my opinion.
    Kodo knows the type of classfields (in this case string) and shouldn't
    send the parameter as a BigDecimal to the database.
    Given that, and having only bankcodes of null (only neccesary when using
    Oracle), the method would look like:
    public Collection getAccounts (String bankCode)
    throws Exception
    return getAccounts (Account.class, "bankcode=="+bankcode);
    which is how a transparent persistent layer, um, should be , um , I mean
    ... just transparent ;-D
    Marc Prud'hommeaux wrote:
    Stefan-
    Couldn't you just do something like:
    public Collection getAccounts (String bankCode)
    throws Exception
    String filter;
    if (bankCode == null || bankCode.length () == 0)
    filter = "(bankCode == null || bankCode == "")";
    else
    filter = "bankCode == "" + bankCode + """;
    return getAccounts (Account.class, filter);
    If I understand the problem correctly, this should work for all the
    databases.
    In article <[email protected]>, Stefan wrote:
    What operations are you performing to cause this SQL to be issued? You
    say you are having trouble removing objects, but this is clearly not a
    DELETE statement. Is this the SQL that is issued when looking up
    objects by identity?I'm not removing objects, I was removing just quotes from parameters ;-)
    A string column... is it also represented as a string field in your class?Yeah ... just to give you an impression of the code:
    First we have a class, representing a bank account:
    public class Account {
    private AccountMgr myAccountMgr;
    private String bankCode;
    private String id;
    Note, that in nearly all cases bankCode will be a number or null.
    I have a second class "AccountMgr", which does all of the persistant stuff
    (seaching, making persistent etc.)
    This class has two methods, one versatile (protected) to retrieve accounts
    by a given filterString and one who just returns accounts by bankCode,
    building the expected filterstring. Here is my current working version:
    public class AccountMgr {
    public Collection getAccounts(String bankCode) throws Exception {
    if (bankCode!=null) {
    if (bankCode.equals("")) {
    throw new Exception("check code, bankCode='' not allowed to get
    same behavior from DB2 and Oracle");
    // if set, quote the bankCode
    bankCode="""+bankCode+""";
    return getAccounts(Account.class,"bankCode=="+bankCode);
    protected Collection getAccounts(Class accountClass, String filterAdd)
    throws Exception {
    PersistenceManager pm = MyHelper.getPersistenceManager();
    String filter="";
    if (filterAdd!=null && !filterAdd.trim().equals("")) {
    filter+=filterAdd + " && ";
    filter += "myAccountMgr==_accMgr";
    Query query = pm.newQuery(accountClass, filter);
    query.declareParameters("AccountMgr _accMgr");
    return (Collection) query.execute(this);
    As you can see, in the first method I have to set the bankCode into
    quotes, when it's not null.
    This is because otherwise a filter like "bankCode=1234" will be translated
    in a way, where 1234 is send as a BigDecimal to the database:
    [...] executing statement <4239745>: (SELECT [...] FROM JDO_ACCOUNT t0
    WHERE t0.BANKCODE = ? : [reused=1;params={(BigDecimal) 1234}]
    Marc Prud'hommeaux [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Select query differences between oracle 9 and oracle 8.

    Hi,
    I have a problem using the select query between oracle 7 and oracle 9i I don't have the same result :
    ex:
    With oracle7
    SQL> select 'champ1','champ2' from DUAL;
    'CHAMP 'CHAMP
    champ1 champ2
    With Oracle 9
    SQL> select 'champ1','champ2' from DUAL;
    'CHAMP1' 'CHAMP2'
    champ1 champ2
    So Can someone tell me how to solve this problem ? Is there a parameter in oracle 9 to set?
    Thanx.

    Whenever you are posting anything over internet forums like this - you should be very careful about not just posting the details which requires to solve the problem - also should be sensible about your question.
    This is not at all desired when you are posting such question. It may be because - you may not well aware of the fact.
    My suggestion is -> First Go through the basics Of SQL in general.
    Then go for any specific product like Oracle/ SQL Server/ Sybase etc.
    And, finally learn the advanced commands of that DB.
    You asked it - may be you thought the difference in output in terms of lines. But, that is not your actual output. That is the graphical display part only.
    Anyway,
    You can get the quite familier output by first type the following command ->
    set lin 310Regards.
    Satyaki De.

  • What is the Diffrence between Oracle 11 and 11i

    What is the Diffrence between Oracle 11 and Oracle11i ?.
    With Rgds
    Arun J.Isaac

    Oracle 11i is internet based and run with java platform where we can see the applets downloading alongwith oracle forms and it refreshes all the jar files in oracle default directory.
    Oracle 11 is not intergrated with Java its an Oracle standalone platform.
    Regards,
    Arumugam S.

  • Oracle Forms and Reports Installation - Creating domain failed

    I installed the weblogic 10.3.6 (Oracle WebLogic Server 11gR1 (10.3.6) + Coherence + OEPE - Package Installer) in my Microsoft Windows(32-bit JVM) system first.
    But there was an error occorred when the package of forms and reports (Oracle Forms and Reports 11gR2 (11.1.2.2.0)) was installing.
    Please find the following error message for your reference.
    Do you have any idea? Please kindly advise.
    Thanks a lot!
    2014-04-02 14:11:14,099 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - read template from "C:/Users/GZ/AppData/Local/Temp//tmp1396419069239wls.jar"
    2014-04-02 14:11:16,185 INFO  [main] com.oracle.cie.domain.template.catalog.impl.ComponentsXMLConverter - C:\Oracle\Middleware\wlserver_10.3\common\lib\components.xml does not contain component elements and will be skipped
    2014-04-02 14:11:17,556 INFO  [main] com.oracle.cie.domain.WLSTemplateBuilder - No config-groups.xml found in template
    2014-04-02 14:11:17,556 INFO  [main] com.oracle.cie.domain.WLSTemplateBuilder - No template-database.xml found in template
    2014-04-02 14:11:18,205 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: read template from "C:/Users/GZ/AppData/Local/Temp//tmp1396419069239wls.jar"
    2014-04-02 14:11:18,477 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set config option ServerStartMode to "prod"
    2014-04-02 14:11:18,477 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set config option ServerStartMode to "prod"
    2014-04-02 14:11:18,490 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - create Machine "PC-42A26D.GZAD.MSAD.LOCAL" as obj0
    2014-04-02 14:11:18,604 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: create Machine "PC-42A26D.GZAD.MSAD.LOCAL" as obj0
    2014-04-02 14:11:18,612 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - find Server "AdminServer" as obj1
    2014-04-02 14:11:18,652 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: find Server "AdminServer" as obj1
    2014-04-02 14:11:18,698 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute Machine to "PC-42A26D.GZAD.MSAD.LOCAL"
    2014-04-02 14:11:18,705 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute Machine to "PC-42A26D.GZAD.MSAD.LOCAL"
    2014-04-02 14:11:18,706 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute ListenPort to "7002"
    2014-04-02 14:11:18,716 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute ListenPort to "7002"
    2014-04-02 14:11:18,716 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - create Server!SSL "AdminServer!AdminServer" as obj2
    2014-04-02 14:11:18,724 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: create Server!SSL "AdminServer!AdminServer" as obj2
    2014-04-02 14:11:18,735 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj2 attribute HostnameVerificationIgnored to "true"
    2014-04-02 14:11:18,739 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj2 attribute HostnameVerificationIgnored to "true"
    2014-04-02 14:11:18,739 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - find User "weblogic" as obj3
    2014-04-02 14:11:18,755 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: find User "weblogic" as obj3
    2014-04-02 14:11:18,755 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - delete obj3
    2014-04-02 14:11:18,763 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: delete obj3
    2014-04-02 14:11:18,764 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - create User "weblogic" as obj4
    2014-04-02 14:11:18,768 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: create User "weblogic" as obj4
    2014-04-02 14:11:18,771 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute PeriodLength to "200000"
    2014-04-02 14:11:18,807 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute PeriodLength to "200000"
    2014-04-02 14:11:18,807 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute IdlePeriodsUntilTimeout to "20"
    2014-04-02 14:11:18,815 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute IdlePeriodsUntilTimeout to "20"
    2014-04-02 14:11:18,815 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute DGCIdlePeriodsUntilTimeout to "21"
    2014-04-02 14:11:18,821 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute DGCIdlePeriodsUntilTimeout to "21"
    2014-04-02 14:11:18,822 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj1 attribute IdleConnectionTimeout to "1000"
    2014-04-02 14:11:18,830 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj1 attribute IdleConnectionTimeout to "1000"
    2014-04-02 14:11:18,833 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set obj4 attribute Password to "********"
    2014-04-02 14:11:18,837 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set obj4 attribute Password to "********"
    2014-04-02 14:11:18,837 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set config option OverwriteDomain to "true"
    2014-04-02 14:11:18,837 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set config option OverwriteDomain to "true"
    2014-04-02 14:11:18,837 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - set config option JavaHome to "C:/Oracle/Middleware/jdk160_29"
    2014-04-02 14:11:18,837 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: set config option JavaHome to "C:/Oracle/Middleware/jdk160_29"
    2014-04-02 14:11:18,948 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - validateConfig "KeyStorePasswords"
    2014-04-02 14:11:18,953 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: validateConfig "KeyStorePasswords"
    2014-04-02 14:11:18,954 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - write Domain to "C:/Oracle/Middleware/user_projects/domains/base_domain"
    2014-04-02 14:11:19,441 INFO  [main] com.oracle.cie.domain.DomainChecker - ListenPort internal Validation result= [null]
    2014-04-02 14:11:19,441 INFO  [main] com.oracle.cie.domain.DomainChecker - ListenPort external Validation result= [null]
    2014-04-02 14:11:21,609 INFO  [Thread-1] com.oracle.cie.domain.StartMenu - Creating start menu program=C:\Oracle\Middleware\user_projects\domains\base_domain\bin\startWebLogic.cmd link=Start Admin Server for Weblogic Server Domain
    2014-04-02 14:11:21,659 INFO  [Thread-1] com.oracle.cie.domain.StartMenu - Creating start menu program=C:\Oracle\Middleware\user_projects\domains\base_domain\bin\stopWebLogic.cmd link=Stop Admin Server
    2014-04-02 14:11:21,667 INFO  [Thread-1] com.oracle.cie.domain.StartMenu - Creating start menu program=C:\Windows\system32\rundll32.exe link=Admin Server Console
    2014-04-02 14:11:21,759 INFO  [Thread-1] com.oracle.cie.domain.DomainRegistryWrapper - need to initialize domainRegistrydocument object
    2014-04-02 14:11:21,777 INFO  [Thread-1] com.oracle.cie.domain.DomainGenerator - Domain Generation Successful!
    2014-04-02 14:11:21,783 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: write Domain to "C:/Oracle/Middleware/user_projects/domains/base_domain"
    2014-04-02 14:11:21,784 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - close template
    2014-04-02 14:11:21,784 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: close template
    2014-04-02 14:11:21,784 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - read domain from "C:/Oracle/Middleware/user_projects/domains/base_domain"
    2014-04-02 14:11:21,967 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - succeed: read domain from "C:/Oracle/Middleware/user_projects/domains/base_domain"
    2014-04-02 14:11:21,967 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - add template C:/Oracle/Middleware/oracle_common/common/templates/applications/jrf_template_11.1.1.jar to domain
    2014-04-02 14:11:22,011 WARN  [main] com.oracle.cie.domain.template.dependency.TemplateSelectionTarget - Catalog does not have matching template for location C:\Users\GZ\AppData\Local\Temp\tmp1396419069239wls.jar
    2014-04-02 14:11:22,071 INFO  [main] com.oracle.cie.domain.WLSTemplateBuilder - No template-database.xml found in template
    2014-04-02 14:11:22,100 INFO  [main] com.oracle.cie.domain.WLSTemplateBuilder - No template-database.xml found in template
    2014-04-02 14:11:22,101 ERROR [main] com.oracle.cie.domain.ConfigGroupsEngine$ConfigTopology - Multiple definitions of server-group BI-ADF-ADMIN-SVR are not allowed
    2014-04-02 14:11:22,101 INFO  [main] com.oracle.cie.domain.script.ScriptExecutor - fail: add template C:/Oracle/Middleware/oracle_common/common/templates/applications/jrf_template_11.1.1.jar to domain
    2014-04-02 14:11:22,101 ERROR [main] com.oracle.cie.domain.script.ScriptExecutor - fail: add template C:/Oracle/Middleware/oracle_common/common/templates/applications/jrf_template_11.1.1.jar to domain
    com.oracle.cie.domain.ConfigGroupsException: Multiple definitions of server-group BI-ADF-ADMIN-SVR are not allowed
    at com.oracle.cie.domain.ConfigGroupsEngine$ConfigTopology.merge(ConfigGroupsEngine.java:2762)
    at com.oracle.cie.domain.ConfigGroupsEngine.mergeTopology(ConfigGroupsEngine.java:551)
    at com.oracle.cie.domain.ConfigGroupsEngine.merge(ConfigGroupsEngine.java:479)
    at com.oracle.cie.domain.AbstractTemplate.addConfigGroups(AbstractTemplate.java:314)
    at com.oracle.cie.domain.script.ScriptExecutor.addTemplate(ScriptExecutor.java:605)
    at com.oracle.cie.domain.script.jython.WLScriptContext.addTemplate(WLScriptContext.java:416)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.python.core.PyReflectedFunction.__call__(Unknown Source)
    at org.python.core.PyMethod.__call__(Unknown Source)
    at org.python.core.PyObject.__call__(Unknown Source)
    at org.python.core.PyInstance.invoke(Unknown Source)
    at org.python.pycode._pyx3.addTemplate$20(C:\Users\GZ\AppData\Local\Temp\WLSTOfflineIni364664194239939514.py:89)
    at org.python.pycode._pyx3.call_function(C:\Users\GZ\AppData\Local\Temp\WLSTOfflineIni364664194239939514.py)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyFunction.__call__(Unknown Source)
    at org.python.pycode._pyx15.f$0(C:\Users\GZ\AppData\Local\Temp\tmp1396419069304.py:42)
    at org.python.pycode._pyx15.call_function(C:\Users\GZ\AppData\Local\Temp\tmp1396419069304.py)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyCode.call(Unknown Source)
    at org.python.core.Py.runCode(Unknown Source)
    at org.python.util.PythonInterpreter.execfile(Unknown Source)
    at weblogic.management.scripting.WLST.main(WLST.java:139)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.WLST.main(WLST.java:29)

    hi user ...
    on windows there are some steps in front of installation and configuration.
    1) cleare the Windows Env (Path .. Programme x86 )
         no Blank in Path and so on
    2) insert into your local host file your server and IP Adress
    3) in Windows 32 setup of WLS is JDK included so you don't have to install the jdk in front of WLS
    4) verify if you are using the right installation medium (jdk 32 bit, wls 32 bit , fmw 32 bit
    in your OraInventory/logs directory is a *.out file for your installation please can you put this file in the forum
    is there a nodemanager up and running (if so please stop)
    Jan-Peter

  • Oracle Portal and Discoverer Integration

    Portal Version: 9.0.2.0.1
    RDBMS Versjion: 9.0.1.3
    OS/Vers. Where Portal is Installed:: Suse 7 SLES
    Error Number(s)::
    Oracle Portal and Discoverer Integration
    We're trying to integrate Discoverer with Portal unsuccessfully.
    We made many things in accordance with oracle's documentation until add discoverer portlets (worksheet and list of workbooks) in a test page.
    In view mode, the worksheet portlet shows the error:
    "The portlet has not been defined. The publisher must define the portlet by clicking on Edit Defaults for the portlet on the edit mode of this page. Please contact the publisher of this page."
    We think we have to edit properties before. Is this? Anyway edit worksheet portlet crashes between step 1 and 2. The error is: "The listener returned the following Message: 500 Internal Server Error".
    We have a public conection created in EM and a discoverer application which can be viewed using plus or viewer.
    Furthermore, it's not possible delete the added portlets neither the page that contain it. The error at delete is:
    Error: An unexpected error occurred: User-Defined Exception (WWC-44082)
    (WWC-00000)
    An unexpected error has occurred in portlet instances: User-Defined Exception (WWC-
    44846)
    An unexpected error occurred: User-Defined Exception (WWC-43000)
    The following error occurred during the call to Web provider:
    oracle.portal.provider.v2.PortletNotFoundException
    at oracle.portal.utils.v2.ContainerException.fillInStackTrace(Unknown Source)
    at java.lang.Throwable.<init>(Throwable.java:78)
    at java.lang.Exception.<init>(Exception.java:29)
    at oracle.portal.utils.v2.ContainerException.<init>(Unknown Source)
    at oracle.portal.provider.v2.PortletException.<init>(Unknown Source)
    at oracle.portal.provider.v2.PortletNotFoundException.<init>(Unknown Source)
    at oracle.disco.portlet.provider.DiscoPortletPersonalizationMgr.destroy
    (DiscoPortletPersonalizationMgr.java:65)
    at oracle.portal.provider.v2.DefaultPortletInstance.deregister(Unknown Source)
    at oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.deregisterPortlet
    (Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.doMethodCall(Unknown Source)
    at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.processInternal(Unknown Source)
    at oracle.webdb.provider.v2.utils.soap.SOAPProcessor.process(Unknown Source)
    at oracle.webdb.provider.v2.adapter.SOAPServlet.doSOAPCall(Unknown Source)
    at oracle.webdb.provider.v2.adapter.SOAPServlet.service(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
    at com.evermind.server.http.ResourceFilterChain.doFilter
    (ResourceFilterChain.java:59)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
    at com.evermind.server.http.ServletRequestDispatcher.invoke
    (ServletRequestDispatcher.java:523)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal
    (ServletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest
    (HttpRequestHandler.java:735)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:151)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)
    (WWC-43147)
    Edit properties for portlet List of Workbook works but in view mode we have the error in the portlet area:
    "Failed to refresh portlet. Please verify that the information used to create the
    portlet instance or customization is still valid. Otherwise, please contact your
    iAS administrator. oracle.discoiv.controller.FatalControllerException:
    DiscoNetworkException - Nested exception: org.omg.CORBA.OBJECT_NOT_EXIST: minor
    code: 0 completed: No null"
    Any ideas?
    Thanks

    Hi there,
    Have you applied any patches to 9ias since it was first installed? We had the same problem and had to apply a couple of patches to get the portlets working.
    1. Apply the 9.0.2.53.16 one-off patch for Oracle 9iAS Discoverer which takes Discoverer up to 9.0.2.53.16. This patch appears to be password protected and you need to get someone at Oracle support to give you a password.
    2. Apply the Discoverer Portlet Provider: 9.0.2.53.00c patch (patch no. 2595444) which gives you a new discportal.xsl file that actually works. It's this second step that solves your problem but you need to do step 1 before this. This is password protected as well.
    3. As you've upgraded Disco on the server to 9.0.2.53, you'll need to upgrade Disco Admin & Desktop within your 9iDS installation using patch no. 2555265. This is because Disco 9.0.2.53 uses an upgraded EUL that Disco Admin & Desktop need to be patched to use.
    This was the course of action Oracle support advised us about nine months ago. Of course they may have released a further patch to Disco that does 1 & 2 in one go, but we regularly carry out steps 1 and 2 on servers we use and we can use the Disco portlets successfully.
    Hope this helps
    Mark Rittman
    [email protected]

  • Oracle optimizer and heterogeneous services (Transparent Gateway for ODBC)

    Hi everyone!
    We have the following configuration:
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production.
    Oracle Database Gateway for ODBC 11.2.0.2.0 on the same machine as Oracle DB.
    Non-Oracle DB installed on a different hardware accessed through Oracle Gateway for ODBC via dblink.
    Now, we have to query the remote non-Oracle system and retrieve some data. For the sake of brevity let's suppose we have the following table in our non-Oracle DB:
    create table test (
         ip_address varchar(15),
         start_time datetime,
         end_time datetime
    And we run the following SQL query against the remote table on our Oracle DB:
    SELECT start_time,end_time,ip_address
    FROM remote_table@db_link
    WHERE
    end_time >= to_date('2011-10-11 00:00:00','rrrr-mm-dd hh24:mi:ss')
    OR (
    end_time IS NULL AND start_time >= to_date('2011-10-11 00:00:00','rrrr-mm-dd hh24:mi:ss')
    AND start_time <= to_date('2011-10-12 00:00:00','rrrr-mm-dd hh24:mi:ss')
    AND ip_address = '127.0.0.1';
    But, having query monitoring on the remote DB enabled, we see that the actual query on the remote site looks like this:
    SELECT "START_TIME","END_TIME","IP_ADDRESS"
    FROM "REMOTE_TABLE"
    WHERE "IP_ADDRESS"='127.0.0.1' AND "START_TIME"<=?
    All references to END_TIME column are gone from WHERE clause for whatever reason.
    However, Oracle execution plan shows us the following:
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Inst |IN-OUT|
    | 0 | SELECT STATEMENT | | 1 | 27 | 200 (0)| 00:00:03 | | |
    |* 1 | FILTER | | 1 | 27 | 200 (0)| 00:00:03 | | |
    | 2 | REMOTE | REMOTE_TABLE | | | | | DB_LINK | R->S |
    Predicate Information (identified by operation id):
    1 - filter("END_TIME">=TO_DATE('2011-10-11 00:00:00','rrrr-mm-dd hh24:mi:ss') OR
    "END_TIME" IS NULL AND "START_TIME">=TO_DATE('2011-10-11 00:00:00','rrrr-mm-dd hh24:mi:ss'))
    Remote SQL Information (identified by operation id):
    2 - SELECT "END_TIME","IP_ADDRESS","START_TIME" FROM "REMOTE_TABLE" WHERE
    "IP_ADDRESS"='127.0.0.1' AND "START_TIME"<=:1 (accessing 'DB_LINK' )
    This actually means that Oracle CBO decided that it will apply filter on END_TIME column after having retrieved the data from the remote site. We don't want this behaviour but have no idea how to affect execution plan in this case.
    So, the question is: How can we force Oracle CBO to not change the initial query and pass it to the remote site "as is"? Is there any way we can achieve this goal?
    Edited by: user12024904 on 28-Oct-2011 04:05

    Hi,
    Our Oracle DB and Gateway are running on the following system:
    HP-UX B.11.31 U ia64
    The following SQL code is executed in SQLPlus:
    SELECT start_time,end_time,ip_address
    FROM ip_acc_complete@gr_link
    WHERE
    END_TIME >= to_date('2010-10-21 00:00:00','rrrr-mm-dd hh24:mi:ss')
    OR (
    END_TIME is null AND START_TIME >= to_date('2010-10-21 00:00:00','rrrr-mm-dd hh24:mi:ss')
    AND START_TIME <= to_date('2010-10-22 00:00:00','rrrr-mm-dd hh24:mi:ss')
    AND IP_ADDRESS = '127.0.0.1';
    Gateway debug trace shows the following:
    Oracle Corporation --- TUESDAY NOV 01 2011 14:59:15.254
    Heterogeneous Agent Release
    11.2.0.2.0
    Oracle Corporation --- TUESDAY NOV 01 2011 14:59:15.254
    Version 11.2.0.2.0
    HOSGIP for "HS_FDS_TRACE_LEVEL" returned "ON"
    HOSGIP for "HS_FDS_SHAREABLE_NAME" returned "/usr/local/greenwich64/lib/libodbc.so.1"
    HOSGIP for "HS_OPEN_CURSORS" returned "50"
    HOSGIP for "HS_FDS_FETCH_ROWS" returned "100"
    HOSGIP for "HS_LONG_PIECE_TRANSFER_SIZE" returned "65536"
    HOSGIP for "HS_NLS_NUMERIC_CHARACTER" returned ".,"
    HOSGIP for "HS_KEEP_REMOTE_COLUMN_SIZE" returned "OFF"
    HOSGIP for "HS_FDS_DELAYED_OPEN" returned "TRUE"
    HOSGIP for "HS_FDS_WORKAROUNDS" returned "0"
    HOSGIP for "HS_FDS_MBCS_TO_GRAPHIC" returned "FALSE"
    HOSGIP for "HS_FDS_GRAPHIC_TO_MBCS" returned "FALSE"
    HOSGIP for "HS_FDS_RECOVERY_ACCOUNT" returned "RECOVER"
    HOSGIP for "HS_FDS_TRANSACTION_LOG" returned "HS_TRANSACTION_LOG"
    HOSGIP for "HS_FDS_TIMESTAMP_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_DATE_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_MAP_NCHAR" returned "TRUE"
    HOSGIP for "HS_FDS_RESULTSET_SUPPORT" returned "FALSE"
    HOSGIP for "HS_FDS_RSET_RETURN_ROWCOUNT" returned "FALSE"
    HOSGIP for "HS_FDS_PROC_IS_FUNC" returned "FALSE"
    HOSGIP for "HS_FDS_REPORT_REAL_AS_DOUBLE" returned "FALSE"
    using query as default value for "HS_FDS_DEFAULT_OWNER"
    HOSGIP for "HS_SQL_HANDLE_STMT_REUSE" returned "FALSE"
    SQL text from hgopars, id=1, len=117 ...
    00: 53454C45 43542022 454E445F 54494D45 [SELECT "END_TIME]
    10: 222C2249 505F4144 44524553 53222C22 [","IP_ADDRESS","]
    20: 53544152 545F5449 4D452220 46524F4D [START_TIME" FROM]
    30: 20224950 5F414343 5F434F4D 504C4554 [ "IP_ACC_COMPLET]
    40: 45222057 48455245 20224950 5F414444 [E" WHERE "IP_ADD]
    50: 52455353 223D2731 32372E30 2E302E31 [RESS"='127.0.0.1]
    60: 2720414E 44202253 54415254 5F54494D [' AND "START_TIM]
    70: 45223C3D 3F [E"<=?]
    Deferred open until first fetch.
    Performing delayed open.
    The non-Oracle DB is CopperEye Retrieval Server with its own custom ODBC driver.
    CopperEye query log shows that the following query is received from Oracle Gateway:
    01/11/2011 14:26:31 - NEW QUERY :
    SELECT "END_TIME","IP_ADDRESS","START_TIME" FROM "IP_ACC_COMPLETE" WHERE "IP_ADDRESS"='127.0.0.1' AND "START_TIME"<=?
    which complies with the information in Oracle Gateway trace file.
    So, it seems that it's Oracle DB decision to split the original WHERE clause into two parts, delegate one part to the remote site, retrieve the data and then apply the remaining filter locally.

  • Oracle XE and character set

    Hello all,
    I installed Oracle XE on RHEL 4 Linux and I found out that database character set is AL32UTF8. Does anyone know why oracle choose this character set? Maybe because of NLS_LANG env variable? Is it possible to change it to EE8ISO8859P2? Since database is still empty I can drop it and crate new database.
    Do you think it is possible to set some env variables and do new oracle xe instalation including database with iso charset?
    I want to have EE8ISO8859P2 charset because of doing exp/imp from another oracle iso db to oracle xe and it is much easier to do this without charset conversion.
    Any help will be appreciated.
    regards,
    Miha

    When you download XE, you have a choice - take the 'western european' character set download, or the 'unicode' download.
    No other choices.
    Join us over in the XE forum where people have discussed this and found workarounds. Info about finding that forum at Re: Oracle XE Installation failed

  • Oracle Thin and IE4

    Hi,
    I have written an applet using Oracle Thin (classes111.zip and Oracle 7.3.4 and JDK 1.1.4).
    I have my Oracle Server and my Web Server on the same machine.
    Everything works fine with Netscape 4.7.
    But with IE4 I have this message:
    java.sql.SQLException: No suitable driver
    java.lang.NullPointerException
    Can anyone explain me what it means and what I have to do ?
    Thanks a lot.
    Ing. TOUSSET Olivier
    null

    Can you try registering the driver explicitly using DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()). I think that there was some issue with Microsoft's VM that doing Class.forName() doesn't register the driver automatically. But I am not 100% sure.

Maybe you are looking for