Sessions pooling

Hi friends,
We are facing a problem with one of our applications, that the session is pooling a number of sessions showing only 1 cursor and its not supposed to pool so many sessions from the application..
All these sessions show the below as current statement..
SELECT VALUE
FROM SYS.nls_database_parameters
WHERE parameter = 'NLS_NCHAR_CHARACTERSET'
Please give me your suggestions.. Is there any setting like connection pooling that deals with this problem?
Thank you

Thanks. But this is not the case for all our applications.. Only from one of the programs, the sessions are pooling like this.. Also, we cannot really set any maximum time for the sessions because the true valid sessions timing may vary and can be valid for long..
I'm not sure if it is Oracle problem that is creating a lot of these empty sessions?? The application is using Oracle ODBC drive to connect to the database..
Thanks again
Edited by: newbiegal on Sep 20, 2010 12:53 PM

Similar Messages

  • Session pooling and statement handles

    Hi there,
    I have a large multi-threaded application (perhaps >100 threads). Each thread is continuously processing events (very high volumes) which involves some manipulation and some database operations (from a fixed set of possible operations).
    I am using session pooling but what I want to know is, Should I:
    (a) Prepare my fixed set of statement handles up front at program start-up when I'm creating the session pool and then reuse the statement handles in each event processing thread (also, is this thread safe ? even if it is, all threads would be contending on the same statement handles)
    or
    (b) Prepare the statement handle for each event which presumably will exploit the statement cache on the session pool. This would also mean not having statement handles shared between threads thus removing any thread contention issues.
    I think (b) is the option for me, but does anyone have any thoughts ?

    With a), one would think it's OK, but I would hate to find out that it's not thread safe by accident.
    But anyway, with b) the cost of allocating private statement handles in each thread seems very low. The memory required for the statement handle plus its bind and define handles could very well be below 8k per statement. If you've got say, 5 statements * 100 threads, you're only looking at around 4MB overall.
    Finally, you might want to make sure that the session pool statement cache is working by checking the values for 'executions' and 'parse_calls' in V$SQL for your statements.

  • 11g SOA Composite Rules Error - Rule session pool object does not exist

    Hi all,
    I'm hoping someone has experienced this and found a way through it. We're looking at exposing Oracle Rules DecisionFunctions via the automagically created web services in JDeveloper. We've tried several Rules examples, including the OrderApproval one available online, and are getting errors everytime we try and test the web service.
    Firstly we get this error:
    [2010-09-01T09:47:24.249+10:00] [soa_server1] [ERROR] [] [oracle.soa.services.rules] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000IfAZ45P0FwI5yrDCiW1CV7Dc000AwY,0] [WEBSERVICE_PORT.name: IDecisionService_pt] [APP: soa-infra] [composite_name: CR] [component_name: OracleRules1] [component_instance_id: 04c3bc86-9452-4755-9bbf-51591f1c7fff] [J2EE_MODULE.name: fabric] [dcid: 761c1dbb0eb1dbdc:-33082b47:12ac627683f:-7ffd-0000000000002aae] [WEBSERVICE.name: OracleRules1_DecisionService_1_ep] [J2EE_APP.name: soa-infra] [composite_instance_id: 130022] <.> Error caching the Decision Services metadata.[[
    Error caching the decision services metadata for path default/CR!1.0*soa_f8581f86-106e-4f47-825f-89148db6663b/OracleRules1.
    Check the underlying exception and correct the error. This is most likely due to a rule modeling isssue. Validate the rule dictionary in rule designer and fix any errors and warnings. If the error persists, contact Oracle Support Services.
    Error caching the Decision Services metadata.
    Error caching the decision services metadata for path default/CR!1.0*soa_f8581f86-106e-4f47-825f-89148db6663b/OracleRules1.
    Check the underlying exception and correct the error. This is most likely due to a rule modeling isssue. Validate the rule dictionary in rule designer and fix any errors and warnings. If the error persists, contact Oracle Support Services.
         at oracle.bpel.services.rules.impl.DecisionServiceCache.cacheDecisionServiceMetadata(DecisionServiceCache.java:1211)
         at oracle.bpel.services.rules.impl.DecisionServiceCache.prepare(DecisionServiceCache.java:362)
         at oracle.bpel.services.rules.impl.DecisionServiceImpl.preProcess(DecisionServiceImpl.java:221)
         at oracle.bpel.services.rules.fabric.BusinessRulesServiceEngine.request(BusinessRulesServiceEngine.java:609)
         at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:139)
         at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:179)
         at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:155)
         at sun.reflect.GeneratedMethodAccessor1197.invoke(Unknown Source)
         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 oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:59)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy248.request(Unknown Source)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.doMessageProcessing(WebServiceEntryBindingComponent.java:1169)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:768)
         at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1168)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:996)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:562)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:222)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:185)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:430)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:477)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
         at oracle.rules.sdk2.datamodel.DecisionFunction.getGlobalTypeIDs(DecisionFunction.java:860)
         at oracle.rules.sdk2.datamodel.DecisionFunction.validate(DecisionFunction.java:342)
         at oracle.rules.sdk2.dictionary.DictionaryComponentTable.validate(DictionaryComponentTable.java:221)
         at oracle.rules.sdk2.datamodel.DataModel.validate(DataModel.java:92)
         at oracle.rules.sdk2.dictionary.RuleDictionary.validate(RuleDictionary.java:1093)
         at oracle.rules.sdk2.dictionary.RuleDictionary.update(RuleDictionary.java:835)
         at oracle.rules.sdk2.datamodel.DataModel.generateFactClasses(DataModel.java:115)
         at oracle.rules.sdk2.dictionary.RuleDictionary.dataModelRL(RuleDictionary.java:1398)
         at oracle.bpel.services.rules.impl.DecisionServiceCache.cacheDecisionServiceMetadata(DecisionServiceCache.java:1141)
         ... 44 more
    And then we get the following error:
    [2010-09-01T09:47:24.390+10:00] [soa_server1] [ERROR] [] [oracle.soa.services.rules] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000IfAZ45P0FwI5yrDCiW1CV7Dc000AwY,0] [WEBSERVICE_PORT.name: IDecisionService_pt] [APP: soa-infra] [composite_name: CR] [component_name: OracleRules1] [component_instance_id: 04c3bc86-9452-4755-9bbf-51591f1c7fff] [J2EE_MODULE.name: fabric] [dcid: 761c1dbb0eb1dbdc:-33082b47:12ac627683f:-7ffd-0000000000002aae] [WEBSERVICE.name: OracleRules1_DecisionService_1_ep] [J2EE_APP.name: soa-infra] [composite_instance_id: 130022] <.> [[
    oracle.fabric.common.BusinessFaultException
         at oracle.bpel.services.rules.impl.DecisionServiceCache.cacheDecisionServiceMetadata(DecisionServiceCache.java:1211)
         at oracle.bpel.services.rules.impl.DecisionServiceCache.prepare(DecisionServiceCache.java:362)
         at oracle.bpel.services.rules.impl.DecisionServiceImpl.preProcess(DecisionServiceImpl.java:221)
         at oracle.bpel.services.rules.fabric.BusinessRulesServiceEngine.request(BusinessRulesServiceEngine.java:609)
         at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:139)
         at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:179)
         at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:155)
         at sun.reflect.GeneratedMethodAccessor1197.invoke(Unknown Source)
         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 oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:59)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy248.request(Unknown Source)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.doMessageProcessing(WebServiceEntryBindingComponent.java:1169)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:768)
         at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1168)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:996)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:562)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:222)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:185)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:430)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:477)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    And lastly this one:
    [2010-09-01T09:47:30.437+10:00] [soa_server1] [ERROR] [] [oracle.soa.services.rules] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 0000IfAZ5iO0FwI5yrDCiW1CV7Dc000Awd,0] [WEBSERVICE_PORT.name: IDecisionService_pt] [APP: soa-infra] [composite_name: CR] [component_name: OracleRules1] [component_instance_id: 08f3eaa8-ce61-4ec9-a646-af821be06420] [J2EE_MODULE.name: fabric] [dcid: 761c1dbb0eb1dbdc:-33082b47:12ac627683f:-7ffd-0000000000002ab0] [WEBSERVICE.name: OracleRules1_DecisionService_1_ep] [J2EE_APP.name: soa-infra] [composite_instance_id: 130023] <.> Rule session pool object does not exist.[[
    The requested rule session pool object for path default/CR!1.0*soa_f8581f86-106e-4f47-825f-89148db6663b/OracleRules1 and key OracleRulesSDK$OracleRules1 does not exist.
    Check the underlying exception and correct the error. This is most likely due to a rules validation error. Validate the rule dictionary in Rule Designer and correct the validation error. If the error persists, contact Oracle Support Services.
    Rule session pool object does not exist.
    The requested rule session pool object for path default/CR!1.0*soa_f8581f86-106e-4f47-825f-89148db6663b/OracleRules1 and key OracleRulesSDK$OracleRules1 does not exist.
    Check the underlying exception and correct the error. This is most likely due to a rules validation error. Validate the rule dictionary in Rule Designer and correct the validation error. If the error persists, contact Oracle Support Services.
         at oracle.bpel.services.rules.rpi.oracle.RuleSessionPool.getSession(RuleSessionPool.java:528)
         at oracle.bpel.services.rules.rpi.oracle2.OracleRuleSession.execute(OracleRuleSession.java:260)
         at oracle.bpel.services.rules.impl.DecisionServiceImpl.process(DecisionServiceImpl.java:331)
         at oracle.bpel.services.rules.fabric.BusinessRulesServiceEngine.request(BusinessRulesServiceEngine.java:634)
         at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:139)
         at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:179)
         at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:155)
         at sun.reflect.GeneratedMethodAccessor1197.invoke(Unknown Source)
         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 oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:59)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy248.request(Unknown Source)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.doMessageProcessing(WebServiceEntryBindingComponent.java:1169)
         at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:768)
         at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1168)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:996)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:562)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:222)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:185)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:430)
         at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:477)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Has anyone had any luck actually getting this to work? If so, how? It simply seems like this particular aspect of the product is broken!
    Your help would be VERY much appreciated!
    Regards,
    Rhian

    Hi SR,
    Thanks for your response. I attempted what you've suggested (1=1 - asset new fact in output), however nothing has changed.
    This is occurring across several Composite Rules projects, including the Oracle provided Chapter 5 Order Approval example. Unless someone can suggest a solution to this issues, it looks like we're going to have to shelf our plans to utilize the Business Rules component via the composite service.
    Very frustrating couple of days, that's for sure! :{
    Regards,
    Rhian

  • Foreign JMS QCF and Weblogic Sever Session Pool

              Hi!
              We have Weblogic 6.1 SP2 installation.
              We are trying to use JMS Server session pool and connection consumer configuration
              with MQSeries QCF registered to weblogic JNDI via startup class.
              Upon server startup weblogic is throwing ClassCast exception for QueueConnection.
              It seems weblogic is expecting QueueConnection implementation by weblogic.
              Any suggestions or alternative way of doing it.
              Thanks
              Jay PArikh
              

    Hi Jay,
              Server session pools do not support foreign providers.
              The preferred way to integrate foreign providers is via MDBs or
              via the Messaging Bridge (bridge available in SP3). For a
              comprehensive write-up on integrating foreign providers with
              WL see the whitepaper "Using Foreign JMS Providers with
              WebLogic Server" on dev2dev.bea.com.
              Tom
              Jay Parikh wrote:
              > Hi!
              >
              > We have Weblogic 6.1 SP2 installation.
              >
              > We are trying to use JMS Server session pool and connection consumer configuration
              > with MQSeries QCF registered to weblogic JNDI via startup class.
              >
              > Upon server startup weblogic is throwing ClassCast exception for QueueConnection.
              > It seems weblogic is expecting QueueConnection implementation by weblogic.
              >
              > Any suggestions or alternative way of doing it.
              >
              > Thanks
              > Jay PArikh
              

  • Any Session Pooling examples

    I have seen Oracle talk about implementing session pooling for web service connections, but I have not seen any examples. Just their basic login/logoff example. Is there anything posted?

    Hi,
    We are also using BPEL to send data out to SIEBEL CRMOD.
    I've created a proxy that deals with authentication and session management.
    All you have to do is to deploy the proxy as a war file and refrence it as the end-point of your partner link.
    Code is here:
    http://another-soa-blog.blogspot.com/2010/02/oracle-siebel-on-demand-session-and.html
    Regards,
    Fred.

  • Session Pooling for CRMoD - Web services.

    Hi,
    We have a Java application which fetches the Contact Data on the basis of the Phone Number in CRMoD, using web services. (it happens on a hyperlink click).
    Before fetching the contact data, we establish the session between our app and CRMoD using the URL - https://<pod>.crmondemand.com/Services/Integration?command=login.
    The jsessionId is retrieved and then used for subsequent interaction with the web services.
    However, everytime any user clicks on the hyper link...the entire process is executed right form the connection establishment to fetchng the contact data.
    This results in a lot of time for the entire process to execute (roughly around 6-7 seconds).
    We would like to reduce the time , possibly by implementing a connection pooling for the login.
    Can any one suggest how to implement a sesision pool for the JsessionId that is returned from CRMoD ?
    Regards,
    Bibin.

    You should definitely move to STATELESS web services for this and not STATEFUL. You also get a bit of scalability also.
    If you were to pass the SESSIONID around to multiple processes (or one that was threaded), you might still get RIP (ie, concurrency timeouts) errors. By using the STATELESS approach to web services, you get the built in connection pooling plus an automatic handler for concurrency/queueing.
    In the STATELESS, all of your processes just supply the USERID/PASSWORD in the call. CRMOD decides whether an existing POOLed connection is used. You actually have to do less in terms of management this way.
    We implemented an external facing web application for a client that used a single USERID/PASSWORD to "confirm" an Appointment that was established via STATELESS connections.
    Mychal Manie
    Hitachi Consulting - Oracle Practice

  • Connection & Session Pooling

    Hi
    I am using JMS in a request/reply scenario.
    The following is the sequence of operations
    1. Get handle to Connection by JNDI lookup of QCF
    2. Get handle to RequestQueue by JNDI lookup of Request Queue
    3. Get handle to ResponseQueue by JNDI lookup of Response Queue
    4. Create a Session and Sender on the Connection/RequestQueue.
    5. Create a JMS message and send it with a correlation id on the Sender
    6. Create a Session and Reciever on the connection/ResponseQueue with "CorrelationID" as message selector.
    7. Receive the JMS message over the reciever.
    There are multiple threads trying to send and recieve messages. Now my questions are --
    1. What all things above can be re-used/pooled? Can I use only connection and create, say, for example 100 sessions and reuse them across 100 different threads?
    2. Or Can I reuse the Senders and recievers as well? In other words, can I create 100 senders (or receivers) and reuse them over 100 threads. (In other words can I create a "SenderPool" and use them)
    3. How many Sessions can be opened on one Connection?
    4. I heard about ServerSessionPool, but did not have any pointers on how to get a handle to a ServerSessionPool? Will this be useful in this scenario?
    Any help is highly appreciated,
    Thanks and regards,
    Rajs

    Did you get an answer for this? Could you please
    explain how you obtained a handle to
    ServerSessionPool? ServerSession, ServerSessionPool (plus ConnectionConsumer) are part of JMS spec, ch 8, and are called Application Server Facilities (ASF). As the name suggests, the purpose is to bind a JMS provider into an app server.
    You can, of course, use this facilities in a JMS client program, however, you have to provide the parts the app server has to provide. These are the impls for ServerSession and ServerSessionPool. Actually it's quite easy once you understand how it works, although, to understand how it works is not that easy. ;-)
    You might take a look on our JMS XA/ASF impl to get an impression how it works from the perspective of a JMS provider:
    http://www.swiftmq.com/products/kernel/jmsxaasf/index.html
    -- Andreas

  • JMS Sessions/Pooling on Solaris

    We have an application that uses XML events to kick off our workflow. We open
    a single QueueSession and QueueSender and send multiple messages to the workflow.
    We've observed fine behavior on Windows, but on Solaris the process that sends
    these messages appears to get hung...
    We changed over to WLQueueSession so that we could send the messages with NO_ACKNOWLEDGEMENT,
    but still we see the problem on Solaris.
    One thing I would like to try is setting up a JMSSessionPool; but I'm having problems
    setting it up. When I specify
    ConnectionFactory="weblogic.jms.ServerSessionPoolFactory"
    ListenerClass="javax.jms.QueueReceiver"
    WLS complains on startup, that the ServerSessionPoolFactory cannot be resolved
    (although it is clearly in weblogic.jar in c:\bea\wlserver\lib) and that the listener
    does not have a constructor. Alternatively I've tried setting the ListenerClass
    to "weblogic.jms.extensions.ServerSessionPoolListener" and I get the same problem.
    Please help!

    I apologize for the late response on this.
    For the first part of your question - The commit happens after the event is sent downstream from the jms adapter. So, if there is any error before a thread switch, the txn will be rolled back and it will retry the message. However, if you have a multithreaded channel downstream, the transaction will be commited after the event is put in the channel's queue.
    As for durable subscriptions - As of now we don't expose durable subscriptions through CEP configuration. This is something we will look into for a future release.
    Manju.

  • Repository Session Pooling

    Hi,
    how can I see how many connetions to the repostory database are in use ?
    Can I modify a parameter to raise the connection count ?
    best regards
    Alex

    Hi,
    If you are talking about CMS Database connections. Then go to properties of CMS and there by default there would be 14.
    In order  to see the system connections & Total open connections, Go to settings tab in CMC there you will have View Global System Metrics.
    Thanks,
    SK.

  • Jms : accessing sessions through pools

    Quite new to jms
    I have configured WAS5.1 for accessing MQ queues through jms api
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
    env.put(Context.PROVIDER_URL, "corbaloc:iiop:127.0.0.1:2809");
    InitialContext ic = new InitialContext(env);
    setQcf((QueueConnectionFactory) ic.lookup(qcfName));
    setRequestQ((Queue) ic.lookup(requestQName));
    setResponseQ((Queue) ic.lookup(responseQName));
    setTimeOut(timeOut);
    ic.close();
    jmsCon = (qcf.createQueueConnection());
    jmsCon.start();
    session = jmsCon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    Confused if, above code fetching sessions from session pool which i suppose WAS have prepared, as I hav configured the qcf with 250,300 (min,max) no. of sessions through console
    Please suggest any corrections to the above code

    valon,
    This is indeed a tricky one. You are correct that a transaction is started whenever you do any selects that touch a remote object. The problem that I see is that even if you were somehow able to execute a commit after every SELECT statement, the transaction always executes in the context of an application module - if you committed the transaction, you'd also commit any outstanding transaction going on in the AM at the time. In general, this would be a bad thing, although you may be able to ensure that it is OK for your specific use case. I did a quick scan of the APIs to see if I could locate any method that you could possibly override, but didn't locate anything that looked promising.
    John

  • Connection Pooling Questions

    Hi there,
    I was previously using the jferner/node-oracle module with the "generic-pool" (https://github.com/coopernurse/node-pool) module for connection pooling. 
    I'm trying out a setup with connection pooling with node-oracledb and have a few questions:
    * If an execute call fails with a connection i've retrieved from the pool, and I want to destroy that connection and remove it from the pool, how do I do that?  Is it done implicitly for me? 
    * Is there any way to validate a connection before it's used?  Or again, is this done implicitly?  Is there a way to toggle it on and off for perf tuning?
    * Is there any way to tune how frequently Oracle checks for idle connections?  (In generic-pool this was called reapIntervalMillis)
    * Is there any way to turn on any logging of how the connection pool behaves for development debugging?  I just want to make sure my setup is behaving as I think it should be.
    I'm making some good headway on getting the module working and it wasn't too difficult a conversion from node-oracle, either, that's good!
    -Matt

    You should release() bad connections to the pool so the pool can replace them.
    Validating connections is generally not worth it: between validation & use there could be a failure, so your executions need to handle errors anyway.  Why reduce scalability and performance by doing an extra "round trip" for validation? Also you can use FAN which can proactively clean up idle sessions in the session pool that are affected by the DB instance disappearing (due to network glitches etc).
    The client-side pool is handled by Oracle session pooling, so the algorithms are opaque.

  • What changes was made in ApEx 3.0 with DB session.

    How to create a new DB session for each user?
    Best Regards, Kostya Proskudin

    Kostya,
    With the mod_plsql session pooling you should always assume that you will not get the same session you used last time, i.e. it is far 'safer' to assume you have a different session than assuming you will get the same one.
    Application Express and mod_plsql handle all of that side of things for you with respect to the APEX session environment, in other words even if you get a different database session from the pool of sessions then the the APEX session state information will still be the same for the same APEX user.
    If it's true why I have the same data in temporary table in each computer in my office?
    It was in ApEx 2.2 but in ApEx 3.0 something changed. An anomaly, you could run that test 999,999 times and get the same data in the temporary table and then the 1,000,000 time you run it you might see the 'wrong' information.
    As Joel and I have already said, temporary tables are not suitable for using in this way. The conclusions you are drawing from your test are (in my opinion) incorrect.

  • Give all resources to a service/session/user

    Hi,
    I'm looking for a way to let one user/session/service consume all availabe database resources. A short overview over our system: We've got a primary three node RAC and a physical standby database running on the same host using a different storage subsystem. The standby is primarily used for reporting purposes (active dataguard). We've got a software running that produces highly complex queries. There are about 100 such "datawarehouse" queries running at the same time taking a lot of physical and logical I/O. The problem: Sometimes we receive queries that have highest priority and which must be completed as fast as possible. But as you can imagine there is no chance of getting a fast result when there are 100 other queries running in the background all of which consume lots of I/O.
    When I first came to this problem I thought of using the Resource manager. I would create a consumer group, give it about 95% of the resources in every resource plan and map it to a specific service which then can be used to issue critical queries. But when I decided to set this up I came across the documentation which told me that the resource manager only cares about CPU. There is no way to give the session 100% of all availible I/O. Then I read a posting in a forum which told "If there is no CPU for a session it cannot issue I/O requests. So restricting CPU access also restricts I/O". Ok, great.. But the problem is: The critical session will NEVER consume all available CPU power. And because of the Resource managers philosophy that it will only take action when a resource is at it's limit there will never be an restriction on cpu power.
    My second approach was to quiesce the database, but that seems to require the sysdba privilege, which I will never give to any software. So my question is: Is there any way to solve this problem?
    Many thanks in advance
    Thomas

    Hi,
    since your are using Active Data Guard, which means you are on 11g, you should take a closer look on DBRM new features - switching plan based on the number of IO requests and active session pool constraints. If I understand your requirements correctly, you can switch your sessions which took too many IO to the constrained consumer group (either automatically or manually) and for that group you can set maximum number of active sessions. In this case, sessions which uses IO and should be constrained can be reduced in their number, which, I think, should reduce their IO needs in total.

  • Why can I open multi session to write in queue

    if i want to send messages to a queue
    have I to open multi sessions and send using them
    or I can open only one session
    and what is the faster (i don't care about transactions)
    and why some body may use multi sessions to send to a queue
    thanks..

    Hi,
    The way JMS works is the following:
    You open one connection (multithreaded)
    From that connection, you can open one or more sessions. Each of them is single threaded.
    One each session, you can connect to multiple destinations. As you can see from the single threading nature of the session, if you access multiple queues on a single session, then the access will be serialized. If you use multiple sessions, then the access to the queues will be parallelised. There will be a bottlenect somewhere in using multiple sessions, but I would estimate that it would allow a higher throughput than serializing all the requests to the queues on a single session.
    The case you can relate to is the j2EE implementation. There is one connection to the broker per app server instance. For each app server instance, there will be a session pool, each session being single threaded the size of the pool will define how many parallel request/services you can do with the SJS MQ broker. Now, if the session is used transactionally or not, then it is a question of the application's needs.

  • Setting and retrieving session using pl/sql

    How to set and retrieve session using pl/sql?Can anyone help me?

    mrs wrote:
    create or replace
    function get_login_details(in_user in VARCHAR2,in_pwd in VARCHAR2,in_cname in VARCHAR2)
    ..snipped..The code should look as follows:
    create or replace function AuthenticateUser( userName varchar2, userPassw varchar2, userGroup varchar2 )
    return integer is
      i integer;
    begin
      --// purpose of the SQL is simply to check if such a row exist -
    --// no data from the row needs to be fetched
      select 1 into i from acl_users_gv
      where user_name = userName
      and password = userPassw
      and entity_group_name = userGroup;
      --// if the SQL succeeded, then the row exists and matches
      --// the authentication details
      return( 0 );
    exception when NO_DATA_FOUND then
      --// SQL failed to find a row - authentication details do
      --// not exist
      return( 1 );
    end;No need to fetch data unnecessarily. No need too check the fetched data when the column values are already checked via the SQL filter condition (predicate).
    No need to return a flag variable as a freely formatted text string containing Successful Login and login failed. That is not a robust design to use a string variable like that. Use boolean for true/false. Or use integer values 0/1.
    This is my function get_login_details.And I need to get this 'o_mesg' in other java file also.Standard PL/SQL call from Java. The SQL string to execute contains an anonymous PL/SQL and needs to use bind variables. E.g.
    begin
      :result := AuthenticateUse( :userName, :userPassw, :userGroup );
    end;
    Can you suggest the right way, how I can get this variable in other pages?That depends on whether there is database session state. If there is, authentication can be done once only via a trusted context, that specifies whether the session is authenticated.
    If this is done from an app server that uses a db session pool and stateless db sessions, the state needs to be kept in the app server.
    Do you understand what stateful versus stateless db sessions are, and what the differences are?

Maybe you are looking for