Simple JMS Topics question
I'm a little confused on how JMS will handle messages sent to a
Topic with Message driven beans attached to it. What I'm unclear
about is how many message driven beans attached to a topic will
receive the message. Clearly the semantics are that all subscribers
receive the message when listening on a Topic. But "how many"
subscribers are there when you use message driven beans attached to
a topic?
Suppose I set up a message driven bean to subscribe to a topic.
The container can create as many instances as necessary to process
the message, also controlled by initial-beans-in-pool or max-beans-in-pool
descriptors. So if I sent a message to the topic, how many instances
of the message driven bean create to receive the message? It would seem
that I would want to set up a single message driven bean instance in
each server, and have multiple servers listening to the same topic,
if I wanted to publish a message that was received in multiple machines,
say in a cluster.
Thanks
Each MDB pool (eg each container) will a copy
of the message and hand it to only one instance, no matter how many
instances. Or, to put another way, only one instance within an MDB
pool will receive a copy of a particular message.
If there are two MDB pools listening to the topic, they each will
receive a copy of every message sent to the topic.
If you need to have topic messages divided between two
MDB pools (without "copies") you will need to use a queue. One way to
do this is to configure a messaging bridge that forwards
from the topic to a queue, another way is to write a single
MDB pool that listens to the topic and sends to the queue.
Chris wrote:
> I'm a little confused on how JMS will handle messages sent to a
> Topic with Message driven beans attached to it. What I'm unclear
> about is how many message driven beans attached to a topic will
> receive the message. Clearly the semantics are that all subscribers
> receive the message when listening on a Topic. But "how many"
> subscribers are there when you use message driven beans attached to
> a topic?
>
> Suppose I set up a message driven bean to subscribe to a topic.
> The container can create as many instances as necessary to process
> the message, also controlled by initial-beans-in-pool or max-beans-in-pool
> descriptors. So if I sent a message to the topic, how many instances
> of the message driven bean create to receive the message? It would seem
> that I would want to set up a single message driven bean instance in
> each server, and have multiple servers listening to the same topic,
> if I wanted to publish a message that was received in multiple machines,
> say in a cluster.
>
>
> Thanks
Similar Messages
-
1 "simple" JMS topic and 2 cluster elements with OSB
Hi,
I have 1 simple jms topic (not distributed, not on migratable target) and cluster with 2 members - OSB as main application. My OSB proxy service reads from this topic and saves data to file.
The problem is that reading from topic appears twice - once by each cluster member. How to configure topic or proxy service for only one reading?FYI - At this year's Oracle OpenWorld, which is being held in conjunction with this year's JavaOne, Oracle will be announcing a set of enhancements that are designed to cover this exact use case.
Tom Barnes
Session ID: S317469
Title: New Service-Oriented Architecture Patterns with Enterprise Grid Messaging
Abstract: Messaging systems are essential in enabling the flexibility and loosely coupled nature of a service-oriented architecture (SOA). Oracle WebLogic Java Message Service (JMS) includes new pub-sub capabilities that make architectures more adaptable, allowing message producers to be ignorant of who is the consumer of a message or how many consumers there are. It also enables easy scale out and dynamic adaptability through clustering and message-driven bean (MDB) enhancements, all while still guaranteeing strict message ordering. This session will outline new JMS capabilities and show how they enable new designs with Oracle WebLogic Server and Oracle Service Bus.
Speaker(s): Dongbo Xiao, Oracle, Principal Member of Technical Staff
Biography not available.
David Cabelus, Oracle USA, Senior Principal Product Manager
Dave Cabelus is a Senior Principal Product Manager in the WebLogic Server group at Oracle. Dave's responsibilities include product strategy and direction for various pieces of WebLogic Server, including Java Messaging, Operations and Management, Diagnostics, and various other initiatives, and previously included database connectivity, transactions, and Web tier integration. In the industry since 1996 and involved in Java since 1999, Dave worked at various software companies including Logic Works, Platinum Software, Kana, and a few startups before coming to Oracle (BEA) in 2001.
Event: JavaOne and Oracle Develop
Stream(s): ORACLE DEVELOP, DEVELOP
Track(s): Application Grid and Oracle WebLogic
Tags: Add
Session Type: Conference Session
Session Category: Features
Duration: 60 min.
Schedule: Thursday, September 23, 11:00AM | Hotel Nikko, Nikko Ballroom II Available
Edited by: TomB on Aug 12, 2010 1:21 PM -
Newbie question about JMS topic and OSB
So here is what I want to achieve:
I want to "front" a JMS topic on WLS using OSB 10g. I want the users (producers and subscribers) to be access the topic via proxy services. The way I picture this is that a producer will invoke a proxy to publish a message. The subscriber will (asynchronously) invoke another proxy to pickup the message.
Is this possible and how do I go about doing this?
thanks
Edited by: user10341230 on Apr 28, 2010 8:49 AMHi there,
user10341230 wrote:
I want to "front" a JMS topic on WLS using OSB 10g. I want the users (producers and subscribers) to be access the topic via proxy services. > it's not really clear what you want to achieve here.
you say
user10341230 wrote:
The way I picture this is that a producer will invoke a proxy to publish a message.you need a proxy with whatever inbound protocol you like (http, file, mail...), which through a jms business service push the message to the Topic.
you say
user10341230 wrote:
The subscriber will (asynchronously) invoke another proxy to pickup the messagethe subscriber can be either asyncrhnous, in which case you need a proxy service with inbound protocol jms. or as you probably need a synchronous one
in which case you need another proxy with whatever inbound protocol you like whch once called in its pipeline calls some pojo class to read from this topic synchrnously (you need a durable subsciber).
Regards,
Tony
ps: have a look http://download-llnw.oracle.com/docs/cd/E11035_01/wls100/jms/design_best_practices.html#wp1058694 -
Support for JMS Topic in SAP PI 7.11
Hi,
As per SAP Note 856346, JMS Topics are not supported in SAP PI (Question 2.1). However the Note is valid for SAP PI 7.1 and there is no mention for SAP PI 7.11
So can anybody please confirm if SAP PI7.11 supports JMS Topics?
Thanks,
Pankaj.Hi,
There seems to be a lot of confusion between what is documented and what is available in actual. I did a search in help.sap.com for JMS Topic and got some information under PI7.11
http://help.sap.com/saphelp_nwpi711/helpdata/en/46/31558a9f1214dfe10000000a155369/frameset.htm
I hope that someone from SAP confirms the actual working. I dont want to raise an OSS for this
Thanks,
Pankaj. -
I have a SOA11g application with the following
Web Service ---> Mediator ----> JMSAdapter (Produce Pattern)
(Consume Pattern) JMS Adapter ---> Mediator ----> DB Adapter
This application will receive XML messages from the web service and store it in a JMS topic (persistent) and later distribute it among the consumers. I am trying to implement a simple use case wherein , when the message is received from the webservice and persisted in the JMS topic. I need to send an acknowledgment back to the external system. How can I implement it. Will the JMS request/reply pattern be of any help? Is there any similar example available.
ThanksI have a similar situation here and using mediator to consume_message from a AQJMS resource. It does not seem to work.
Here's what I did
- Configured AQ on a different server than SOA suite
- Set up a datasource in SOA server to connect to database having the AQ, used Oracle Thin XA driver. JDBC datasource user same as the AQ owner.
- Created a JMS module.
- In the module, created a Foreign Server resource and with the default targeting
- Using the foreign server’s General Configuration tab, set the JNDI Initial Context Factory to oracle.jms.AQjmsInitialContextFactory and added the datasource property to the JNDI Properties field and set its value to the JNDI name of the data source created for accessing AQ.
- Set up the foreign server’s connection factories. Remote JNDI Object javax.jms.XAQueueConnectionFactory
- Set up the foreign server’s destinations using its Destinations Configuration tab as Queues/<AQ queue name>
- Created a composite to read from JMS adapter pointed to the JMS Destination local JNDI, using a mediator
(Consume Pattern) JMS Adapter ---> Mediator ----> TIBCO Adapter
Deployed composite successfully, but it does not dequeue the messages from AQ neither thorws any fault. In fact no instance were created
This does not seem to work, can anyone help -
How to resolve JMSExceptions:045032 when creating a JMS Topic
I am using Weblogic 12c (12.1.1.0). I have created a new managed server. I have created a JMS server targeted to the new managed server. I have created a JMS module targeted to the new managed server. I have created a JMS Subdeployment which targets both the new managed server and the new JMS server. I've created a JMS connection factory which targets the JMS Subdeployment.
Now everything I've done so far has worked fine. No problems. The problem happens when I try to create a JMS Topic. I select to create a new regular Topic; I target the new JMS Subdeployment, and after selecting the Subdeployment Weblogic refreshes the page and shows the JMS server. So this all seems OK. When I try to finish and create the JMS Topic, I get the following error: [JMSExceptions:045032]While attempting to create destination [TOPIC_NAME] in module [MODULE_NAME] the JMS server [MANAGED_SERVER_NAME] could not be found.
Any thoughts on this? I've googled around but haven't found anything useful.I replicated this at my end. This is caused by Subdeployment target to both the new managed server and the new JMS server.
Please try creating a new Subdeployment and target it to JMS Server only, as described in the document below.
https://docs.oracle.com/cd/E24329_01/web.1211/e24385/best_practice.htm#JMSAD633
"Populate the subdeployment only with JMS servers - not WebLogic servers. Only include the JMS servers that you wish to host destinations. This ensures that when the JMS resources are configured, they are targeted to the correct JMS servers. For modules that support non-distributed destinations, the subdeployment must only reference a single JMS Server. If you have a mix of distributed and non-distributed destinations, use two modules each with its own subdeployment."
Best Regards
Luz -
JMS Topic - Can there be multiple pubs/subs
I belive JMS Topic supports multiple publishers, subscribers
for the same topic right? I am sure about the multiple subsicriber part because
I have done it before (with one publisher). However, I am changing my
design to have multiple publishers now as well. Is this possible?
Thanks
Ashique wrote:
> I belive JMS Topic supports multiple publishers, subscribers
> for the same topic right?
Yes.
> I am sure about the multiple subsicriber part because
> I have done it before (with one publisher). However, I am changing my
> design to have multiple publishers now as well. Is this possible?
>
Yes.
>
> Thanks
-
JMS Topic - Deliver to only one Durable Subscriber
Hi,
Is it possible to put a message onto a topic but only have it delivered to a single durable subscriber?
I realise this breaks the rules of what a topic is but this is for a scenario where a single subscriber has errored when processing the original message from the topic. I am putting a user interaction process to recover it and if the user selects ‘resubmit’ I want to put the message back on the topic but only deliver it to the one subscriber that failed to process the message.
My ways to achieve this (in order of preference) would be.
1. JMS Adapter
2. Writing Java to use JMS API
If neither of these are possible than:
3. Create a System Resubmit queue and have every composite look for message on the resubmit queue (with their client ID) as well as the normal topic they use
Of course I would like to avoid 3 as it introduces a complication into every process we create that takes messages from a JMS Topic.
Thanks for your help.
RobertI could suggest a (dirty) trick:
all subscribers subscribe to the topic using a filter (message selector, http://docs.oracle.com/javaee/6/tutorial/doc/bnceh.html#bncer)
SUBSCRIBER1 uses:
destination = ALL OR SUBSCRIBER1
SUBSCRIBER2 uses:
destination = ALL OR SUBSCRIBER2
etc
The first message has the property destination set to ALL, so all subscribers will process it.
The resubmitted message will have destination = SUBSCRIBER<N>, where N is the failed subscriber -
Error :- while accessing JMS topic messages in Design Studio
Hi,
Am getting this error while clicking update button in Design Studio to populate a dataobject using JMS Topic messages sent by oracle Bpel manager.
IMessageSourceReceiver->messageReceive: javax.naming.NoInitialContextException: Cannot instantiate class: oracle.j2ee.rmi.RMIInitialContextFactory. Root exception is java.lang.ClassNotFoundException: oracle.j2ee.rmi.RMIInitialContextFactory
Can you tell me where to find the class and how to use it to resolve the problem?
P.S:-
If you can provide any document how oracle BPEL process manager use JMS topic to send message to Oracle BAM and display in reports.
Thanks in advance
Cheers,
Praveen G
iSOFT R& D Pvt Ltd.
[email protected]Hi,
We are using BAM 10.1.3 against BPEL 10.1.2 and we cannot get it to work.
We are also getting the error "javax.naming.NoInitialContextException: Cannot instantiate class: oracle.j2ee.rmi.RMIInitialContextFactory...." .
Our startup paramters for Enterprise Source “Oracle (AS JMS and OJMS) looks like this:
JMS*".;C:\OracleBAM\OC4J\j2ee\home\lib\jms.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jndi.jar;C:\OracleBAM\OC4J\j2ee\home\oc4j.jar;C:\OracleBAM\OC4J\j2ee\home\oc4jclient.jar;C:\OracleBAM\OC4J\j2ee\home\lib\oc4j-internal.jar;C:\OracleBAM\OC4J\j2ee\home\lib\ejb.jar;C:\OracleBAM\OC4J\j2ee\home\lib\servlet.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jta.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jms.jar;C:\OracleBAM\OC4J\j2ee\home\lib\javax88.jar;C:\OracleBAM\OC4J\j2ee\home\lib\javax77.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jmxri.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jmx_remote_api.jar;C:\OracleBAM\OC4J\j2ee\home\lib\adminclient.jar;C:\OracleBAM\OC4J\j2ee\home\ojspc.jar;C:\OracleBAM\OC4J\j2ee\home\jazn.jar;C:\OracleBAM\OC4J\opmn\lib\optic.jar;C:\OracleBAM\OC4J\rdbms\jlib\aqapi.jar;"".;c:\TIBCO\JMS\clients\java\tibjms.jar;c:\TIBCO\JMS\clients\java\jms.jar;c:\TIBCO\JMS\clients\java\jndi.jar;c:\TIBCO\JMS\clients\java\jta-spec1_0_1.jar;c:\TIBCO\JMS\clients\java\jcert.jar;c:\TIBCO\JMS\clients\java\jnet.jar;c:\TIBCO\JMS\clients\java\jsse.jar;c:\TIBCO\JMS\clients\java\tibcrypt.jar;"".;C:\Program Files\IBM\WebSphere MQ\Java\lib\com.ibm.mq.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\com.ibm.mqjms.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\connector.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jms.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jndi.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jta.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\providerutil.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\fscontext.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\ldap.jar;"".;C:\Program Files\SonicSoftware\SonicMQ\lib\sonic_Client.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\gnu-regexp-1.0.6.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\jaxp.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\xerces.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\tools.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\providerutil.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\fscontext.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\sslj.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\jsafe.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\certj.jar;"".;C:\bea\weblogic700\server\lib\weblogic.jar;"".;C:\eGate\client\classes\stcjms.jar;C:\eGate\client\JRE\1.3\lib\ext\fscontext.jar;C:\eGate\client\JRE\1.3\lib\ext\providerutil.jar;C:\eGate\client\ThirdParty\sun\jms.jar;C:\eGate\client\ThirdParty\sun\jndi.jar;C:\eGate\client\ThirdParty\sun\jta.jar;"".;C:\JNDI-Directory_WebMethods\fscontext.jar;C:\JNDI-Directory_WebMethods\providerutil.jar;C:\JNDI-Directory_WebMethods\javax.jms.jar;C:\Program Files\webMethods6\Broker\lib\BrokerJMS60.jar;C:\Program Files\webMethods6\common\lib\client60.jar;C:\Program Files\webMethods6\Broker\lib\xerces.jar;"
We are trying to get to our oc4j container on our BPEL server. We have the following settings on our created message sourcein BAM architect:
Initial Context Factory: oracle.j2ee.rmi.RMIInitialContextFactory
JNDI Service Provider URL: opmn:ormi://hostname:6003:OC4J_BPEL
TopicConnectionFactory Name: java:comp/resource/ojms_ipl/TopicConnectionFactories/iplerror
Topic Name: java:comp/resource/ojms_ipl/Topics/iplerror
ojms_ipl refers to the datasource on our BPEL server that is defined in application.xml.
Where is the class located?
Best regards -
Invoke Error while inserting consumed JMS Topic msg in table thru DBadapter
Hi All,
To brief abt my requirement, I am integrating Peoplesoft HRMS module with Oracle SOA i.e.,
+
1. PS HRMS module will publish a JMS msg into a JMS Topic
2. I will consume the same msg using JMS adapter consume operation in my SOA project
3. The Payload(msg) is coming into RECEIVE activity and thru ASSIGN activity invoking the DB adapter to insert the msg into a table.
4. INVOKE activity is throwing the below error(along with the error, able to see the payload in INVOKE activity )
<part name="summary"> +
<summary>*Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'insert' failed due to: Mapping Not Found Exception. The mapping [EMPLID] for descriptor [class insert.Employee] could not be found. The input xml record had an element [Employee/EMPLID]. Most likely the wrong xml input variable (not matching the expected xsd) was passed to this invoke. Make sure that the input xml is valid relative to the xsd and that the mapping exists in the Mappings.xml. If an old version of the descriptor without this mapping has been loaded by the database adapter, you may need to bounce the app server. If the same descriptor is described in two separate Mappings.xml files, make sure both versions include this attribute/mapping. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. *</summary>
</part>
Please, provide some suggestions.
Regards,
SatyaHi Satya,
Try replacing the Assign activity with a Transform acitivity.
Also please check the schema that comes of the DB adapter is having the similar sort of definition that you are getting in your input.
What I mean is to check for length of fields, type of the fields etc.
Thanks,
Deepak.
Edited by: DeepakDabbiru on Oct 23, 2012 3:29 AM -
ORABPEL-12165 error while publishing a 77KB message payload to a JMS topic
Our BPEL process reports the above exception when we tried to publish a 23 line PO to a JMS topic with the default partner link settings (on a dev workstation using the OC4J JMS provider). We do not see the above errror manifest itself on smaller size purchase orders (1-6 line orders). The stack trace from the domain long is shown below:
<2006-04-05 16:28:13,390> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> XMLHelper_setJmsMessageHeadersAndPropertiesFromXML: No headers/properties set because element is null
<2006-04-05 16:28:13,406> <ERROR> <default.collaxa.cube.ws> <JMSAdapter::Outbound> JmsProducer_execute: A resource exception occured while producing message
<2006-04-05 16:28:13,406> <ERROR> <default.collaxa.cube.ws> <JMSAdapter::Outbound>
ORABPEL-12165
ERRJMS_PROVIDER_ERR.
Could not produce message due to JMS provider error.
Please examine the log file to determine the problem.
at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:209)
at oracle.tip.adapter.jms.outbound.JmsProducer.execute(JmsProducer.java:114)
at oracle.tip.adapter.jms.JmsInteraction.executeProduce(JmsInteraction.java:195)
at oracle.tip.adapter.jms.JmsInteraction.execute(JmsInteraction.java:154)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:458)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeInputOnlyOperation(WSIFOperation_JCA.java:647)
at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:448)
at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:327)
at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:189)
at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:601)
at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317)
at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408)
at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836)
at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438)
at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217)
at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335)
at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
Caused by: javax.jms.JMSException: storeMessage(ID:Oc4jJMS.Message.OCS1PC.737371:10a6c2453eb:-8000.352,c0:a7:7:1f:24:2c:0:0:29:0:0:0:0:0:0:0:0:2a:1:a:6c:2b:84:11)
at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1844)
at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1860)
at com.evermind.server.jms.ServerStore.storeMessage(ServerStore.java:757)
at com.evermind.server.jms.ServerStore.enq(ServerStore.java:157)
at com.evermind.server.jms.ServerTopic.enq(ServerTopic.java:464)
at com.evermind.server.jms.ServerTopic.enq(ServerTopic.java:97)
at com.evermind.server.jms.JMSProvider.enqMessage(JMSProvider.java:574)
at com.evermind.server.jms.EvermindSession.send(EvermindSession.java:1099)
at com.evermind.server.jms.EvermindMessageProducer.send(EvermindMessageProducer.java:409)
at com.evermind.server.jms.EvermindMessageProducer.send(EvermindMessageProducer.java:201)
at com.evermind.server.jms.EvermindTopicPublisher.publish(EvermindTopicPublisher.java:77)
at oracle.tip.adapter.jms.JMS.JMSMessageProducer.produce(JMSMessageProducer.java:195)
... 30 morelook into the jms.log - can be found @ $BPEL_HOME/integration\orabpel\system\appserver\oc4j\j2ee\home\log
maybe this gives some more information..
hth clemens -
How to configure a error queue for weblogic jms topic
Hi guys.
I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
1. using jms transport configure proxy service:
Retry Count :3
Retry Interval:10
Error Destination: ErrorTopic
Expiration Policy: Redirect
I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.
Any suggestions for this topic? Can anyone provide some helps or any useful links.
Thanks in advance.
MingzhuangMingzhuang
I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
1. using jms transport configure proxy service:
Retry Count :3
Retry Interval:10
Error Destination: ErrorTopic
Expiration olicy: RedirectUnlike File/SFTP, JMS proxy service definition does not have the concept of Error Destination. To accomplish similar functionality go to JMSQ on (for which proxy is configured) server console (http://localhost:7001/console) and configure the Error Destination. Following URL will help in how to configure JMS Q.
http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueues.html
http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueueDeliveryFailure.html
I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.If every thing is configured as per above step, then the after retries, the weblogic server will put the message into JMS topic configured. Your proxy will receive from this topic.
Let me know if we are not on same page.
Cheers
Manoj -
Getting DOM Parsing Exception in translator while Dequeuing the message from JMS topic
Hi All,
Hope you all doing good.
I have an issue.
I am running on 11.1.1.5 SOA suite version on Linux.
In my aplication I have 4 projects which are connected by with topic/queue.
But in one of the communication, the JMS topic throws me the below error in the log, but dequeue happend perfectly fine and the application runs smoothly.
[ERROR] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@530c530c] [userId: <anonymous>
] [ecid: 5552564bd7cf9140:-117a2347:142149c715a:-8000-00000000069dd133,0] [APP: soa-infra] JMSAdapter <project1>
JmsConsumer_sendInboundMessage:[des
tination = <TOPIC NAME> subscriber = <Consumer project name>
Error (DOM Parsing Exception in translator.[[
DOM parsing exception in inbound XSD translator while parsing InputStream.
Please make sure that the xml data is valid.
) while preparing to send XMLRecord JmsXMLRecord
[ERROR] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@530c530c] [userId: <anonymous>
] [ecid: 5552564bd7cf9140:-117a2347:142149c715a:-8000-00000000069dd133,0] [APP: soa-infra] JMSAdapter <project name>
java.lang.Exception: DOM Parsing Exception in translator.
DOM parsing exception in inbound XSD translator while parsing InputStream.
Please make sure that the xml data is valid.
at oracle.tip.adapter.jms.inbound.JmsConsumer.translateFromNative(JmsConsumer.java:603)
at oracle.tip.adapter.jms.inbound.JmsConsumer.sendInboundMessage(JmsConsumer.java:403)
at oracle.tip.adapter.jms.inbound.JmsConsumer.send(JmsConsumer.java:1161)
at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:1048)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
But when I try putting the archived data on this topic, it throws me the same error but even dequeuing doesnt happen.
I have extracted the payload and validated against the xsd, it looks fine and even the validator doesnt throw me any error.
But I guess I am missing something, which I am immediately not getting.
Please let me know, if I am soemthing here which is causing this erro.
Thanks,
ChandruI searched about this error, but no luck.
First time when the message dequeues, the consumer can consume the message but throws the error in the log.
But when I put the message back into queue from archive directory, the consumer doesnt consume message and throws me the same error.
Does anyone faced this sort of issue.
I checked my xsd throughly, and validated it externally. but didnt fine any error.
if anyone knows, suggest me how to resolve this issue.
thanks & regards
Chandru -
Messages in JMS Topic Error destination
Hi,
I have a JMS Topic with an error destination queue configured. Now, In our scenario , there are two subscribers of topic for the same message. Suppose for a message published to topic, subscriber1 is able to processes message successfully but subscriber2 throws errors when processing the same message.
1. Once the redelivery limit is reached and subscriber2 continues to throw exception, Will the message get en queued to Error Destination (in spite of the fact that subscriber 1 has processed the same message successfully) ?
2. For a consumer (e.g MDB) listening to Error destination and consuming error messages, Is it possible to determine which topic subscriber was unable to process the message ?
Please let me know
Regards,
ArifHere it depends on the state of the message, if the message is visible then the message would be available for consumption, else it is not. In case the subscriber 2 failed to consume the message and the message is still visible then a retry would be made, else the message would not be retried.
In case the message is visible then the message would be move to the error queue based on the configured redelivery attempts.
Additionally, an MDB can find the destination using the getJMSDestination() call. But as per my understanding we will only be able to get the name of the last destination which in this case would be error queue:
http://docs.oracle.com/javaee/1.4/api/javax/jms/Message.html#getJMSDestination%28%29 -
Jms adapter not polling messages from jms topic
Hi
We have a jms adapter configured in BPEL process which need to poll messages from JMS topic.Unfortunately its not polling message from JMS Topic if we add Message Selector and Durable Subscriber properties in jca file.Please find jca file content below
<adapter-config name="SyncCustomerPartyListCDHJMSConsumer" adapter="JMS Adapter" wsdlLocation="oramds:/apps/AIAMetaData/AIAComponents/ApplicationConnectorServiceLibrary/CDH/V1/ProviderABCS/SyncCustomerPartyListCDHProvABCSImpl.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory location="eis/jms/aia/syncCustomerParty_cf" UIJmsProvider="WLSJMS" UIConnectionName="Dev"/>
<endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
<activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
<!--property name="DurableSubscriber" value="XYZ"/-->
<property name="PayloadType" value="TextMessage"/>
<!--property name="MessageSelector" value="Target in ('XYZ')"/-->
<property name="UseMessageListener" value="true"/>
<property name="DestinationName" value="jms/aia/Topic.jms.COMMON.CustomerParty.PUBLISH"/>
</activation-spec>
</endpoint-activation>
</adapter-config>
If we remove Durable subscriber and message selector properties,its able to poll messages.
Any pointer will help
thanks in advance
BajiAfter changing below property in jca file.JMS adapter is able to poll messages from JMS Topic.
<property name="UseMessageListener" value="false"/>
But if i un comment below line and deploy my code again, it stop pulling the messages from topic.
<property name="DurableSubscriber" value="XYZ"/>
If i bounce the server after above change and deployment ,it will start polling the message.I am not sure why i need to restart my server after adding above property.
Thanks
Baji
Maybe you are looking for
-
My macbook pro runs slow. What can i do ?
After i went on a streaming website, my macbook pro has started to run slow over night and after 1 or 2 hours using the internet didn't let me acess the internet. My intenet connexion is good. but safari says that he cant find the servor for the we
-
Dynamic URLs for the mx:HTTPService component
I am looking to make the url property of an mx:HTTPService component dynamic. <mx:HTTPService id="srvDivision" url=" http://prodserver/prod/get_division.jsp" useProxy="false" method="POST"> </mx:HTTPService> I would just like to have an environment p
-
Shared memory (System V-style) - High usage of phys memory and page outs
Hi! I get a much higher usage of physical memory when I use shared memory than I would expect. Please, I would really need someone to confirm my conclusions, so that I can revise my ignorance in this subject. In my experiments I create a shared memor
-
Mount poinst not compatible for language DVD;s in configuration pgase.
Dear all, I have an starnge issue. we are in process upgrading system from ECC 5.0 to ECC 60. EHP4 sr1 SP03. So, as part of plan i have used language DVD's 51036904_1 to 8 & run till cheks phase successfully , however we found some errors recurr
-
dear abapers, I need the information regarding the sapscript. For a general invoice the formname is RVINVOICE, which we can see in the NACE with output options RD00 and outputcontrol : V3. Is there any formname given separatel