Purpose of correlation id in jms?
hi friends,
Good Day!
I'm new to jms adapter on that one i'm unable to understand the correlation id process. For what purpose we can use correlation ID in jms adapter please help me with example.
advance in Thanks,
Suresh.
Edited by: 922128 on Apr 29, 2012 11:32 PM
Hi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId
Similar Messages
-
JMS Correlation ID in JMS Receiver Adapter
Hi ,
I am working in PI7.1 on IDOC to JMS interface,
I want set IDOC number as Correlation ID in JMS queue ,
I did following Correlation steps ,
1. Set JMSCorrelation ID to PI Conversation ID
2. Checked JMS CorrelationID of request
3.Value to PI Conversation ID
In Adavanced Tab
Checked Use Adapter specific Message attributes
Checked Fial if Adapter specific Message attributes missing
Checked JMS Message Correlation ID
Additional Parameter
DCJMSCorreleationID String
I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, idoc_number);
I tested UDF with mapping to target field, UDF is working .
But in JMS Correlation ID value is null
I am getting error in Communication Channel monitor if ticked check box of fail If adapter-specific message attributes
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Dynamic header records are missing/incorrect specified in message: 000c2901-fc48-1def-82f9-4b126dff2151. Erroneous/Unspecified headers are: DCJMSCorreleationID
1/27/10 11:02:36 PM 000c2901-fc48-1def-82f9-4b126dff2151 Dynamic record/records: DCJMSCorreleationID, that correspond to the JMS property/properties: JMSCorrelationID, respectively is/are either missing from the message: 000c2901-fc48-1def-82f9-4b126dff2151, or have invalid types specified in the channel configurationHi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId -
Set IDOC number as Correlation ID in JMS Receiver Adapter
Hi ,
I am working in PI7.1 on IDOC to JMS interface,
I want set IDOC number as Correlation ID in JMS queue ,
I did following Correlation steps ,
1. Set JMSCorrelation ID to PI Conversation ID
2. Checked JMS CorrelationID of request
3.Value to PI Conversation ID
In Adavanced Tab
Checked Use Adapter specific Message attributes
Checked Fial if Adapter specific Message attributes missing
Checked JMS Message Correlation ID
Additional Parameter
DCJMSCorreleationID String
I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
please help to how to use UDF in mapping for mapping which field .
Thanks ,
Laxman.Hi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId -
Jms settings & correlation settings in jms adapter
hi experts,
what is use of jms setting & correlation settings in jms adapter.Hi,
This link may help you..
http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/frameset.htm
Regards,
Srinivas -
Jms settings and correlation settings in jms adapter
hi expects,
what is use of jms settings and correlation settings in jms adapter.Hi Rohit,
have a look at thsi article to understand jms correlation:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
Regards,
michal -
Correlation issue in JMS adapter - SYNC/ASYNC scenario without BPM
Hi,
I am working on a SYNC/ASYNC scenario with JMS adapter without using BPM. My scenario is SOAP<>PI>JMS. I configured the interface as below:
1. SOAP Sender channel
2. JMS Receiver Channel writing to Queue A.
Module used: a. RequestOneWayBean
b. WaitResponseBean
Correlation Settings:
a. Set JMS Correlation ID to "XI Message ID"
b. Store JMS CorrelationID of request (Checked)
c. Set JMS Property to "JMS Correlation Id"
d. Value = "XI MEssage ID"
3. JMS Sender channel reading from queue B ( I am exporting the message from queue A and importing into queue B)
Module used: a. NotifyResponseBean
Correlation Settings:
a. Set XI MEssage Id to "GUID"
b. Set XI Conversation ID to "Stored JMS COrrelationID of Request"
I can see the cid in the message from queue A. But I observed thhat the header format of the message in Queue A is "MQSTR".
ISSUE:
1. While writing the message to queue A, below adapter log details(part b) concerned me:
a. Message '8747a7c2-2b06-11df-8055-005056a70ed6' successfully processed by channel
b. Could not create acknowledgements for message '8747a7c2-2b06-11df-8055-005056a70ed6'
I am not sure why I am receiving the message that " could not create acknowledgements"
2. While reading the message from the sender channel,I consistently get the error message as below:
a. XI message ID corresponding to JMS message with ID 'ID:414d51205341504449442e514d202020c67b954b20005602'
will be created as a new GUID with value '21bca916-424f-41f6-3347-c71090392b58'
b. Error while processing message '21bca916-424f-41f6-3347-c71090392b58'; detailed error description:
com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
Below are the blogs which I have already gone through:
1. JMS Synchronous Scenario without BPM - Correlation Settings and Transactional JMS Session
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b028f6f6-7da5-2a10-19bd-cf322cf5ae7b
2. Note: 1086303
3. Sync / Async Bridge without BPM
In the note, they mentioned something about header being "MQRFH2". BUt in our case, the header is "MSSTR". Not sure whether it makes any difference.
Please help.
Edited by: GP on Mar 9, 2010 4:24 AMHi,
detailed error description:
com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
This error would generally arose when there are multiple messages, got stuck in the outbound queue. Try to stop both the sender and receiver JMS comunication channels and clear both the inbound and outbound queues.
Once all the messages in the queue are cleraed, try posting the message again.
Regards,
Swetha. -
JMS Adapter Native Correlation
Hello,
I've been trying to develop a request/reply service using JMS Adapter.
I Followed the steps in the "Adapter Knowledge Base: Technical Note #006: Correlation of Adapter messages within a BPEL process" document.
This document explains how to use the native correlation in the JMS Adapter by modifing the wsdl produced by the JMS Adapter Wizzard.
One of the thing the document says is that the invoke and recive must be sequencial and that the JMSMessageId of the first message should be placed in the JMSCorrelationId of the response.
I've done all the steps and developed a Message Driven Bean that reads the request and publishes the response accordingly.
I'm gessing that someone else already have this kind of problems...
If there is someone that might be able to help please send me an email to [email protected], so i can send the project to you.
Tks.sorry, i forgot the say one thing.....
There is a table in the orabpel that is named Native_correlation....
somehow this table is never populated...
Tks once more -
Hi All,
I set up the JMS connection with JBoss, and send the message asynchrously to JBoss successfully.
But right now, Jboss need to use the incoming message ID as correlation ID in Jboss.
How could i set the message id from payload (not PI message ID, not PI Conversation ID) for JMS receiver adapter?
thanks a lot
already check the following links:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
Re: jms message id in jms sender channel
JMS Correlation ID
XI JMS mq series correlation id
cannot find any about set JMS Message ID from payload
Edited by: Lawrence on Dec 24, 2009 2:21 PMHi Lawrence,
I am not sure how jboss will store message,But i had done similar requirement but my system is MQ,Standard JMS adapter not supports to chnage the value or set mesage id in MQ,we can change the PI Message ID Value but not JBOSS/MQ Message ID.
Writng module is the one option.
Regards,
Raj -
Proxy to JMS and JMS to Proxy - Szenario
Hi @all,
i've implemented an async scenario:
Proxy to JMS (away, request)
JMS to Proxy (way back, response)
Backend is ECC 6.0 and Middleware is PI 7.1.
Business Case: Run a request with a number, get an answer back with an entry. The number is an individual criteria which is not included in the answer. So I decided to write the number in JMSCorrelationID, therefore I've written an UDF in Message Mapping.
I've checked the JMS Correlation ID in additional properties and also added this into the list of additional properties:
key.0 -> read xxxx DCJMSCorreleationID
value.0 -> DCJMSCorrelationID.
First question: is there something what I should account for in JMS receiver channel?
At the way back I've implemented another UDF for writing the JMSCorrelationID back to payload in message mapping.
But I'm not sure that works. The coding looks like:
try
DynamicConfiguration conf = (DynamicConfiguration)
container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey KEY_JMSCorrID = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSCorrelationID");
String a = conf.get(KEY_JMSCorrID);
catch(Exception e){}
return a; //a is an input field for the payload back to SAP backend.
Second question: is there something what I should accound for JMS sender channel? Do I need to add the DCJMSCorreleationID to the list of additional properties (JMS Correlation is checked)?
Thanks in Advance,
StefanHi,
thank you for your answer.
The Proxy to JMS scenario works well and overwrites the JMSCorrelationID given by a number from message payload.
Could you please take a look at the given udf-coding that belongs to JMS to Proxy Scenario?
Is it possible to get the JMSCorrelation at this way?
I also put in JMS-Sender-Channel the JMSCorrelationID into the additional JMS-Message properties and checked "correlation-id from jms message" in adapter specific message attributes.
In Module-Tab of JMS-Sender-Channel i put the module-configuration in a way like this:
-> key.0 insert http://sap.com/xi/XI/System/JMS DCJMSCorreleationID
-> value.0 DCJMSCorreleationID
Do you think that works?
I could not verify this configuration until I get an entry in outbound queue so I can't make tests to that.
In Message Mapping - Test a Null Pointer Exception Occurs, according to the UDF, because I'm reading the DCJMSCorreleationID which is not present at mapping ad hoc test - I think that is ok.
Thank you in Advance,
Stefan -
SOAP to JMS synch scenario issue
Dear Experts,
I am working on SOAP to JMS (Websphere MQ) synch scenario.In the ESR i created 2 synch service interfaces(1 Inbound & 1 outbound).
I created my 1 SOAP communication channel with QOS as "Best Effort" 2 JMS comm channel( 1 Receiver & 1 Sender).
I am getting " no message received error in JMS receiver channel and no correlation id found error in JMS sender channel. I am attaching my channel config,error log.
I am using PI message ID as correlation id for JMS sender and receiver channels.
Thanks,
Pavan T,
+91 9901742424I think you should use the notify response bean on the sender channel
Configuring the Sync/Async Bridge Using the JMS Adapter - Adding Modules to the Module Processor - SAP Library
Sync/Async communication in JMS adapter without BPM (SP19) -
Problem setting a provider specific property : JMS adapter
Hi Experts:
I need to set a provider specific property as required by the third party in a IDoc to JMS scenario.
The property name starts with JMS_ and is offcourse a property specific to the JMS provider.
The way I am setting it is I have declared a Additional JMS message property by the same name as desired by the third party say
JMS_XXX
and then using the DynamicConfigurationBean I assign a value to this in the reciever channel.
The problem that we have observed is, all other properties are set as desired, only this one for which the name starts with JMS_ is not set correctly.
Is it possible to set such a provider specific property using XI or not?Hi Amol,
Adapter-Specific Message Properties
· To store adapter attributes in the message header of the XI message, select Set Adapter-Specific Message Properties.
· To apply the following attributes in XI message headers, set the corresponding indicators:
Name Technical Name
JMS Message Correlation ID DCJMSCorreleationID
JMS Message Delivery Mode DCJMSDeliveryMode
JMS Message Destination DCJMSDestination
JMS Message Expiration DCJMSExpiration
JMS Message ID DCJMSMessageID
JMS Message Priority DCJMSPriority
JMS Message Redelivered Flag DCJMSRedelivered
JMS Message ReplyTo Destination DCJMSReplyTo
JMS Message Time Stamp DCJMSTimestamp
JMS Message Type DCJMSType
Used JMS Message Selector DCJMSMessageSelector
Used JMS Message Queue DCJMSMessageQueue
JMS User DCJMSUser
If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (10 Maximum).
· In the table, enter the names of the JMS message properties whose values are to be included in the message header of the XI message.
The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
You can enter more than 10 properties in the table, but only the first 10 are taken into account.
The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.
if found worth pls do the req
Thanx
Sampath -
Dynamic Quee names in JMS Channel
Hi,
Message is being sent from SAP -> PI -> TIBCO using JMS queues using JMS channels.
Is it possible to configure the queue names based on the value in the message?
Thanks,
AravindHi,
you need to set a dynamic queue in PI or in JMS ?
the blog mentiones how to create a queue in PI (on the basis of content)
and that's how I understood your question...
if you want to set dynamic queue for the JMS then I don't know the way
hope we're talking about the same thing here
BTW
with JMS receiver you can only set those values dynamically:
JMS Message Correlation ID DCJMSCorreleationID
JMS Message Expiration DCJMSExpiration
JMS Message Priority DCJMSPriority
JMS Message ReplyTo Destination DCJMSReplyTo
JMS Message Timestamp DCJMSTimestamp
and JMS message properties but not the queue name
if you need to set a queue name in JMS dynamically (and we did that in our project)
was to send everything to one queue (router queue) and the real queue name was specifed in the JMS message property
and JMS (activeMQ - camel) was able to distribute from dummy queue to the one from the JMS message property
(config only - no coding so I'd assume most of the JMS should be able to do the same)
Regards,
Michal Krawczyk -
Difference between conversion id and correlation id in bpel
Hi All,
In invoke/receive/pick activity, there are two options. one for conversion id and one from correlation id. I know the purpose of correlation id in these activities. But donot know what is the difference between both.
Are both having same functionality or something overlapping.
Regards,
SunilSunil,
Find an explanation here:
http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_correlate.htm#sthref914
Arik -
Hi
I am using JMS in a request/reply scenario.
The following is the sequence of operations
1. Get handle to Connection by JNDI lookup of QCF
2. Get handle to RequestQueue by JNDI lookup of Request Queue
3. Get handle to ResponseQueue by JNDI lookup of Response Queue
4. Create a Session and Sender on the Connection/RequestQueue.
5. Create a JMS message and send it with a correlation id on the Sender
6. Create a Session and Reciever on the connection/ResponseQueue with "CorrelationID" as message selector.
7. Receive the JMS message over the reciever.
There are multiple threads trying to send and recieve messages. Now my questions are --
1. What all things above can be re-used/pooled? Can I use only connection and create, say, for example 100 sessions and reuse them across 100 different threads?
2. Or Can I reuse the Senders and recievers as well? In other words, can I create 100 senders (or receivers) and reuse them over 100 threads. (In other words can I create a "SenderPool" and use them)
3. How many Sessions can be opened on one Connection?
4. I heard about ServerSessionPool, but did not have any pointers on how to get a handle to a ServerSessionPool? Will this be useful in this scenario?
Any help is highly appreciated,
Thanks and regards,
RajsDid you get an answer for this? Could you please
explain how you obtained a handle to
ServerSessionPool? ServerSession, ServerSessionPool (plus ConnectionConsumer) are part of JMS spec, ch 8, and are called Application Server Facilities (ASF). As the name suggests, the purpose is to bind a JMS provider into an app server.
You can, of course, use this facilities in a JMS client program, however, you have to provide the parts the app server has to provide. These are the impls for ServerSession and ServerSessionPool. Actually it's quite easy once you understand how it works, although, to understand how it works is not that easy. ;-)
You might take a look on our JMS XA/ASF impl to get an impression how it works from the perspective of a JMS provider:
http://www.swiftmq.com/products/kernel/jmsxaasf/index.html
-- Andreas -
How do I access the DCJMS* variables in my response SOAP:Header ?
Hi all,
I have set up a sync / async Integration Process in XI
This is initiated by a SAP R/3 transaction that calls a synchronous function to enter XI
Once in the Bridge, a JMS receiver adapter sends out an asynchronous request message from XI to MQ
A correlation allows the JMS sender adapter to return an asynchronous response message from MQ to XI back into my the Integration Process
I have set up the JMS sender adapter configuration to return the DC (dynamic configuration) variables in the <SOAP:Header> of the XI response message along with the payload
You can see that the DCJMS* variables are returned below
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--
Response
-->
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SOAP:Header>
+ <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
+ <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
+ <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
+ <SAP:RunTime xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
+ <SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
- <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
</SAP:DynamicConfiguration>
- <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:TraceLevel>Information
<b>Question</b>
I want to access the DCJMS* variables but am not sure how to go about it as the
variables exist in the <SOAP:Header>?
I followed the SAP documentation to access adapter-specific attributes (refer to link http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm )
I have used the following code to create a user-defined function for the accessing adapter specific attributes (similar to the link)
public String Get_Msgid(Container container){
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create
("http://sap.com/xi/XI/System/JMS","DCJMSMessageID");
String jmsMsgID = conf.get(key);
return jmsMsgID;
<b>Question</b>
Do I use message mapping to extract the DCJMS* variables?
<b>Question</b>
If so then which message is used for the source message so that I can access the <SOAP:Header>? Eg do I use the response message type or is there a trick to accessing the SOAP:Header?
<b>Question</b>
Do I use the user-defined function (like above)?
I performed the following steps
Opened the message mapping in edit mode
Created the user-defined function using the graphical editor
Saved the message mapping
I have not connected the user-defined function to any of the xml tags in either the source or target messages
When I go to test the message mapping I am getting the following error
Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
STACKTRACE:
com.sap.aii.ib.core.mapping.exec.ExecuteException: Compilation process error : CreateProcess: null\bin\javac -J-Xmx256m @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/O1170817003886.txt @E:/usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd79a7bf0b65611dbaf390002a5d5916b/S1170817003886.txt error=2
at com.sap.aii.ib.server.mapping.exec.ServiceUtil.compileSourceCode(ServiceUtil.java:207)
at com.sap.aii.ib.server.mapping.exec.ServiceUtil.compile(ServiceUtil.java:156)
at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCode(ServerMapService.java:361)
at com.sap.aii.ibrep.server.mapping.ServerMapService.compileSourceCodeWithoutAndWithArchives(ServerMapService.java:301)
at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:153)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
A thread in the SDN (Error while Activating Message Mapping, Posted: Jan 9, 2007 3:32 PM) suggests checking the java path on the XI machine
This is JAVA_HOME=C:\j2sdk1.4.2_08 and seems ok
<b>Question</b>
Do you know why I would get the compilation error?
Any assistance would be appreciated
Regards,
MikeJin,
My compilation issue has gone via a SAP recommendation to specify the JDK home directory in the instance profile
Back to the mapping - I can now run my scenario
<b>Source message</b>
The response message has the following <SOAP:Header> from which I want to extract the DCJMSCorreleationID (note that it's misspelt)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Response
-->
- <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">40D982A0-B19D-11DB-9508-0002A5D5916B</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSTimestamp">1170297456940</SAP:Record>
<SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">ID:414d5120514d4430312020202020202045c12b962001dd02</SAP:Record>
</SAP:DynamicConfiguration>
<b>Grahpical mapping</b>
LHS - Response message with occurrance 0..1 so it is not connected to my UDF
UDF Get_Corrid with no inputs
RHS - The UDF output is connected to the Acknowledgement msg tag <ACK>
<b>UDF</b>
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create
("http://sap.com/xi/XI/System/JMS","DCJMSCorreleationID");
String Corrid = conf.get(key);
return Corrid;
<b>Target message</b>
The idea is to copy the correlation id of the response message into the acknowledgement message. But as you can see the result is NULL
<?xml version="1.0" encoding="utf-8" ?>
- <ns2:AWB0020_MARKET_DATA_RESPONSE_ACK xmlns:ns2="http://awb.com.au/mq/tx/MarketData">
<ACK>null</ACK>
</ns2:AWB0020_MARKET_DATA_RESPONSE_ACK>
Please advise
Thanks Mike
Maybe you are looking for
-
Blank white pages in Safari (until Firefox opens them)
Occasionally, pages will come up blank in Safari. (View source is also blank.) These are pages that have worked fine in the past, and they are simple HTML, with no JavaScript, etc. Refreshing and deleting history do not help. What does help is openin
-
Why isn't the overlay working?
hey everyone - i've got a clip in final cut pro that i wanted to end with a quick light streak overlay. i opened up motion, made a 5 second black 0% opacity sequence, and added the streak. then clicked the layer, and chose the blending mode of "overl
-
Apple Password doesn't work when it is the correct password
A few days ago, in the middle of playing music on iTunes, I was no longer able to sign in. When I tried to sign into Apple that day, my password (which I know was correct) didn't work. So I reset my password. Today I tried to sign into Apple with the
-
Nokia n8 nokia store wont open
hey guys. after hard resetting the N8, nokia store wont open. i also did a restore and it still wont open. also ninja fruit wont open also but angry birds opens. and not all applications are backed up. i am missing 4 applications and one of them is o
-
everything is working fine in my new Nokia N8. I receive and send mail all right. Only thing, is that in the sent mail folder I don't find the messages I sent. I assume there is some setting that has to be configured, but I don't find how. can anybod