Read-timeout-seconds

Hi!
What happens if I set <read-timeout-seconds> to some value
for a read only bean, according to bea's docs the ejbLoad() is called initially when the EJB is created and afterwards, WebLogic Server calls ejbLoad() only at intervals defined by the read-timeout-seconds. Does this mean that Weblogic always runs ejbLoad() every x seconds or ONLY if some client runs findByPrimaryKey() and the interval has expired?
Thanks,
A.

It's done lazily. When you access the bean, WLS checks if currentTime -
lastLoadedTime is > read-timeot-seconds. If so, it calls ejbLoad.
-- Rob
bnmbn ghjhg wrote:
Hi!
What happens if I set <read-timeout-seconds> to some value
for a read only bean, according to bea's docs the ejbLoad() is called initially when the EJB is created and afterwards, WebLogic Server calls ejbLoad() only at intervals defined by the read-timeout-seconds. Does this mean that Weblogic always runs ejbLoad() every x seconds or ONLY if some client runs findByPrimaryKey() and the interval has expired?
Thanks,
A.

Similar Messages

  • read-timeout-seconds not working

    (WL 5.1, SP 11)
    Hi all,
    I'm playing around with Read-Only entity beans, and I get a problem
    with the read-timeout-seconds property. I've set my
    weblogic-ejb-jar.xml like this:
    <ejb-name>product.entity</ejb-name>
    <caching-descriptor>
    <max-beans-in-cache>1000</max-beans-in-cache>
    <cache-strategy>Read-Only</cache-strategy>
    <read-timeout-seconds>60</read-timeout-seconds>
    </caching-descriptor>
    The first call to the EJB caches the database record, and subsequent
    calls use the cache. My problem: Even if I delete the database record
    directly (I know, I shouldn't do that... but like I said, I'm playing
    around here... ;)) and wait for more than 60 seconds, the next call to
    the bean still returns the same cached entry.
    I tried with <idle-timeout-seconds> set to 60, and it doesn't work
    neither.
    I've seen in previous messages that this problem (or similar) was
    fixed in SP4, but I use SP11, so it shouldn't be the problem.
    Thanks for your help!
    Phil

    Hi,
         Have you invoked any Services before calling the Business Service.
    If Yes, then the problem with the Invoked service.In this scenario even if you set the time out period it will not work..
    If No, your request payload is high
    Regards,
    Kiran

  • It's no use settting Timeout Seconds for JTA in WebLogic6.0 under HP_UX11

              Hello,all, I use WebLogic Server 6.0 under HP_UX11. When I execute a long time query
              method with container_manager_transaction, I got a Exception: weblogic.transaction.RoolbackException:
              Transaction timed out after 31 seconds. Then I use the Admin Console to change JTA's
              attribute Timeout seconds from 30 to 600 and restart the server. When I execute the
              query again, the problem still exists. I change the attribute serveral times, but
              it's no use. Do I forget something else? Best Regards. Brent
              

              Hello,all, I use WebLogic Server 6.0 under HP_UX11. When I execute a long time query
              method with container_manager_transaction, I got a Exception: weblogic.transaction.RoolbackException:
              Transaction timed out after 31 seconds. Then I use the Admin Console to change JTA's
              attribute Timeout seconds from 30 to 600 and restart the server. When I execute the
              query again, the problem still exists. I change the attribute serveral times, but
              it's no use. Do I forget something else? Best Regards. Brent
              

  • OSB Business Service is not timing out on Connection/Read timeout

    I have a weird problem with my business service in OSB. I have set the read timeout value as 1 sec and Connection timeout value as 1 sec. The response from backend is taking more than 2 seconds or even 3 seconds but still my business service is not timing out..! My service is still listening to the response from backend even if it comes after 3 seconds. I expect it to timeout after 2 seconds. Any ideas?
    Business Service Configurations:
    Service Type: Any type
    Protocol: http
    Retry count : 0
    Retry Application Errors: No
    Read Timeout: 0
    Connection Timeout: 0
    HTTP Request Method: POST
    Result Caching: No
    Let me know if you need any more information. Thanks in Advance.
    Regards
    Kaleem

    AbhishekJ wrote:
    Maximum possible successful response time of the service will be less than Read TO + Connection TO.
    Alas, this is not true.
    Maximum possible response time is infinity.
    There are two reasons for that.
    1. Read timeout is not counted as time from the successful connection establishing to the current moment. It is measured as time from the last received byte to now. Imagine a backend service that sends a single byte in a data packet every 500ms. Despite you have read timeout set to 1, the receiving of 3K message will take 25 minutes, and yet your Biz service will not timeout.
    2. In HTTPS, handshake is handled by a separate library which has its own quirks. Specifically, if the key exchange is broken at particular point of handshake, the library re-establishes the connection and does it few times; in my experiements, the largest I could delay the eventual fault was about 3 minutes.
    Having said that, in the OP message the configuration is Read=0, Connect=0, so I wonder why the timeout is expected.

  • Modbus TCP/IP read timeout

    The code below was taken from the NI Modbus library:
    The first TCP Read VI, reads 7 bytes as a binary string. The data string is then cast to the MBAP_Header data type.
    The MBAP header contains a length field, that is used to determine the length of the Modbus PDU (i.e. remaining part of the TCP message)
    The second TCP Read VI then gets the remaining part of the message.
    Can I set the second read timeout to 0?
    For reqular Ethernet, the maximum packet payload is 1500 bytes.
    1500 bytes is larger than any Modbus message, so I would not expect segmentation of Modbus messages.
    Is this correct?
    In general, if the application data is less than 1500 bytes (on regular Ethernet) and data is read in two parts, is it a good idea to set the second read timeout to 0.
    Is there any other reason why I should not do this?
    Thanks.
    Message Edited by sparkymark567 on 01-28-2010 03:59 AM
    Message Edited by sparkymark567 on 01-28-2010 04:01 AM

    Hey,
    The second read should not have a time out of 0.  The first read only gets the first 8 bits of data, it does not buffer the rest of the package so the second read still needs time to receive the remaining data and hence will need at least some sort of time out value. 
    On the subject of segmentation, I believe you are correct.  As long as your message doesn't excede 1492 bytes (I think the 1500 includes the overhead of the Ethernet package), it should come down in one package.  
    The best thing you can do is to try it out.  
    Kind regards,
    Dominic Walker
    Cardiff University
    Electrical and Electronic Engineering Student

  • How to run vi continuous​ly when VISA read timeout happens

    Hello,
    I am using LabView 2010 to read an Agilent 6000 series Oscilloscope. The Oscilloscope reads data from another experimental machine which fails occasionally due to sample failure. When the machine fails, it stops sending signal to the oscilloscope and leads to the VISA read timeout error and the whole vi is terminated.  Is there a way that I can continuously run the vi when the error happens? For example, when the error happens, it stores the error in the error wire. When the vi read the error code from the wire, it sends a command to stop my experimental machine then stop the vi. 
    So far, it just simply stops during executing the visa read function. In this case, why do we have error in and out? The vi simply stops when the error happens. 
    Thanks
    Lawrence
    Solved!
    Go to Solution.

    I'll start of with automatic error handling. By default, LabVIEW enables the automatic error handling. So consider the case like the one below,
    If let's say the VISA Read returns an error, but you did you pass the error information to VISA Close, what will happen is that LabVIEW will highlight the VISA Read (since the error comes from that function), pause the execution at the VISA Read and an error dialog box will appear. From the dialog box, it will prompt to either continue (Move on to the VISA Close) or stop (LabVIEW will stop the VI at VISA Read)
    Now, consider another scenario like this,
    By passing the error information from one function to another, let's say if VISA Read returns an error, that error will pass to VISA Close and finally to Simple Error Handler.vi. So Simple Error Handler will generate error dialog box after all the VISA operation is completed. This is called manual error handling (It can be enabled by just wiring the error information from one function to another and terminates at Simple Error Handler).
    http://www.ni.com/gettingstarted/labviewbasics/han​dlingerrors.htm
    As for VISA Close, here is the information about VISA Close.
    http://zone.ni.com/reference/en-XX/help/371361K-01​/lvinstio/visa_close/
    See that button on the left side of this post...
    If you feel my post is helpful, all you need is just (at most) 2 seconds to click that button, to show your appreciation. Thank you~~

  • Transaction timeout seconds and suspended trsnactions.

              All,
              Does the <trans-timeout-seconds>10</trans-timeout-seconds> in weblogic-ejb-jar.xml
              apply to transactions that are in a suspended state?
              For E.G
              I have EJB1 (Container Managed/Required) that starts transaction T1 and does some
              work then calls another ejb EJB2 (Container Managed/NotSupported) which makes
              a inter domain T3 call. Since EJB2 is configured with NotSupported transaction
              attribute, transaction T1 is suspended for the time being while the business method
              of EJB2 is executing.
              The question is if I set <trans-timeout-seconds>10</trans-timeout-seconds> for
              transactions started by EJB1, will it work? Looks like once a method on EJB2 is
              invoked, the transaction T1 is suspened and if the EJB2 method takes 30 seconds
              to execute, then transaction T1 waits untill that time despite having a transaction
              time out of 10 seconds.
              How can I exit out of the transaction T1 while its in suspened state if it takes
              more that 10 seconds for EJB2 to complete its work?
              Any suggestions are welcome and thx in advance.
              Regards,
              Dhilip.
              

              Dhilip,
              I had similar issue but in my case I got timeout exception once the transaction
              of first bean resumed. It seeems the timeout clock keeps on ticking even when
              the transaction is in suspended state.
              Finally I increased the timeout value of first bean to execute the process.
              -Ashish
              "Dhilip" <[email protected]> wrote:
              >
              >All,
              >
              >Does the <trans-timeout-seconds>10</trans-timeout-seconds> in weblogic-ejb-jar.xml
              >apply to transactions that are in a suspended state?
              >
              >For E.G
              >I have EJB1 (Container Managed/Required) that starts transaction T1 and
              >does some
              >work then calls another ejb EJB2 (Container Managed/NotSupported) which
              >makes
              >a inter domain T3 call. Since EJB2 is configured with NotSupported transaction
              >attribute, transaction T1 is suspended for the time being while the business
              >method
              >of EJB2 is executing.
              >
              >The question is if I set <trans-timeout-seconds>10</trans-timeout-seconds>
              >for
              >transactions started by EJB1, will it work? Looks like once a method
              >on EJB2 is
              >invoked, the transaction T1 is suspened and if the EJB2 method takes
              >30 seconds
              >to execute, then transaction T1 waits untill that time despite having
              >a transaction
              >time out of 10 seconds.
              >
              >How can I exit out of the transaction T1 while its in suspened state
              >if it takes
              >more that 10 seconds for EJB2 to complete its work?
              >
              >Any suggestions are welcome and thx in advance.
              >
              >Regards,
              >Dhilip.
              >
              >
              

  • Trans-timeout-seconds

    We have a MDB which processes requests from a queue, and after a specific state is
    reached, waits for 2 mins
    and deletes a record from a table. This table is wrapped around by a CMP.
    In the MDB, We have a Thread that sleeps for a specific amount of time after the
    specific state is reached.
    It then calls the CMP to delete the record from the table. Is this a good approach?
    I could not find another way to do
    this. We tried creating an external thread pool and kick off the thread from within
    the EJB but am not
    sure if it would violate the specs. So the simplest "Thread.sleep" happens for 2
    secs and then deletes the
    record. Let me know if there is a better approach to this.
    When i do the above, I use a "Trans-timeout-seconds" in weblogic-ejb-jar.xml file
    but it doesnt look like
    its reading it. Its using the JTA Transactiontimeout but not the one in my deployment
    descriptor. I found
    this thread in the forums which says the same thing
    http://newsgroups.bea.com/cgi-bin/dnewsweb?utag=&group=weblogic.developer.interest.jms&xrelated=7038&cmd_thread_next.x=44&cmd_thread_next.y=11
    Is there a fix for this yet? im using WL6.1 SP2..
    TIA
    Raj

    I was using it that way but thought that was also against the specs.
    That was the reason we dropped that idea and went in for the Thread.sleep
    And is the trans-timeout-seconds tag (in weblogic-ejb-jar.xml) is not read by the
    container.
    Is there a fix for WL 6.1?
    Thanks
    Raj
    "Emmanuel Proulx" <[email protected]> wrote:
    In theory you're not supposed to manage threads in EJBs. This includes
    starting, stopping, suspending, resuming, changing priority, etc.
    I suggest you use a server session pool (JMS) instead.
    One approach I personally think is acceptable, is to manage your threads
    separately (managed using a Singleton class, created using a startup class)
    from the MDB. This way your MDB isn't managing threads directly. This is
    a
    gray area.
    Emmanuel
    "Raj" <[email protected]> wrote in message
    news:3cf26fdd$[email protected]..
    We have a MDB which processes requests from a queue, and after a specificstate is
    reached, waits for 2 mins
    and deletes a record from a table. This table is wrapped around by a CMP.
    In the MDB, We have a Thread that sleeps for a specific amount of timeafter the
    specific state is reached.
    It then calls the CMP to delete the record from the table. Is this a goodapproach?
    I could not find another way to do
    this. We tried creating an external thread pool and kick off the threadfrom within
    the EJB but am not
    sure if it would violate the specs. So the simplest "Thread.sleep" happensfor 2
    secs and then deletes the
    record. Let me know if there is a better approach to this.
    When i do the above, I use a "Trans-timeout-seconds" inweblogic-ejb-jar.xml file
    but it doesnt look like
    its reading it. Its using the JTA Transactiontimeout but not the one inmy
    deployment
    descriptor. I found
    this thread in the forums which says the same thing
    http://newsgroups.bea.com/cgi-bin/dnewsweb?utag=&group=weblogic.developer.in
    terest.jms&xrelated=7038&cmd_thread_next.x=44&cmd_thread_next.y=11
    Is there a fix for this yet? im using WL6.1 SP2..
    TIA
    Raj

  • Read Timeout is not working with business service in OSB 11.6

    HI All,
    We have set below configuration in "Http Transport Configuration" of a business service.
    Read Timeout- 8
    Connection Timeout  - 8
    Authentication  - None
    Proxy Serve
    Follow HTTP redirects - Disable
    Use Chunked Streaming Mode - Enable
    Even though backend is taking more than the configured value in Read Timeout but timeout is not happening in OSB, Connection time out also not worked, when we tested with wrong backend URL.
    Any help for this configuration would appreciated.
    Thanks,.

    Hi,
         Have you invoked any Services before calling the Business Service.
    If Yes, then the problem with the Invoked service.In this scenario even if you set the time out period it will not work..
    If No, your request payload is high
    Regards,
    Kiran

  • RT FIFO Read timeout

    I have a timeout question about RT FIFO Read in Producer/Consumer system. Here is the scenario.
    Producer writes data to RT FIFO via RT FIFO Write;
    Consumer read data from RT FIFO via RT FIFO Read with timeout 100ms;
    If RT FIFO is empty, returns 100ms timeout and stops Producer and Consumer.
    If RT FIFO is not empty, process the data from FIFO and continue Producer/Consumer.
    As I understand, RT FIFO empty means 100ms timeout. But the 100ms timeout condition does not behave properly as expected.
    Am I understanding the FIFO Read timeout correctly?
    Thanks!

    MileP,
    I find the best way to learn about Real-Time FIFOs is to run some examples of them, check these out and let me know what you think:
    https://decibel.ni.com/content/docs/DOC-2303
    https://decibel.ni.com/content/docs/DOC-9893
    http://zone.ni.com/devzone/cda/tut/p/id/3934
    I hope this helps get you going
    Sam S
    Applications Engineer
    National Instruments

  • Read Timeout on non-blocking sockets

    Hi,
    I was wondering if there is a way to specify a read timeout (like setSoTimeout for synchronous sockets) when using a non-blocking socket.
    I'd like to have the select() method return is a sockets timeout expires, puting in the selected key set the timedout socket and have it's read operation return -1, something like what happens when a socket is closed by the other side.
    The thing is I need this to be a timeout specific to each socket, thus the select(millis) isn't apropriate.
    Anyone knows of something like this?
    Thanks....

    Yeah, select() is the only thing built in for that, and you have to do the bookkeeping yourself. You would start something like forming the disjunction of the ready keys and the registered keys after each select, to get the unready keys, and then looking at their history to see how long they have been unready via a Map{key,Long(time)).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How to find optimal timeout period for trans-timeout-seconds element.

    we are using Weblogic 7.0 Integration Studio,in one workflow we got "weblogic.transaction.internal.TimedOutException" and the exception text is "Transaction timed out after 1089 seconds".
    Presently we are using timeout period as 1089 seconds.
    On what basis the timeout period for transactions is specified, i.e. how the value of the <trans-timeout-seconds> is set in weblogic-ejb-jar.xml file?
    Is there any method to find the optimal value?

    You should base this on the average time your transaction typically takes. It would have to factor in the type of backend systems that you are connecting too, the type of work you are doing and any network etc issues.
    Typically 1089 seconds seems like it should be more then ENOUGH.
    Kunal Mittal

  • SMTP postfix crashing -  network_biopair_interop read timeout

    Periodically, my mail server goes into a crash cycle. Error messages like those below appear, and very quickly, the machine becomes unresponsive (I believe because it can't fork any more process - so OD won't authenticate, and any command which requires authentication (like a restart or service restart) hangs indefinitely).
    The machine will crash every ~12 hours after being rebooted, for maybe 2-3 days before the problem mysteriously goes into remission. I don't know what confluence of events causes this, or how to see it coming sooner so I can stop and restart the mail service.
    Any insight or solutions would be greatly appreciated.
    /var/log/system.log:
    Apr 25 07:37:43 mercury postfix/smtpd[8213]: warning: Read failed in networkbiopairinterop with errno=0: num_read=0, want_read=5
    Apr 25 07:48:39 mercury postfix/smtpd[8475]: warning: Read failed in networkbiopairinterop with errno=0: num_read=0, want_read=5
    Apr 25 07:50:06 mercury postfix/master[51]: warning: unixtriggerevent: read timeout for service public/flush
    Apr 25 07:55:50 mercury postfix/pipe[8467]: warning: pipecommandwrite: write time limit exceeded
    Apr 25 07:55:50 mercury postfix/pipe[8470]: warning: pipecommandread: read time limit exceeded
    Apr 25 07:57:08 mercury postfix/pipe[8479]: warning: pipecommandread: read time limit exceeded

    The output of postconf -n:
    mercury:/ root# postconf -n
    alias_maps = hash:/etc/aliases,hash:/var/mailman/data/aliases
    command_directory = /usr/sbin
    config_directory = /etc/postfix
    content_filter = smtp-amavis:[127.0.0.1]:10024
    daemon_directory = /usr/libexec/postfix
    debugpeerlevel = 2
    enableserveroptions = yes
    html_directory = no
    inet_interfaces = all
    mail_owner = postfix
    mailboxsizelimit = 0
    mailbox_transport = cyrus
    mailq_path = /usr/bin/mailq
    manpage_directory = /usr/share/man
    messagesizelimit = 15728640
    mydestination = $myhostname,localhost.$mydomain,tjs.org,staff.tjs.org,mercury.tjs.org,info.tjs. org
    mydomain = tjs.org
    mydomain_fallback = localhost
    myhostname = mail.tjs.org
    mynetworks = 127.0.0.1/32,10.1.1.0/24,66.148.181.0/24,66.90.0.0/16,192.168.1.0/24,66.93.192. 247/32,66.93.193.247/32
    mynetworks_style = host
    newaliases_path = /usr/bin/newaliases
    ownerrequestspecial = no
    queue_directory = /private/var/spool/postfix
    readme_directory = /usr/share/doc/postfix
    recipient_delimiter = +
    sample_directory = /usr/share/doc/postfix/examples
    sendmail_path = /usr/sbin/sendmail
    setgid_group = postdrop
    smtpdpw_server_securityoptions = cram-md5,gssapi
    smtpdrecipientrestrictions = permitsasl_authenticated,permit_mynetworks,reject_unauthdestination,permit
    smtpdsasl_authenable = yes
    smtpdtls_certfile = /etc/certificates/*.tjs.org.crt
    smtpdtls_keyfile = /etc/certificates/*.tjs.org.key
    smtpduse_pwserver = yes
    smtpdusetls = yes
    unknownlocal_recipient_rejectcode = 550
    And here's a more full version of the logs. I think the increasing pids is a symptom of the problem:
    Apr 27 10:34:58 mercury pop3[7164]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:34:58 mercury pop3[7369]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:35:18 mercury pop3[7164]: starttls: TLSv1 with cipher AES256-SHA (256/256 bits new) no authentication
    Apr 27 10:35:19 mercury pop3[7164]: login: ppp-70-245-234-7.dsl.stlsmo.swbell.net [70.245.234.7] YYY APOP+TLS User logged in
    Apr 27 10:35:28 mercury pop3[7369]: login: c-69-241-232-137.hsd1.mi.comcast.net [69.241.232.137] XXX APOP User logged in
    Apr 27 10:35:59 mercury pop3[7164]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:36:10 mercury pop3[7369]: login: dsl093-192-247.stl1.dsl.speakeasy.net [66.93.192.247] XXX APOP User logged in
    Apr 27 10:36:11 mercury pop3[7164]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:37:01 mercury pop3[7164]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:37:01 mercury pop3[7369]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:37:01 mercury pop3[7833]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:37:07 mercury ctl_cyrusdb[7836]: checkpointing cyrus databases
    Apr 27 10:37:08 mercury ctl_cyrusdb[7836]: done checkpointing cyrus databases
    Apr 27 10:37:15 mercury pop3[7164]: login: dsl093-192-247.stl1.dsl.speakeasy.net [66.93.192.247] XXX APOP User logged in
    Apr 27 10:37:26 mercury pop3[7833]: login: dsl093-192-247.stl1.dsl.speakeasy.net [66.93.192.247] XXX APOP User logged in
    Apr 27 10:37:38 mercury pop3[7369]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:37:52 mercury imap[7842]: login: localhost [::1] jroth CRAM-MD5 User logged in
    Apr 27 10:37:52 mercury pop3[7164]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:38:03 mercury imap[7842]: login: localhost [::1] XXX CRAM-MD5 User logged in
    Apr 27 10:38:13 mercury imap[7842]: login: localhost [::1] XXX CRAM-MD5 User logged in
    Apr 27 10:38:15 mercury imap[7842]: login: localhost [::1] XXX CRAM-MD5 User logged in
    Apr 27 10:38:26 mercury pop3[7833]: login: 66.148.181.178.nw.nuvox.net [66.148.181.178] XXX APOP User logged in
    Apr 27 10:38:30 mercury imap[7842]: login: localhost [::1] XXX CRAM-MD5 User logged in
    Apr 27 10:40:18 mercury pop3[7871]: TLS server engine: cannot load CA data
    Apr 27 10:40:19 mercury pop3[7871]: TLS server engine: No CA file specified. Client side certs may not work
    Apr 27 10:40:19 mercury pop3[7871]: starttls: TLSv1 with cipher AES256-SHA (256/256 bits new) no authentication
    Apr 27 10:41:41 mercury postfix/master[51]: warning: unixtriggerevent: read timeout for service public/flush
    Apr 27 10:50:18 mercury pop3[7913]: TLS server engine: cannot load CA data
    Apr 27 10:50:18 mercury pop3[7913]: TLS server engine: No CA file specified. Client side certs may not work
    Apr 27 10:50:18 mercury pop3[7913]: starttls: TLSv1 with cipher AES256-SHA (256/256 bits new) no authentication
    And then the crash. Note this is a more recent crash cycle than the last one which I posted logs from.
    Interesting that SSL certificates might be the issue. The one user, shown above as YYY, always triggers the log messages about TLS, which none of the other users seem to use. I haven't enabled SSL for email, but I wouldn't mind doing it to fix this problem.
    Thanks for your thoughts and time.
    Brian Howard

  • Logical reads per second

    I have two databases - one is a clone of the other, amde a few months ago. Database A has somewhat more data, since it's the active production database, but not significantly more - perhaps 10% greater. They are on different boxes. Database A is on a Sun 280R 2-processor box. Database B is on a Dell 2950 with 2 dual-core processors. So this isn't exactly comparing apples to apples. However, when I run the same query on the two databases, I get radically different results. Against Database A, the query takes about 7 minutes. On Database B, it takes about 2 seconds. Logical reads per second on Database A reach 80,000-90,000; on Database B, they're about 3,000. There are a few configuration differences (both databases use automatic memory management):
    Database A Database B
    db_file_multiblock_read_count 64 16
    log_buffer 14290432 2104832
    open_cursors 1250 300
    sga_max_size 4194304000 536870912
    sga_target 2634022912 536870912
    shared_pool_reserved_size 38587596 7340032
    The timings were taken off-hours so neither database would be busy. I'm baffled by the extreme difference in execution times. Any help appreciated!
    Thanks,
    Harry
    Edited by: harryb on Apr 8, 2009 7:26 PM

    OK, let's start here....
    Database A (TEMPOP)
    SQL> show parameter optimizer
    NAME TYPE VALUE
    optimizer_dynamic_sampling integer 2
    optimizer_features_enable string 10.2.0.3
    optimizer_index_caching integer 0
    optimizer_index_cost_adj integer 100
    optimizer_mode string ALL_ROWS
    optimizer_secure_view_merging boolean TRUE
    SQL> show parameter db_file_multi
    NAME TYPE VALUE
    db_file_multiblock_read_count integer 64
    SQL> show parameter db_block_size
    NAME TYPE VALUE
    db_block_size integer 8192
    ===================================================
    Database B (TEMPO11)
    SQL> show parameter optimizer
    NAME TYPE VALUE
    optimizer_dynamic_sampling integer 2
    optimizer_features_enable string 10.2.0.1
    optimizer_index_caching integer 0
    optimizer_index_cost_adj integer 100
    optimizer_mode string ALL_ROWS
    optimizer_secure_view_merging boolean TRUE
    SQL> show parameter db_file_multi
    NAME TYPE VALUE
    db_file_multiblock_read_count integer 16
    SQL> show parameter db_block_size
    NAME TYPE VALUE
    db_block_size integer 8192
    =================================================================
    Now for the query that's causing the problem:
    SELECT dsk_document_attribute.value_text inspect_permit_no,
              NVL (activity_task_list.revised_due_date,
                   activity_task_list.default_due_date
                 inspect_report_due_date,
              agency_interest.master_ai_id agency_interest_id,
              agency_interest.master_ai_name agency_interest_name,
              get_county_code_single (agency_interest.master_ai_id)
                 parish_or_county_code,
              agency_interest_address.physical_address_line_1 inspect_addr_1,
              agency_interest_address.physical_address_line_2 inspect_addr_2,
              agency_interest_address.physical_address_line_3 inspect_addr_3,
              agency_interest_address.physical_address_municipality inspect_city,
              agency_interest_address.physical_address_state_code state_id,
              agency_interest_address.physical_address_zip inspect_zip,
              person.master_person_first_name person_first_name,
              person.master_person_middle_initial person_middle_initial,
              person.master_person_last_name person__last_name,
              SUBSTR (person_telecom.address_or_phone, 1, 14) person_phone,
              activity_task_list.requirement_id
       FROM dsk_document_attribute,
            agency_interest,
            activity_task_list,
            agency_interest_address,
            dsk_central_file dsk_aaa,
            dsk_central_file dsk_frm,
            person,
            person_telecom
       WHERE agency_interest.int_doc_id = 0
             AND agency_interest.master_ai_id =
                   agency_interest_address.master_ai_id
             AND agency_interest.int_doc_id = agency_interest_address.int_doc_id
             AND agency_interest.master_ai_id = dsk_frm.master_ai_id
             AND dsk_aaa.int_doc_id = activity_task_list.int_doc_id
             AND dsk_frm.int_doc_id = dsk_document_attribute.int_doc_id
             AND dsk_frm.doc_type_specific_code =
                   dsk_document_attribute.doc_type_specific_code
             AND dsk_frm.activity_category_code = 'PER'
             AND dsk_frm.activity_class_code = 'GNP'
             AND dsk_frm.activity_type_code IN ('MAB', 'NAB', 'REB')
             AND dsk_frm.program_code = '80'
             AND dsk_frm.doc_type_general_code = 'FRM'
             AND dsk_frm.doc_type_specific_code = 'PERSET'
             AND dsk_aaa.doc_template_id = 2000
             AND dsk_frm.master_ai_id = dsk_aaa.master_ai_id
             AND dsk_frm.activity_category_code = dsk_aaa.activity_category_code
             AND dsk_frm.program_code = dsk_aaa.program_code
             AND dsk_frm.activity_class_code = dsk_aaa.activity_class_code
             AND dsk_frm.activity_type_code = dsk_aaa.activity_type_code
             AND dsk_frm.activity_year = dsk_aaa.activity_year
             AND dsk_frm.activity_num = dsk_aaa.activity_num
             AND dsk_document_attribute.doc_attribute_code = 'PERMIT_NO'
             AND activity_task_list.requirement_id IN ('3406', '3548', '3474')
             AND activity_task_list.reference_task_id = 0
             AND NVL (activity_task_list.status_code, '$$$') <> '%  '
             AND person.master_person_id(+) =
                   f_get_gp_contact (agency_interest.master_ai_id)
             AND person.int_doc_id(+) = 0
             AND person.master_person_id = person_telecom.master_person_id(+)
             AND person.int_doc_id = person_telecom.int_doc_id(+)
             AND person_telecom.telecom_type_code(+) = 'wp';Here's the explain plan for Database A, where the query takes 7-8 minutes or more:
    PLAN_TABLE_OUTPUT
    | Id  | Operation                           | Name                       | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT                    |                            |     1 |   253 |    34   (3)|
    |   1 |  NESTED LOOPS                       |                            |     1 |   253 |    34   (3)|
    |   2 |   NESTED LOOPS                      |                            |     1 |   224 |    32   (0)|
    |   3 |    NESTED LOOPS OUTER               |                            |     1 |   169 |    31   (0)|
    |   4 |     NESTED LOOPS OUTER              |                            |     1 |   144 |    29   (0)|
    |   5 |      NESTED LOOPS                   |                            |     1 |   122 |    27   (0)|
    |   6 |       NESTED LOOPS                  |                            |     1 |    81 |    26   (0)|
    PLAN_TABLE_OUTPUT
    |   7 |        NESTED LOOPS                 |                            |     1 |    48 |    19   (0)|
    |   8 |         INLIST ITERATOR             |                            |       |       |            |
    |*  9 |          TABLE ACCESS BY INDEX ROWID| ACTIVITY_TASK_LIST         |     1 |    21 |    17   (0)|
    |* 10 |           INDEX RANGE SCAN          | ACTIVITY_TASK_LIST_FK11    |   106 |       |     4   (0)|
    |* 11 |         TABLE ACCESS BY INDEX ROWID | DSK_CENTRAL_FILE           |     1 |    27 |     2   (0)|
    |* 12 |          INDEX UNIQUE SCAN          | PK_DSK_CENTRAL_FILE        |     1 |       |     1   (0)|
    |* 13 |        TABLE ACCESS BY INDEX ROWID  | DSK_CENTRAL_FILE           |     1 |    33 |     7   (0)|
    |* 14 |         INDEX RANGE SCAN            | CF_MASTER_AI_ID_IND        |     9 |       |     2   (0)|
    |  15 |       TABLE ACCESS BY INDEX ROWID   | AGENCY_INTEREST            |     1 |    41 |     1   (0)|
    |* 16 |        INDEX UNIQUE SCAN            | PK_AGENCY_INTEREST         |     1 |       |     0   (0)|
    |  17 |      TABLE ACCESS BY INDEX ROWID    | PERSON                     |     1 |    22 |     2   (0)|
    PLAN_TABLE_OUTPUT
    |* 18 |       INDEX UNIQUE SCAN             | PK_PERSON                  |     1 |       |     1   (0)|
    |  19 |     TABLE ACCESS BY INDEX ROWID     | PERSON_TELECOM             |     1 |    25 |     2   (0)|
    |* 20 |      INDEX UNIQUE SCAN              | PK_PERSON_TELECOM          |     1 |       |     1   (0)|
    |  21 |    TABLE ACCESS BY INDEX ROWID      | AGENCY_INTEREST_ADDRESS    |     1 |    55 |     1   (0)|
    |* 22 |     INDEX UNIQUE SCAN               | PK_AGENCY_INTEREST_ADDRESS |     1 |       |     0   (0)|
    |  23 |   TABLE ACCESS BY INDEX ROWID       | DSK_DOCUMENT_ATTRIBUTE     |     1 |    29 |     1   (0)|
    |* 24 |    INDEX UNIQUE SCAN                | PK_DSK_DOCUMENT_ATTRIBUTE  |     1 |       |     0   (0)|
    Predicate Information (identified by operation id):
    PLAN_TABLE_OUTPUT
       9 - filter("ACTIVITY_TASK_LIST"."REFERENCE_TASK_ID"=0 AND
                  NVL("ACTIVITY_TASK_LIST"."STATUS_CODE",'$$$')<>'%  ')
      10 - access("ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3406 OR
                  "ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3474 OR "ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3548)
      11 - filter("DSK_AAA"."DOC_TEMPLATE_ID"=2000 AND "DSK_AAA"."ACTIVITY_CLASS_CODE"='GNP' AND
                  "DSK_AAA"."PROGRAM_CODE"='80' AND "DSK_AAA"."ACTIVITY_CATEGORY_CODE"='PER' AND
                  ("DSK_AAA"."ACTIVITY_TYPE_CODE"='MAB' OR "DSK_AAA"."ACTIVITY_TYPE_CODE"='NAB' OR
                  "DSK_AAA"."ACTIVITY_TYPE_CODE"='REB'))
      12 - access("ACTIVITY_TASK_LIST"."INT_DOC_ID"="DSK_AAA"."INT_DOC_ID")
      13 - filter("DSK_FRM"."ACTIVITY_CLASS_CODE"='GNP' AND "DSK_FRM"."PROGRAM_CODE"='80' AND
    PLAN_TABLE_OUTPUT
                  "DSK_FRM"."DOC_TYPE_SPECIFIC_CODE"='PERSET' AND "DSK_FRM"."ACTIVITY_CATEGORY_CODE"='PER' AND
                  "DSK_FRM"."DOC_TYPE_GENERAL_CODE"='FRM' AND ("DSK_FRM"."ACTIVITY_TYPE_CODE"='MAB' OR
                  "DSK_FRM"."ACTIVITY_TYPE_CODE"='NAB' OR "DSK_FRM"."ACTIVITY_TYPE_CODE"='REB') AND
                  "DSK_FRM"."ACTIVITY_TYPE_CODE"="DSK_AAA"."ACTIVITY_TYPE_CODE" AND
                  "DSK_FRM"."ACTIVITY_YEAR"="DSK_AAA"."ACTIVITY_YEAR" AND
                  "DSK_FRM"."ACTIVITY_NUM"="DSK_AAA"."ACTIVITY_NUM")
      14 - access("DSK_FRM"."MASTER_AI_ID"="DSK_AAA"."MASTER_AI_ID")
      16 - access("AGENCY_INTEREST"."MASTER_AI_ID"="DSK_FRM"."MASTER_AI_ID" AND
                  "AGENCY_INTEREST"."INT_DOC_ID"=0)
      18 - access("PERSON"."MASTER_PERSON_ID"(+)="F_GET_GP_CONTACT"("AGENCY_INTEREST"."MASTER_AI_ID
                  ") AND "PERSON"."INT_DOC_ID"(+)=0)
    PLAN_TABLE_OUTPUT
      20 - access("PERSON"."MASTER_PERSON_ID"="PERSON_TELECOM"."MASTER_PERSON_ID"(+) AND
                  "PERSON_TELECOM"."TELECOM_TYPE_CODE"(+)='wp' AND
                  "PERSON"."INT_DOC_ID"="PERSON_TELECOM"."INT_DOC_ID"(+))
      22 - access("AGENCY_INTEREST"."MASTER_AI_ID"="AGENCY_INTEREST_ADDRESS"."MASTER_AI_ID" AND
                  "AGENCY_INTEREST_ADDRESS"."INT_DOC_ID"=0)
      24 - access("DSK_FRM"."INT_DOC_ID"="DSK_DOCUMENT_ATTRIBUTE"."INT_DOC_ID" AND
                  "DSK_DOCUMENT_ATTRIBUTE"."DOC_ATTRIBUTE_CODE"='PERMIT_NO' AND
                  "DSK_DOCUMENT_ATTRIBUTE"."DOC_TYPE_SPECIFIC_CODE"='PERSET')============================================================================
    Here's the explan plan output for Database B, where the query takes 2-3 seconds:
    PLAN_TABLE_OUTPUT
    | Id  | Operation                           | Name                       | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT                    |                            |     1 |   289 |    39   (0)|
    |   1 |  NESTED LOOPS OUTER                 |                            |     1 |   289 |    39   (0)|
    |   2 |   NESTED LOOPS                      |                            |     1 |   260 |    37   (0)|
    |   3 |    NESTED LOOPS                     |                            |     1 |   205 |    36   (0)|
    |   4 |     NESTED LOOPS OUTER              |                            |     1 |   172 |    35   (0)|
    |   5 |      NESTED LOOPS                   |                            |     1 |   145 |    34   (0)|
    |   6 |       NESTED LOOPS                  |                            |     1 |   104 |    33   (0)|
    PLAN_TABLE_OUTPUT
    |   7 |        NESTED LOOPS                 |                            |     1 |    61 |    26   (0)|
    |   8 |         INLIST ITERATOR             |                            |       |       |            |
    |*  9 |          TABLE ACCESS BY INDEX ROWID| ACTIVITY_TASK_LIST         |     1 |    25 |    24   (0)|
    |* 10 |           INDEX RANGE SCAN          | ACTIVITY_TASK_LIST_FK11    |   145 |       |     4   (0)|
    |* 11 |         TABLE ACCESS BY INDEX ROWID | DSK_CENTRAL_FILE           |     1 |    36 |     2   (0)|
    |* 12 |          INDEX UNIQUE SCAN          | PK_DSK_CENTRAL_FILE        |     1 |       |     1   (0)|
    |* 13 |        TABLE ACCESS BY INDEX ROWID  | DSK_CENTRAL_FILE           |     1 |    43 |     7   (0)|
    |* 14 |         INDEX RANGE SCAN            | CF_MASTER_AI_ID_IND        |     9 |       |     2   (0)|
    |  15 |       TABLE ACCESS BY INDEX ROWID   | AGENCY_INTEREST            |     1 |    41 |     1   (0)|
    |* 16 |        INDEX UNIQUE SCAN            | PK_AGENCY_INTEREST         |     1 |       |     0   (0)|
    |  17 |      TABLE ACCESS BY INDEX ROWID    | PERSON                     |     8 |   216 |     1   (0)|
    PLAN_TABLE_OUTPUT
    |* 18 |       INDEX UNIQUE SCAN             | PK_PERSON                  |     1 |       |     0   (0)|
    |  19 |     TABLE ACCESS BY INDEX ROWID     | DSK_DOCUMENT_ATTRIBUTE     |     1 |    33 |     1   (0)|
    |* 20 |      INDEX UNIQUE SCAN              | PK_DSK_DOCUMENT_ATTRIBUTE  |     1 |       |     0   (0)|
    |  21 |    TABLE ACCESS BY INDEX ROWID      | AGENCY_INTEREST_ADDRESS    |     1 |    55 |     1   (0)|
    |* 22 |     INDEX UNIQUE SCAN               | PK_AGENCY_INTEREST_ADDRESS |     1 |       |     0   (0)|
    |  23 |   TABLE ACCESS BY INDEX ROWID       | PERSON_TELECOM             |     1 |    29 |     2   (0)|
    |* 24 |    INDEX UNIQUE SCAN                | PK_PERSON_TELECOM          |     1 |       |     1   (0)|
    Predicate Information (identified by operation id):
    PLAN_TABLE_OUTPUT
       9 - filter("ACTIVITY_TASK_LIST"."REFERENCE_TASK_ID"=0 AND
                  NVL("ACTIVITY_TASK_LIST"."STATUS_CODE",'$$$')<>'%  ')
      10 - access("ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3406 OR
                  "ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3474 OR "ACTIVITY_TASK_LIST"."REQUIREMENT_ID"=3548)
      11 - filter("DSK_AAA"."DOC_TEMPLATE_ID"=2000 AND "DSK_AAA"."ACTIVITY_CLASS_CODE"='GNP' AND
                  "DSK_AAA"."PROGRAM_CODE"='80' AND "DSK_AAA"."ACTIVITY_CATEGORY_CODE"='PER' AND
                  ("DSK_AAA"."ACTIVITY_TYPE_CODE"='MAB' OR "DSK_AAA"."ACTIVITY_TYPE_CODE"='NAB' OR
                  "DSK_AAA"."ACTIVITY_TYPE_CODE"='REB'))
      12 - access("ACTIVITY_TASK_LIST"."INT_DOC_ID"="DSK_AAA"."INT_DOC_ID")
      13 - filter("DSK_FRM"."DOC_TYPE_SPECIFIC_CODE"='PERSET' AND
    PLAN_TABLE_OUTPUT
                  "DSK_FRM"."ACTIVITY_CLASS_CODE"='GNP' AND "DSK_FRM"."PROGRAM_CODE"='80' AND
                  "DSK_FRM"."DOC_TYPE_GENERAL_CODE"='FRM' AND "DSK_FRM"."ACTIVITY_CATEGORY_CODE"='PER' AND
                  ("DSK_FRM"."ACTIVITY_TYPE_CODE"='MAB' OR "DSK_FRM"."ACTIVITY_TYPE_CODE"='NAB' OR
                  "DSK_FRM"."ACTIVITY_TYPE_CODE"='REB') AND "DSK_FRM"."ACTIVITY_TYPE_CODE"="DSK_AAA"."ACTIVITY_TY
                  PE_CODE" AND "DSK_FRM"."ACTIVITY_YEAR"="DSK_AAA"."ACTIVITY_YEAR" AND
                  "DSK_FRM"."ACTIVITY_NUM"="DSK_AAA"."ACTIVITY_NUM")
      14 - access("DSK_FRM"."MASTER_AI_ID"="DSK_AAA"."MASTER_AI_ID")
      16 - access("AGENCY_INTEREST"."MASTER_AI_ID"="DSK_FRM"."MASTER_AI_ID" AND
                  "AGENCY_INTEREST"."INT_DOC_ID"=0)
      18 - access("PERSON"."MASTER_PERSON_ID"(+)="F_GET_GP_CONTACT"("AGENCY_INTEREST"."MASTER_AI_ID
                  ") AND "PERSON"."INT_DOC_ID"(+)=0)
    PLAN_TABLE_OUTPUT
      20 - access("DSK_FRM"."INT_DOC_ID"="DSK_DOCUMENT_ATTRIBUTE"."INT_DOC_ID" AND
                  "DSK_DOCUMENT_ATTRIBUTE"."DOC_ATTRIBUTE_CODE"='PERMIT_NO' AND
                  "DSK_DOCUMENT_ATTRIBUTE"."DOC_TYPE_SPECIFIC_CODE"='PERSET')
      22 - access("AGENCY_INTEREST"."MASTER_AI_ID"="AGENCY_INTEREST_ADDRESS"."MASTER_AI_ID" AND
                  "AGENCY_INTEREST_ADDRESS"."INT_DOC_ID"=0)
      24 - access("PERSON"."MASTER_PERSON_ID"="PERSON_TELECOM"."MASTER_PERSON_ID"(+) AND
                  "PERSON_TELECOM"."TELECOM_TYPE_CODE"(+)='wp' AND
                  "PERSON"."INT_DOC_ID"="PERSON_TELECOM"."INT_DOC_ID"(+))===============================================================================
    Edited by: harryb on Apr 9, 2009 3:29 PM

  • SerialPort Read Timeout

    Anyone knows how to achieve SerialPort Read Timeout? Or in another way to say it, stop reading from the SerialPort.

    Remove the Serialport listener Maybe !

Maybe you are looking for

  • Trying to use Flash8...... [please help]

    Hi all, I am not able to use flash in my browser for some strange reason all of a sudden. When i goto the adobe site to download flash8 it says that it is installed but when i goto to a site that tries to display flash video i get a message saying th

  • Rented movie not showing up in iTunes to watch on my laptop

    Am having trouble watching a rented movie, it is not past the 30 days. The movie is not in the video section in iTunes. Please help?!

  • Reporting-Point Backflushing

    Hi experts, Could anyone please let me know that in case of reporting point backflushing how i can set reporting points What are the diff. reporting point types? What are the mandatory config. settings required for that? thnx in advnce

  • Software Version 1.2.2

    As I tried to sync my 30gig iPod video yesterday, it asked me if I would like to update my software version to 1.2.2. I clicked yes and it reset my iPod. Now, when I sync, it doesn everything as normal. iTunes shows no sign of a problem. After I dico

  • HT5622 I cannot get the photon flash player app to download?

    I Cannot download photon flash player, does anyone have any idea's