Mule, Weblogic and MQ JMS : deadlock problem

Dear Oracle community,
We are hosting our Mule ESB (3.1) application on a Weblogic 10.3 (11g) server and are using IBM Websphere MQ's JMS solution (with libraries version 7.0.1.7).
The problem we are facing is that JMS connections are created by one of Weblogic's worker (thread) and the close() method for those connections are not necessarily called by the same thread.
This is bad because from what I know this behavior is undefined from JMS specification
(see http://docs.oracle.com/cd/E15051_01/wls/docs103/jms/design_best_practices.html#wp1061413 ) and it is a blocker issue in our case because this lead to a deadlock.
Do someone has any idea how to enforce the fact that the same thread do create and close the connection through Weblogic and/or Mule configuration (without re-implementing the connector) ?
Thanks in advance for your help,
Best regards,
Y.
PS : I've already posted this question on Mule ESB's forum : http://forum.mulesoft.org/mulesoft/topics/mule_weblogic_and_mq_jms_deadlock_problem
Edited by: user7428803 on May 14, 2012 2:26 PM

I hope you found a solution by now, but as an FYI:
* The JMS specification specifically requires that JMS providers support the ability to call connection.close() and session.close() from an arbitrary thread even when another thread is making calls on these objects. It furthermore goes into some detail about the expected behavior of these calls. The best practices link you cited alludes to this: "The JMS Specification states that multi-threading a session, producer, consumer, or message method results in undefined behavior +except when calling close().+"
* Depending on your use case, you may not need to use Mule to integrate MQ with WebLogic. WebLogic supports a variety of options for integrating MQ directly without the use of third party tooling. See http://download.oracle.com/docs/cd/E17904_01/web.1111/e13727/interop.htm .
Tom

Similar Messages

  • BPM for WebLogic 10.3 JMS listener problem: SecurityException

    Hi!
    I have a BPM 10.3 engine running on WebLogic 10.3 and a BPM process that uses JMS listener global automatic activity. The JMS queue is located in a WebLogic 8.1 server.
    The global activity receives a message and tries to create a new process instance. At runtime a strange error occurs (see below). If I just log the message and comment the process creation out, the message is successfully consumed, but with the creation part it is not. The process creation itself is not the problem because other message listeners that call other process activities fail with similar errors.
    Btw, it's working in Studio, but not in WL10.
    Could someone explain me what happens and how to fix it?
    Have I misconfigured something?
    Thanks in advance,
    Jaanus
    The BPM engine log:
    The task could not be successfully executed.
    Reason: 'fuego.papi.exception.ActivityFailedException: Activity '/MyProcess#Default-1.0/Begin[Begin]' task 'BeginIn' could not execute successfully.
    Detail:Method: 'BeginIn', Exception: 'Process execution engine execution error.'
    Caused by: Activity '/MyProcess#Default-1.0/Begin[Begin]' task 'BeginIn' could not execute successfully.
    Detail:Method: 'BeginIn', Exception: 'Process execution engine execution error.'
    Caused by: Process execution engine execution error.
    Caused by: Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
    Detail:Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
    Caused by: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
    fuego.lang.ComponentExecutionException: The task could not be successfully executed.
    Reason: 'fuego.papi.exception.ActivityFailedException: Activity '/MyProcess#Default-1.0/Begin[Begin]' task 'BeginIn' could not execute successfully.
    Detail:Method: 'BeginIn', Exception: 'Process execution engine execution error.'
         at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:1094)
         at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1280)
         at fuego.server.execution.GlobalAutomaticJMSListeningHelper.executeJmsListener(GlobalAutomaticJMSListeningHelper.java:94)
         at fuego.server.AbstractProcessBean$45.execute(AbstractProcessBean.java:3017)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.server.AbstractProcessBean.runGlobalJmsActivity(AbstractProcessBean.java:3023)
         at fuego.server.execution.GlobalJMSExecutor$1.run(GlobalJMSExecutor.java:113)
         at fuego.ejbengine.EJBProcessBean.executeTask(EJBProcessBean.java:147)
         at fuego.server.execution.GlobalJMSExecutor.execute(GlobalJMSExecutor.java:105)
         at fuego.ejbengine.EJBGlobalJMSExecutor.access$400(EJBGlobalJMSExecutor.java:43)
         at fuego.ejbengine.EJBGlobalJMSExecutor$JMSExecutorWorker.run(EJBGlobalJMSExecutor.java:213)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: fuego.papi.exception.ActivityFailedException: Activity '/MyProcess#Default-1.0/Begin[Begin]' task 'BeginIn' could not execute successfully.
    Detail:Method: 'BeginIn', Exception: 'Process execution engine execution error.'
         at fuego.papi.exception.ActivityFailedException.create(ActivityFailedException.java:66)
         at fuego.server.AbstractProcessBean.createActivityFailedException(AbstractProcessBean.java:3690)
         at fuego.server.AbstractProcessBean.internalCreateInstance(AbstractProcessBean.java:4326)
         at fuego.server.AbstractProcessBean._doCreateInstance(AbstractProcessBean.java:3650)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:665)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:736)
         at fuego.components.Process.createInstance(Process.java:106)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:392)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:503)
         at oracle.MyProcess.Default_1_0.Instance.CIL_ootaJMSSonumit(Instance.xcdl:12)
         at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:1085)
         ... 16 more
    Caused by: fuego.papi.impl.EngineExecutionException: Process execution engine execution error.
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:139)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.server.AbstractProcessBean.internalCreateInstance(AbstractProcessBean.java:4320)
         ... 27 more
    Caused by: class fuego.lang.RuntimeExceptionShell ->> fuego.connector.ConnectorException: Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
    Detail:Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
         at fuego.server.service.EngineConnectorService.getConnection(EngineConnectorService.java:581)
         at fuego.server.service.EngineConnectorService.getEngineConnection(EngineConnectorService.java:300)
         at fuego.transaction.TransactionAction.getEngineHandle(TransactionAction.java:179)
         at fuego.server.execution.EngineExecutionContext.getEngineHandle(EngineExecutionContext.java:443)
         at fuego.server.AbstractInstanceService.create(AbstractInstanceService.java:302)
         at fuego.server.execution.microactivity.BeginMicroActivity.createInstance(BeginMicroActivity.java:95)
         at fuego.server.AbstractProcessBean$53.execute(AbstractProcessBean.java:3642)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startNestedTransaction(TransactionAction.java:527)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:548)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:213)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:125)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.server.AbstractProcessBean.internalCreateInstance(AbstractProcessBean.java:4320)
         at fuego.server.AbstractProcessBean._doCreateInstance(AbstractProcessBean.java:3650)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:665)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:736)
         at fuego.components.Process.createInstance(Process.java:106)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:392)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:503)
         at oracle.MyProcess.Default_1_0.Instance.CIL_ootaJMSSonumit(Instance.xcdl:12)
         at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:1085)
         at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1280)
         at fuego.server.execution.GlobalAutomaticJMSListeningHelper.executeJmsListener(GlobalAutomaticJMSListeningHelper.java:94)
         at fuego.server.AbstractProcessBean$45.execute(AbstractProcessBean.java:3017)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:472)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:213)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:125)
         ... 8 more
    Caused by: fuego.connector.ConnectorException: Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
    Detail:Connector [TrinityEngine_J2EE_RUNTIME_FUEGOLABS_ARG:SQL:REMOTE_JDBC] caused an exception when getting a resource of type [0].
         at fuego.connector.ConnectorException.exceptionOnGetResource(ConnectorException.java:95)
         at fuego.connector.ConnectorTransaction.getResource(ConnectorTransaction.java:324)
         at fuego.connector.ConnectorTransaction.getResource(ConnectorTransaction.java:298)
         at fuego.connector.JDBCHelper.getConnection(JDBCHelper.java:41)
         at fuego.server.service.EngineConnectorService.getConnection(EngineConnectorService.java:578)
         at fuego.server.service.EngineConnectorService.getEngineConnection(EngineConnectorService.java:300)
         at fuego.transaction.TransactionAction.getEngineHandle(TransactionAction.java:179)
         at fuego.server.execution.EngineExecutionContext.getEngineHandle(EngineExecutionContext.java:443)
         at fuego.server.AbstractInstanceService.create(AbstractInstanceService.java:302)
         at fuego.server.execution.microactivity.BeginMicroActivity.createInstance(BeginMicroActivity.java:91)
         at fuego.server.AbstractProcessBean$53.execute(AbstractProcessBean.java:3642)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startNestedTransaction(TransactionAction.java:527)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:548)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.server.AbstractProcessBean.internalCreateInstance(AbstractProcessBean.java:4320)
         at fuego.server.AbstractProcessBean._doCreateInstance(AbstractProcessBean.java:3650)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:665)
         at fuego.server.AbstractProcessBean.createInstance(AbstractProcessBean.java:736)
         at fuego.components.Process.createInstance(Process.java:106)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:392)
         at fuego.components.ProcessInstance.create(ProcessInstance.java:503)
         at oracle.MyProcess.Default_1_0.Instance.CIL_ootaJMSSonumit(Instance.xcdl:12)
         at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:1085)
         at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1280)
         at fuego.server.execution.GlobalAutomaticJMSListeningHelper.executeJmsListener(GlobalAutomaticJMSListeningHelper.java:94)
         at fuego.server.AbstractProcessBean$45.execute(AbstractProcessBean.java:3017)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
         ... 8 more
    Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
         at weblogic.security.service.SecurityServiceManager.seal(Unknown Source)
         at weblogic.security.service.IdentityUtility.authenticatedSubjectToIdentity(Unknown Source)
         at weblogic.security.service.RoleManager.getRoles(Unknown Source)
         at weblogic.security.service.AuthorizationManager.isAccessAllowed(Unknown Source)
         at weblogic.jndi.internal.ServerNamingNode.checkPermission(ServerNamingNode.java:442)
         at weblogic.jndi.internal.ServerNamingNode.checkLookup(ServerNamingNode.java:423)
         at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:180)
         at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
         at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
         at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380)
         at javax.naming.InitialContext.lookup(InitialContext.java:392)
         at fuego.connector.impl.BaseRemoteConnector.getReferencedObject(BaseRemoteConnector.java:116)
         at fuego.connector.impl.BaseRemoteConnector.getReferencedObject(BaseRemoteConnector.java:107)
         at fuego.connector.impl.RemoteJDBCConnector.getConnection(RemoteJDBCConnector.java:75)
         at fuego.connector.impl.RemoteJDBCConnector.getConnection(RemoteJDBCConnector.java:64)
         at fuego.connector.impl.RemoteJDBCConnector.getResource(RemoteJDBCConnector.java:147)
         at fuego.connector.ConnectorTransaction.getResource(ConnectorTransaction.java:319)
         ... 43 more

    I managed to solve the problem by configuring the domain's security settings on both WebLogic servers as follows:
    *) checked "Anonymous Admin Lookup Enabled",
    *) entered the same value to Advanced->Credential on both WLs.

  • Platform Domain and  WorkShop JMS Control Problems

    I created a platform domain and created a workflow in WLI. I would like to expose
    the workflow from a web service. I successfully used the JMS control to send
    the XML request into WLI and receive the reply from WLI. My problem is whenever
    I try to execute the callback function when I receive my reply from JMS it his
    a loop and never executes the callback to the client. In the same service i replaced
    the JMS interaction with a timer and it works fine. The problem only occurrs when
    the JMS control receives the reply and then invokes the callback. If I just receive
    the reply without calling the callback everything works fine. Any ideas? Thanks

    I did a little more debugging and it looks like when the message is sent to the
    JMS Queue a different instance of the session EJB is calledback to when the JMS
    reply is received. I noticed when my callback is invoked by JMS i have different
    proxy and context objects. I hope this helps.
    "David" <[email protected]> wrote:
    >
    I created a platform domain and created a workflow in WLI. I would like
    to expose
    the workflow from a web service. I successfully used the JMS control
    to send
    the XML request into WLI and receive the reply from WLI. My problem is
    whenever
    I try to execute the callback function when I receive my reply from JMS
    it his
    a loop and never executes the callback to the client. In the same service
    i replaced
    the JMS interaction with a timer and it works fine. The problem only
    occurrs when
    the JMS control receives the reply and then invokes the callback. If
    I just receive
    the reply without calling the callback everything works fine. Any ideas?
    Thanks

  • JDBC, JMS and EJB transactions - possible problem?

    Hello,
              I am using Oracle 9, Weblogic 8.1 SP 4, MyEclipse and
              XDoclet.
              In my current project I have the following piece of code
              in one of my message driven beans (code cited as pseudocode
              without unnecessary details):
              * @ejb.bean name="MyMessageProcessor"
              * display-name="Display name for a MyMessageProcessor"
              * jndi-name="ejb/MyMessageProcessor"
              * description="Bean MyMessageProcessor"
              * destination-type="javax.jms.Queue"
              * transaction-type="Container"
              * acknowledge-mode="Auto-acknowledge"
              * subscription-durability="Durable"
              * generate="false"
              * @ejb.transaction type="Required"
              public class MyMessageProcessor implements MessageDrivenBean, MessageListener {
              public void onMessage(Message msg) {
                   try {
                        //obtaining connections to two different databases via JNDi
                        java.sql.Connection connOne =
                        ((DataSource)ctx.lookup("DataSourceOne")).getConnection();          
                        java.sql.Connection connTwo =
                             ((DataSource)ctx.lookup("DataSourceTwo")).getConnection();
                        // performing some UPDATEs and INSERTs on connOne and connTwo
                        // calling some other methods of this bean
                        //creating the reply JMS message and sending it to another JMS queue
                        Message msgTwo = this.createReplyMessage(msg)
                        this.queueSender.send(msgTwo);
                        //commiting everything
                        this.queueSession.commit();          
                   } catch (Exception ex) {
                   try {
                        if (this.queueSession!=null) this.queueSession.rollback();
                   } catch (JMSException JMSEx) {};     
                   this.context.setRollbackOnly();
              Some days ago (before the final remarks from my client) there used to be only one DataSource configurated on the basis of the
              connection pool with non-XA jdbc driver. Everything worked fine
              including the transactions (if anything wrong happend not only wasn't the replymessage sent, but also no changes were written
              to database and the incomming message was thrown back to the my bean's
              queue).
              When I deployed the second DataSource I was informed by an error message, that only one non-transactional resource may
              participate in a global transaction. When I changed both datasources
              to depend on underlying datasources with transatcional (XA) jdbc drivers, everything stopped working. Even if
              EJB transaction was theoretically successfully rolledbacked, the changed were written to the database
              and the JMS message wasn't resent to the JMS queue.
              So here are my questions:
                   1. How to configure connection pools to work in such situations? What JDBC drivers should I choose?
                   Are there any global server configurations, which may influence this situation?
                   2. Which jdbc drivers should I choose so that the container was able to rollback the database transactions
                   (of course, if necessary)?
                   3. Are there any JMS Queue settings, which would disable the container to send message back to the
                   queue in case of setRollbackOnly()? How should be the Queue configurated?
              As I am new to the topic and the deadline for the project seems to be too close I would be grateful
              for any help.
              This message was sent to EJB list and JDBC list.
              Sincerely yours,
              Marcin Zakidalski

    Hi,
              I found these information extremely useful and helpful.
              The seperate transaction for sending messages was, of course, unintentional. Thanks a lot.
              Anyway, I still have some problems. I have made some changes to the
              code cited in my previous mail. These changes included changing QueueSessions
              to non-transactional. I also set the "Honorate global transactions" to true.
              I am using XA JDBC driver. After setting "Enable local transactions" to false
              (I did it, because I assume that JDBC transactions should be part on the global
              EJB transaction) I got the following error:
              java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA drivers. If the XA
              driver supports performing SQL operations with no global transaction, explicitly allow it by setting
              "SupportsLocalTransaction" JDBC connection pool property to true. In this case, also remember to complete the local
              transaction before using the connection again for global transaction, else a XAER_OUTSIDE XAException may result. To
              complete a local transaction, you can either set auto commit to true or call Connection.commit() or Connection.rollback().
              I have also inspected the calls of methods of bean inside of onMessage() method just to check, whether
              the transactions are correctly initialized (using the weblogic.transaction.Transaction class).
              My questions are as follows:
              1. Any suggestions how to solve it? I have gone through the google answers on that problem and only
              thing I managed to realize that JDBC must start its own transaction. Is there any way to prohibit it
              from doing that? Can using setAutocommit(true/false) change the situation for better?
              2. How to encourage the JDBC driver to be a part of EJB transaction?
              3. As I have noticed each of ejb method has its own transactions (transactions have different
              Xid). Each method of the bean has "required" transaction attribute. Shouldn't it work in such
              way that if already started transaction exists it is used by the called method?
              4. The DataSources are obtained in my application via JNDI and in the destination environment I will have slight
              impact on the configuration of WebLogic. What is least problematic and most common WebLogic configuration which would
              enable JDBC driver to participate in the EJB transaction? Is it the WebLogic configuration problem or can it be
              solved programmically?
              Currently my module works quite fine when "enable local transactions" for DataSources is set to true, but this way
              I am loosing the ability to perform all actions in one transaction.
              Any suggestions / hints are more than welcomed. This message was posted to jdbc list and ejb list.
              Marcin

  • WebLogic JMS and MQ JMS Mix

              I am writing a bean that reads a message from MQ (using MQJMS) and then write it
              onto a WebLogic JMS ( something lika a bridge). However I don't want to use bridge.
              Question/Problem Statement:
              Once I include mq jms jar files in class path. Would that in conflict with WebLogic
              JMS. How do in my program I make sure that it is using the MQ or WLS JMS implementation.
              I can have InitialContext() setup for mq in File and for WebLogic it is WebLogic's
              Initial Context. Thats is the only thing that I can tell in the program.
              Basically, I am trying to see what will make it ( fully qualified JMS Objects
              or what) decide which implmenatation to use.
              Chris
              

    The WebLogic JMS and MQSeries JMS classes won't conflict. Each JMS provider
              provides different classes that implement the same interfaces, so you can
              have a whole bunch of providers in your classpath and things should be OK.
              Most code that's written to the JMS API (including the code inside WLS that
              receives messages for MDBs) gets the JMS "ConnectionFactory" via JNDI, and
              uses that to create the other objects. (It also has to look up the
              "Destination" objects from JNDI.) When you code to the JMS standard only,
              then the only thing that "tells" your program which provider is being used
              is the ConnectionFactory class that you create or get out of JNDI.
              Below is my usual plug for the white paper that helps explain some of this
              stuff:
              http://dev2dev.bea.com/resourcelibrary/whitepapers.jsp?highlight=whitepapers
              Look for "Using foreign JMS provdiesr with WLS".
              greg
              "Chris" <[email protected]> wrote in message
              news:[email protected]...
              >
              > I am writing a bean that reads a message from MQ (using MQJMS) and then
              write it
              > onto a WebLogic JMS ( something lika a bridge). However I don't want to
              use bridge.
              >
              > Question/Problem Statement:
              > Once I include mq jms jar files in class path. Would that in conflict with
              WebLogic
              > JMS. How do in my program I make sure that it is using the MQ or WLS JMS
              implementation.
              > I can have InitialContext() setup for mq in File and for WebLogic it is
              WebLogic's
              > Initial Context. Thats is the only thing that I can tell in the program.
              >
              > Basically, I am trying to see what will make it ( fully qualified JMS
              Objects
              > or what) decide which implmenatation to use.
              >
              > Chris
              

  • JMS with weblogic and jdeveloper IDE

    HI,
    I am a newbie to jms..could anyone provide me a sample tutorial to test and deploy a sample jms application using weblogic and jdeveloper IDE.
    Thanks,
    Amy
    Edited by: 838667 on Feb 22, 2011 2:50 AM

    ...I have a strong feeling this is a TIBCO-related issue where you're not doing the lookup the way TIBCO likes.

  • Weblogic jms connection problem

    Hi All,
    My jms bpel process listening on jms Queue. If I deploy bpel process first time I am not getting any jms connection problem with weblogic , but if redploy I am getting jms conneciton problem. saying
    Adapter_start: Jms Adapter started
    <2005-12-07 10:19:20,044> <ERROR> <default.collaxa.cube.activation> <JMSAdapter::Inbound> Error whil
    e creating managed connection:
    <2005-12-07 10:19:20,044> <ERROR> <default.collaxa.cube.activation> <JMSAdapter::Inbound>
    ORABPEL-12141
    ERRJMS_CONN_FAC_NOT_FOUND.
    Unable to instantiate connection factory. JMS adapter was unable to look up the connection factor BP
    ELJMS neither through JNDI nor instantiate it as a Java class
    Please examine the log file to determine the problem.
    at oracle.tip.adapter.jms.JMS.JMSConnectionFactoryFactory.getConnectionFactory(JMSConnection
    FactoryFactory.java:156)
    at oracle.tip.adapter.jms.JMS.JMSConnectionFactoryFactory.getQueueConnectionFactory(JMSConne
    ctionFactoryFactory.java:95)
    at oracle.tip.adapter.jms.JMS.JMSConnection.init(JMSConnection.java:143)
    at oracle.tip.adapter.jms.JMS.JMSConnection.<init>(JMSConnection.java:102)
    at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionF
    actory.java:355)
    at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createDefaultConnection(JmsManagedConn
    ectionFactory.java:346)
    at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionF
    actory.java:309)
    at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createManagedConnection(JmsManagedConn
    ectionFactory.java:99)
    at com.evermind.server.connector.ApplicationConnectionManager.createManagedConnection(Applic
    ationConnectionManager.java:564)
    at oracle.j2ee.connector.ConnectionPoolImpl.createManagedConnection(ConnectionPoolImpl.java:
    Work around is I need to restart the BPEL server.
    Is there any permanant solution for this, Please suggest.
    Thanks,
    Srini

    srini,
    see this thread
    JMS Connection
    thanks,
    -Ng.

  • My problem when I enable SSL in Weblogic and I don't have a trusted CA cert

    <h3>Hello
    I've enabled weblogic SSL
    Now when I want use Weblogic Administration Console with Https protocol it works
    But at first when I enter to its addredd my Web Browser(Mozella Firefox) show me this exception </h3>
    "+This Connection is Untrusted You have asked Firefox to connect+
    +securely to localhost:7002, but we can't confirm that your connection is secure.+
    +Normally, when you try to connect securely,+
    +sites will present trusted identification to prove that you are+
    +going to the right place. However, this site's identity can't be verified+."
    <h3>
    I know that it's because I don't have any certificate of trusted certificate authorities (however when I add the exception it goes to the administration console)
    Suppose I want develop an application for a small company and it uses HTTPS for its loging page and I don't have
    any trusted CA certificate , when users want login , web brwoser shows the exception
    </h3>
    <h3>
    Know I want ask
    can I create a valid certificate by myself without connecting a trusted certificate authority and doing its official stages ? In other word , can I
    be a Trusted Certificate Authority for myself and configure Web Browser for getting rid of that exception ?
    My aim is to finding a way to use SSL and make a secure connection without receiving the exception in Web Browser and without
    connecting certificate authorities and doing its official corresponding and paying cost
    do you have any solution for me ?
    Thanks
    </h3>

    Hi
    I enabled SSL Debugging in Weblogic and it show me this log when the WebBrowser want user https :
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <Filtering JSSE SSLSocket>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <SSLIOContextTable.addContext(ctx): 1639942021>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <SSLSocket will be Muxing>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <isMuxerActivated: false>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <181142934 SSL3/TLS MAC>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <181142934 received HANDSHAKE>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <HANDSHAKEMESSAGE: ClientHello>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <write HANDSHAKE, offset = 0, length = 58>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <write HANDSHAKE, offset = 0, length = 1583>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <write HANDSHAKE, offset = 0, length = 4>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <isMuxerActivated: false>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <181142934 SSL3/TLS MAC>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <181142934 received ALERT>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <NEW ALERT with Severity: FATAL, Type: 42
    java.lang.Exception: New alert stack
    at com.certicom.tls.record.alert.Alert.<init>(Unknown Source)
    at com.certicom.tls.record.alert.AlertHandler.handleAlertMessages(Unknown Source)
    at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source)
    at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source)
    at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source)
    at javax.net.ssl.impl.SSLSocketImpl.startHandshake(Unknown Source)
    at weblogic.server.channels.DynamicSSLListenThread$1.run(DynamicSSLListenThread.java:130)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <Alert received from peer, notifying peer we received it: com.certicom.tls.record.alert.Alert@47204d1a>
    <Jan 4, 2012 4:18:48 PM IRST> <Warning> <Security> <BEA-090482> <BAD_CERTIFICATE alert was received from 172.17.33.59 - 172.17.33.59. Check the peer to determine why it rejected the certificate chain (trusted CA configuration, hostname verification). SSL debug tracing may be required to determine the exact reason the certificate was rejected.>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <close(): 424502001>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <close(): 424502001>
    <Jan 4, 2012 4:18:48 PM IRST> <Debug> <SecuritySSL> <BEA-000000> <SSLIOContextTable.removeContext(ctx): 1639942021>
    Can it give helpful glue ?
    Thanks

  • Message lost during Message Send in weblogic 9.2 JMS

    I am using Weblogic Server 9.2 in a clustered environment (2 nodes in separate machines). The application deployed has ejb timers which picks up data from DB, and sends text messages (very small size as its just an ID) to a Queue (using the JMS APIs - QueueSender.send(message)). There is an MDB (with max-beans-in-free-pool) configured to be 20 listenting to this message. There might be 1-20 records picked up from the DB and the id of those records will be sent to the JMS Queue as separate JMS messages. i.e. QueueSender.send will be called as many times as there are record ids to send. The timer after sending the message to the queue sets the status of all the data it picked up to "Busy" in the same transaction as the message send. We are using XA driver and the JMS Connection factory is also XA enabled. We had problems with this XA transaction as weblogic sometimes sends the messages and before db commit happened to set the status to "Busy". We had a workaround to this problem by setting the JMS Connection factory setting "time to Deliver" to 300 so that the messages are visible to the MDB only after 300 ms thereby giving time for db commit to be over as per the suggestion in the following link. http://jayesh-patel.blogspot.com/. We had done this 2 months back and to date we find no problem.
    Now we are facing another strange problem. The JMS sometime misses delivering the messages. This is evident from the logs we had printed from the MDB. The logs indicate some messages has reached the MDB and some did not. This problem occurs occasionally. Also what I see is that this had occured under normal load conditions only though this application operates under high loads (number of messages being processed per day may go up to 5000). In the last one month this had occured 3 times. The JMS messaging is becoming unreliable.
    This seems to be a bug in Weblogic 9.2 JMS. Is there any workaround to prevent this problem. ?

    It is doubtful that JMS is losing messages. Suggestions:
    * Try increasing your sheduled message delay. 300 millis is a short delay -- any small network glitch, disk hardware issue, or even a single JVM GC in the JDBC driver can cause the database to take longer than 300 millis to complete its part of the transaction.
    * Try "WebLogic JMS Message Lifecycle Logging" if you want to trace message activity.
    * Instead of the delay, consider using WebLogic's Datasource "LLR" option, a commonly used solution to your use case. This is an optimization option that yields fully ACID (safe) transactions, and has the very nice side effect of deterministically forcing the TM to always commit the database portion of a transaction before committing any other resources participating in the same transaction.
    Links:
    http://download.oracle.com/docs/cd/E13222_01/wls/docs92/jms_admin/troubleshoot.html
    http://download.oracle.com/docs/cd/E13222_01/wls/docs92/jta/llr.html#LLRfailover
    http://download.oracle.com/docs/cd/E13222_01/wls/docs92/jdbc_admin/jdbc_datasources.html#llr
    Tom
    Edited by: TomB on May 7, 2010 5:20 PM

  • OSB 10.3 JMS queue problem: JMSCorrelationID is null

    Hi everybody,
    I am new to OSB/ALSB, and need some help regarding JMS message handling. I am trying to put some input data into a JMS queue( say, reqQueue) and to get the response from another JMS queue(say resQueue). My architecture is:
    OSB proxy service->OSB business service->JMS queue(reqQueue)->BPEL process(through JMS adapter) ->JMS queue(resQueue)->OSB business service->OSB proxy service.
    I have used JMSCorrelationID for response correlation. but my problem is that when I am trying to test the service from proxy service, I am getting the JMSCorrelationId as null in BPEL process as well as in the weblogic server JMS log, and as I am getting the CorrelationId as null, I am unable to correlate the response, so I am not getting any response.
    This is urgent, please help me as soon as possible as possible.
    Thanks in advance.
    Joy

    Sovled it..
    OSB 10.3 JMS queue problem: JMSCorrelationID is null

  • WebLogic to Web Sphere Migration problem

    Hi,
    I have a problem on Migrating from Web Logic to Web Sphere in RSA for websphere 7.0 .
    On clicking prepare for deployment there displaying a pop up error "Deploy has encountered a problem". in details
    The error is:
    Deploying hqp-ejb
    Deployment from com.ibm.etools.ejbdeploy.EJBDeployer had errors:
    Error generating findTest(int) query for bean Foo(Abstract schema name=Foo). Error=query cannot be pushed down
    Query='SELECT Object (a) FROM Foo As a WHERE a.id = ?1 AND a.code = 'M''.
    This application is running fine in Web Logic.
    The queries are inside ejb-jar.xml.
    Please help to fix the problem.

    LiveCycle's install bits for WebSphere and WebLogic are different.  You simply shouldn't install the bits for WebLogic and then try deploying to WebSphere.

  • Weblog and Groups

    I have the weblog up and running on our 10.4.8 server. I can log in to weblog with my short username and password.
    So now I would like to create a group weblog so multiple users can make entries to a single blog. In WGM I created a group called "Technology" and added myself to the group. I go to http://server/weblog/ and type in the short name of the group... "Tech". That sends me to http://servername/weblog/Tech/?createUserID=Tech a page that appears as the Technology weblog with the Login option on the right side. So I click "Login", type in my short username and password (the very same one that worked to log in to the weblog before) and get: "The username or password you entered is incorrect".
    A previous thread mentioned going in to Server Admin-> Settings --> Access and changing the Weblog settings. So I did. The default is "Allow all users and groups" which should logically include my newly created group. However, just to satisfy my curiosity, I changed to "Allow only users and groups below:" and added just the "Technology" group. While I could log into the blog by going straight in with my username... again, I could not log in to the "Tech" blog with the same username/password.
    I'm out of ideas.
    Xserve G5   Mac OS X (10.4.8)  

    Well... after moving the Weblogs directory to another hard drive and creating a new group, everything works as expected. I'm guessing permissions got whacked somewhere in the process of creating the first group.
    Problem solved.

  • JMS MessageBridge Problem ??

              Hello,
              We are using WLS 7.0. We 've set up the WLS Message Bridge to communicate between
              MQ and WLS JMS queues. The MQSeries JNDI objects are created in WLS JNDI using
              a startup class. There are 2 Queues on the MQseries[TO_JMS and FROM_JMS] and 2
              Queues on the WLS JMS[FROM_MQ and TO_MQ]. I put a message on TO_JMS of MQ which
              is transferred to FROM_MQ of WLS JMS using the WLS Message Bridge. After processing
              the message on the WLS side, I put a message on TO_MQ of WLS JMS which is transferred
              to FROM_JMS of MQ. The whole messaging transfer works very well. The problem is
              with the Corelation Id I set when putting the message on TO_JMS. I expected the
              same Correlation Id will be transferred to FROM_MQ. And while sending the message
              back from WLS to MQ, I set this corelation Id to whatever was first set. I do
              this to filter out a specific message. But as the correlation ids are not copied
              by the message bridge, when I filter the message using the correlation Id from
              the FROM_JMS, I get nothing. Without the filter, I can get the message. Is this
              a Bug? Are there any work arounds ?
              Thanks
              Swamy
              

    Hi Swamy,
              The bridge does copy all the JMS header fields (except for
              the MessageID, Destination and ReplyTo) and user properties when
              transferring messages over.
              I would suggest that you double check your filter expression and make sure
              it does what you want. It would be a good idea to test your filter without the bridge
              involved.
              If that still does not work, try to use a user property and see if that gets you
              anywhere.
              If neither of those works, contact BEA support. But I think both approaches should just
              work.
              Thanks,
              Dongbo
              Swamy Vasudevan wrote:
              > Hello,
              > We are using WLS 7.0. We 've set up the WLS Message Bridge to communicate between
              > MQ and WLS JMS queues. The MQSeries JNDI objects are created in WLS JNDI using
              > a startup class. There are 2 Queues on the MQseries[TO_JMS and FROM_JMS] and 2
              > Queues on the WLS JMS[FROM_MQ and TO_MQ]. I put a message on TO_JMS of MQ which
              > is transferred to FROM_MQ of WLS JMS using the WLS Message Bridge. After processing
              > the message on the WLS side, I put a message on TO_MQ of WLS JMS which is transferred
              > to FROM_JMS of MQ. The whole messaging transfer works very well. The problem is
              > with the Corelation Id I set when putting the message on TO_JMS. I expected the
              > same Correlation Id will be transferred to FROM_MQ. And while sending the message
              > back from WLS to MQ, I set this corelation Id to whatever was first set. I do
              > this to filter out a specific message. But as the correlation ids are not copied
              > by the message bridge, when I filter the message using the correlation Id from
              > the FROM_JMS, I get nothing. Without the filter, I can get the message. Is this
              > a Bug? Are there any work arounds ?
              >
              > Thanks
              > Swamy
              

  • URGENT: sp6 and JSP compiling/classpath problem?

    Hi,
              We installed sp6 on our production site a little over a week and started
              seeing this problem on our logs with regards to any JSP with an include tag,
              such as:
              <%@ include file="/inc/insideHeadTag.jsp" %>
              INTERMITTENTLY, we will get the following error in the page on the client
              side at runtime:
              < ! -- cannot include file '/inc/insideHeadTag.jsp', resource not
              found -- >
              I grepped this newsgroup and noticed a previous unanswered post of the same
              nature, "Static compiles do not seem to include JSP's". Except in our case,
              this problem also manifest for dynamic JSP compiles, happens sporatically,
              and only started with sp6.
              Bug???
              Gene Chuang
              Join Kiko.com!
              

              Just to clarify - I'm not from BEA, I'm from EA - short a letter.
              As far as I know, there is no synchronization between WL instances in a cluster regarding the
              the compiling of JSPs. So when you start up two WL instances that share the same workingDir,
              and each WL instances gets a hit on your shiny new index.jsp, they both need to compile it. So the first
              one compiles it and writes index.class, the second does the same, overwriting the first _index.class,
              possibly at the same time that the first instance is trying to load _index.class into memory. And you
              get a mysterious 'class not found' error. Not likely, but possible.
              "Gene Chuang" <[email protected]> wrote:
              >Hmm, interesting... I thought Weblogic strongly recommends clustered
              >servers sharing the same file system?
              >
              >So you're saying the system-wide, cluster and node specific directories can
              >reside on the shared drive, but workingDirs should reside on local drives?
              >
              >--
              >Gene Chuang
              >Join Kiko.com!
              >
              >"Mike Reiche" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Make sure that your WLS instances are NOT sharing the workingDir. If two
              >instances
              >> try to compile the same JSP at the same time, bad things can happen.
              >>
              >> Mike
              >>
              >> "Gene Chuang" <[email protected]> wrote:
              >> >Hi Jong,
              >> >
              >> >Thanks for the reply; but I wish the solution is as simple as that.
              >Yes,
              >> >my .jsps are in the proper directory. They have been working properly
              >for
              >> >the past 6 months, since we were running WL 4.5.1. Only when I switched
              >to
              >> >WL 5.1 sp6 did this bug start showing up. Plus, like I said in my
              >original
              >> >post, this bug is sporatic. SOMETIMES the included jsp is found by
              >Weblogic
              >> >and the includer jsp compiles correctly; other times it isn't found and
              >the
              >> >includer jsp leaves a gap! What's going on?
              >> >
              >> >We are running clustered web servers in Solaris 2.7 with a shared file
              >> >system. This sporatic behavior may be because some nodes aren't working
              >> >properly???
              >> >
              >> >--
              >> >Gene Chuang
              >> >Join Kiko.com!
              >> >
              >> >"Jong Lee" <[email protected]> wrote in message
              >> >news:[email protected]...
              >> >>
              >> >> "Gene Chuang" <[email protected]> wrote:
              >> >> >Hi,
              >> >> >
              >> >> >We installed sp6 on our production site a little over a week and
              >started
              >> >> >seeing this problem on our logs with regards to any JSP with an
              >include
              >> >tag,
              >> >> >such as:
              >> >> I assumed insideHeadTag.jsp is in
              >> >> YOUR_DOCUMENT_ROOT/inc/insideHeadTag.jsp
              >> >>
              >> >> if you haven't read the spec of relative URI please do so:
              >> >> jsp spec 1.1 - section 2.5.2
              >> >>
              >> >> Jong
              >> >>
              >> >> >
              >> >> > <%@ include file="/inc/insideHeadTag.jsp" %>
              >> >> >
              >> >> >INTERMITTENTLY, we will get the following error in the page on the
              >client
              >> >> >side at runtime:
              >> >> >
              >> >> > < ! -- cannot include file '/inc/insideHeadTag.jsp', resource not
              >> >> >found -- >
              >> >> >
              >> >> >I grepped this newsgroup and noticed a previous unanswered post of the
              >> >same
              >> >> >nature, "Static compiles do not seem to include JSP's". Except in our
              >> >case,
              >> >> >this problem also manifest for dynamic JSP compiles, happens
              >> >sporatically,
              >> >> >and only started with sp6.
              >> >> >
              >> >> >Bug???
              >> >> >
              >> >> >Gene Chuang
              >> >> >Join Kiko.com!
              >> >> >
              >> >> >
              >> >> >
              >> >>
              >> >
              >> >
              >>
              >
              >
              

  • WebLogic 10.3, SQLJ, Cache problems

    Plz help.
    How disable caching statement by SQLJ on WebLogic server?
    what the actual problem:
    1. create or replace view vtest as select object_name from dba_objects where rownum<200
    2. test.sqlj
      #sql [dx] testIterator = {
        select object_name from vtest
      int cnt=0;
      while( testIterator.next() ){
        cnt++;
      System.out.println("Count: "+cnt);
    3. Restart WebLogic and deploy project
    4. Run test on server, in log file
      "Count: *199*"
    5. create or replace view vtest as select object_name from dba_objects where rownum<10
    6. Run test on server, in log file
      "Count: *199*"
    7. Restart WebLogic
    8. Run test on server, in log file
      "Count: *9*"

    No.
    I tried it to make some tests with the driver, but then i get:
    "java.sql.SQLException: [BEA][SQLServer JDBC Driver]This driver is locked for use with embedded applications."

Maybe you are looking for

  • My wife has an iphone 5.  Has magically stopped working.

    One night it was working fine, the next morning it would not connect to her service provider, it would just be stuck in a "searching" mode.  We took it to the cell phone service provider, they said to update to the new iOS.  OK, we did that, then at

  • DV CAMCORDER TO DVD.   ORG RECORDING DATE.

    HELLO I AM WERY NEW TO FINAL CUT PRO. I HAVE LOADS OF HOME VIDEO READY FOR DVD PRODUCTION. WHEN I SEE THE DV FROM THE CAMCORDER ON MY TV THEN I CAN SEE WHEN THE VIDEO WAS ORIGINAL RECORDED "DATE TIME ECT" I THE BUTTOM CORNER, BUT WHEN I CAPTURE THIS

  • Invoice no + posnr + accounting doc

    Hi All, I have a invoice number and accounting document number . From which table I can get this connection along with the POSNR field. Means this accounting has been done for this material Item, I checked in BSIS,BSEG and BKPF tables . But could not

  • Mass maintenance of 3000 materials

    Dear all, My requirement is to maintain the safety stock values for 3000 materials thru' mass maintenance MM17 for a <b>SINGLE</b> plant. The values for safety stock are 1 & 2 and this will be applied to all the materials. Pls let me know anybody how

  • Can't start glassfish server using Eclipse

    i use the eclipse J2EE version to write my java program with Glassfish server. but when i compile the program,it take a long time to start the glassfish server, finally, it fail to start the server. how can i fix it?