Posting to JMS queue from WLI BPM 7.0

Hi,
I am trying to invoke a workflow process from a servlet by exchanging two JMS
messages.
I have configured my own JMS event queue com.bea.wli.bpm.EventQueueExt and generated
and installed the MDB for it as described in the docs. The servlet sends a XML
JMS to the normal com.bea.wli.bpm.EventQueue which starts the process. This half
works. The process then tries to send an XML to the newly configured queue - but
this fails.
The server console shows that there are absolutely no messages on my new queue.
The java servlet waits forever to receive on it and the workflow process instance
never completes the sending of the XML JMS.
I have attached the sample servlet code that I am trying this with. Would anyone
be able to spot what I am doing wrong?
1000 Thanks in advance,
Karsten
[BaseServlet.java]

Just wondering , why create a separate JMS server for this queue?
"Jared" <[email protected]> wrote in message
news:3f16dfde$[email protected]..
>
I am not sure if I exactly understand what you did -- but if you generatedanother
queue using the utility that WLI provided, I think you may be using itincorrectly.
That kind of queue is meant to be used in addition to the originalEventQueue
-- as an input queue to WLI. Maybe your messages were immediately sentback to
WLI -- in an attempt to start a workflow?
I would create a separate JMS server (from the WLI jms server) and createyour
queue on that server.
"Karsten " <[email protected]> wrote:
Hi,
I am trying to invoke a workflow process from a servlet by exchanging
two JMS
messages.
I have configured my own JMS event queue com.bea.wli.bpm.EventQueueExt
and generated
and installed the MDB for it as described in the docs. The servlet sends
a XML
JMS to the normal com.bea.wli.bpm.EventQueue which starts the process.
This half
works. The process then tries to send an XML to the newly configured
queue - but
this fails.
The server console shows that there are absolutely no messages on my
new queue.
The java servlet waits forever to receive on it and the workflow process
instance
never completes the sending of the XML JMS.
I have attached the sample servlet code that I am trying this with. Would
anyone
be able to spot what I am doing wrong?
1000 Thanks in advance,
Karsten

