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!
PhilHi,
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
KaleemAbhishekJ 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 AMHey,
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/handlingerrors.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.
>
>
-
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
RajI 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 -
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 exceededThe 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 -
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 PMOK, 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 -
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?!
-
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