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.
Regards
Hi,
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
Similar Messages
-
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
RegardsHi 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.. -
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 -
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 -
The message sequence of JMS adapter and BPM
This is my scenario: AP1 -> MQ -> JMS Adapter -> XI BPM -> SAP
But if AP1 sends 10 messages to MQ server, how to make sure the received message sequence of SAP is the same as AP1 ?
Because JMS adapter doesn't have synchronous ability, or I can set best effort to make sure the sequence.HI,
See the below links to solve the BPM performance problems
BPM Performance tuning
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
BPM performance question
SAP XI BPM Performance and statistics
Performance problem on BPM
BPM pros and cons
Performance problems using BPM
Regards
Chilla.. -
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 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 -
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 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 -
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 -
How to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI
Hi Expers,
Can you please help on ...
how to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI
Thanks,
ChandarHi Chandar,
Could you check the following post Re: Inserting custom header fields inside MQRFH2 (JMS Receiver adapter)?
I hope you find it useful.
Regards! -
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')
Maybe you are looking for
-
Address number of the person who created the sales order.
Hello Experts, I am currently making a report in which it has to send the output of the script as a email attachment to the person who created the sales order. For this i am using a standard include RVADOPFO but here we need to pass the address nu
-
hi, i have had a problem for a while now and i am not really sure why. My problem is using the brush tool in Photoshop, while i am using it, it is fine, there are no problems but when i unclick to stop drawing on my trackpad and try to to scroll usin
-
Some events are not dispatched when app runs in background
My Android app has a TIMER event which fires once every second to connect a TCP socket (class flash.net.Socket) and send a request. A packet sniffer confirms that a socket is in fact connecting, request is sent, reply comes back and connection is clo
-
Connecting to windows computer
Hello, i have turned on my file sharing thing on network preferences and i can locate and connect to my windows computer to save work but i cant locate my mac on my windows computer to view shared files. I do have shared folders setup I even tried to
-
So I have this piece of code to save rows of data into a text file. The problem I'm having is that some times I am missing one of the data sets from the text file. It's always the same (first column) I say about .1% of the time. Maybe it's just me bu