OBPM 10.3 NewsTopic consumers tuning
Hello,
I have an OBPM 10.3 four-node WLS cluster.
In thread dumps I see within each JVM, at least one thread consuming messages form the engine News Topic and sending information through the cluster, to the other three nodes (using Tribes connectivity).
I have the following questions:
1) Isn't this an overkill?
Why do I have on each node a consumer reading the same info on the topic, and sending the same stuff to the rest of the cluster? Isn't this a waste of the cluster network? (The cluster network is a performance bottleneck for us)
2) Sometimes we have more than one consumer thread on the topic, within a single node. Does it make sense? Maybe it's due to the workspace application? Is there a way to avoid this, and in general, is there a way to optimize/minimize cluster communications between the four JVMs?
Thanks a lot
F.C.
Hi.
This error can occurs commonly because your activity already executed or due the any exception in your related screen flow used for that activity.
I suggest that you see the audit trail to get more detalis about where exact point that the error is happening.
If you get more detail about it, I can help you.
Regards,
Diovani
Similar Messages
-
Single queue: concurrent processing of messages in multiple consumers
Hi,
I am new to jms . The goal is to process messages concurrently from a queue in an asynchronous listener's onMessage method by attaching a listener instance to multiple consumer's with each consumer using its own session and running in a separate thread, that way the messages are passed on to the different consumers for concurrent processing.
1) Is it ossible to process messsages concurrently from a single queue by creating multiple consumers ?
2) I came up with the below code, but would like to get your thoughts on whether the below code looks correct for what I want to accomplish.
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.walmart.platform.jms.client.JMSConnectionFactory;
public class QueueConsumer implements Runnable, MessageListener {
public static void main(String[] args) {
// Create an instance of the client
QueueConsumer consumer1 = new QueueConsumer();
QueueConsumer consumer2 = new QueueConsumer();
try {
consumer1.init("oms","US.Q.CHECKOUT-ORDER.1.0.JSON"); //US.Q.CHECKOUT-ORDER.1.0.JSON is the queue name
consumer2.init("oms","US.Q.CHECKOUT-ORDER.1.0.JSON");
}catch( JMSException ex ){
ex.printStackTrace();
System.exit(-1);
// Start the client running
Thread newThread1 = new Thread(consumer1);
Thread newThread2 = new Thread(consumer1);
newThread1.start();newThread2.start();
InputStreamReader aISR = new InputStreamReader(System.in);
char aAnswer = ' ';
do {
try {
aAnswer = (char) aISR.read();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
} while ((aAnswer != 'q') && (aAnswer != 'Q'));
newThread1.interrupt();
newThread2.interrupt();
try {
newThread1.join();newThread2.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out
.println("--------------------exiting main thread------------------------"+Thread.currentThread().getId());
System.exit(0);
// values will be read from a resource properties file
private static String connectionFactoryName = null;
private static String queueName = null;
// thread safe object ref
private static ConnectionFactory qcf = null;
private static Connection queueConnection = null;
// not thread safe
private Session ses = null;
private Destination queue = null;
private MessageConsumer msgConsumer = null;
public static final Logger logger = LoggerFactory
.getLogger(QueueConsumer.class);
public QueueConsumer() {
super();
public void onMessage(Message msg) {
if (msg instanceof TextMessage) {
try {
System.out
.println("listener is "+Thread.currentThread().getId()+"--------------------Message recieved from queue is ------------------------"
+ ((TextMessage) msg).getJMSMessageID());
} catch (JMSException ex) {
ex.printStackTrace();
public void run() {
// Start listening
try {
queueConnection.start();
} catch (JMSException e) {
e.printStackTrace();
System.exit(-1);
while (!Thread.currentThread().isInterrupted()) {
synchronized (this) {
try {
wait();
} catch (InterruptedException ex) {
break;
* This method is called to set up and initialize the necessary Session,
* destination and message listener
* @param queue2
* @param factoryName
public void init(String factoryName, String queue2) throws JMSException {
try {
qcf = new JMSConnectionFactory(factoryName);
/* create the connection */
queueConnection = qcf.createConnection();
* Create a session that is non-transacted and is client
* acknowledged
ses = queueConnection.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
queue = ses.createQueue(queue2);
logger.info("Subscribing to destination: " + queue2);
msgConsumer = ses.createConsumer(queue);
/* set the listener */
msgConsumer.setMessageListener(this);
System.out.println("Listening on queue " +queue2);
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
private static void setConnectionFactoryName(String name) {
connectionFactoryName = name;
private static String getQueueName() {
return queueName;
private static void setQueueName(String name) {
queueName = name;Hi Mark,
if the messages are sent with quality of service EO (=exactly once) you can add queues.
From documentation:
Netweaver XI -> Runtime -> Processing xml messages -> Queues for asynchronous message processing
...For incoming messages you set the parameter EO_INBOUND_PARALLEL from the Tuning category.
If more than one message is sent to the same receiver, use the configuration parameter EO_OUTBOUND_PARALLEL of the Tuning category to process messages simultaneously in different queues.
Transaction: SXMB_ADM
Regards
Holger -
Messages from topic to multiple consumers are not ordered the same way
Hi,
We have a distributed topic. The message producer is a multi-threaded/connection producer (OSB in our case).
On the other side of the DT there are single connection consumers.
Our problem is that the consumers sometimes recieve the messages in different order:
Consumer A recieves message N and then N+1 (correct behaviour).
Consumer B recieves message N+1 and then N (correct behaviour).
This does not happen all the time. Most of the time the order is correct (99.9..%).
We also noticed that the message timestamp for message N and N+1 is the same.
This creates a problem for our system since both consumers must get the messages in the same order.
We cannot use UOO.
Any idea if this is a correct behavior for DT?
Any idea how to make the messages get to all consumers in the same order without using UOO?
Thanks,Hi,
Hmm. You may have run into some new Bug given since "message timestamp for message N and N+1 is the same". First, let's dot our I's and cross our Ts to make sure that the system is setup in a way that will give you good ordering in the first place:
- Always use the same producer instance for each sequential send, and ensure that the producer's connection factory has "load balance" set to false. Note that OSB may be using a pool of producers implicitly for your sending app underneath-the-covers, which could lead to out-of-order, as different producers can load balance to different servers in your cluster. (I'm not sure how to check for this - if you provide a code snippet, I may be able to tell if this is happening.)
- Ensure that you only ever have a single thread processing the subscription - if you're using MDBs to receive from the subscription, then you need to ensure the MDB is setup to only startup a single thread (use a thread pool of size and/or set max-beans-in-free-pool to one)
- To account for out-of-order after app message processing failures (redelivery) with async consumers or MDBs, you need to (A) never configure redelivery delays, and (B) ensure the connection factory Maximum Messages setting is tuned down to 1 (it's default is 10).
I don't know how to do the above with OSB, which tends to layer it's own configuration on top of WL JMS configuration.
Assuming that you've assured all of the above, then you may have run into some sort of bug and I recommend filing a request with Oracle Support. In the mean-time, you might want to explore alternatives:
- Are you certain that you can't use UOO? It would be interesting to know why. This is a widely used feature (even by OSB itself), and it may be that you can enable it without any code change, plus, even if a code change is required, such changes tend to be isolated and small. In your use case, it looks like you may be able to configure a default UOO on the distributed topic itself (http://docs.oracle.com/cd/E11035_01/wls100/wlsmbeanref/core/index.html) - no code change needed - so that every destination member of your distributed destination will simply ensure that each new message is given the same UOO (a UOO that's particular to that member). OSB may provide some equivalent knob. Alternatively, you can code up your app so that each of your producers sets a useful UOO on each message.
- I assume you're using a replicated distributed topic (RDT). If there actually is a bug, then it would likely have something to do with the RDT's internal forwarders. If your consumers are MDBs or the SOA RA Adapter, then a simple alternative may be to use a Partitioned Distributed Topic (PDT) instead -- PDTs have no forwarders, and the MDB and the SOA RA Adapter can work with them transparently. If your consumers are neither of these, then working with a PDT will likely require that you use extensions (an advanced path that you may not want to take the time to follow).
Tom -
Hi all,
When I try to access a JSP from my Global creation in OBPM 10GR3, sometimes this message appears:-
[<W> 0830 15:19:41.296] Main (<5> [ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'): Error workspace-1314782980927
[ (cont) ] Main: The Task cannot be resumed
[ (cont) ] Main: Detail:<br>The reason could be one of the following<br><ol> <li>You have already finished the task execution</li> <li>You have the autologin option enabled and the session for this execution has expired .<br></li></ol>
[ (cont) ] Main:
[ (cont) ] Main: fuego.web.exception.ItemAlreadyExecutedException: The Task cannot be resumed
[ (cont) ] Main: Detail:<br>The reason could be one of the following<br><ol> <li>You have already finished the task execution</li> <li>You have the autologin option enabled and the session for this execution has expired .<br></li></ol>
[ (cont) ] Main:
[ (cont) ] Main: at fuego.web.papi.TaskExecutor.processRedirect(TaskExecutor.java:213)
[ (cont) ] Main: at fuego.web.papi.TaskExecutor.execute(TaskExecutor.java:104)
[ (cont) ] Main: at fuego.workspace.servlet.ExecutorServlet.doAction(ExecutorServlet.java:117)
[ (cont) ] Main: at fuego.workspace.servlet.BaseServlet.doPost(BaseServlet.java:229)
[ (cont) ] Main: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
[ (cont) ] Main: at fuego.workspace.servlet.AuthenticatedServlet.service(AuthenticatedServlet.java:123)
[ (cont) ] Main: at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
[ (cont) ] Main: at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
[ (cont) ] Main: at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
[ (cont) ] Main: at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
[ (cont) ] Main: at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
[ (cont) ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
[ (cont) ] Main: at fuego.web.filter.NoCacheNoStoreFilter.doFilter(NoCacheNoStoreFilter.java:39)
[ (cont) ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
[ (cont) ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
[ (cont) ] Main: at fuego.web.filter.SingleThreadPerSessionFilter.doFilter(SingleThreadPerSessionFilter.java:64)
[ (cont) ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
[ (cont) ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
[ (cont) ] Main: at fuego.web.filter.CharsetFilter.doFilter(CharsetFilter.java:48)
[ (cont) ] Main: at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
[ (cont) ] Main: at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
[ (cont) ] Main: at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
Any idea why?There is probably one more reason why this may be happening. Again, I don't have a running 10g instance to verify this, but may be you can. Once a user clicks on the work item (or left menu in the case of a Global Create) in the inbox, and the dialog opens up, if you do a browser refresh, the popup will close, but probably , behind the scene, the screen-flow is not closed. Now , if you click on your global create again, you may get a Task cannot be resumed.
Not sure, but try this, and the only way around may be to tell users not to refresh the screen when the popup is up, if they do and get a 'Task cannot be resumed' , they will have to log out and log back in. -
OBPM : fuego.papi.exception.NoPermissionException
Scenario:
2. Logged in as A
3. Create a new Instance (X) -
4. Logged out as Sales Agent.
5. Logged in as Another user B to whom OBPM assigned automatically.
6. Selected X in B's worklist.
7. Assigned back to A.
8. Technical Info: fuego.papi.exception.NoPermissionException
10. Stacktrace:
ERROR [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.impl.CreditAssessmentTaskMgmtServiceImpl - OperationException while prepareActivityInstance : ReviewCreditAssessmentRequest , /SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5847/0
com.bea.albpm.papiwebservice.OperationException: Instance '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5847/0', in activity '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' is assigned to participant 'ELMER', or he/she is executing it. It may be that your execution of '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' expired. Check with your administrator for more details if this is not the case.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2010-10-12 18:48:54,267 DEBUG [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.datasou
rce.DataSourceUtils - Returning JDBC Connection to DataSource
2010-10-12 18:48:54,267 DEBUG [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] transaction.
jta.WebLogicJtaTransactionManager - Initiating transaction rollback
2010-10-12 18:48:54,302 DEBUG [[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.service.CreditAssessmentServiceSOAPHandler - SOAP Fault Message: <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Header/><S:Body><ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope"><faultcode>ns2:Server</faultcode><faultstring>OperationException kicking Off Work flow Instance for credit Assessment Request Id : 2152</faultstring><detail><ns4:PolicyException xmlns:ns2="http://xmlschema.tmi.telus.com/xsd/Customer/Customer/CreditAssessmentRequestTypes_v1" xmlns:ns3="http://xmlschema.tmi.telus.com/xsd/Enterprise/BaseTypes/types/ping_v1" xmlns:ns4="http://xmlschema.tmi.telus.com/xsd/common/exceptions/Exceptions_v1_0" xmlns:ns5="http://xmlschema.tmi.telus.com/srv/CMO/OrderMgmt/CreditAssessmentServiceRequestResponse_v1"><ns4:messageId>fuego.papi.exception.NoPermissionException</ns4:messageId>
<ns4:errorCode>CreditAssessmentSvcExceptionCodes.OBPM_EXCEPTION</ns4:errorCode>
<ns4:errorMessage>fuego.papi.exception.NoPermissionException Technical Info: Instance '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5847/0', in activity
'/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' iis assigned to participant 'ELMER', or he/she is executing it.
It may be that your execution of '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' expired. Check with your administrator for more details if this is not the case.
Technical Info: fuego.papi.exception.NoPermissionException: Instance '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5847/0', in activity
'/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' is assigned to participant 'ELMER', or he/she is executing it.
It may be that your execution of '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' expired. Check with your administrator for more details if this is not the case.
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:205)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:345)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at fuego.ejbengine.EJBProcessControl_1zamnl_EOImpl_1030_WLStub.runTask(Unknown Source)
at fuego.papi.impl.j2ee.EJBProcessControlInterfaceWrapper.runTask(EJBProcessControlInterfaceWrapper.java:2201)
at sun.reflect.GeneratedMethodAccessor1052.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at fuego.papi.impl.AbstractProcessControlHandler.invokeInternal(AbstractProcessControlHandler.java:72)
at fuego.papi.impl.j2ee.EJBProcessControlHandler.doInvoke(EJBProcessControlHandler.java:116)
at fuego.papi.impl.j2ee.EJBProcessControlHandler.invoke(EJBProcessControlHandler.java:70)
What could be the reason for it?
I got this info from website
http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi_javadocs/fuego/papi/exception/NoPermissionException.html#ACTIVITY_NOT_ABORTABLE
is that possible to catch this exception and display to user what is the reason and code ?
like SELECTED_BY_OTHER ,LIMIT_RUN_INSTANCES ,etc.. I would like to show the code to the user.X is a new instance created by A and assigned to ELMER(B).
This instance is never created and associated before.
When B(Elmer) tries to assign back to A.It thorws error.This happends when I call prepareActivityInstance : m_papiWebService.activityPrepare( activityPrepare );
Then why should I unassign ?
how we find out that instance is assigned to somebody?
how we unassign that instance?
This happends when I call prepareActivityInstance : m_papiWebService.activityPrepare( activityPrepare );
impl.CreditAssessmentTaskMgmtServiceImpl - Enter prepareActivityInstance
2010-10-14 18:29:05,052 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.impl.CreditAssessmentTaskMgmtServiceImpl - Enter prepareActivityInstance
2010-10-14 18:29:05,052 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.impl.CreditAssessmentTaskMgmtServiceImpl - Calling papiWebService: activityPrepare....ReviewCreditAssessmentRequest && /SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5855/0
2010-10-14 18:29:05,052 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.impl.CreditAssessmentTaskMgmtServiceImpl - Calling papiWebService: activityPrepare....ReviewCreditAssessmentRequest && /SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5855/0
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - enter PAPIWebServiceSOAPHandler.handleRequest
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - enter PAPIWebServiceSOAPHandler.handleRequest
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] framework.ws.RpcClientHandler - handleRequest(): class com.telus.credit.taskmgmt.webservice.impl.papi.PAPIWebServiceSOAPHandler
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] framework.ws.RpcClientHandler - handleRequest(): class com.telus.credit.taskmgmt.webservice.impl.papi.PAPIWebServiceSOAPHandler
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - PAPIWebServiceSOAPHandler.soapHeadersToAttach
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - PAPIWebServiceSOAPHandler.soapHeadersToAttach
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - Exit PAPIWebServiceSOAPHandler.handleRequest
2010-10-14 18:29:05,054 DEBUG [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] impl.papi.PAPIWebServiceSOAPHandler - Exit PAPIWebServiceSOAPHandler.handleRequest
2010-10-14 18:29:06,633 ERROR [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] webservice.impl.CreditAssessmentTaskMgmtServiceImpl - OperationException while prepareActivityInstance : ReviewCreditAssessmentRequest , /SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5855/0
com.bea.albpm.papiwebservice.OperationException: Instance '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/5855/0', in activity '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' is assigned to participant 'ELMER', or he/she is executing it. It may be that your execution of '/SDSE/CRDACreditAssessmentApplicationProcess#Default-1.0/Interactive[ReviewCreditAssessmentRequest]' expired. Check with your administrator for more details if this is not the case.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeConstructor(ReflectionUtils.java:66)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeConstructor(ReflectionUtils.java:66)
at com.bea.staxb.runtime.internal.CtorArgsMultiIntermediary.constructFinalValue(CtorArgsMultiIntermediary.java:81)
at com.bea.staxb.runtime.internal.CtorArgsMultiIntermediary.getFinalValue(CtorArgsMultiIntermediary.java:60)
at com.bea.staxb.runtime.internal.AttributeRuntimeBindingType.getFinalObjectFromIntermediary(AttributeRuntimeBindingType.java:140)
at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshal(AttributeUnmarshaller.java:39)
at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalBindingType(UnmarshalResult.java:189)
at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:227)
at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalElement(UnmarshalResult.java:242)
at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshalElement(UnmarshallerImpl.java:166)
at weblogic.wsee.bind.runtime.internal.LiteralDeserializerContext.unmarshalElement(LiteralDeserializerContext.java:89)
at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeElement(BaseDeserializerContext.java:182)
at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeElement(BaseDeserializerContext.java:117)
at weblogic.wsee.codec.soap11.SoapCodec.createExceptionFromFault(SoapCodec.java:624)
at weblogic.wsee.codec.soap11.SoapCodec.decodeFault(SoapCodec.java:306)
at weblogic.wsee.ws.dispatch.client.CodecHandler.decodeFault(CodecHandler.java:118)
at weblogic.wsee.ws.dispatch.client.CodecHandler.decode(CodecHandler.java:103)
at weblogic.wsee.ws.dispatch.client.CodecHandler.handleFault(CodecHandler.java:91)
at weblogic.wsee.handler.HandlerIterator.handleFault(HandlerIterator.java:309)
at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:269)
at weblogic.wsee.ws.dispatch.client.ClientDispatcher.handleResponse(ClientDispatcher.java:213)
at weblogic.wsee.ws.dispatch.client.ClientDispatcher.dispatch(ClientDispatcher.java:150)
at weblogic.wsee.ws.WsStub.invoke(WsStub.java:87)
at weblogic.wsee.jaxrpc.StubImpl._invoke(StubImpl.java:339)
at weblogic.wsee.jaxrpc.StubImpl.invoke(StubImpl.java:257)
at $Proxy319.activityPrepare(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.remoting.rmi.RmiClientInterceptorUtils.invokeRemoteMethod(RmiClientInterceptorUtils.java:108)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.doInvoke(JaxRpcPortClientInterceptor.java:617)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.doInvoke(JaxRpcPortClientInterceptor.java:584)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.invoke(JaxRpcPortClientInterceptor.java:562)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy135.activityPrepare(Unknown Source)
at com.telus.credit.taskmgmt.webservice.impl.CreditAssessmentTaskMgmtServiceImpl.prepareActivityInstance(CreditAssessmentTaskMgmtServiceImpl.java:655)
at com.telus.credit.assessment.service.activityactions.WorkflowDrivenAction.prepareActivity(WorkflowDrivenAction.java:132)
at com.telus.credit.assessment.service.activityactions.WorkflowDrivenAction.executeAction(WorkflowDrivenAction.java:104)
at com.telus.credit.assessment.webservice.impl.CreditAssessmentServiceImpl.performCreditAssessmentRequestActivities(CreditAssessmentServiceImpl.java:676)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy280.performCreditAssessmentRequestActivities(Unknown Source)
at com.telus.credit.assessment.webservice.service.CreditAssessmentServicePortImpl.performCreditAssessmentRequestActivities(CreditAssessmentServicePortImpl.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) -
JMS consumers and MDBs in free pool
Hello
I am using WLS 7.0 SP1. I notice the following when using MDBs listening on
a JMS queue.
The WLS console shows the number of JMS consumers to be equal to the <max-free-beans-in-pool>
parameter value in the MDBs deployment descriptor. I would expect the number of
JMS consumers to be equal to the <initial-free-beans-in-pool> value before I start
posting messages to the queue.
Thanks
Ramdas
Hi Ramdas,
I'm fairly sure that this is long-standing behavior, that
also occurs in 6.1 and 8.1. Since the number of beans
is limited by the number of available threads, the fact
that all of them are allocated right away is usually not
an issue.
Post to the ejb newsgroup to make sure.
Tom
P.S. If you haven't already, I suggest reading
the most recent version of the JMS performance guide. It
contains info on tuning MDB threading and pooling. You
can find the guide on dev2dev.
Ramdas Hegde wrote:
> Hello
>
> I am using WLS 7.0 SP1. I notice the following when using MDBs listening on
> a JMS queue.
> The WLS console shows the number of JMS consumers to be equal to the <max-free-beans-in-pool>
> parameter value in the MDBs deployment descriptor. I would expect the number of
> JMS consumers to be equal to the <initial-free-beans-in-pool> value before I start
> posting messages to the queue.
>
> Thanks
>
> Ramdas
-
Consumers count = thread count ?
Hello,
I've implemented on a wl cluster (10 6.1sp4 instances, patched with CR091195)
the approximated distributed destination pattern.
In my case the destination is a queue.
Every wl instance has thread count = 100.
I have 1 mdb, non transactional, and I haven't configured the max-beans-in-free-pool.
It happens, when I deploy the MDB, targetting it to the cluster, that I can see
on every wl instance (I have a monitoring program):
JMSRuntime.connectionsCurrentCount = 1
JMSConnectionRuntime.sessionsCurrentCount = 100 (I have only a "connection4116")
JMSDestinationRuntime.consumersCurrentCount = 100 (I have only 1 queue)
Why do I have all of these active consumers/sessions ?
(and I haven't yet run my jms client)
Thanks in advance
Best Regards
Mark
Hi Mark,
Before 6.1SP5, each MDB pool initializes
Math.min(default-execute-thread-pool-size,
max-beans-in-free-pool)
consumers and sessions.
For 6.1SP5 and later, each MDB pool initializes
Math.min(default-execute-thread-pool-size/2 + 1,
max-beans-in-free-pool)
consumers and sessions.
WL 7.0SP? (SP3 maybe?), and 8.1
allow MDBs to use the "dispatch-policy" descriptor field
and so assign themselves to a different
thread-pool. In which case initialized max concurrent
instances becomes:
Math.min(custom-thread-pool-size,
max-beans-in-free-pool)
I think that the max-beans-in-free-pool default is
some very high number. (At one point it was 1500).
The consumer instances will not necessarily all use
a thread at the same time, as they do not use
up a thread when they are not operating on a
message. In essence, thread usage depends on how
slow the receivers are, how fast the producers are, and
what other resources are also using
the thread pool.
I recommend tuning max-beans-in-free-pool so that total
instance count on a server is somewhat less than
the the thread count. This helps prevent dead-locks
where all threads are running app code, and none
are left to do other work.
In case you are unaware, I also recommend
using less than 100 threads unless the the
app typically blocks a thread for long periods of time.
The reason is that lots of threads may negatively
impact performance, the operating system ends up
burning CPU switching itself between threads
rather than doing actual work.
Each MDB deployment uses a single connection.
Hope this helps,
Tom, BEA
P.S. The above information will be in the next
iteration of the JMS Performance Guide white-paper,
which I've currently started working on again.
"Mark Cordobal" <[email protected]> wrote:
>
>Hello,
>
>I've implemented on a wl cluster (10 6.1sp4 instances, patched with CR091195)
>the approximated distributed destination pattern.
>In my case the destination is a queue.
>
>Every wl instance has thread count = 100.
>
>I have 1 mdb, non transactional, and I haven't configured the max-beans-in-free-pool.
>
>It happens, when I deploy the MDB, targetting it to the cluster, that
>I can see
>on every wl instance (I have a monitoring program):
>
>JMSRuntime.connectionsCurrentCount = 1
>JMSConnectionRuntime.sessionsCurrentCount = 100 (I have only a "connection4116")
>JMSDestinationRuntime.consumersCurrentCount = 100 (I have only 1 queue)
>
>Why do I have all of these active consumers/sessions ?
>(and I haven't yet run my jms client)
>
>
>Thanks in advance
>
>Best Regards
>
>
>Mark
-
Error while deploying a project to the OBPM 10GR3 Server
Hi all,
I am trying to deploy my current project to the OBPM 10GR3 server and it gives me the following exception. I am not sure what is this exception.
The project compiles well in Studio 10GR3.
Cannot publish the project.
'close' is not a function. Caused by: 'close' is not a function.
Does anybody know what is the exception?Got it..
I was using Fuego.Sql.DynamicSQL.close(Iterator)
For a an executeUpdate query which returns an int.
But I used it in a method and did not use that method inside my process or screenflow.
But it did not give me any error/exception while compiling it in Studio.
It gave me an exception while publishing in Enterprise.
This is strange.
It should have given me an error/exception while compiling itself rather than while publishing in Enterprise. -
hello all
my one of query is returning result in 1-2 mins only for 1 lakh record but i am not sure if it showed me complete rows or not because when I an trying to get count of result ..its taking lot of time .when I am using this query on plsql code ..code is running slow so just wanted to confirm on query tuning point of view if its fine or not ..please look onto it and let me know if query is fine or not by explain plan .my oracle version is 11g
this is my query
SELECT ROWNUM , TRUNC(rownum/5000) + 20000 ,'FOR_UPDATE', sku_org.NAME ,
acct_promo_sku.src_num , acct_promo_sku.sub_type ,
promo_actual.sku_actual_pos
FROM siebel.s_src acct_promo_hdr,
siebel.s_src acct_title_format,
siebel.s_src acct_promo_sku,
siebel.s_src_x acct_promo_hdrx,
siebel.s_src_x acct_promo_skux,
siebel.s_prod_int prod,
siebel.s_bu promo_hdr_org,
siebel.s_bu sku_org,
siebelwb.stg_sbl_acct_promo_actuals2 promo_actual
WHERE acct_promo_hdr.sub_type = 'PLAN_ACCOUNT_PROMOTION'
AND acct_promo_hdr.row_id = acct_title_format.par_src_id
AND acct_title_format.sub_type = 'PLAN_ACCT_PROMOTION_CATEGORY'
AND acct_title_format.row_id = acct_promo_sku.par_src_id
AND acct_promo_sku.sub_type = 'PLAN_ACCOUNT_PROMOTION_PRODUCT'
AND acct_promo_hdr.row_id = acct_promo_hdrx.par_row_id
AND acct_promo_sku.row_id = acct_promo_skux.par_row_id(+)
AND acct_promo_sku.prod_id = prod.row_id
AND acct_promo_hdr.bu_id = promo_hdr_org.row_id
AND acct_promo_sku.bu_id = sku_org.row_id
AND prod.x_prod_material_num = promo_actual.material_number
and prod.X_PROD_SALES_ORG=promo_actual.sales_org
AND acct_promo_hdr.row_id = promo_actual.acct_promo_id
and nvl(acct_promo_hdr.pr_accnt_id,0)=nvl(promo_actual.acct_siebel_rowid,0)
and nvl(acct_promo_hdr.x_indirect_id,0)=nvl(promo_actual.indirect_acct_siebel_rowid,0)
AND promo_actual.load_date >= TRUNC(SYSDATE)
AND promo_actual.load_date < TRUNC(SYSDATE + 1)
explain plan
PLAN_TABLE_OUTPUT
Plan hash value: 3864590768
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 298 | 2300 (1)| 00:00:28 |
| 1 | COUNT | | | | | |
|* 2 | FILTER | | | | | |
| 3 | NESTED LOOPS | | | | | |
| 4 | NESTED LOOPS | | 1 | 298 | 2300 (1)| 00:00:28 |
| 5 | NESTED LOOPS OUTER | | 1 | 273 | 2298 (1)| 00:00:28 |
| 6 | NESTED LOOPS | | 1 | 263 | 2296 (1)| 00:00:28 |
| 7 | NESTED LOOPS | | 1 | 236 | 2295 (1)| 00:00:28 |
| 8 | NESTED LOOPS | | 1 | 165 | 2292 (1)| 00:00:28 |
| 9 | NESTED LOOPS | | 1 | 117 | 2289 (1)| 00:00:28 |
| 10 | NESTED LOOPS | | 1 | 109 | 2289 (1)| 00:00:28 |
| 11 | NESTED LOOPS | | 1 | 99 | 2287 (1)| 00:00:28 |
|* 12 | TABLE ACCESS FULL | STG_SBL_ACCT_PROMO_ACTUALS2 | 1 | 49 | 2285 (1)| 00:0
|* 13 | TABLE ACCESS BY INDEX ROWID| S_SRC | 1 | 50 | 2 (0)| 00:00:01 |
|* 14 | INDEX UNIQUE SCAN | S_SRC_P1 | 1 | | 1 (0)| 00:00:01 |
|* 15 | INDEX RANGE SCAN | S_SRC_X_U1 | 1 | 10 | 2 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | S_BU_P1 | 1 | 8 | 0 (0)| 00:00:01 |
|* 17 | TABLE ACCESS BY INDEX ROWID | S_SRC | 1 | 48 | 3 (0)| 00:00:01 |
|* 18 | INDEX RANGE SCAN | S_SRC_F2 | 2 | | 2 (0)| 00:00:01 |
|* 19 | TABLE ACCESS BY INDEX ROWID | S_SRC | 1 | 71 | 3 (0)| 00:00:01 |
|* 20 | INDEX RANGE SCAN | S_SRC_F2 | 2 | | 2 (0)| 00:00:01 |
| 21 | TABLE ACCESS BY INDEX ROWID | S_BU | 1 | 27 | 1 (0)| 00:00:01 |
|* 22 | INDEX UNIQUE SCAN | S_BU_P1 | 1 | | 0 (0)| 00:00:01 |
|* 23 | INDEX RANGE SCAN | S_SRC_X_U1 | 1 | 10 | 2 (0)| 00:00:01 |
|* 24 | INDEX UNIQUE SCAN | S_PROD_INT_P1 | 1 | | 1 (0)| 00:00:01 |
|* 25 | TABLE ACCESS BY INDEX ROWID | S_PROD_INT | 1 | 25 | 2 (0)| 00:00:
Predicate Information (identified by operation id):
2 - filter(TRUNC(SYSDATE@!)<TRUNC(SYSDATE@!+1))
12 - filter("PROMO_ACTUAL"."LOAD_DATE">=TRUNC(SYSDATE@!) AND "PROMO_ACTUAL"."LOAD_DATE"<TRUNC(SYSD
13 - filter("ACCT_PROMO_HDR"."SUB_TYPE"='PLAN_ACCOUNT_PROMOTION' AND
NVL("ACCT_PROMO_HDR"."PR_ACCNT_ID",'0')=NVL("PROMO_ACTUAL"."ACCT_SIEBEL_ROWID",'0') AND
NVL("ACCT_PROMO_HDR"."X_INDIRECT_ID",'0')=NVL("PROMO_ACTUAL"."INDIRECT_ACCT_SIEBEL_ROWID",'0'
14 - access("ACCT_PROMO_HDR"."ROW_ID"="PROMO_ACTUAL"."ACCT_PROMO_ID")
15 - access("ACCT_PROMO_HDR"."ROW_ID"="ACCT_PROMO_HDRX"."PAR_ROW_ID")
16 - access("ACCT_PROMO_HDR"."BU_ID"="PROMO_HDR_ORG"."ROW_ID")
17 - filter("ACCT_TITLE_FORMAT"."SUB_TYPE"='PLAN_ACCT_PROMOTION_CATEGORY')
18 - access("ACCT_PROMO_HDR"."ROW_ID"="ACCT_TITLE_FORMAT"."PAR_SRC_ID")
19 - filter("ACCT_PROMO_SKU"."PROD_ID" IS NOT NULL AND
"ACCT_PROMO_SKU"."SUB_TYPE"='PLAN_ACCOUNT_PROMOTION_PRODUCT')
20 - access("ACCT_TITLE_FORMAT"."ROW_ID"="ACCT_PROMO_SKU"."PAR_SRC_ID")
22 - access("ACCT_PROMO_SKU"."BU_ID"="SKU_ORG"."ROW_ID")
23 - access("ACCT_PROMO_SKU"."ROW_ID"="ACCT_PROMO_SKUX"."PAR_ROW_ID"(+))
24 - access("ACCT_PROMO_SKU"."PROD_ID"="PROD"."ROW_ID")
25 - filter("PROD"."X_PROD_MATERIAL_NUM" IS NOT NULL AND
"PROD"."X_PROD_MATERIAL_NUM"="PROMO_ACTUAL"."MATERIAL_NUMBER" AND
"PROD"."X_PROD_SALES_ORG"="PROMO_ACTUAL"."SALES_ORG")
55 rows selected.
thanksHi,
the plan you posted has the cost of 2300, i.e. 2300 single-block reads or equivalent number f multi-block reads. Even if none of the blocks is found in cache, 2300 reas shouldn't take more than a couple of minutes, beacause for most of the hard drives available today a disk read is typically within 5-10 ms.
This means that if there is a problem, we will never find out about it by looking in the plan. And it's quite likely that there is, in fact, a problem, because the plan contains a bunch of nested joins, and the cost of each nested join is directly proportional to the cardinality of the previous nested loop. I.e. it suffices to make one bad mistake in estimating the number of rows coming fom one of the nested rows to screw up the entire plan and get all remaining estimates (including the total cost of the query) completely wrong.
In order for us to be able to tell more, we need to see the plan with rowsource statistics, and please don't forget to use tags to preserve formatting (use the preview tab to make sure the posted plan is actually readable).
Best regards,
Nikolay -
HOW TO: Post a SQL statement tuning request - template posting
This post is not a question, but similar to Rob van Wijk's "When your query takes too long ..." post should help to improve the quality of the requests for SQL statement tuning here on OTN.
On the OTN forum very often tuning requests about single SQL statements are posted, but the information provided is rather limited, and therefore it's not that simple to provide a meaningful advice. Instead of writing the same requests for additional information over and over again I thought I put together a post that describes how a "useful" post for such a request should look like and what information it should cover.
I've also prepared very detailed step-by-step instructions how to obtain that information on my blog, which can be used to easily gather the required information. It also covers again the details how to post the information properly here, in particular how to use the \ tag to preserve formatting and get a fixed font output:
http://oracle-randolf.blogspot.com/2009/02/basic-sql-statement-performance.html
So again: This post here describes how a "useful" post should look like and what information it ideally covers. The blog post explains in detail how to obtain that information.
In the future, rather than requesting the same additional information and explaining how to obtain it, I'll simply refer to this HOW TO post and the corresponding blog post which describes in detail how to get that information.
*Very important:*
Use the \ tag to enclose any output that should have its formatting preserved as shown below.
So if you want to use fixed font formatting that preserves the spaces etc., do the following:
\ This preserves formatting
\And it will look like this:
This preserves formatting
. . .Your post should cover the following information:
1. The SQL and a short description of its purpose
2. The version of your database with 4-digits (e.g. 10.2.0.4)
3. Optimizer related parameters
4. The TIMING and AUTOTRACE output
5. The EXPLAIN PLAN output
6. The TKPROF output snippet that corresponds to your statement
7. If you're on 10g or later, the DBMS_XPLAN.DISPLAY_CURSOR output
The above mentioned blog post describes in detail how to obtain that information.
Your post should have a meaningful subject, e.g. "SQL statement tuning request", and the message body should look similar to the following:
*-- Start of template body --*
The following SQL statement has been identified to perform poorly. It currently takes up to 10 seconds to execute, but it's supposed to take a second at most.
This is the statement:
select
from
t_demo
where
type = 'VIEW'
order by
id;It should return data from a table in a specific order.
The version of the database is 11.1.0.7.
These are the parameters relevant to the optimizer:
SQL>
SQL> show parameter optimizer
NAME TYPE VALUE
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.1.0.7
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_pending_statistics boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
SQL>
SQL> show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 8
SQL>
SQL> show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
SQL>
SQL> show parameter cursor_sharing
NAME TYPE VALUE
cursor_sharing string EXACT
SQL>
SQL> column sname format a20
SQL> column pname format a20
SQL> column pval2 format a20
SQL>
SQL> select
2 sname
3 , pname
4 , pval1
5 , pval2
6 from
7 sys.aux_stats$;
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 01-30-2009 16:25
SYSSTATS_INFO DSTOP 01-30-2009 16:25
SYSSTATS_INFO FLAGS 0
SYSSTATS_MAIN CPUSPEEDNW 494,397
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.Here is the output of EXPLAIN PLAN:
SQL> explain plan for
2 -- put your statement here
3 select
4 *
5 from
6 t_demo
7 where
8 type = 'VIEW'
9 order by
10 id;
Explained.
Elapsed: 00:00:00.01
SQL>
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 1390505571
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 60 | 0 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_DEMO | 1 | 60 | 0 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | IDX_DEMO | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("TYPE"='VIEW')
14 rows selected.Here is the output of SQL*Plus AUTOTRACE including the TIMING information:
SQL> rem Set the ARRAYSIZE according to your application
SQL> set autotrace traceonly arraysize 100
SQL> select
2 *
3 from
4 t_demo
5 where
6 type = 'VIEW'
7 order by
8 id;
149938 rows selected.
Elapsed: 00:00:02.21
Execution Plan
Plan hash value: 1390505571
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 60 | 0 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_DEMO | 1 | 60 | 0 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | IDX_DEMO | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("TYPE"='VIEW')
Statistics
0 recursive calls
0 db block gets
149101 consistent gets
800 physical reads
196 redo size
1077830 bytes sent via SQL*Net to client
16905 bytes received via SQL*Net from client
1501 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
149938 rows processed
SQL>
SQL> disconnect
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsThe TKPROF output for this statement looks like the following:
TKPROF: Release 11.1.0.7.0 - Production on Mo Feb 23 10:23:08 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Trace file: orcl11_ora_3376_mytrace1.trc
Sort options: default
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
select
from
t_demo
where
type = 'VIEW'
order by
id
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1501 0.53 1.36 800 149101 0 149938
total 1503 0.53 1.36 800 149101 0 149938
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 88
Rows Row Source Operation
149938 TABLE ACCESS BY INDEX ROWID T_DEMO (cr=149101 pr=800 pw=0 time=60042 us cost=0 size=60 card=1)
149938 INDEX RANGE SCAN IDX_DEMO (cr=1881 pr=1 pw=0 time=0 us cost=0 size=0 card=1)(object id 74895)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1501 0.00 0.00
db file sequential read 800 0.05 0.80
SQL*Net message from client 1501 0.00 0.69
********************************************************************************The DBMS_XPLAN.DISPLAY_CURSOR output:
SQL> -- put your statement here
SQL> -- use the GATHER_PLAN_STATISTICS hint
SQL> -- if you're not using STATISTICS_LEVEL = ALL
SQL> select /*+ gather_plan_statistics */
2 *
3 from
4 t_demo
5 where
6 type = 'VIEW'
7 order by
8 id;
149938 rows selected.
Elapsed: 00:00:02.21
SQL>
SQL> select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
PLAN_TABLE_OUTPUT
SQL_ID d4k5acu783vu8, child number 0
select /*+ gather_plan_statistics */ * from t_demo
where type = 'VIEW' order by id
Plan hash value: 1390505571
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
| 0 | SELECT STATEMENT | | 1 | | 149K|00:00:00.02 | 149K| 1183 |
| 1 | TABLE ACCESS BY INDEX ROWID| T_DEMO | 1 | 1 | 149K|00:00:00.02 | 149K| 1183 |
|* 2 | INDEX RANGE SCAN | IDX_DEMO | 1 | 1 | 149K|00:00:00.02 | 1880 | 383 |
Predicate Information (identified by operation id):
2 - access("TYPE"='VIEW')
20 rows selected.I'm looking forward for suggestions how to improve the performance of this statement.
*-- End of template body --*
I'm sure that if you follow these instructions and obtain the information described, post them using a proper formatting (don't forget about the \ tag) you'll receive meaningful advice very soon.
So, just to make sure you didn't miss this point:Use proper formatting!
If you think I missed something important in this sample post let me know so that I can improve it.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/Alex Nuijten wrote:
...you missed the proper formatting of the Autotrace section ;-)Alex,
can't reproduce, does it still look unformatted? Or are you simply kidding? :-)
Randolf
PS: Just noticed that it actually sometimes doesn't show the proper formatting although the code tags are there. Changing to the \ tag helped in this case, but it seems to be odd.
Edited by: Randolf Geist on Feb 23, 2009 11:28 AM
Odd behaviour of forum software -
Need help in tuning a procedure
DECLARE
CURSOR Cur_sub_rp IS
SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID ;
TYPE t_values_tab IS TABLE OF cur_sub_rp%rowtype ;
values_tab t_values_tab := t_values_tab() ;
BEGIN
OPEN Cur_sub_rp ;
LOOP
FETCH Cur_sub_rp BULK COLLECT INTO Values_tab
LIMIT 1000;
EXIT WHEN Cur_sub_rp%NOTFOUND ;
END LOOP ;
CLOSE Cur_sub_rp;
FORALL i IN VALUES_TAB.first..values_tab.last
INSERT INTO SUB_PHN_1 VALUES VALUES_TAB(i);
commit;
END;
The tables used here has 9 million records each.
The total process takes around 19 minutes.
Need your help in optimizing the process.i have tried using
Create table as SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID (+);But still taking long time(apprx 15 min).
so used this...
help me in tuning the query in either of this.
DECLARE
CURSOR Cur_sub_rp IS
SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID (+);
TYPE t_values_tab IS TABLE OF cur_sub_rp%rowtype ;
values_tab t_values_tab := t_values_tab() ;
BEGIN
OPEN Cur_sub_rp ;
LOOP
FETCH Cur_sub_rp BULK COLLECT INTO Values_tab
LIMIT 1000;
EXIT WHEN Cur_sub_rp%NOTFOUND ;
END LOOP ;
CLOSE Cur_sub_rp;
FORALL i IN VALUES_TAB.first..values_tab.last
INSERT INTO SUB_PHN_1 VALUES VALUES_TAB(i);
commit;
END;Message was edited by:
Vakeel
Message was edited by:
Vakeel -
Real Instruments, Enhance Tuning, Enhance Timing, Etc?
Hi,
I am having trouble getting to the Real Instruments, Enhance Tuning, Enhance Timing, area of GB3.
I see the window partially, but not enough to move the sliders, while seeing there placement..
I'm sure there's something I'm unaware of to get the full view, and I've snapped a screen shot to show what I'm talking about, if anyone is interested..
Thanks For Any Help,
EricHang-
I have a work around I kind of stumbled onto..
http://members.aol.com/unkie/GB3-pict-2.gif
After you select the Real Instrument track you'd like to correct the pitch or timing of, you hit the "I" for track information, then you can click on the region arrow,(?) and the Enhancing area opens up properly.
Check out the picture linked above, and below I will place the before shot link..
The preference not coming up seems to be linked to using iChat, believe it or not..
I read it here in the forum.
If you open iChat, and then Garageband 3, your preference pane may not open up, until you reboot your computer.
Strange but true..
HangTime, Thanks for "Hanging" in there with me through this dilemma..
Take Care,
Eric
Before Link: http://members.aol.com/unkie/GB3.gif
G4 Desktop (QuickSilver) Dual 1 Gig Processors Mac OS X (10.4.3) 1.5 Gigs of RAM -
Hi, my Mac Book Pro 15 inch lap top if i set it on the couch no matter where I place it slips off and luckily so far I have caught it before it falls onto the floor and gets ruined, of which I am super afraid of, due to what I initially paid for it as the consumer. Also, the couch is not made of slippery material at all. Also, when using it on my lap while watching tv, and multi tasking while doing my college homework, it even slides off of my lap at times. Why is it called a lap top then when it's not working as one? Are we to wear rubber pants that grip your products? Also, Why do you place on your Apple website that in one area a satin cover is available in the teal color, and then in another area it's discontinued? I believe it would be simpler if Apple would just remove the product all together from the purchasing website once any product becomes discontinued. Also, I was sitting here at home waiting for a reply about the satin cover in teal no longer being available period or that it has shipped, but yet I ended up calling Apple altogether myself and finding this all out that the only available color is the black. It would've been nice to have recieved an e-mail or a phone call on why it wasn't going to be shipped, or shipping instead of having to do customer services job and doing the leg work myself. Also, why is it that no one also even tells a consumer about the classes that were offered to a new consumer for 14 days after purchase of paying the $99.00s to learn about their macs of any kind? If I had known about such a program, I surely would've signed right up for it. Now I am being told that I can only take one clas at a time or something?!? I seriously wish I was told about this as a consumer of the Mac Book Pro 15 inch, because I would've purchased that offer right away, and now I am stuck and can no longer do it. Also I have had my computer since October of last year. So, I am in college as becoming a graphic designer within a degree of an Associates of Science and am now still struggling to learn the computer, and the programs I pruchased as well at the time of purchase, along with an Epson printer, the magic mouse, and the one year warranty. As for this all, I do believe that Apple needs to make a better bottom to the Mac Book Pro's within a much better quality for the price we pay as consumers, and all other lap tops and/or Notebooks in making them slide proof. The tiny rubber spots on the bottom of the lap tops or any Apple computer similar to mine just needs a better quality improvement to us consumers I spent good money on this purchase, I think now I deserve a rubberised protective cover for free for the slipperyness, and also since I was never told about the program for the classes of which a consumer was to pay $99.00s for, I think as a good paying quality consumer for Apple's products, I now deserve these classes for free as well.
Sincerely,
KimHi shldr2thewheel,
it has been a while since we have last spoke, I would like to let you know, I am still working on getting used to the switch from windows to a Mac/Apple system. I do have a new question for you, I did purchase In Design CS5.5 through journeyed.com through Cuyahoga Community College of which I attend as a student, is there a way to purchase an online book through iTunes to learn that as well? Also, you know me, the struggling student, I would also, when and if the book can be purchased through the iTunes, would need to know if you do know of a much easier book for struggling students like myself and at a reasonable price as well for the In Design CS5.5 program. Our campus bookstore had closed early, and, so did the colleges library and our local library here where I do live, so, I cannot go to either place to purchase a book or to take out a book, plus cash funds are low at this moment as well but, I do have money left on the iTunes account to use, if it can be used. So, can it be used, the iTunes money, towards finding a low priced online book? I am in great need of assistance as I have a project due for my one course for this Tuesday, September 4, 2012.
Sincerely in need of help once again,
Kim -
Help me in Report(RDF) Performance tuning
Hi Viewers,
I need some steps related to report ( RDF) perfomance tune.
here is my following question.
(Q). A report for 100,000+ lines/records is taking 20 hours to run – what steps should be taken to resolve / tune
Thanks in advance.
newHello,
Have you followed the "tips" in the documents ?
Oracle® Application Server Reports Services Publishing Reports to the Web
10g Release 2 (10.1.2)
B14048-02
20 Tuning Oracle Reports
http://download-uk.oracle.com/docs/cd/B14099_17/bi.1012/b14048/pbr_tune.htm
Regards -
Report running for long time & performance tuning
Hi All,
(1). WebI report is running for long time.so what are the steps i need to check for it ?
(2). Can you tell me about performance tuning in BO ?
please help me.....
Thanks
Kumar(1). WebI report is running for long time.so what are the steps i need to check for it ?
The first step is to see if the problem lies in the query on the data source or in webi itself. Depending on the data source there are different ways to extract the query and try to run it against the database. Which source does your report uses?
(2). Can you tell me about performance tuning in BO ?
I would recommend to start by reading the administrator's guide. There is a section about how to improve performance.
Regards,
Stratos
Maybe you are looking for
-
Drag and Drop as an Assessment in Captivate 7
Hello- I am having an extreme amount of difficulty when it comes to using this function in Captivate 7. The following is a list of questions that I cannot seem to find the answer to anywhere online. After assigning the answers (as in which box gets d
-
Servlet Download File (XLS, PDF, DOC)
When the user clicks the link to download a file, the Open/Save/Cancel dialog box pops up twice. Here are the headers I am setting: response.setContentType(getContentType(sFiletype)); response.setContentLength((int) file.length()); response.setHeader
-
Seial number creation for matrial
we have a material which has tert :A: as header material and materials :B: and :C: halb bom materials. In the work scheduling view of the material a :Serial number profile OF category MMSL with material no creation obligatory was assigned. At the tim
-
How can I get the iPhone calendar to sync with MacBook Pro both when it is plugged into Mac and through the cloud? What would cause the MacBook Pro to not be able to retrieve mobileme mail when it still retrieves the comcast mail? Can you help me ge
-
Lumia 800 email not synchronising
Has anyone else experienced a problem with email synchronisaton after the Tango update? My Lumia 800 periodically ceases to synchronise email accounts and requires a phone restart before it will pick up email changes. This seems to happen on a 5-7 da