JMS Adpater Question
I am trying to implement the JMSAdapter in the two way mode.
I have configured the queues and have configured the JMS Adapter appropriately.
I do see the response being generated but the correlation doesn't seem to work.
Error Message:
Fault ID rejected:60006
Fault Time Apr 13, 2012 4:44:31 AM
Non Recoverable System Fault :
Cannot complete callback since unable to retrieve SourceURI/Wire from Correlation store. Either Instance Tracking is diabled or no corresponding Request succeeded prior to this callback
The payload details for this rejected message can be retrieved
Any idea what's missing??
I do see the response message on the queue.
Got it to work....had missed setting the Correlation ID in my JMS application :) my bad ..:)
Similar Messages
-
Dear Expertise,
I have some doubts in JMS Adpater.
1. IS JMS adapter in XI is JMS client?
2. If JMS adaper CC is in sender mode, will XI pull the data(queues) from JMS server or JMS server will send the data to XI.
For IDOC to JMS scenario, what are the steps need to be done in repository framework.
My question is how to send that IDOC data to JMS server. For this, is any message mapping and interface determination required, as I want to send the same IDOC data to JMS server queue.
Advaced Thanks,
GujjetiPraveen,
To work on JMS adapter first you need to install the drivers. Check this document on how to install the drivers:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70ffd890-0201-0010-708f-d5dad2dfcf3a
Once when you do this it is just like your normal scenario. Check this weblog for some help on how to configure your receiver JMS adapter:
/people/kan.th/blog/2007/02/05/exploring-jms-and-sap-xi-jms-adaper
Also check this for some info. on JMS adapter:
/people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
---Satish -
Hi all
I configure the JMS receiver Adpater of webSphereMQ
but i got the error as followed:
<b>Receiver channel. Details: MQJMS2005: failed to create MQQueueManager for '172.31.235.100:QM_Test'</b>
I have a doubt:
The XI and MQ are in the same server, should i configure the network of MQ such
as the domain MQM or something else
and i have searched this issue in this forum, but there is no solution
I am eager for your reply
And Thanks in advanceHi Leo,
have u seen these..
configuration of JMS adapter Using WebSphereMQ
SAP XI and JMS for WebSphere MQ
connection with the JMS provider
cheers,
Prashanth
P.S Please mark helpful answers -
Hi all,
I am using Weblogic Application Server and say I have 1000 messages in a JMS Queue say "Q1".
Q1. How are these messages picked up from the queues? i.e. by a thread etc.
Q2. If they are picked up by threads then who configures these threads? Are they default threads created by the Weblogic Application Server or are user-created threads?
Q3. Also, if 20 threads are involved in picking the messages from the queue and of them one thread snaps while picking the message then what will happen? and what will be the solution??
Thanks.Q1/Q2*:
The answer to your question is "its provider specific".
You will need someone who explicitly works on weblogic to provide specifics so you may want to utilize a weblogic specific forum instead of a generic JMS forum
I'll try to answer this in very generic terms that should apply to all providers:
If you are receiving messages with an MDB: there is a thread pool associated with the resource adapter which plugs the JMS provider into the server. This is generally configured as part of the application server configuration. That pool dictates the maximum number of threads which can call the same MDB's at the same time.
If you are receiving messages with a Servlet: In this case, you are probably calling receive within the servlet. That will use the thread provide by the webstack which is executing the servlet
If you are receiving messages in an AppClient or Standalone provider: You are using your own thread if you call receive(), or a thread provided by the provider if you are calling onMessage()
In all cases, the provider may be allocating additional threads "beneath the covers" to process those messages.
Q3*:
I'm not quite sure what snaps means. Threads run until they exit. I'm going to guess that the question is "what if the MDB or code throws a RuntimeException". If you mean something different, please supply a more specific description of the error.
This one depends on what whether or not you are using transactions and how you are receiving those messages.
If you are using transactions in an MDB: the transaction will rollback and the message will be redelivered to another consumer.
In all other cases, it depends on the specifics (I was going to list them but it seems like to much work for a Friday afternoon).
If you are using a non-transacted or non-MDB method to retrieve the messages, let me know and I can tell you how, per the JMS and J2EE specs, it should work. I'll need to know acknowledge mode/transaction, type of client and if you are calling receive() or onMessage().
-- Linda -
Hey Folks,
Just reading a book on JMS for the first time and i just have a few philosophical questions on the use of it. In the book it gives me an example of setting up a JMS queue and then using a MDB to receive a message and then does a credit check on a customer!!
So after one has gone through all the hassle of configuring your factories,setting up your queue, creating your MDB and then configuring it your are finally ready to write code to do your business requirements!!
Now my first thought were, why would i do all that work just to do a credit check on a customer asynchronously, if i was using plain old POJO�s , why wouldnt i just spin off a thread to do this for me in the backround instead of having to do all the above?? So what am i missing here??
Next point that i need some clarity on is more related to a production setup. Say i have 10 nodes, does one just create one JMS channel that all 10 nodes use or do they each have a channel for every node?? If they have a channel for every node then why would i use JMS?? Ok loose coupling, great but i can get that if i create my own observer pattern, what extra will it give me than a normal observer pattern?? I assume in the above scenario that you have no external applications listening, so everything that needs to listen for the message is in your JVM!! I understand if you have SAP or any other external applications listening
Last but not least, is it fair to make a comparison JMS to tibco messaging bus?? If so why, if not why?? ;)
Thanks for any help on the matter, like i said im just reading up on it now and need a few thoughts cleared up!!
Cheers,
LL> So when you say chained, i take it you can set the
order in which you want your beans to be called
first(assuming in a topic scenario where you have
several listeners)?? is that possible with JMS?? if
so how??
We've written a custom Process Manager that receives messages and uses XPath and XSL to coordinate several JMS applications (all of our messages are XML). We typically don't use topics because we don't want multiple applications getting the same message. Each application does its work in turn, not at the same time.
> Yeh i can see how it would work in this scenario but
you still have other options to solve this problem
without the need of JMS!!
There's always more than one way to solve a problem.
> i suppose im looking for a scenario where i would say
to myself, yes thats a job for JMS!! And in this
scenario exclude the need to talk to external
applications!!
I wouldn't want to design a large system with multiple teams working on multiple applications, each with its own processing needs without JMS. Tuning is pretty easy. Adding more horsepower at any point in the chain is pretty easy.
But it may be that I just reach for the tools that I am most familiar with.
Dwayne -
Greetings,
I have the following questions regarding Transactions in JMS:
1. What constitutes a transaction in JMS? Assuming there are 2 clients, one which
is just a Subscriber and the other just a Publisher. What will constitute a transaction
in this scenario?
2. While configuring, JMS Connection Factory, a parameter present is " Transaction
Timeout ", with a defualt value of 3600 secs. At what point, does this time starts
ticking ? Is there anyway to disable this value or the only solution is to increase
it as required.
vinay s wrote:
> Greetings,
>
> I have the following questions regarding Transactions in JMS:
> 1. What constitutes a transaction in JMS? Assuming there are 2 clients, one which
> is just a Subscriber and the other just a Publisher. What will constitute a transaction
> in this scenario?
>
A receive or send operation performed under a transaction. The operation
becomes transactional.
>
> 2. While configuring, JMS Connection Factory, a parameter present is " Transaction
> Timeout ", with a defualt value of 3600 secs. At what point, does this time starts
> ticking ? Is there anyway to disable this value or the only solution is to increase
> it as required.
This applies to transacted sessions. A special kind of transactional behavior
unique to JMS. WL JMS also supports user transactions (JTA), which
is more unique.
Note that 3600 seconds is a long time, standard transactions actually
default to a limit of 30 seconds...
To learn about this stuff, I recommend reading the WebLogic JMS Programmer's guide - there
is a chapter on
transactions. Check out the performance white-paper I posted to this newsgroup last
Thursday - there is
a section in there on transacted sessions vs. user transactions...
-
Hi Experts,
I am getting following error in Reciever JMS adapter:
I am using transport protocol is Acces JMS provider with JNDI
Channel error occurred; detailed error description: com.sap.aii.adapter.jms.api.connector.ConnectorException: Error creating initial context with environment: {java.naming.provider.url=http://168.89.59.82:7005/, java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory}for profile: ConnectionProfile of channel: CC_eRespond_ServiceTicketson node: 8273250 having object id: d72754188a053d43b6aa0dd420346941: javax.naming.CommunicationException
at com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createInitialContext(JndiConnectorImpl.java:66)
Can anyone please tell me what is the cause of this error.
Kind Regards,
Praveen.Hi Experts,
We are sending messages from XI to Weblogic server with the help of JMS Adapter. The Queue is available in Weblogic server.
Our configuration of JMS receiver Adapter is
JNDI Lookup Name of Queue Connection Factory----
ConnectionFactory
JNDI Lookup Name of JMS Queue----
queue/IntegrationQueue
Name of JNDi Initial Context Factory: -
weblogic.jndi.WLInitialContextFactory
JNDI Server Address:----
weblogic server ip
JNDI Logon User: -
user
JNDI Password: -
password
Could you please help us.
The Error message as follows
Channel error occurred; detailed error description: com.sap.aii.adapter.jms.api.connector.ConnectorException: Error creating initial context with environment: {java.naming.provider.url=http://IP:port/, java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory}for profile: ConnectionProfile of channel: CC_eRespond_ServiceTicketson node: 8273250 having object id: d72754188a053d43b6aa0dd420346941: java.lang.NoClassDefFoundError
at com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createInitialContext(JndiConnectorImpl.java:66)
Regards
Praveen -
Special Char disappear after the JMS Adpater
Hi all,
I have a problem and nees help because I don't know the solution.
We send a flat Idoc via a JMS Adapter from XI to a Websphere Queue.
The flat Idocs have special chars like "ø", "ö", "ä"...
Unforunately in the message on the queue (after the JMS adapter) we miss this chars and one char behind the special char. They are away.
In XI I can see that the char are there.
So I think the that JMS adapter removes this files.
Can you help me please? What do I need to change in the JMS adapter?
Thanks and regards
Manuelasounds like an encoding problem. Seems there is a way to change the encoding at the JMS receiver side.
Have a look at this thread : Re: Change encoding from utf-8 to iso-8859-1 in JMS receiver! -
Hi,
I am trying to connect XI 3.0 with MQ 5.3. I have done all the mappings in Int. rep. and configurations in the Int. directory. I am using an Outbound JMS adapter to pick up the file from MQ. The details like channel name etc. are given correctly. The integration isn't happening in spite of all these and the MQ driver installation. I would like help on some areas.
- I am not able to see any log file on what went wrong. I tried sxi_monitor but there were no messages. I tried the Runtime workbench but that isn't listing the JMS adapter. SAP says that it will be listed only after it starts working.
- The file exists in 'text' format in MQ. So I am not using any conversion in Module in the Outbound JMS adapter.
- Is there anything else to watch out for in the Int. directory configurations?
- Does MQ have to reside in XI ? Right now it's in a separate server
regards,
MadhavanHi Madhavan,
A valid 'JMS adapter channel' as sender, and any Sender Agreement refering to this channel, should make the JMS adapter in green.
In Adapter Monitor, if the status of 'JMS' is:
1. Not visible in list: Then reimport SCV: 'Basis components' in IR.
2. GREY: Then no JMS channel is defined or activated. Its a cache problem. Refresh the Directory cache, and check again in monitor.
3. RED: The list of channels is displayed, and the error message is given. Accordingly you could fix it.
4. GREEN: No problems. But if it hasn't processed any messages, it shows as - "Sender Channel. (No Details available)". To verify if the channel is really working, try to change the MQ Server name / Queue name to cause an error - and Adapter monitor shows RED for JMS. This indicates that earlier connection was successfully established.
What is the status in your case?
See if this information helps to fix yourself..
regards,
Pops V -
Hi,
Is it possible to use a different jndi-factory other than teh default WL one: weblogic.jndi.WLInitialContextFactory?
also if my jms accepts only client cert ssl authentication, is it possible to setup this in Oracle CEP? I am getting all kinds of errors
when I try to do any of the above and the documentation seems to layout only default scenarios so not enough details. I am getting this error:
org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: Error initializing JMS connection: javax.naming.NoInitialContextException: The JNDI initial context factory "com.sun.jndi.fscontext.RefFSContextFactory" either cannot be loaded or it does not exist.
I added all required jar files for this jndi-factory in runtime lib in Manifest.mf but it is not loading at all.
Anybody tried something similar to this? any pointers?
Thanks,
FirasHi Andy,
I changed it to Debug and got the following stack:
<Mar 10, 2010 2:53:46 PM EST> <Notice> <Deployment> <BEA-2045000> <The application bundle "mmxHelloWorldd" was deployed successfully to file:/E:/oracle/Middleware/user_projects/domains/ocep_domain/defaultserver/applications/mmxHelloWorldd/mmxHelloWorldd.jar with version 1268250825479>
<Mar 10, 2010 2:53:50 PM EST> <Debug> <Adapters> <BEA-000000> <InboundJmsAdapter.beforeResume was called>
<Mar 10, 2010 2:53:50 PM EST> <Debug> <Adapters> <BEA-000000> <JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
java.lang.ClassCastException: javax.naming.Reference
at com.bea.wlevs.adapters.jms.JmsAdapter.beforeResume(JmsAdapter.java:109)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter.beforeResume(InboundJmsAdapter.java:74)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$FastClassByCGLIB$$fc18e7ee.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
at com.bea.wlevs.eventstore.recplay.RecordPlayProxy.invoke(RecordPlayProxy.java:255)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
at com.bea.wlevs.monitor.internal.MonitoringProxy.invoke(MonitoringProxy.java:165)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$EnhancerByCGLIB$$b6867280.beforeResume(<generated>)
at com.bea.wlevs.spring.ActivationBeanPostProcessor.preProcessBeforeContextResume(ActivationBeanPostProcessor.java:27)
at com.bea.wlevs.spring.DeferredBeanPostProcessor.beforeResume(DeferredBeanPostProcessor.java:33)
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:114)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
>
<Mar 10, 2010 2:53:50 PM EST> <Error> <Deployment> <BEA-2045010> <The application context "mmxHelloWorldd" could not be started: org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:136)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused By: java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
at com.bea.wlevs.adapters.jms.JmsAdapter.beforeResume(JmsAdapter.java:120)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter.beforeResume(InboundJmsAdapter.java:74)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$FastClassByCGLIB$$fc18e7ee.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
at com.bea.wlevs.eventstore.recplay.RecordPlayProxy.invoke(RecordPlayProxy.java:255)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
at com.bea.wlevs.monitor.internal.MonitoringProxy.invoke(MonitoringProxy.java:165)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$EnhancerByCGLIB$$b6867280.beforeResume(<generated>)
at com.bea.wlevs.spring.ActivationBeanPostProcessor.preProcessBeforeContextResume(ActivationBeanPostProcessor.java:27)
at com.bea.wlevs.spring.DeferredBeanPostProcessor.beforeResume(DeferredBeanPostProcessor.java:33)
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:114)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
>
<Mar 10, 2010 2:53:50 PM EST> <Notice> <Deployment> <BEA-2045001> <The application bundle "mmxHelloWorldd" was undeployed successfully> -
BPEL JMS Adpater to publish message to B2B Internal Delivery Channel
We are planning to use the JMS adapter in BPEL to publish message to B2B Internal Delivery channels. But during the JMS Adapter configuration it doesnt list the B2B Internal queues (IP_OUT_QUEUE and IP_IN_QUEUE) in the list of queues. However for AQ Adapter in BPEL, during the AQ Adapter configuration its lists the queues(IP_OUT_QUEUE and IP_IN_QUEUE) in the list of the queues. We used the same database connection and user for both the adapters. The B2B queues are in the B2B repository.
Can we use the JMS Adapter in BPEL to publish message to B2B internal delivery channel and if so is there any other configuration we need to do?You can use the default AQ to pub/sub messages in/out of the IP_IN and IP_OUT Qs.
However, if you still need to use JMS, then make the B2B listen to this JMS Q and then use the JMS adapter.
Using the default AQ should be robust and simple. But, again we have seen several customers implementing in thrid party JMS providers as per their business scenarios.
Regards
Anirudh Pucha -
JMS Specification Question regarding persistent messages and reliability.
In section 6.15 of the JMS Specification, titled reliability it is stated that:
"When all messages for a topic must be received, a durable subscriber should be used. JMS insures that messages published while a durable subscriber is inactive are retained by JMS and delivered when the subscriber subsequently becomes active.
Nondurable subscribers should be used only when missed messages are tolerable."
Then in a table following the above text it states that a nondurable subscriber on a topic flowing persistent messages will receive a message "once-and-only-once (missed if inactive)."
To me this implies that if a nondurable subscriber is active, it is guaranteed to receive all persistent messages published to the topic while it is active. However there seems to be some ambiguity about what it means to be "active." Does active mean subscribed, does it mean subscribed and not busy processing messages, something else?
I ask this because I'm seeing a somewhat slow subscriber not receiving all persistent messages published while it is subscribed. This was surprising to me, given my interpretation of this reliability clause, so I'm wondering if I have not interpreted it correctly in this case.
Could anyone fill me in, particularly if you had something to do with writing the spec or can point me to the rationale behind this portion of the spec?
Thanks,
Jeff SingerI am looking at the JMS 1.1 Spec version 1.1 April 12, 2002.
Section 4.10 "Reliabilty" has what reads to me as kind of a CYA statement that the contributing JMS providers got inserted. It reads:
"A JMS provider may have resource restrictions that limit the number of messages that can be held for high-volume destinations or non-responsive clients. If messages are dropped due to resource limits, this is usually a serious administrative issue that needs attention. Correct functioning of JMS requires that clients are responsive and that adequate resources to service them are available.
+
+
+Once-and-only-once message delivery, as described in this specification, has the important caveat that it does not cover message destruction due to message expiration or other administrative destruction criteria. It also does not cover loss due to resource restrictions. Configuration of adequate resources and processing power for JMS applications is the job of administrators, who must be aware of their JMS provider's reliability features."
+ -
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 -
Hi Folks,
We have an application where in we have to read the requests from a file and write the responses to another file. Each request has to be passed to EJB container which processes it returns the response. There are around 500000 messages in the file.
For Performance reasons what would you suggest
RMI or JMS
Thanks in advance for your suggestions
RajeevYou need to define your criteria for the solution.
RMI = Synchronous
JMS = Asynchronous -
JMS architecture question for fat client/server.
Hi. Is JMS suitable for fat client-server architecture where a certain number of fat client applications (like a few hundreds) open connections directly to the JMS provider? Is it going to have scalability problem when the number of connections grow?
Depending on your JMS provider, this may be a very suitable architecture. The Sun MQ JMS Cluster was architected exactly for this problem. If the number of connections onto a single broker becomes too much of a burden for this broker, it can be put into an MQ cluster and share the number of connections. Of course, the number of connections a broker can handle will be totally dependent on the resources available to it. OS, CPU, memory, other applications running on the same machine, etc....
TE
Maybe you are looking for
-
Unable to Logon to the SAP System after Installing SAPNW2004sSneakPreviewAB
Hi I Installed SAPNW2004sSneakPreviewABAP. If i am trying to run the NSP Server it first Starting (Showing Blue Color ) and after few seconds it is becoming Yellow in Color. When i cross checked in Process list it is showing one of the process
-
App Won't Open on Verizon iPhone
Hello All, A few days ago I purchased an app called "Skeptic's Dictionary" for $0.99. After it installed, I went to open it and it immediately closed. After 2 days worth of troubleshooting to fix it, as well as emailing the app's developer, I came
-
I don t succed in updating itunes at the newest version because pc can t remove the previous version
i don t succed in updating itunes at the newest version because my pc cannot uninstall the previous version
-
N80 - Equivalent of PC Suite to iMac OSx 10.5.2...
My N80 has PC Suite downloaded onto phone and ex PC. N80 and PC communicated succesfully. Trying to download Mac software via iMac to N80 produces System Error message on N80. Any help? Thanks
-
My phone flashes each time someone calls or messages me. How do I stop flash?
My phone flashes each time someone calls or messages me. How do I stop flash?