Similar Messages

  • How to send JMS Message from a BPM Process

    Hi All
    I have small query regarding sending JMS Message from a bpm process. Is it possible to send JMS message from one bpm process to another bpm process.
    I have a scenario in which I need to send a JMS message to a queue where another process is listening on that queue and as soon as the message is received on the queue the process instance is created.
    I know how to listen for the JMS message on the queue, but I don't how to send a JMS message from a process.
    Also Can I create process by sending the Notification to the process instead of a JMS message. But the process to be created is not a subprocess i.e. Can notification be send accross different processes.
    Any information or example in this regard would be helpful.
    Thanks in advance
    Edited by: user9945154 on Apr 22, 2009 7:46 PM

    Hi,
    Here's one approach to sending JMS messages from an Oracle BPM process. If you're doing this just to send a message into another process, do not take this approach. It's far easier and quicker if you do this using the OOTB "send notification" logic.
    These steps describe how to do this using WebLogic. The steps would be different if you're using another ap server / JMS provider.
    1. Guessing you've already done this, but first expose the two required WebLogic jar files for JMS messaging as Java components in the External Resources. The two files for WebLogic are weblogic.jar and wljmsclient.jar” (located in the < WebLogic home directory > /weblogic/server/lib” directory).
    AquaLogic BPM JMS Queue Listener for WebLogic 8.1
    2. You've probably already done this, but add an External Resource to represent the J2EE container:
    • Name: “weblogicJ2EE” - this is important and will be used in the next step
    • Supported Type: “GENERIC_J2EE”
    • Initial Context Factory: “weblogic.jndi.WLInitialContextFactory”
    • URL: “t3://localhost:7001”
    • Principal: and Credentials: whatever userid and password you defined to access theWebLogic administrative console.
    3. Create the External Resource that represents the send queue configuration. In this example, I'm calling it “WebLogic Send Queue”. This is important - remember what you named it because you will use this name in the logic that sends the JMS message. This new External Resource is configured as:
    • J2EE: “weblogicJ2EE” (same name as the second External Resource you created)
    • Destination Type: “QUEUE”
    • Lookup Name: “weblogic.examples.jms.exampleQueue”
    • Connection Factory Lookup Name: “weblogic.examples.jms.QueueConnectionFactory”
    4. Here's the logic to send a Message to the Queue
    <pre class="jive-pre"><p />msg as String = "Hello World"
    jmsMsg as Fuego.Msg.JmsMessage
    msg = "<?xml version=\"1.0\"?><Msg>" + msg + "</Msg></xml>"
    jmsMsg = JmsMessage(type : JmsMessageType.TEXT)
    jmsMsg.textValue = msg
    sendMessage DynamicJMS
    using configuration = "WebLogic Send Queue",
    message = jmsMsg</pre>
    Note that the “sendMessage” method uses the configuration parameter “WebLogic Send Queue”. You previously created a JMS messaging service External Resource with this name in the third step.
    Again, please don't go this route if you're just using it to send notifications between processes,
    Dan

  • Migration of JMS Queues from Weblogic 10.3 to 12c

    Hi - We are currently planning to move our JMS Queues from existing 10.3 server to 12c and for the same we are looking for some feedback : 
    We need to define a rollback strategy in case our migration to 12c does not work well and we need to revert back to using weblogic 10.3. Are messages sent to weblogic 12c backward compatible with version 10.3? As part of rollback, business would want to drain out any remaining messages from 12c and feed them back to 10.3 queues to allow them for processing. Is this feasible? If yes then, could you please suggest how, If not then could you please suggest a strategy for rollback and process remaining messages in 12c?
    We would also want to know if we can keep the same Database for both 10.3 and 12c JMS persistent stores for the same queues or should we define a completely new DB? With weblogic we can define prefixes for the DB stores which would make queue tables to have different names between 10.3 and 12c for same queues. However we are not sure if there are any other internal tables that JMS creates in the persistent stores DB, not using these prefixes, which would then corrupt the data since both 10.3 and 12c tables would be on the same DB.
    Thanks
    Nitin

    Hello,
    the final release for WLP is 10.3.6, running on WebLogic Server 10.3.6.
    Emmanuel

  • NoClassDefFoundError while accessing JMS Queue from JDev 10.1.3.3

    Hi,
    I'm trying to get a handle of a JMS queue, which resides on Oracle App Server 10.1.3.4, from a Java Program which I'm trying to run from JDeveloper 10.1.3.3.
    I'm trying to make an RMI connection to the App server from JDeveloper by passing following information to the intialContext:
    env.put("java.naming.factory.initial",
    "oracle.j2ee.rmi.RMIInitialContextFactory");
    env.put(Context.PROVIDER_URL,
    "ormi://wafedabpelqa10.corp.weyer.pri:12402");
    env.put("java.naming.security.principal","oc4jadmin");
    env.put("java.naming.security.credentials","welcome1");
    Where the above information is related to our App Server.
    I'm successfully able to establish an RMI connection from JDev to Oracle App Server and can lookup datasources created on the App server using their
    JNDI names. However if I try to look up a JMS Queue from the App server using its JNDI name, I get an error as:
    java.lang.NoClassDefFoundError: oracle/tip/adapter/api/OracleConnectionFactory
    I have also tried to use the value "com.evermind.server.rmi.RMIInitialContextFactory" for "java.naming.factory.initial",
    however I still get the same error.

    Hi,
    this should work and you need to download the rmi library http://www.oracle.com/technology/software/products/ias/htdocs/utilsoft.html
    thanks
    # String queueName = "jms/MyJMSQueue";
    # String queueConnectionFactoryName = "jms/MyJMSQCF";
    # Context ctx;
    # try { 
    # Properties parm = new Properties();
    # parm.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
    # parm.setProperty("java.naming.provider.url","ormi://localhost:23791/");
    # parm.setProperty("java.naming.security.principal","oc4jadmin");
    # parm.setProperty("java.naming.security.credentials","welcome");
    # ctx = new InitialContext(parm);
    # QueueConnectionFactory connectionFactory =
    # (QueueConnectionFactory)ctx.lookup(queueConnectionFactoryName);
    # connection = connectionFactory.createQueueConnection();
    # connection.start();
    # session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    # queue = (Queue)ctx.lookup(queueName);
    # sender = session.createSender(queue);
    # receiver = session.createReceiver(queue);
    # } catch (JMSException je) { 
    # throw new RuntimeException("Fout opgetreden bij het starten ",
    # je);
    # } catch (Throwable t) { 
    # throw new RuntimeException("Fout opgetreden bij het starten ",
    # t);
    # }

  • Need help to connect tibco jms queues from OSB

    Hi,
    We have a requirement in our project "to connect tibco JMS Queues from OSB".
    The Queres are created by some othes in remote system, they provided us the details to connect the Queue. the detail are:
    Queue Name :EXT_WEALTHHUB.TO_EXT.SYNC.REQ
    Jndi Factory :SSLQueueConnectionFactory
    and hostName , PORT
    Credentails are provided.
    We entered the same details in Business service in transport page by choosing 'jms' as protocol and EndpointURI as.
    "jms://100.10.XX.YY:1234/SSLQueueConnectionFactory/EXT_WEALTHHUB.TO_EXT.SYNC.REQ"
    And we created a service account to maintain the credentials and browsed the same at service account in the business service.
    In JMS Transport Page we selected
    Response Queue : One for all Request URI's
    Response Pattern : JMS CorrelaltionID
    Response UI :jms://100.10.XX.YY:1234/SSLQueueConnectionFactory/EXT_WEALTHHUB.TO_EXT.SYNC.RESP
    when we are trying to establish a connection with the above queue getting
    javax.naming.CommunicationException [Root exception is weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason: er.deployer.MessageDrivenBeanInfoImpl.getInitialContext(MessageDrivenBeanInfoImpl.java:733)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.getInitialContext(MessageDrivenBeanInfoImpl.java:689)
         at weblogic.jms.common.CDS$DD2Listener$1.run(CDS.java:1018)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:130)
         at weblogic.jms.common.CDS$DD2Listener.getInitialContextFromListener(CDS.java:1012)
         at weblogic.jms.common.CDS$DD2Listener.getInitialContext(CDS.java:984)
         at weblogic.jms.common.CDS$1.run(CDS.java:436)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:130)
         at weblogic.jms.common.CDS.createInitialContext(CDS.java:431)
         at weblogic.jms.common.CDS.getDDMembershipInformation(CDS.java:270)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManagers(MessageDrivenBeanInfoImpl.java:1455)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.activate(MessageDrivenBeanInfoImpl.java:1252)
         at weblogic.ejb.container.deployer.EJBDeployer.activate(EJBDeployer.java:1320)
         at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:493)
         at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:531)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:165)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:157)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
         at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
         at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason: in.checkLoginSuccess(Login.java:131)
         at weblogic.rjvm.t3.MuxableSocketT3.connect(MuxableSocketT3.java:403)
         at weblogic.rjvm.t3.ConnectionFactoryT3.createConnection(ConnectionFactoryT3.java:34)
         at weblogic.rjvm.ConnectionManager.createConnection(ConnectionManager.java:1777)
         at weblogic.rjvm.ConnectionManager.findOrCreateConnection(ConnectionManager.java:1417)
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:437)
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:316)
         at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:254)
         at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:197)
         at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
         at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
         at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
         at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
         at weblogic.jndi.WLInitialContextFactoryDelegate$1.run(WLInitialContextFactoryDelegate.java:345)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:340)
         at weblogic.jndi.Environment.getContext(Environment.java:315)
         at weblogic.jndi.Environment.getContext(Environment.java:285)
         at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.init(InitialContext.java:223)
         at javax.naming.InitialContext.<init>(InitialContext.java:198)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl$2.run(MessageDrivenBeanInfoImpl.java:748)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.doPrivilagedAction(MessageDrivenBeanInfoImpl.java:2238)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.getInitialContext(MessageDrivenBeanInfoImpl.java:733)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.getInitialContext(MessageDrivenBeanInfoImpl.java:689)
         at weblogic.jms.common.CDS$DD2Listener$1.run(CDS.java:1018)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:130)
         at weblogic.jms.common.CDS$DD2Listener.getInitialContextFromListener(CDS.java:1012)
         at weblogic.jms.common.CDS$DD2Listener.getInitialContext(CDS.java:984)
         at weblogic.jms.common.CDS$1.run(CDS.java:436)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.jms.common.CrossDomainSecurityManager.runAs(CrossDomainSecurityManager.java:130)
         at weblogic.jms.common.CDS.createInitialContext(CDS.java:431)
         at weblogic.jms.common.CDS.getDDMembershipInformation(CDS.java:270)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManagers(MessageDrivenBeanInfoImpl.java:1455)
         at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.activate(MessageDrivenBeanInfoImpl.java:1252)
         at weblogic.ejb.container.deployer.EJBDeployer.activate(EJBDeployer.java:1320)
         at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:493)
         at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:532)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:165)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:158)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1269)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
         at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
         at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
         at weblogic.deploy.internal.targetserver.DeploymentM
    Any pointers on how to resolve the above issue will be a greate help to us.
    Thanks in Advance                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Wrong forum, please ask this on dedicated weblogic or soa forums

  • How to view messages in Jms queue from OEM 12c Cloud Control

    Hi All,
    How can I view messages in a Jms queue from OEM 12c Cloud Control without logging into WebLogic Administration Console?
    Thanks in Advance!!

    EMCC 12c gets down to the JMS message queue/topic level in regards to the metrics being collected. It doesn't provide a view into the actual messages themselves. Are you trying to capture/track messages with a particular payload?

  • Writing to a JMS queue from Tux-service?

    Greetings,
    is there any way to write to a JMS-queue from a Tuxedo/atmi service without
    using WebLogic Server (because of WTC needing it)?
    Lara

    Lara,
    One way to write to a JMS-queue from a Tux service would be by using JNI functions.
    Inside your server's tpsvrinit function you can create a JVM (using JVM_CreateJavaVM
    function) and instantiate a couple of Java objects. You may then call Java methods
    on these objects from your Tux services. At the server's tpsvrdone function you
    must then destroy the Java objects and the JVM.
    Regards,
    Lazaros
    "Lara Faiazza" <[email protected]> wrote:
    Greetings,
    is there any way to write to a JMS-queue from a Tuxedo/atmi service without
    using WebLogic Server (because of WTC needing it)?
    Lara

  • Posting message to JMS queue from Proxy in OSB 10.3

    I am posting a message to a JMS queue using a business service. Is there a way of getting a response from the business service to retrieve the newly generated JMSMessageID?

    I am posting a message to a JMS queue using a business service. Is there a way of getting a response from the business service to retrieve the newly generated JMSMessageID?Yes JMS BS can be configured to get Response though from Different Q.
    Request-JMSBS----->JMS Request Q------your logic outside of BS----->JMS Response Q----->JMSBS-Response. You can use JMSCorrelationID or JMSMessageID for the response correlation.
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/transport.html#wp1097863
    Cheers
    Manoj

  • Integration with JMS queue from BizTalk 2013R2

    Hi All,
    We are planning to integrate biztalk application with Oracle Siebel CRM (8.1.1.11). they wanted to use JMS queue to receive xml message from BizTalk2013R2 and also send message to BizTalk for more reliability.
    IS there any out of box adapter by which we can connect to their JMS queue.
    We dont want to go with 3rd party software like jt adapter for JMS queue
    Regards,
    Manish
    Manish

    Hi Manish,
    As of now there is no out-box-adapter for JMS queue.
    If you don’t want JNBridge adapter (I hope you’re referring to same. There is no “jt” adapter as you mentioned), you can create a custom adapter which access the JMS queue.
    Use WCF LOB adaper (WCF Lob
    Adapter Wizard)and create an adapter.
    Following article details about the .NET code for messaging with JMS queue, try the code.
    Use JMS Messaging in your C# Applications
    And following articles give details about using WCF LOB adapter/Wizard:
    What Is the WCF LOB Adapter SDK?
    Sample:
    https://msdn.microsoft.com/en-us/library/bb798102.aspx
    http://geekswithblogs.net/michaelstephenson/archive/2009/02/10/129302.aspx
    Use similar code (one from above codeproject article where how to do messaging between JMS queue is shown) to wrapper it around custom WCF LOB adapter.
    Give it a try, if you don’t want to spend anything on a 3<sup>rd</sup> party adapter.
    Regards,
    M.R.Ashwin Prabhu
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • How to send to Weblogic 9.1 JMS queue from EJB running in Glassfish?

    Hi.
    I hope this is the correct forum.
    I need to send a message to a jms queue on a remote weblogic 9.1 server. To this end I believe I will have to:
    1) Install one or more weblogic client libraries/jar files on my glassfish application server. The weblogic server expects communication in the "t3" protocol, which I believe tunnels iiop, jms etc. inside their own proprietary protocol
    2) Define the jms queue in my glassfish application server with a queue connection factory that creates the queue using classes from the weblogic jars?
    3) Otherwise code the EJB methods sending messages as I would code and send messages to any jms queue
    It's the first two steps that have me baffled. The more I dig in glassfish administrator's manual, the more confused I become.
    Anybody have any idea if/how this can be accomplished?
    Some reference to where I may find information as to how to accomplish this?
    Thank you,
    Jacob.

    Jacob,
    I suggest you try, either a GlassFish forum (http://forums.java.net/jive/forum.jspa?forumID=56), or perhaps the GenericJMSRA project https://genericjmsra.dev.java.net .This forum is primarily about the Sun JMS provider, Java MQ or Open MQ -- or the JMS Specification.
    -- Ed Bratt

  • Setting JMS CorrelationID before posting to JMS queue

    Hi, my senario is that before posting a message to the JMS queue I want to set its correlation ID so that while fetching the response message gets tracked using the correlation ID that I have set not the one that is defaulted...can it be done in OSB if yes can you tell how and at what stage.
    Regards
    RAHUL

    Route to [ JMSBS ]
    Request Actions:
    Set Transport Headers for[ Outbound Request ]
    Pass all Headers through Pipeline
    Transport Headers
    Name Action
    JMSCorrelationID Set Header to [ '44444444444' ]This works for me. When I see the message on JMS queue, in the "Correlation ID" field, it holds value 44444444444
    Can you cross-check it again at your side?
    Regards,
    Anuj
    Edited by: Anuj Dwivedi on Jan 6, 2011 6:07 PM

  • Receiving Unknown Byte Messages in JMS Queues from MDM 2.0

    I am receiving unknown Byte messages in JMS CCB MDM Queue from MDM 2.0.
    It keeps on increasing. Please let me know how to avoid this. and what may be the error.

    Hi,
    Set these flags with in your startup script like setDomainEnv.sh file or startWebLogic.sh file.
    set these option near java_properties or options.
    once you set please restart and one more point I missed here once you set these debug flags change the logging patter patter to debug mode under
    server >> logging
    change all the logging severity to debug mode and collect the debug.
    Regards,
    Kal

  • CSV to XML transformation and posting to JMS queue

    Hi,
    I am new to JMS and do not know exactly whether this is correct place to post my query.
    I have one CSV file tgat contains approx 5000 rows. first row contain column heading and data of this row is to be used as tags in XML files. I wish to create approx 4999 XMLs out of this CSV each containing seperate row of record along with first row of CSV as tags. After creating these XMLs, I wish to post these to one JMS topic / queue.
    I can not do XML file writing from PL-SQL (I could have created seperate XMLs using PL_SQL) duw to some server related issues.
    Can somebody guide me how to do this?
    Is it possbile to direclty post XMLs to JMS topic / queue thorugh Pl-SQL file writing?
    Please fwd me sample code also.

    Hi,
    I am new to JMS and do not know exactly whether this is correct place to post my query.
    I have one CSV file tgat contains approx 5000 rows. first row contain column heading and data of this row is to be used as tags in XML files. I wish to create approx 4999 XMLs out of this CSV each containing seperate row of record along with first row of CSV as tags. After creating these XMLs, I wish to post these to one JMS topic / queue.
    I can not do XML file writing from PL-SQL (I could have created seperate XMLs using PL_SQL) duw to some server related issues.
    Can somebody guide me how to do this?
    Is it possbile to direclty post XMLs to JMS topic / queue thorugh Pl-SQL file writing?
    Please fwd me sample code also.

  • Consuming a jms queue from a multithread application

    Hi
    Thank you for reading my post.
    I have an application which shuld consume message of a queue.
    my application is multithread and what i want to know is:
    - How i can ask queue to remove a message after my thread finished its work with the message, by this way i can ensure that if my thread face an exception after it read the message my message will not lose.
    - As it is multithread application, How i can ensure that a message is not delivered to two or more thread? is there any way to consume the messages in a synchronized way?
    Will synchronized access restrict the performance?
    Thanks

    This is running in a J2DK environment. For my thread pool, I just copied one from a Sun tutorial on multi-threading then modified it. I creaed a seperate package with three classes. Here is my thread pooling package. I basically use a Vector to hold threads when they are not working. And you can set a limit as to the max number of active threads.
    package threadpooling;
    * @author cferris
    *  This class is simple to wrap the runnable
    *  thread for the worker thread around other
    *  needed parameters like salon id and source.
    public class TaskWrapper {
      // Define the needed instance fields.
      public  Runnable taskAtHand = null;
      public  String taskType = "";
        // Overloaded constructor.
        public TaskWrapper(Runnable task) {
          // Just set the runnable
          taskAtHand = task;
          taskType = "WorkerThread";
        }  // of overloaded contructor
        // Overloaded constructor.
        public TaskWrapper(Runnable task, String taskType) {
          // Just set the instance fields
          taskAtHand = task;
          this.taskType = taskType;
        }  // of overloaded contructor
    package threadpooling;
    * @author cferris
    *  This class is for tracking the number of
    *  active threads so we don't go over the set
    *  limit. This class basically synchronizes
    *  the methods that update the active thread
    *  counter.
    import java.util.*;
    public class ThreadPool {
      // Define the instance fields.
      //   First define instance fields for the
      //   management of the thread pools - pm.
      protected Vector poolOfThreads = new Vector();
      private  static LinkedList taskQueue = new LinkedList();
      private  static int poolSize = 0;
      private  static boolean pmAvailable = true;
      private  static boolean daemon = false;
      public   static boolean shutDown = false;
      //   Instance field for the management of
      //   the threads - tm.
      private  static int activeThreads = 0;
      private  static int maxReached = 0;
      private  static int numTimesReached = 0;
      private  static boolean tmAvailable = true;
      // Define constants
      private  static final int MAX_LIMIT_DEFAULT = 32;
        // The constructor.
        public ThreadPool() {
          this(MAX_LIMIT_DEFAULT, false);
        }  // of constructor
        // Overload the constructor with max number of active jobs.
        public ThreadPool(int poolSize, boolean daemon) {
          this.poolSize = poolSize;
          this.daemon = daemon;
          poolOfThreads = new Vector();
          taskQueue = new LinkedList();
          salonTracker = new Vector();
          // Load up and initialize the threads.
          for (int i=0; i < poolSize; i++) {
              Thread thread = new WorkerThread(this, i);
              thread.setDaemon(daemon);
              thread.start();
              poolOfThreads.add(thread);
        }  // of overloaded constructor
        // Overload this method to allow just the runnable task.
        public void assignWork(Runnable work) {
          // Create the wrapper
          TaskWrapper wrapper = new TaskWrapper(work, "A task");
          assignWork(wrapper);
        }  // of overloaded assignWork
        // Push a unit of work (work thread) on the the worker thread.
        public synchronized void assignWork(TaskWrapper work) {
          // First increament the active thread count.
          increment();
          // Wait until we can access the linked list 
          try {
              if (!pmAvailable)
                  wait();
          } catch(InterruptedException e) { }
          pmAvailable = false;
          notifyAll();
          taskQueue.addLast(work);
          pmAvailable = true;
          notifyAll();
        }  // of assignWork
        // Get the next unit of work (work thread).
        public synchronized TaskWrapper getNextWorkAssignment()  {
          // Wait until we can access the linked list 
          try {
              if (!pmAvailable)
                  wait();
          } catch(InterruptedException e) { }
          pmAvailable = false;
          notifyAll();
          TaskWrapper nextTask;
          if (!taskQueue.isEmpty())
              nextTask = (TaskWrapper)taskQueue.removeFirst();
          else
              nextTask = null;
          pmAvailable = true;
          notifyAll();    
          return nextTask;
        }  // of getNextWorkAssignment
        // Return the number of tasks waiting on the work queue.
        public synchronized int workWaiting()  {
          // Wait until we can access the linked list 
          try {
              if (!pmAvailable)
                  wait();
          } catch(InterruptedException e) { }
          pmAvailable = false;
          notifyAll();
          int qSize = taskQueue.size();
          pmAvailable = true;
          notifyAll();    
          return qSize;
        }  // of workWaiting
        // Wait until all the tasks have been completed.
        public void waitForCompletion() {
          int prev = 0;
          // Continue checking untill all the threads have
          // completed and been removed.
          while(!poolOfThreads.isEmpty()) {
             // Lets record the difference
             if (poolOfThreads.size() != prev) {
                 System.out.println("waiting for " + poolOfThreads.size() + " to complete");
                 prev = poolOfThreads.size();
             // Loop through the thread pool and check each thread.         
             for (int t = 0; t < poolOfThreads.size(); t++)
                  if (!((WorkerThread)poolOfThreads.get(t)).working)
                      // This thead is done so remove it.
                      poolOfThreads.remove(t);
          }  // of while
        } // waitForCompletion
        // Set the max number of allow threads.
        public synchronized void setPoolSize(int newLimit) {
          // just set the limit.
          // Check if available
          while (!tmAvailable) {
             try {
               wait();
             catch(InterruptedException ie) {
               System.exit(5);
          // Ok, lock the object while we update it.
          tmAvailable = false;
          notifyAll();
          poolSize = newLimit;
          // Reset the max counters/trackers too
          maxReached = 0;
          numTimesReached = 0;
          // Create additional threads in the pool if needed
          if (poolSize > poolOfThreads.size())
              // Load up and initialize the threads.
              for (int i = poolOfThreads.size(); i < poolSize; i++) {
                  Thread thread = new WorkerThread(this, i);
                  thread.start();
                  poolOfThreads.add(thread);
          // Done, now release the object.
          tmAvailable = true;
          notifyAll();       
        }  // of setPoolSize.
        // The method to increment thread counter.
        private synchronized void increment() {
          // Check if available
          while (!tmAvailable) {
             try {
               wait();
             catch(InterruptedException ie) {
               // logger.fatal("Synchronized error in ThreadPool "); 
               // logger.fatal("Error message is: " + ie.getMessage());
               System.exit(5);
          // Ok, lock the object while we update it.
          tmAvailable = false;
          notifyAll();
          activeThreads++;
          // Check if this is the highest number of threads
          // that has been active, if not then set so.
          if (activeThreads > maxReached)
              maxReached = activeThreads;
          if (activeThreads == poolSize)
              numTimesReached++;
          // Done, now release the object.
          tmAvailable = true;
          notifyAll(); 
        }  // of increment
        // The method to increment thread counter.
        public synchronized void decrement() {
          // Check if available
          while (!tmAvailable) {
             try {
               wait();
             catch(InterruptedException ie) {
               // logger.fatal("Synchronized error in ThreadPool "); 
               // logger.fatal("Error message is: " + ie.getMessage());
               System.exit(5);
          // Ok, lock the object while we update it.
          tmAvailable = false;
          notifyAll();
          activeThreads--;
          // Done, now release the object.
          tmAvailable = true;
          notifyAll(); 
        }  // of decrement
        // A method to determine if the maximum number of active
        // threads has been reached.
        public synchronized boolean limitNotReached() {
          boolean limit = false;
          // Check if available
          while (!tmAvailable) {
             try {
               wait();
             catch(InterruptedException ie) {
               // logger.fatal("Synchronized error in ThreadPool."); 
               // logger.fatal("Error message is: " + ie.getMessage());
               System.exit(5);
          // Ok, lock the object while we update it.
          tmAvailable = false;
          notifyAll();
          if (activeThreads < poolSize)
             limit = true;
          // Done, now release the object.
          tmAvailable = true;
          notifyAll();
          return limit;
        }  // of limitNotReached
        // A method to return the number of active threads.
        public synchronized int currentNum() {
          // Check if available
          while (!tmAvailable) {
             try {
               wait();
             catch(InterruptedException ie) {
               // logger.fatal("Synchronized error in ThreadPool"); 
               // logger.fatal("Error message is: " + ie.getMessage());
               System.exit(5);
          // Ok, lock the object while we update it.
          tmAvailable = false;
          notifyAll();
          int numberOf = activeThreads;
          // Done, now release the object.
          tmAvailable = true;
          notifyAll();
          return numberOf;
        }  // of currentNum
    package threadpooling;
    * @author cferris
    *   This is the work thread that receives the
    *   taskes or unit of work that make up the
    *   thread pool.
    public class WorkerThread extends Thread {
      // Define need instance fields.
      public  boolean working = true;
      public  int id = 0;
      private int pauseFactor = 1;
      // The thread pool that this object belongs to.
      public ThreadPool owner;
      // Define the constructor for the seperate thread.
      public WorkerThread(ThreadPool pooler, int id)  {
        owner = pooler;
        this.id = id;
      }  // of contructor
      //  Wait for work or for system shutdown.
      public void run() {
        // Define the work object. 
        TaskWrapper unitOfWork = null;
        // Wait for work or until system is shutting down.
        do {
           unitOfWork = owner.getNextWorkAssignment();
           if (unitOfWork != null) {
               // First set name and then add salon to watch list.
               String taskName = unitOfWork.taskType + "-" + id;
               setName(taskName);
            // System.out.println("Starting thread - " + getName());
               unitOfWork.taskAtHand.run();
               // Done, now adjust tracker and reset the pause factor.
               owner.decrement();
               pauseFactor = 1;
           else {
               // No work so pause a bit
               try {
                   sleep(150 * pauseFactor);
               } catch (InterruptedException e) { }
               // If consecutively pausing because of no work then
               // increase the pause time up to a point.
               if (pauseFactor < 49)
                   pauseFactor++;
        } while (!owner.shutDown);
        // Set indicator this thread in the pool is done.
        working = false; 
      }  // of run
    }To use the thread pool just create a static instance of the ThreadPool in your main class
      private  static ThreadPool threadPool = new ThreadPool(getMaxThreads(), useDaemon());Then to launch a new thread use this.
        if (runOnSeperateThread()) {  
            WriteTransThread task = new WriteTransThread(messasge);
            // Add to the thread pool.
            threadPool.assignWork(new TaskWrapper(task, "my thread"));
      private boolean runOnSeperateThread() {
        // First check if mutli threading is turned on
        // and if there are open threads.
        if (multiThreadingOn && threadPool.limitNotReached())
            // Yes, there are open threads.
            return true;
        // Check if we can wait for an open thread.
        if (!multiThreadingOn || !waitForOpenThread)
            // No multi threading or waiting allowed.
            return false;
        // OK, wait for an open thread, wait for up
        // to 90 seconds.
        int j = 0;
        do {
            try {
                // Wait 1/2 a second.
                Thread.sleep(500);
            } catch(InterruptedException ignore) { };
            // Check again for an optn thread.
            if (threadPool.limitNotReached())
                // Ok to run on separate thread.
                return true;
            // Increament counter and wait again.
            j++;
        } while(j < 180);
        // If we got this far then we've waited long enough.
        logger.warn("Reached limit on waiting for an open thread in the pool");
        return false;
      }  // of runOnSeperateThreadThe WriteTransThread is a class that will extract the message body and write out its data to a table.
    Last, before you end your program make sure all the threads have competed by calling the following.
      //  If multi-threading is activated then this method will
      //  wait for them to complete before returning. The
      //  max wait time is 300 secs or 5 minutes.
      private void waitForThreadsToComplete(String message) {
        // First check for multi threading. 
        if (prop.useMultiThread() && (threadPool.currentNum() > 0)) {
            int limit = 0;       
            // Some threads are still active, wait
            logger.info("Waiting for threads to complete before " + message
                      + " current thread count is " + threadPool.currentNum());
            do {
               limit++;
               try {
                   Thread.sleep(500);  // Sleep 1/2 a sec.
               } catch(InterruptedException ie) { }  // Ignore the error for now.
               // Max waith is 300 sec or 5 min.
            } while ((threadPool.currentNum() > 0) && (limit < 600));
      }  // of waitForThreadsToComplete
     

  • Messages posted to JMS Topic from OSB disappear even when not subscribed

    Hi,
    We are using an OSB service to publish xml messages to a weblogic JMS Topic. Message is persistent. There are no consumers for the Topic. There is no expiration limit set.
    We are able to see the message from OSB reach the Topic. It stays in the Topic for a few seconds and then disappears.
    The State of the message shows up as "send transaction" on the Topic in the weblogic console. And it shows up as Message Pending instead of Message Current.
    Is there a way to ensure that the message stays in the Topic till it is consumed by a subscriber?
    Thanks,
    Senthil

    Hi Senthil,
    The topic persists messages only for subscribers, if there is no subscribers, then it is not necessary to persist the message.
    This is the same case for you as well, as there are no subscribers the message gets deleted.
    So first you need to have atleast one subscriber first (A dummy proxy that is reading from the topic) and then post to the topic (through your OSB service or hermes jms tool, etc .. ) . Then if you try to go and check the topic you will be able to see the message.
    Hope this information helps.
    Thanks,
    Patrick
    Edited by: Patrick Taylor on May 13, 2011 2:40 PM

Maybe you are looking for