Hibernate with oracle 9 and 10

Hi,
We're are developing application using hibernate and oracle database. Our application currently using hibernate 3.1.2 and oracle jdbc 9. Because we are using 10.2 version of database, we decided to migrate to jdbc 10.2.0.4 driver version. And there the problem appears: one of queries, which joins 2 tables (one about 550K rows, and second about 130K rows), using hibernate and jdbc 9 runs in seconds, but using hibernate and jdbc 10 runs in 10 minutes. But the same query executed with pure jdbc 10 (without hibernate) executes normally (as on jdbc 9). During execution cpu usage is 100%, it doesn't happen on jdbc 9. I traced sql session and the execution plans for both jdbc version are the same. Fetch_size in jdbc is the same in both cases. In tkprof out files i discovered, that fetch time for this query is extremely long on jdbc 10, no other differences could be found. Has anyone experienced such behavior of hibernate and jdbc drivers with different versions? Is there any chance to migrate from jdbc 9 to jdbc 10?
Regards
Olek

Hello
I can't explain the longer fetch time
I find it strange that the oracle shadow processes is busy, that would indicate an issue on the database side
That is why I asked to do more investigation into the trace
If you set those events, you will get more info in your trace file, you will get the oracle wait events that occurred
This will give more information about why the oracle shadow process was at 100%
Here is what I am looking for, I set the events and then ran a select on our database , here is the output from tkprof
See at the bottom where it has the 'Elapsed times include waiting on following events:', that is what I'd like to see
If you already have this detailed info, could you post it for both the 9 and 10 test?
select count(*)
from
mytab where mycol like '%xx%'
call count cpu elapsed disk query current rows
Parse 1 0.02 0.02 0 0 1 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 9.45 56.14 237740 237762 0 1
total 4 9.47 56.17 237740 237762 1 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 299
Rows Row Source Operation
1 SORT AGGREGATE (cr=237762 pr=237740 pw=0 time=56147059 us)
3 TABLE ACCESS FULL mytab (cr=237762 pr=237740 pw=0 time=53139375 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
db file scattered read 14914 0.19 51.74
SQL*Net message from client 2 4.94 5.10
If you can't create a logon trigger, could you change your java to run these alter sessions before running the sql?
alter session set sql_trace=true;
alter session set events '10046 trace name context forever, level 12';
alter session set events '10053 trace name context forever, level 1';
Thanks

Similar Messages

  • What is dead locks with oracle and wht is race condition wrt oracle

    what is dead locks with oracle and wht is race condition wrt oracle

    > And do you know what a race condition is all about?
    It is a term used to indicate several processes attempting to use the same resource that is not capable of servicing all these at the same time. This could be due to the resource not being thread safe or implemented as a serialised resource.
    It is often easy to look up definitions on Google. In the Google search field, type "define:race condition".
    The following [url http://www.google.co.za/search?hl=en&q=define%3Arace+condition&btnG=Google+Search&meta=]web definitions page is displayed.

  • How do I set miminum # of connections for pool with Oracle and Tomcat?

    Hi,
    I can't seem to find any attribute to initialize the number of connections for my connection pool. Here is my current context.xml file under my /App1 directory:
    <Context path="/App1" docBase="App1"
    debug="5" reloadable="true" crossContext="true">
    <Resource name="App1ConnectionPool" auth="Container"
    type="oracle.jdbc.pool.OracleDataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    factory="oracle.jdbc.pool.OracleDataSourceFactory"
    url="jdbc:oracle:thin:@127.0.0.1:1521:oddjob"
    user="app1" password="app1" />
    </Context>
    I've been googling and reading forums, but haven't found a way to establish the minimum number of connections. I've tried all sorts of parameters like InitialLimit, MinLimit, MinActive, etc, with no success.
    Here is some sample code that I am testing:
    package web;
    import oracle.jdbc.pool.OracleDataSource;
    import oracle.jdbc.OracleConnection;
    import javax.naming.*;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Properties;
    public class ConnectionPool {
    String message = "Not Connected";
    public void init() {
    OracleConnection conn = null;
    ResultSet rst = null;
    Statement stmt = null;
    try {
    Context initContext = new InitialContext();
    Context envContext = (Context) initContext.lookup("java:/comp/env");
    OracleDataSource ds = (OracleDataSource) envContext.lookup("App1ConnectionPool");
    message = "Here.";
         String user = ds.getUser();
    if (envContext == null)
    throw new Exception("Error: No Context");
    if (ds == null)
    throw new Exception("Error: No DataSource");
    if (ds != null) {
    message = "Trying to connect...";
    conn = (OracleConnection) ds.getConnection();
    Properties prop = new Properties();
    prop.put("PROXY_USER_NAME", "adavey/xxx");
    if (conn != null) {
    message = "Got Connection " + conn.toString() + ", ";
              conn.openProxySession(OracleConnection.PROXYTYPE_USER_NAME,prop);
    stmt = conn.createStatement();
    rst = stmt.executeQuery("SELECT username, server from v$session where username is not null");
    while (rst.next()) {
    message = "DS User: " + user + "; DB User: " + rst.getString(1) + "; Server: " + rst.getString(2);
    rst.close();
    rst = null;
    stmt.close();
    stmt = null;
    conn.close(); // Return to connection pool
    conn = null; // Make sure we don't close it twice
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    // Always make sure result sets and statements are closed,
    // and the connection is returned to the pool
    if (rst != null) {
    try {
    rst.close();
    } catch (SQLException e) {
    rst = null;
    if (stmt != null) {
    try {
    stmt.close();
    } catch (SQLException e) {
    stmt = null;
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException e) {
    conn = null;
    public String getMessage() {
    return message;
    I'm using a utility to repeatedly call a JSP page that uses this class and displays the message variable. This utility allows me to specify the number of concurrent web requests and an overall number of requests to try. While that is running, I look at V$SESSION in Oracle and occassionaly, I will see a brief entry for app1 or adavey depending on the timing of my query and how far along the code has processed in this example. So it seems that I am only using one connection at a time and not a true connection pool.
    Is it possible that I need to use the oci driver instead of the thin driver? I've looked at the javadoc for oci and the OCIConnectionPool has a setPoolConfig method to set initial, min and max connections. However, it appears that this can only be set via Java code and not as a parameter in my context.xml resource file. If I have to set it each time I get a database connection, it seems like it sort of defeats the purpose of having Tomcat maintain the connection pool for me and that I need to implement my own connection pool. I'm a newbie to this technology so I really don't want to go this route.
    Any advice on setting up a proper connection pool that works with Tomcat and Oracle proxy sessions would be greatly appreciated.
    Thanks,
    Alan

    Well I did some more experiments and I am able to at least create a connection pool within my example code:
    package web;
    import oracle.jdbc.pool.OracleDataSource;
    import oracle.jdbc.OracleConnection;
    import javax.naming.*;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Properties;
    public class ConnectionPool {
    String message = "Not Connected";
    public void init() {
    OracleConnection conn = null;
    ResultSet rst = null;
    Statement stmt = null;
    try {
    Context initContext = new InitialContext();
    Context envContext = (Context) initContext.lookup("java:/comp/env");
    OracleDataSource ds = (OracleDataSource) envContext.lookup("App1ConnectionPool");
    message = "Here.";
         String user = ds.getUser();
    if (envContext == null)
    throw new Exception("Error: No Context");
    if (ds == null)
    throw new Exception("Error: No DataSource");
    if (ds != null) {
    message = "Trying to connect...";
    boolean cache_enabled = ds.getConnectionCachingEnabled();
    if (!cache_enabled){
    ds.setConnectionCachingEnabled(true);
    Properties cacheProps = new Properties();
    cacheProps.put("InitialLimit","5");
         cacheProps.put("MinLimit","5");
    cacheProps.put("MaxLimit","10");
    ds.setConnectionCacheProperties(cacheProps);
              conn = (OracleConnection) ds.getConnection();
    Properties prop = new Properties();
    prop.put("PROXY_USER_NAME", "adavey/xyz");
    if (conn != null) {
    message = "Got Connection " + conn.toString() + ", ";
              conn.openProxySession(OracleConnection.PROXYTYPE_USER_NAME,prop);
    stmt = conn.createStatement();
    //rst = stmt.executeQuery("SELECT 'Success obtaining connection' FROM DUAL");
    rst = stmt.executeQuery("SELECT user, SYS_CONTEXT ('USERENV', 'SESSION_USER') from dual");
    while (rst.next()) {
    message = "DS User: " + user + "; DB User: " + rst.getString(1) + "; sys_context: " + rst.getString(2);
    message += "; Was cache enabled?: " + cache_enabled;
    rst.close();
    rst = null;
    stmt.close();
    stmt = null;
    conn.close(OracleConnection.PROXY_SESSION); // Return to connection pool
    conn = null; // Make sure we don't close it twice
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    // Always make sure result sets and statements are closed,
    // and the connection is returned to the pool
    if (rst != null) {
    try {
    rst.close();
    } catch (SQLException e) {
    rst = null;
    if (stmt != null) {
    try {
    stmt.close();
    } catch (SQLException e) {
    stmt = null;
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException e) {
    conn = null;
    public String getMessage() {
    return message;
    In my context.xml file, I tried to specify the same Connection Cache Properties as attributes, but no luck:
    <Context path="/App1" docBase="App1"
    debug="5" reloadable="true" crossContext="true">
    <Resource name="App1ConnectionPool" auth="Container"
    type="oracle.jdbc.pool.OracleDataSource"
    driverClassName="oracle.jdbc.OracleDriver"
    factory="oracle.jdbc.pool.OracleDataSourceFactory"
    url="jdbc:oracle:thin:@127.0.0.1:1521:oddjob"
    user="app1" password="app1"
    ConnectionCachingEnabled="1" MinLimit="5" MaxLimit="20"/>
    </Context>
    These attributes seemed to have no effect:
    ConnectionCachingEnabled="1" ; also tried "true"
    MinLimit="5"
    MaxLimit="20"
    So basically if I could find some way to get these attributes set within the context.xml file instead of my code, I would be a happy developer :-)
    Oh well, it's almost Miller time here on the east coast. Maybe a few beers will help me find the solution I'm looking for.

  • Installation of CRM 2007 in Windows with oracle and cluster environment

    Dear Experts,
    We are about to start the installation of CRM 2007 (ABAP+JAVA) with
    Oracle 10g on Windows x64 in cluster environment. In the SAPINST dialog
    box under High availability option, I could see installation options like ASCS
    Instance, SCS Instance, First MSCS node, Database Instance, Additional
    MSCS Node, Enqueue Replication Server, Central Instance and Dialog
    Instance.
    I have gone through the installation guide. I have below queries
    regarding the same. Can you please clarify the same
    1) Our requirement is we want to have an ACTIVE-ACTIVE cluster setup
    with sap service running in Node A and Database running in Node B. Can
    we have this setup in ABAP+JAVA setup
    2) Also,in the SAPINST dialog box as said above except last two
    (Central and Dialoge instance) as per standard installation guide are
    to be installed in shared drives as per the requirement. But, central
    and dialog are said to be installed locally on any one node in MSCS or
    in separate server. As per my understanding Dialog instance will be
    used for load balancing which we do not require now. Hence I feel this
    is optional in our case. Where as Central Instance I am not able to
    understand why this option is for? Is it mandatory to be installed or optional. If
    so, when I installed it in one of the MSCS node the incase of failover
    how does it effect the system. As per my understanding ASCS and SCS
    comprise central instance.
    Please clarify and thanks in advance.
    Regards,
    Sharath Babu M
    +91-9003072891

    I am following as per the standard installation guide.
    Regards
    Sharath

  • Some problems with Oracle and XA in WLS 6.1

    Hi,
    I am using WLS6.1 SP4 with Oracle Thin driver 8.1.7 and TxDataSources with ConnectionPools
    using XA.
    I am getting the following error:
    java.sql.SQLException: ORA-00604: error producido a nivel 1 de SQL recursivo
    ORA-01000: número máximo de cursores abiertos excedido
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1657)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:314)
         at weblogic.jdbc.jta.PreparedStatement.executeQuery(PreparedStatement.java:69)
         at weblogic.jdbc.rmi.internal.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:56)
         at weblogic.jdbc.rmi.SerialPreparedStatement.executeQuery(SerialPreparedStatement.java:42)
         at delta.beans.common.DBQueriesRemesa.getSecuencia(DBQueriesRemesa.java:55)
         at delta.beans.remesas.ImportarRemesa2.remesaRATSB(ImportarRemesa2.java:858)
         at delta.beans.remesas.ImportarRemesa2.execute(ImportarRemesa2.java:122)
         at java.lang.reflect.Method.invoke(Native Method)
         at delta.servlet.contrl.service(contrl.java:161)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at delta.servlet.VolverFiltro.doFilter(VolverFiltro.java:101)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2643)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    I have read about this issue in the newsgroup and I know it seems to be a bug
    in Oracle Driver.
    So, as a workaround, I'm trying to use the Oracle's prepared statement cache features
    in order to avoid creations of new statements for each query. I noticed that the
    WebLogic prepared statement cache does not work properly, because I put a value
    of 10 but when inspecting with WLShell it haven't any hit in the statement cache.
    In order to use Oracle's prepared statement cache I have to enable it in the physical
    connection, but I don't found in weblogic.jar the class weblogic.jdbc.extensions.WLConnection
    which have the method getVendorConnection. In the documentation available at http://edocs.beasys.com/wls/docs61/javadocs/index.html
    there is a reference to that class and it haven't any notice since which service
    pack it becomes available.
    So, is there any way to obtain the physical connection?
    Can anybody help me about any of these problems??
    Thanks in advance.
    Jesús.

    The line of code that brings up this exception is:
    multiReq = new
    = new MultipartRequest((ServletRequest)request,
    "c:\\temp", 10485760);
    try this: MultipartRequest multiReq = new MultipartRequest((ServletRequest)request,
    "c:\\temp", 10485760);
    (not sure if that is the problem or not..)

  • Server Issue with Oracle and ASP Connection

    We got a new server and are trying to set it up with Oracle Client to allow our web application to connect to the database server. We are getting connection errors, but on the old server, it works fine. We have Windows 2003 and IIS 6.0 on the new server and Win2K and IIS 5.0 on the old server and it's Oracle 8i. Here is the error...
    Err.description=Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed.
    Err.number=-2147467259
    ... We have the client installed, so not sure what to do from this point on. Can it be some type of a sharing issue, or network firewall issue?

    Have you granted the IIS user read & execute access to the %ORACLE_HOME% directory and subdirectories?
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • How to work with oracle and active directory...

    Hi,
    Can somebody let me know how do i configure active directory with oracle 10g?
    I am trying to do this using configuration wizard but fields are grayed out for me to proceed. It also shows me to prepare active directory to work with oracle first.
    How do i do that?
    Can someone let me know the steps to do so?
    Regards
    Vikas

    Depends on what you want to achieve?
    Usually when you want Enterprise Users (users that are managed by a directory instead of a schema) you will perform other steps than in a scenario where you need some attributes from the AD.
    cu
    Andreas

  • Auto reconnect with Oracle and Hibernate ?

    Hello,
    Does anyone know i can configure Hibernate to connect automatically to an Oracle base in the case of a cut network.
    Thanks,
    Djelloul OMRANE
    [email protected]

    Google's time
    http://www.hibernate.org/56.html

  • Connection Problem with Oracle and Tomcat.

    I was able to enter Oracle using scott/tiger when I did not connect Tomcat.But when I connect tomcat I am unable to log onto Oracle.
    When I logged to the database then I tried to start the Tomcat but it gave an exception.So I went to the task manager and ended the running processes like isqlplus.exe, oracle.exe, tomcat.exe, apache.exe.When I ended all the processes except oracle.exe, tomcat gave an exception. But when I ended oracle.exe Tomcat started working but Oracle stopped working. I don't know what the problem is.
    Can anyone help me out?
    Thanks,
    Sravanthi.

    > Can anyone help me out?
    Yeah sure. Is there a SQL or PL/SQL related question in there.. somewhere.. hiding away?
    After all, you do realise that the name of this forum is SQL and PL/SQL and that it deals with the SQL and PL/SQL languages in the Oracle server.. right?

  • A lot of problems with Oracle and ASP

    Hi, i need to develop a system using ASP and Oracle. I should have started this about 3 weeks ago and I can't in any way connect these 2 technologies.
    First, I tried through ODBC and it could not be done.
    Next, I tried through OLEDB and when I thought that the problem was found...
    set objSessao = Server.CreateObject("OracleInProcServer.XOraSession")
    set objConexao = OraSession.DbOpenDatabase("mozart", "jacto_revendas/bolinha",cint(0))
    These 2 lines seems to be correct, then I had the error "access to object denied", and I read in some forum that it was because some DLLs of %oracle_home%\bin were without permission. I scanned all of them, and gave full access. OK. Then, an error ASP 0177 (error accessing DLL library) appeared and I could not find solution over the Internet.
    And the incredible part is that the error only happens as soon as I start the OS... the second time I try, the script stops and does not show any errors or results... the page keeps processing without an end.
    Please, I can't find anyone that can help me... you are my last hope...
    thanks
    Mozart

    I agree with your suggestion about needing more documentation for APS.NET & Oracle connections. And so the next question is who knows where to find such docs? I've scoured the Oracle & MSDN sites, and have found nothing addressing these permission problems -- at least nothing that fixes the problem. See my recent postings about "access denied exceptions". I've been trying for several weeks to get it fixed, w/o success although I think I'm getting closer & just about to give the ASPNET user total control over EVERYTHING in the oracle home directory tree.

  • High User IO with Oracle and IBM XIV Storage

    Hi
    We are using oracle 10.2.0.4 with IBM XIV storage and we have very high user IO in the database. We faced this issue after migrating our storage from SCV to XIV. Almost all our DB backgroud jobs are running for long hours after this migration.
    Is there any oracle parameters require to modify to reduce this user IO? Any parameter modification required in XIV? Please advice

    There is no such parameter, sy is yanking your chain. This is the typical response when people ask for a solution akin to a magic switch they can flip to have the database run faster.
    The long version is that without supplying technical information the best you can hope for is WAG (Wild Ass Guesses) as to where your problem may be found. Did you raise a support request with IBM? Did you run any statistics? What have you checked so far?
    You will need to help provide information for people to help you in a free volunteer forum.
    If you want a magic switch solution without doing any work yourself there are plenty of consultancy firms who will happily solve your problem for money.

  • Getting started with oracle and jdbc

    i have downloaded ojdbc14.zip from oracle.com
    it's documentation only tells you about the api and the packages and nothing about how to configure it.
    how do i get started? where do i unzip those files and what to do next?
    please help

    "The Old oracle.jdbc.driver Package Will Go Away Soon
    If you still have existing applications that use the
    old oracle.jdbc.driver
    package, now is the time to convert your code."
    And who is so foolish as to use concrete types
    instead of java.sql and javax.sql interfaces or embed
    driver class names in their code? Well, anybody who's more interested in optimal performance than being generic, and willing to put up with the headaches of that, such as providers of high-performance OR mapping tools or someone tuning a very heavily used bit. Or anybody working in a committed Oracle-only shop. It's not a one-size-fits-all world...
    Again, Oracle is evolving the standard. No, the standard is Sun's java.sql interface.Yea, Sun evolved Java, and Oracle is recommending the use of Datasources to keep step with that evolution...
    This still
    works, but Oracle is shifting away from <sid> and
    using <service name> instead. The alternate syntax
    for the URL is:
    String url=jdbc:oracle:thin:@<host>:<port>/<database>
    This has been true for as long as Oracle has had a
    thin, type IV JDBC driver. The URL syntax hasn't
    changed.
    Yes it has and Oracle says it has, here:
    http://download-west.oracle.com/docs/cd/B14117_01/java.101/b10979/urls.htm#BEIJFHHB
    Wherein it is written, in Section 3.2.1 of the Oracle� Database JDBC Developer's Guide and Reference, the sesction on the several supported URL formats for Oracle 10.1
    Notes:
    * Oracle Service IDs are no longer supported at 10g Release 1 (10.1).
    They go on to list three URL styles supported:
    Oracle Net connection descriptor - like an entry in tnsnames.ora (ick!)
    Thin-style service name - the most common, what was quoted above.
    LDAP syntax - for having an LDAP service resolve the database for you
    However, in the old 8.1.7 JDBC documentation, here:
    http://download-east.oracle.com/docs/cd/A87860_01/doc/java.817/a83724/basic1.htm#1006213
    Oracle lists support for:
    Net8 connection descriptor - Net8 is the old name for Oracle Net
    Thin-style sid name - what was quoted in the post to which I first responded.
    Thin-style sid name syntax has a colon between the port and the sid; thin-style service name syntax has a forward slash between the port and the service name. SIDs and service names are not the same thing, although they serve the same purpose in a URL (connecting you to the right instance) and often have the same value. However, a SID for a database is set at DB creation time, is unique to the DB, and cannot be changed easily. Multiple service names can be configured for a database, and they can easily be changed (if you're the DBA). Oracle is providing an additional leval of abstraction by moving to service names, to support additional features and choices. While many installations don't need all that and have in essence ignored the distinction bewteen SID and service name, some multi-database projects can benefit from it.
    >
    StuDerby, I think you should look into this a bit
    more. Your advice is far from optimal, IMO.
    Yeah, I could've taken the time to write a more generic, newbie friendly repsonse; instead, I lifted directly from the Oracle documentation that was cited earlier since newbies seem to have an aversion to reading documentation.

  • Distributed ttransaction with Oracle and MQseries

    Hi,
    I am leveraging a Tuxedo architecture on HP-UX IA64 that utilizes two XA resource managers, MQSeries and Oracle. The use of the resource managers is based on a coordinated 2 phase commit method (TPBEGIN - TPCOMMIT).
    The application running on tuxedo has beem migrated from Mainframe environment (z/OS + CICS + DB2 + MQ)
    The systems functionally works, , but we continue to experience major performance issues, caused by the fact that in the original application migrated from the CICS environment executes an high number of syncpoint(s).
    What is observable is that increasing the number of parallel processes (tuxedo servers), the cost of the single syncpoint is much greater than the cost of an atomic elaboration (atomicity) of that same transaction.
    Ex., if the cost of an elaborated transaction is 2 ms, the cost of syncpoint is 30 ms.
    Because we were not able to solve the proble just changing configuration parameters, in this specific case, we have simply reduced the number of syncpoints executed by the application so to lower the cost of syncpoint to the same rate as a transaction.
    Is it possible to have a reference or information on similar use cases of mission-critical Tuxedo/UNIX environments with high volumes? (Millions of transactions)?
    Is it possible to understand if there are parameters that can be set/established at a configuration level in Tuxedo (ubbconfig or others) to deal with the above-stated issue?
    Thanks in advance for any helpful feedback
    Regards
    Roberto

    There are a couple of major and minor mistakes in your listener.ora like specifying 2 times the listener name LISTENER. Using 2 different hostnames on the same machine or specifying the ENVS=LD_LIBRARY_PATH for a Windows Gateway as well as the executable you defined.
    I tried to summarize it in your original thread bust recommend you to log a service request.

  • Installation with Oracle and Solaris 9

    Hi Everyone,
    I'm trying to install EP 6.0 sp8 with WAS 6.40 (java) on a Oracle 9.2.0.4 DB and Solaris 9 OS.
    I have installed this EP version with SQL/Win without problems, but now I have several errors.
    Somebody has installed this successfully ?   Any clue would be helpful.
    I have 2 errors by the moment:
    1) ERROR at line 1:
       ORA-00988: missing or invalid password(s)
       ORA-06512: at line 17
    2) Some problem related with network adapters (My server has 4 network adapters)
    thanks a lot for your help !
    Regards from Mexico,
    Diego Hernández

    Hi Diego,
    you should edit the /etc/hosts file.
    Change the frontend ip adress to the servername and delete other entries for this ip adress(eg XXX-b,XXXX-c).
    Start a new installation(even Database)->then you won't get different profile Startup Scripts.
    Regards,
    Toni

  • Problem with Unicode and Oracle NCLOB fields

    When I try to INSERT a new (N)CLOB into an Oracle database, all is fine until I use a non-ASCII character, such as an accented roman letter, like the "�" (that's '\u00E9') in "caf�" or the Euro Currency symbol "?" (that's '\u20AC' as a Java character literal, just in case the display is corrupted here too). This doesn't happen with "setString", but does happen when streaming characters to the CLOB; however, as Oracle or the driver refuse strings larger than 4000 characters, and as I need to support all the above symbols (and many more), I'm stuck.
    Here's the background to the problem (I've tried to be detailed, after a lot of looking around on the web, I've seen lots of people with similar problems, but no solutions: I've seen and been able to stream ASCII clobs, or add small NCHAR strings, but not stream NCLOBs...).
    I'm using Oracle 9.2.0.1.0 with the "thin" JDBC driver, on a Windows box (XP Pro). My database instance is set up with AL32UTF8 as the database encoding, and UTF8 as the national character set.. I've created a simple user/schema, called LOBTEST, in which I created two tables (see below).
    The basic problems are :
    - with Oracle and JDBC, you can't set the value of a CLOB or NCLOB with PreparedStatement's setString or setCharacterStream methods (as it throws an exception when you send more than 4000 characters)
    - with Oracle, you can only have one LONG VARCHAR-type field per table (according to their documentation) and you MUST read all columns in a set order (amongst other limitations).
    - with a SQL INSERT command, there's no way to set the value of a parameter that's a CLOB (implementations of the CLOB interface can only be obtained by performing a SELECT.... but obviously, when I'm inserting, the record doesn't exist yet...). Workarounds include (possibly) JDBC 4 (doesn't exist yet...) or doing the following Oracle-specific stuff :
    INSERT INTO MyTable (theID,theCLOB) VALUES (1, empty_clob());
    SELECT * FROM MyTable WHERE theId = 1;
    ...and getting the empty CLOB back (via a ResultSet), and populating it. I have a very large application, that's deployed for many of our customers using SapDB and MySQL without a hitch, with "one-step" INSERTS; I can't feasibly change the application into "three-step INSERT-SELECT-UPDATE" just for Oracle, and I shouldn't need to!!!
    The final workaround is to use Oracle-specific classes, described in:
    http://download-east.oracle.com/otn_hosted_doc/jdeveloper/904preview/jdbc-javadoc/index.html
    ...such as CLOB (see my example). This works fine until I add some non-ASCII characters, at which point, irrespective of whether the CLOB data is 2 characters or 2 million characters, it throws the same exception:
    java.io.IOException: Il n'y a plus de donn?es ? lire dans le socket
         at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:716)
         at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:270)
         at oracle.jdbc.driver.OracleClobWriter.flush(OracleClobWriter.java:204)
         at scratchpad.InsertOracleClobExample.main(InsertOracleClobExample.java:61)...where the error message in English is "No more data to read from socket". I need the Oracle-specific "setFormOfUse" method to force it to correctly use the encoding of the NCLOB field, without it, even plain ASCII data is rejected with an exception indicating that the character set is inappropriate. With a plain CLOB, I don't need it, but the plain CLOB refuses my non-ASCII data anyway.
    So, many many thanks in advance for any advice. The remainder of my post includes my code example and a simple SQL script to create the table(s). You can mess around with the source code to test various combinations.
    Thanks,
    Chris B.
    CREATE TABLE NCLOBTEST (
         ID         INTEGER NOT NULL,
         SOMESTRING NCLOB,
         PRIMARY KEY (ID)
    CREATE TABLE CLOBTEST (
         ID         INTEGER NOT NULL,
         SOMESTRING CLOB,
         PRIMARY KEY (ID)
    package scratchpad;
    import java.io.Writer;
    import java.sql.Connection;
    import java.sql.Driver;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.Properties;
    import oracle.jdbc.driver.OracleDriver;
    import oracle.jdbc.driver.OraclePreparedStatement;
    import oracle.sql.CLOB;
    public class InsertOracleClobExample
         public static void main(String[] args)
              Properties jdbcProperties = new Properties();
              jdbcProperties.setProperty( "user", "LOBTEST" );
              jdbcProperties.setProperty( "password", "LOBTEST" );
    //          jdbcProperties.setProperty("oracle.jdbc.defaultNChar","true");
              Driver jdbcDriver = new OracleDriver();
              PreparedStatement pstmt = null;
              Connection connection = null;
              String tableName = "NCLOBTEST";
              CLOB clob = null;
              try
                   connection = jdbcDriver.connect("jdbc:oracle:thin:@terre:1521:orcl", jdbcProperties);
                   pstmt = connection.prepareStatement("DELETE FROM NCLOBTEST");
                   pstmt.executeUpdate();
                   pstmt.close();
                   pstmt = connection.prepareStatement(
                        "INSERT INTO "+tableName+" (ID,SOMESTRING) VALUES (?,?);"
                   clob = CLOB.createTemporary(pstmt.getConnection(), true, CLOB.DURATION_SESSION);
                   clob.open(CLOB.MODE_READWRITE);
                   Writer clobWriter = clob.getCharacterOutputStream();
                   clobWriter.write("Caf? 4,90? TTC");
                   clobWriter.flush();
                   clobWriter.close();
                   clob.close();
                   OraclePreparedStatement opstmt = (OraclePreparedStatement)pstmt;
                   opstmt.setInt(1,1);
                   opstmt.setFormOfUse(2, OraclePreparedStatement.FORM_NCHAR);
                   opstmt.setCLOB(2, clob);
                   System.err.println("Rows affected: "+opstmt.executeUpdate());
              catch (Exception sqlex)
                   sqlex.printStackTrace();
                   try     {
                        clob.freeTemporary();
                   } catch (SQLException e) {
                        System.err.println("Cannot free temporary CLOB: "+e.getMessage());
              try { pstmt.close(); } catch(SQLException sqlex) {}
              try { connection.close(); } catch(SQLException sqlex) {}
    }

    The solution to this is to use a third-party driver. Oranxo works really well.
    - Chris

Maybe you are looking for

  • Colour shift problem in CS5 not in Lightroom

    Hi Guys, This is a long post but to save time Ill try to explain my setup and my problem which has only started in the last three weeks. My setup: Win Xp pro SP3 fully updated on a well speced dell machine/ Lightroom 3 (v 33 v 711369) Cs5 (latest ver

  • Deployment Error due Web Service

    Hi, I try to create a WebService based on the JEE 5 Server. If I create a very simple WebService everything works quite well. But as soon as I try to create a more complex web service I receive a deployment error. The web service method contains a pa

  • I can sign into iCloud

    I dont have an old email address to sign in to iCloud on iOS 10.10.2 and I cant change the password because the email address is not available to me.

  • Previous Purchase Order Price

    While creating Purchase order, if i need to see the Previous Purchase order Price for the material, From where i have to see?

  • Dynamically Size a div ?

    Hello~ I have a CSS-based navigation bar that is populated from a database. Right now, I am hard-coding the width of each button (using a 1-image as a repeating background) in the CSS file, but I was wondering if anyone had an idea of how to set that