Correlation and Async/Sync Communication using JMS adapter without BPM
Hello
1. Pls explain with simple example docs/links --- Correlation
2. Async/Sync Communication using JMS adapter without BPM
If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
Pls explain --- Correlation Settings, select JMSMessageID for the XI Conversation ID.
Pls explain -- Correlation Settings, select XI Conversation ID as jMSCorrelationID.
Can you pls explain me this example with JMSMessageID and JMSCorrelationID context
Regards
Hi Henry,
For Correlation, please go through the below link.
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
Sync / Async Bridge communication using JMS : http://help.sap.com/saphelp_nw04s/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
Sync / Async communication without BPM in JMS : /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
/people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
Hope these help
Regards
Kiran..
Similar Messages
-
Async/Sync Communication using JMS adapter without BPM
Hello ,
Pls suggest how Async/Sync Communication using JMS adapter without BPM .
In my scenario I have JMS Sender and then RFC/JDBC as Sync and then again JMS receiver
Pls explain the concept of
JMSMessageID and JMSCorrelationID and how to use it by an example.
RegardsHi,
If you have selected JMSMessageID, JMSCorrelationID, or JMSProperty and entered a JMS message ID in these fields, you should see the Remove 'ID:' Marker from JMSMessageIDindicator. Set the indicator.
This is necessary because the JMS specification stipulates that each JMS message ID starts with 'ID'. However, this conflicts with ISO-11578.
- JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
(String) The unique message ID. Note that this is not a required field and can be null. Since the JMS provider might not use your provided message ID, the Connector sets a special property called $jms.messageid after sending a message. This is to insure that the message ID always is available to the user. To retrieve this value use conn.getProperty("$jms.messageid") in your After Add hook.
- JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
(String) This header is set by the application for use by other applications.
Hope this will help you.
Regards
Aashish Sinha
PS : reward points if helpful -
Sync/Async communication in JMS adapter without BPM
Hi,
as of SP19 XI's JMS adapter offers this new feature for Sync/Async communication through JMS Adapter modules instead of using a BPE.
Now I would be interested to know if anybody has already successfully used this feature especially using WebSphere MQ as a JMS Provider (preferredly in the mode JMS Compliant: WebSphere MQ (non-JMS)).
I experienced some issues with the XI Message ID being used as the JMS Correlation ID which is then mapped to the MQ Correlation ID being truncated after 24 characters. So I don't exactly know whether this is due to wrong setup or some general issues with this messaging system.
Please let me know if you have any experiences at all with this new feature (please do not just post links to the following blogs, which I have thoroughly studied as well as the How-to Guide concerning this topic)
/people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
/people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
thanks & regards,
PeterHi Peter,
we working on the same Problem. Using IBM Websphere MQ as JMS Provider for the new feature: sync/async bridge without BPE.
we switched on a high level trace for the adapter framework and saw a problem in the receiving Object of the JMS correlation id. The notify bean receives the JMS correlationid in hex format. so the beans have two different correlations, which could not find together.
did you have any solution to get this new feature works with IBM Websphere ?
thanks
joachim -
Sync/Async and Async/Sync Bridge in JMS Adapter
Hi,
I have scenarios using both the Sync/Async and the Async/Sync Bridge in the JMS Adapter. In general this works fine. There is just one thing that caught my attention.
In the Sync/Async Bridge, the correlation in JMS is done
JMS Message ID of Reqeust --> JMS Correlation ID of Response
In the Async/Sync Bridge, it is done
JMS Correlation ID of Request --> JMS Correlation ID of Response
which seems strange as I would have expected to work the same for both ways...
I'm following exactly the setup described in the 'How-to correlate JMS' guide.
Has anybody experienced the same thing or am I missing something important here?
thanks for your help
regards,
PeterHi,
If I get it right the MQ queue gives a response message back to XI. The message looks okay on MQ queue, but in XI it's empty.
So I guess the problem must be within the channel that picks it from MQ queue. Did you configure any modules in it that might screw up the content? Is the the message empty as soon as it arrives in XI adapter engine? Pls. check in RWB Monitoring or End-to-End monitoring.
Do you have other channels that pick up messages from that or another MQ queue which do not show such an error? Are they configured exactly the same way?
Regards,
Kai -
Async/Sync Bridge in JMS Adapter using modules
Hi All,
can you please help me on this, I have done a JMS to SOAP scenario where I have used two JMS comm channels.
one is for sender JMS system and another is for getting the response message back.
can any one please tell me should I maintain a receiver agreement with the comm channel thru which I am getting the response message back to the JMS system?
and can I maintain the same connection parameters in both of this JMS comm channels?
Thanks
VineetHi,
The same connection parameters can be used across the two Jms channels. And you have to define two receiver agreements, one of Receiver Soap and the other for Receiver Jms.
I am not completely sure whether it works, even with no receiver agreement at Jms receiver side.
Regards,
Swetha. -
Questions async-sync bridge with JMS
Hi all
SAP recommends using JMS rather than BPM to make async-sync bridge or sync-sync bridge. But how to use it in real life?
For example, I have an async RFC function to call a sync SOAP function and the sync response should be passed to a mail receiver. I know how to use BPM to achieve this scenario. But how should we use JMS or can we use JMS to do the same thing?
Another question: If we use SAP own JMS service to make async-sync scenario, we need a sender JMS adapter and a receiver JMS adapter. Are the sender and receiver connected to the same queue in JMS or different queues?
Thanks!
Regards,
HuiHi Hui!!
have a look in these Url's
<b>sync/Sync Bridge in the Sender JMS Adapter</b>
http://help.sap.com/saphelp_nw04/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
You can get some idea on these links also
/people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi - Use of Synch - Asynch bridge in ccBPM
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] - Use of Synch - Asynch bridge in ccBPM
Go thru following Weblogs:
1.Walkthrough with BPM:- /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
2./people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
3./people/ravikumar.allampallam/blog/2005/02/17/bridging-the-sync-async-bridge-with-fork-xi
4.https://www.sdn.sap.com/sdn/weblogs.sdn?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
<b>Sync/Async communication in JMS adapter without BPM</b>
/people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
this thead also
Async/sync bridge -
How to get the incoming file name using JMS adapter and SOAP adapter
Hi Everybody,
In one of my interface i need to get the file name of incoming flat file using JMS adapter at sender side. and then i am using xslt to convert it to IDOC and then posting to SAP IDOC.
my incoming filname are in this form price<DateTimestamp>.txt. when i do the tranformation this incoming file name should be part of one element in the IDOC which i am posting.
EX:
<IDOC
<REF>price<DateTimestamp>.txt</REF>
</IDOC>
Hope it is clear to everybody. I need your suggestion how i can capture this incoming file name and send it as part of IDOC.
Thanks
rajIf they are passing it in message id or correlation id,
you can access it using
<xsl:variable name="dynamic-conf"
select="map:get($inputparam, 'DynamicConfiguration')" />
<xsl:variable name="dynamic-key"
select="key:create('http://sap.com/xi/XI/System/JMS', 'DCJMSMessageID/ DCJMSCorrelationID')" />
<xsl:variable name="dynamic-value"
select="dyn:get($dynamic-conf, $dynamic-key)" />
Check this:
http://help.sap.com/saphelp_nw70/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Thanks,
Beena. -
How to Set JMS property and Read JMS property in BPEL using JMS adapter
Does any one know how to set or read more than one JMS property in BPEL using JMS adapter. My queue server is Oracle JMS server.
Any help and sample is well appreciatedHi Van
I have noted that only the attribute "type" is missing. It seems that when you create a "string" property, the attribute "type" is droped from the XML. If you use another type (as "integer" or "double") it stays there.
If you try to read your properties, except for the "type" attribute, you should be successful, as I am. If you need, please tell me your email, I can send you my code.
Source Code:
in ASSIGN activity (process which SENDS the JMS message):
<assign name="TESTES">
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@type"/>
</copy>
<copy>
<from expression="'name'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@name"/>
</copy>
<copy>
<from expression="'value1'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@value"/>
</copy>
<bpelx:append>
<bpelx:from>
<Property name="" type="" value=""
xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/"/>
</bpelx:from>
<bpelx:to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties"/>
</bpelx:append>
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@type"/>
</copy>
<copy>
<from expression="'name2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@name"/>
</copy>
<copy>
<from expression="'value2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@value"/>
</copy>
</assign>
in ASSIGN activity (process which READS the JMS message)
<assign name="Assign_1">
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@value"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@value"/>
<to variable="temp"/>
</copy>
</assign>
Note that I do not try to read the "type" attribute, otherwise it will fail.
Here is the JMS Header Message received:
<inboundHeader>
<JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">
<JMSInboundHeaders>
<JMSCorrelationID>
bpel://localhost/pi_lms-c001e/BpelPiAtualizacaoC001E~1.0/3200025-BpInv0-BpSeq1.6-2
</JMSCorrelationID>
<JMSDeliveryMode>2</JMSDeliveryMode>
<JMSExpiration>0</JMSExpiration>
<JMSMessageID>ID:467DFA1FA1ED459EBF37F51F596C3F12</JMSMessageID>
<JMSPriority>4</JMSPriority>
<JMSRedelivered>false</JMSRedelivered>
<JMSType>com.mercurio.lms.integration.c001eip.c001EIntegrationPoint</JMSType>
<JMSTimestamp>1201552046253</JMSTimestamp>
</JMSInboundHeaders>
- <JMSInboundProperties>
<Property name="JMSXDeliveryCount" type="integer" value="1"/>
<Property name="JMSXRecvTimestamp" type="long" value="1201552046698"/>
<Property name="JMSXUserID" value="lms_dev_int_v1_user"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="JMS_OracleDelay" type="long" value="0"/>
<Property name="JMSXState" type="integer" value="0"/>
<Property name="IAS_VERSION" value="10.1.3"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="name" value="value1"/> ("type" attribute was droped!!!)
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="name2" value="value2"/> ("type" attribute was droped!!!)
</JMSInboundProperties>
</JMSInboundHeadersAndProperties>
</inboundHeader>
Regards
Marcelo -
Send attachment via Receiver FILE/JMS adapter without using any Mapping.
Hi,
R/3 program creates one (encoded) text file, which I want to send via Proxy to JMS adapter without any mapping or FCC.
Note: I don't want to use File adapter to pick the file from R3 dir and then send it to JMS.
Reference: I have gone through below mentioned blog which produces the attachment in the XI payload but I am not able to write the same attachment to my XI dir using Receiver File adapter (File adapter is just for testing actual adapter will be used as Receiver JMS adapter).
/people/michal.krawczyk2/blog/2006/04/19/xi-rfc-or-abap-proxy-abap-proxies-with-attachments
Regards,
Sarvesh> note sure why you want to complicate things here
Actually the idea was to explore the possibilities of "Proxy with attachment". And I also wanted to confirm with experts like you before going to other options. Anyway it seems it's only possible with mail adapter.
Reason for exploring above possibility: Since ABAP team has to create one text file and encode it, so we thought to call the outbound proxy in the ABAP program to send the same file as an attachment and then simply send it to JMS. Which is quite obvious thinking when you don't want to manage a share directory between R3 & XI or don't want to manage FTP user and pwd.
> i think the simplest thing is to go for a simple file to jms configuration unless you have any specific reasons for not doing so.
This we already kept in our mind as a last option in case if above thing is not possible then we can easily do it by this way.
Thanks a lot for suggestion.
Regards,
Sarvesh -
Problem with Send using JMS Adapter with Websphere MQ
Hi,
We have two scenarios using JMS Adapter with MQ:
1. File->PI->MQ
This works fine and drop the file in MQ correctly.
2. MQ->PI->File
This gives an error reading from the queue: (see highlighted in the log below). It correctly connects to the queue name. But it fails with the message "Could not begin a AF transaction".
Our PI version is 7.0 SP 13
Websphere MQ Version 6.0.
Any idea what could be wrong?
Cluster Node Administration Information Availability Times
Cluster Node Details for Channel CC_JMS_MQ_Sender
Short Log
In the Last 4 Hours Server 0 15_92786
_Sucessfully connected to destination 'queue:///MMPP.PLM.FGH41? CCSID=37&targetClient=1'_
Line 1 / 1
Processing Details for Cluster Node Server 0 15_92786
Type
Time Stamp
Message ID
Explanation
9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d Error while processing message '2e6206f0-7925-11dd-bc02-0003bae50b4d'; _detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Could not begin a AF transaction: TxManagerException: Unable to open transaction: com.sap.engine.services.ts.exceptions.BaseSystemException at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:103) ..._
9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d XI message ID corresponding to JMS message with ID 'ID:414d512071736431202020202020202047d9462024028b02' will be created as a new GUID with value '2e6206f0-7925-11dd-bc02-0003bae50b4d'
Amith DharmasiriChecked the drivers installed in :
/usr/sap/<SID>/DVEBMGS<SYSNO>
/j2ee/cluster/server0/bin/ext/com.sap
.aii.af.jmsproviderlib
They are available and properly added to aii_af_jmsproviderlib.sda.
The drivers are:
CL3Export.jar
CL3Nonexport.jar
com.ibm.mq.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
rmm.jar
These were installed per OSS note 747601.
Any other suggestions, why retrieving from MQ doesn't work? -
How to Set corrid using JMS adapter in ESB while inserting the data in JMS
Hello all,
Can any one help me in setting the corrid using JMS adapter in ESB.
I haven't been able to find any clues.
We can do this in BPEL but my adapter is in ESB and i have no idea how this can be done in ESB.
Your help is highly appreciated.
Thanks,
Saurav
Edited by: sauravsingla on Oct 7, 2009 10:46 AMhi
you could do this from and xsl transformatuion by use of the .. function
see :
http://biemond.blogspot.com/2008/02/esb-adapter-failover.html
http://kr.forums.oracle.com/forums/thread.jspa?threadID=658502 (comment of AmitSoaDev, he sets correlationid too)
hope this helps, gl -
Polling messages based on priority in BPEL using JMS adapter
Hi All,
Is it possible to poll the messages based on the priority in BPEL using JMS adapter?
I could set the priority for the messages but while polling it is picking the messages in FIFO(First in First out) order. But I want the messages to be picked on priority.Any help is appreciated.Do you only want to pick up messeges with a certain priority? So anything larger than say priority 2?
You can try this: Oracle JCA Adapter for JMS - 11g Release 1 (11.1.1.5.0)
Message SelectorThis field is also optional. It filters messages based on header and property information. The message selector rule is a Boolean expression. If the expression is true, then the message is consumed. If the expression is false, then the message is rejected.For example, you can enter logic, such as:
JMSPriority > 3. Based on this, messages with a priority greater than 3 are consumed; all other messages are rejected.
JMSType = 'car' AND color = 'blue' AND weight > 2500
Country in ('UK', 'US', 'France') -
Same file name using JMS adapter on sender side.
Hi Friends,
I got a requirement to capture file name using JMS adapter on the sender side.
Can some one help me in resolving this issue.
Regards,
Jeevan.Hi ,
You can use Dynamic Configuration in mapping.
Create a UDF with input as file name and copy/paste this code
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
//conf.removeAll();
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
//String filename= conf.get(key);
conf.put(key, fileName);
key= null;
return fileName;
Thanks. -
Throttling using JMS Adapter poller threads
Hi,
We are trying to realize the throttling using JMS Adapter poller threads mechanism
I came across this http://docs.oracle.com/cd/E14571_01/core.1111/e10108/adapters.htm (15.5 Oracle SOA JMS Adapter Tuning )
adapter.jms.receive.threads
Here is my configuration. I tried both the options listed below but none works for me.
option 1 - here property is of type string
<service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
<binding.jca config="JMSDelayMsgRead_jms.jca">
<property name="adapter.jms.receive.threads" type="xs:string" many="false">4</property>
</binding.jca>
</service>
option 2 - Here property is of type integer
<service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
<binding.jca config="JMSDelayMsgRead_jms.jca">
<property name="adapter.jms.receive.threads" type="xs:integer" many="true" override="may">4</property>
</binding.jca>
</service>
I tried minimumDelayBetweenMessages parameter for throttling (which is based on time delay) and it works as expected but poller threads mechansim is more suitable for my situation.
Here is my environment details
I'm on SOA 11.1.1.4
JMS Adapter consuming from a Topic (IBM MQ)
Durable Subscription
Can any one help me get throttling using poller threads working?
Please let me know if you need further details about my configuration / logs etc.
I posted this in two other forums but didn't get any responses on them so posting it here. I apologize for the repetition of this post in multiple forums.
Thanks & Regards
shashiHi Raks,
Check this note for JNDI configuration..
802754
"If a 3rd party JMS provider should be used then usually the "Name of JNDI initial context factory" must be adjusted. I.e. com.sap.engine.services.jndi.InitialContextFactoryImpl must be replaced by some.other.vendor.jms.jndi.InitialContextFactory In addition it is necessary to deploy the jar that contains the some.other.vendor.jms.jndi.InitialContextFactory with the aii_af_jmsproviderlib.sda SDA file. In addition, you must extend the server/provider.xml deployment descriptor in the relevant way. Refer to Chapter 11 of the XI 3.0 Configuration Guide for more information"
You need to find out class "Name of JNDI initial context factory" for tibco as mentoned in the note and deploy the corresponding JAR file.
Also check this link for JNDI configuration parameters in the JMs adapter..
http://help.sap.com/saphelp_nw04/helpdata/en/c1/739c4186c2a409e10000000a155106/content.htm
Regards
Anand -
How o place Flat file Using JMS Adapter.
Hi Frnds,
I have one scenario ,
Sender side i am having IDOC, i want convet the IDOC into Flat file. But my receiver side i have to use only JMS Adapter,
Flat file i have to place in FTP Server using JMS Adapter.
Can ne share your thoughts..
Regards,
rajRaj,
The below Link will help
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
Surya,
Welcome Back to SDN.
Regards
Agasthuri Doss
Maybe you are looking for
-
Acrobat 9 trial in WIN 7 doesn't print
I just loaded Acrobat 9 trial in WIN 7 and it loaded fine, but doesn't print. When I go to print a PDF, after entering the file name, an Acrobat software setup box asks for the serial # or "continue to use product on a trial basis". I select the cont
-
Request you to Guide me in ABAP-HR
Hi, I am very new to ABAP-HR module please guide me how to get perfection in abap and abap-hr? send me PPTs if any easy to understand material. If anybody send I will be happy. Regards Anil.G
-
DBG1005 : The connection information provided does not specify a valid OWB
Hi, Need a small help. actually am inserting data from view as source to table as target in the same schema. designed mapping and compile and run successfully,but getting the following error OWB. DBG1005 : The connection information provided does not
-
Oracle Discoverer and Windows 2003 Server
Did anyone know if Discoverer 4.1 is compatible on windows 2003 server? Also if Discoverer 10g is also compatible on windows 2003 server? Thanks.
-
How to Cancel iCloud Storage Purchase
Hi. I purchased iCloud storage a week ago, and would now like to cancel it. How do you I do that on my iPhone?