JMS Receiver MQSeries with zipped payload
I have tried to add the MessageTransformBean and the PayloadZipBean to the modules in my communication channel according to note 965256 and Stefan Grubes blog about the file receiver. The file is delivered to MQSeries but the zip file is not valid.
Has anyone managed to do this?
Regards,
CJ Nyberg
Yes, I did enter them before the standard modules in the JMS receiver.
AF_Modules/MessageTransformBean - module key = contentType
AF_Modules/PayloadZipBean - module key = zip
localejbs/SAP XI JMS Adapter/ConvertMessageToBinary
localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService
Module key = contentType
Parameter name = Transform.ContentType
Parameter value = text/plain; charset="UTF-8"; name="customer.xml"
Module key = zip
Parameter name = zip.filenameKey
Parameter value = payloadName
Module key = zip
Parameter name = zip.mode
Parameter value = zipOne
The file sent to MQSeries can't be opened in WinRAR. I get the following error message: Unexpected end of archive
Assumed I could set the file name inside the zip file by using the MessageTransformBean.
Maybe the standard module ConvertMessageToBinary is the problem but it has to be there.
Similar Messages
-
JMS receiver adapter supports SSL??
Hi
We have a interface in our project which uses JMS adapter and to make it secured communication , we are requested to use SSL.
Can anyone please suggest if JMS receiver adapter supports SSL.
If no possible, coould you please let us know any other alternative approach to this.
Regards
JagruthLook into below discussions
JMS To MQSeries with SSL.
Regards
Aashish Sinha -
Send Idoc flat file message in JMS receiver adapter
Hello,
I am working on a scenario where we send Delvry 03 idoc from ECC to external system. To external system, we send the whole Idoc in flat file structure through JMS queue. I have used Idoc to flat file program in my interface mapping and have configured JMS receiver adapter with just default Module configs but, I am getting an error in communication channel monitoring for the messages.
Please note that Idoc xml to flat file structure conversion is already done in the mapping, I need to just pass this idoc flat structure in the jms adapter. Hence ther eis no content conversion i nthe adapter..
Please give some inputs..Here are the modules in my receiver adapter and nothing else..
SAP XI JMS Adapter/ConvertMessageToBinary
SAP XI JMS Adapter/SendBinarytoXIJMSService
The error I get is in audit log
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: No transition found from state: ERROR, on event: process_commence for DFA: CC_JMS_R:ca336a6689f837da8bd3387140fc4447
in turn the message has this error if I open the message
Whitespace is not allowed at this location. Error processing resource 'http://host:port/mdt/messageconten...
and it shows one of the lines from idoc..flat file
Any idea is greatly appreciated..Thank you..ThanujjaThe difference in what I suggest is that it is way simpler.
Maybe you did not understand this, so will try to explain it better. Its not the best thing to do, but if JMS adapter doesn't budge then you can give it a shot.
1. You continue to use the ABAP mapping in your interface mapping to map the Idoc xml to Idoc flat.
2. Write a Java Map that will take the output of the ABAP mapping ; and then create a XML output which would be something like,
<Root>
<Idoc_Flat>
<Data>ABAP Mapping Output<Data>
</Idoc_Flat>
</Root>
3. Now use the simple content conversion in the JMS adapter to convert this to flat file.
Regards
Bhavesh -
JMS receiver will it be taking the soap envolpe with pay load?
Hi Experts,
i am using the JMS receiver communication channel.
Under processing tab--------->PI setting under------->Mapping message-ENTER MASSAGE= JMS PAYLOAD if i select this option
will it be going with payload soap envolope?
for your reference sending screen shot to you?
Thanks
NarendraHi Narendran,
Please refer the below help page
https://help.sap.com/saphelp_nw73/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
Select the Mapping of Message:
If you only want the JMS payload to contain only the payload of the PI message, choose Message Payload = JMS Payload. (default setting)
If you want the JMS payload to contain the entire PI message, choose Entire Message = JMS Payload.
So if you select Entire message then it comes with JMS header else only the payload.
regards,
Harish -
I receive many e-mails with zipped files. I can no longer open or unzip my files. A window welcoming me to Application Loader drops down. It prompts for an iTunes Connect login, but will no accept my iTunes login. I have no way to open or unzip my files. Help!!!!
Application Loader, unless there's another one I'm not familiar with, is part of the iOS SDK. That have usurped the .zip, or you may have removed that application but your Mac is still holding onto the mapping of Zip files to that application. Select a .zip file in Finder, Get Info, and go to the Open with section. Select Archive Utility and click Change All. That should fix the problem.
Regards. -
Error in JMS receiver adapter: "Error creating initial context with environment"
Hello,
I have some trouble with a JMS receiver adapter (access to JMS-provider with JNDI).
The message in adapter monitoring is:
A channel error occurred. Detailed error (if any) :
com.sap.aii.adapter.jms.api.connector.ConnectorException: Fatal Error looking up connection factoryJMSQueueConnectionFactory, for profile: ConnectionProfile of channel: CC_JMS_RCV_XLIMI00001on node: 503473150 having object id: 5b424f2f79b6350ca636ab35d528cfdd:
ConnectorException: Error creating initial context with environment: java.naming.provider.url=wcsefdev.example.com:9064; java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory; for profile: ConnectionProfile of channel:
CC_JMS_RCV_XLIMI00001on node: 503473150 having object id: 5b424f2f79b6350ca636ab35d528cfdd: javax.naming.NoInitialContextException:
Cannot instantiate class: com.ibm.websphere.naming.WsnInitialContextFactory<br> at com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createConnectionFactory
(JndiConnectorImpl.java:152)<br> ....
Message processing failed. Cause:
com.sap.aii.adapter.jms.core.fsm.DFA$InvalidTransitionException: No transition found from state: ERROR, on event: process_commence for DFA: CC_JMS_RCV_XLIMI00001:5b424f2f79b6350ca636ab35d528cfdd
The third party assured me that the specified JNDI parameters are right and everything is configured on their site, so it should work...
Might there be a problem with the JMS drivers?
Regards,
MarcusHi Marcus,
Have a look at below thread
Connecting to PI 7.11 JMS Queue from other PI 7.11 Server -
Sync/Async communication with JMS Receiver
Hi all,
I am working on one Sync/Async model without BPM. Sender is RFC which is expecting some response, but we know receiver jms doesnt support response message directly. For this i used modules provided by SAP.
While developing interface i used below objects.
One Outbound Synchronous interface--> for Sender RFC channel
Inbound Synchronous Interface----->for Receiver JMS Channel
outbound asynchronous interface--->for Sender JMS channel
one request mapping and one response mapping
Operational mapping between outbound Synchronous to inbound synchronous.
ID Objects:
2 sender agreements: one with sender jms channel
one with sender rfc channel
1 receiver agreement: with jms receiver channel
1 receiver determination
1 interface determination
In receiver jms and sender jms channels i used modules as specified in the document http://help.sap.com/saphelp_nw04/helpdata/EN/45/20d2b4c20a0732e10000000a155369/content.htm
But my interface is not working end to end successfully.
Please confirm below points
1)do i need to have other external application put response message to response queue or will the MQ automatically generates the response message and put into response queue
2)In receiver jms channel is it ok if i will put response queue(Q2) name in the field JMS ReplyTo Queue Name or do i need to put in the form queue://<ReplyToQMgr>/<ReplyToQ>
3). what is the format of data type for asynchronous outbound interface which i used for sender agreement of jms sender channel.
4). Do i need to do any other special settings at MQ settings in MQ server.
Note: i am using PI7.1 and i selected the option JMS-compliant for target client in jms channels.
Thanks,
Madhu
Edited by: Madhusudana Reddy on Nov 4, 2009 9:38 AM1)do i need to have other external application put response message to response queue or will the MQ automatically generates the response message and put into response queue
The following information is available in SAP note-
Message correlation implies correlating a response message with a request message. With respect to the JMS adapter, this means that you sent have sent a message through a JMS receiver channel to some JMS queue (say queueA) , some external application processes this message and puts the response onto another JMS queue(say queueB) which is then picked up by a JMS sender channel. You need to relate this response message with the original request message.
In the simple case, for all JMS compliant providers this can be done in a straightforward manner:
a) In the JMS receiver channel configuration, set the JMSCorrelationID to the XIMessageID. (or some other XI header which is applicable)
b) Ensure that your external application does not change the value of the JMSCorrelation
c) In the JMS sender channel configuration, set the XIConversationID to the JMSCorrelationID
d) The XIConversationID header of the response XI message now contains the XIMessageID of the request XI message.
For some providers such as Websphere MQ in legacy/native mode this is not so straightforward.
Do i need to do any other special settings at MQ settings in MQ server.
If your using Websphere MQ, refer que#4 in sap note :1086303
Edited by: nagarjuna _s on Nov 4, 2009 11:02 AM -
Error with JMS receiver channel
Hi,
We have a scenario in which Order response will be sent from ECC to WebLogic (JMS system) through PI.
After the restart of JMS, we are facing issues with JMS receiver channel.
Some of the responses are delivered, and for few we have the error as described below.
Also, one of the cluster node of the JMS receiver channel has the below error.
Please anybody throw some light on this.
Error description:
" Delivery of the message to the application using connection JMS_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Pending message discovered: dfff2e2b-80f5-94f1-a068-001cc4d99b3e.The channel is configured throw an recoverable, temporary error for this warning (default). Decide whether you want to bypass this message. If so, set the Pending Handling channel parameter to 'Bypass' and restart the message afterwards.. "
Thanks in advance.
Regards
Bhanu Tiruveedula.Hello Bhanu,
we have been getting this error from long time with JMS channel but no solution except changing the configuration so that it can throw exception and move on.
we have also noticed that this happens for some time and then gets resolved automatically. so it seems to be some data which is not expectable by jms channel.
regards,
Ratna -
Issue with JMS Receiver Comm. Channel using Seeburger AttribMapper
Hello,
I'm using a JMS_RECEIVER Comm. Channel on which the Seeburger AttribMapper is configured (I need to use the DCJMSCorreleationID dynamic attribute).
In the module tab, I added a new module:
Module Name Module Type Module Key
localejbs/Seeburger/AttribMapper Local Enterprise Bean map
And I added the following parameter:
Module Key Parameter Name Parameter Value
map http://sap.com/xi/XI/System/JMS/DCJMSCorreleationID "TEST"
When processing a message, I get the following error on the Communication Channel Monitoring:
Message processing failed. Cause: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of AttribMapper.
Does anyone has an idea on how to fix this problem?
Thanks for your help!
BenoitHI,
Refer the discussion of
Setting DCJMSCorreleationID in JMS RECEIVER using Seeburger AttribMapper
Dynamic subject in AS2 receiver
Thanks
Swarup -
Problem with JMS Receiver.
Hello,
I am using JMS Receiver, I want to convert the XML to Plain text. Below are the parameters that i have used whle conversion.
Please let me know whats going wrong,
1 AF_Modules/MessageTransformBean Local Enterprise Bean XML2Plain
2 SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
3 SAP XI JMS Adapter/SendBinarytoXIJMSService Local Enterprise Bean exit
XML2Plain Transform.Class com.sap.aii.af.sdk.xi.adapter.Conversion
XML2Plain Transform.ContentType text/plain;charset=utf-8
XML2Plain xml.addHeaderLine 0
XML2Plain xml.conversionType SimpleXML2Plain
XML2Plain xml.documentName MTXYZ
XML2Plain xml.documentNamespace http://test
XML2Plain xml.fieldFixedLengths 5,6,7,8
XML2Plain xml.fieldNames X,Y,Z,A
XML2Plain xml.fieldSeparator -
XML2Plain xml.fixedLengthTooShortHandling Cut
XML2Plain xml.processFieldNames fromConfiguration
Thanks,
Siddhesh
Edited by: Siddhesh Pathak on Oct 22, 2009 12:09 PM> XML2Plain Transform.Class com.sap.aii.af.sdk.xi.adapter.Conversion
> XML2Plain Transform.ContentType text/plain;charset=utf-8
> XML2Plain xml.addHeaderLine 0
> XML2Plain xml.conversionType SimpleXML2Plain
> XML2Plain xml.documentName MTXYZ
> XML2Plain xml.documentNamespace http://test
> XML2Plain xml.fieldFixedLengths 5,6,7,8
> XML2Plain xml.fieldNames X,Y,Z,A
> XML2Plain xml.fieldSeparator -
And the second thing is you cannot use both FixedLength & fieldSeparator altogether. No need to give the field names unless you are using the complex structure. In your case you have used SimpleXML2Plain which means it is a simple structure. Please make sure of it. -
Sync/Async - JMS receiver comm. channel not processing
I have a Sync/Async scenario (without bpm) in PI 7.11:
RFC -> PI -> JMS
whereby the JMS receiver comm. channel does not fully process the message.
More specifically, the RFC sender comm. channel gets a message in and passes the message to the JMS channel, but that JMS channel within the RWB comm. channel log only shows the entry:
- Message processing started
The odd twist to this is that when we bring the PI server down, then back up again, (or wait a period of time, still trying to determine this period) the FIRST message attempt does successfully get processed, i.e. the first message on that JMS receiver comm. channel RWB log shows as:
- Channel successfully processed the message: 08499236-387c-11e0-b002-000025bab2c2
- Stored the correlation ID 08499236-387c-11e0-b002-000025bab2c2 of the request JMS message: ID:c3e2d840d4d8d4f24040404040404040c754dc12d8b54ec6 correponding to the XI message: 08499236-387c-11e0-b002-000025bab2c2
- Message processing started
(but then because of an issue on the target system, no response comes back, so then we'll additionally get the log entry:
- Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: no message received
Any suggestions appreciated on what I can check here to try and figure this out. Possibly because the first message eventually errors out, it is stopping the other subsequent msgs from getting processed...
When I check the audit logs of a 'success' msg vs. a not-successful msg, the success msg has an entry (and subsequent entries) of:
14.02.2011 12:50:19 Information Transform: transforming the payload ...
14.02.2011 12:50:19 Information Transform: successfully transformed
14.02.2011 12:50:19 Information ROB: entering RequestOnewayBean
14.02.2011 12:50:19 Information ROB: forwarding the request message
14.02.2011 12:50:19 Information ROB: leaving RequestOnewayBean
14.02.2011 12:50:19 Information JMS Message was forwarded to the JMS provider succesfully."
14.02.2011 12:50:19 Information XMB Message as Binary was forwarded to the SAP XI JMS service succesfully.
14.02.2011 12:50:19 Information WRB: entering WaitResponseBean
14.02.2011 12:50:19 Information WRB: retrieving the message for 08499236-387c-11e0-b002-000025bab2c2 ...
wheras the non-success msg shows only:
14.02.2011 12:55:30 Information Transform: transforming the payload ...
14.02.2011 12:55:30 Information Transform: successfully transformed
14.02.2011 12:55:30 Information ROB: entering RequestOnewayBean
14.02.2011 12:55:30 Information ROB: forwarding the request message
14.02.2011 12:55:30 Information ROB: leaving RequestOnewayBean
So, we can see that the message is not "forwarded to the JMS provider..." in the non-success case.
And also the sxi_monitor shows these messages with a status of "Log version".
KeithHi Siddhesh - yes that was a while back and am trying to remember the resolution. I have implemented sync/async bridges (as well as async/sync bridges) successfully, so I don't mind checking your settings, particularly I am interested in the settings within the Module tab of the JMS receiver. I can then compare to mine if you'd like. Also if you can let me know what underlying queuing system in that target system (e.g. MQSeries?) that would be great.
Regards,
Keith -
JMS receiver adapter configuration error
Hi All,
I am facing an issue with JMS receiver adapter. My Configuration parameters for receiver adapter are as follows.
1.Transport protocol:WebspherMQ (MQSeries) JMS provied
2.Message porotocol:JMS 1.x
3.Adapter Enigen: Integration Server
4.QueueConnecation Factory Java Class:com.ibm.mq.jms.MQQueueConnectionFactory
5.Queue Java Class:com.ibm.mq.jms.MQQueue
6.IP Address or server name:<Host Name>
7.Server port:1414
8.Queue Mannager Name:TestQM
9.channal name:Recv_Channel
10.JMS queue:SAP_PI
11.Transport/netwrok protocol:TCP/IP
12.JMS compliant:WebSpherMQ(non jms)
13.Delivery mode of message Producer:Persist JMS Messages in the JMS provider
14.Mapping of message:Message Payload=JMS Payload
In adapter monitor, the adapter status shows below error.
<b>Receiver channel. Details: (No detail information set.)</b>
I have already installed the external drivers for JMS adapter. Can someone help me if I am missing some parameter in the above configuration.
Thanks in advance
Regards,
AshishHi,
I am getting the below error in Audit Log.
Error - Exception caught by adapter framework: The JMSSender returned no JMSTextMessage to use. Must abort send process.
Error - Delivery of the message to the application using connection AFW failed, due to: The JMSSender returned no JMSTextMessage to use. Must abort send process..
Can someone please help me in resolving this issue...
Thanks in advance.
Regards,
Ashish -
Receive zipfile with sender file adapter
Hello,
I need to receive one zipped file (binary data) with the file sender adapter. This zipped file contains an xml file that I need to process.
What is the best way to do this?
I have looked into writing an adapter module to unzip or base64 encode the file before sending it further into xi from the module chain.
However, it looks like only xmlpayload is available to the adapter modules (and attachments, but in this case there are none). In the module I have the following relevant code (lots of try catch surrrounding)
Object obj = null;
Message msg = null;
obj = inputModuleData.getPrincipalData();
msg = (Message) obj;
XMLPayload xmlpayload = msg.getDocument();
I end up with an xml payload, that is the zip file in my case.
Is it safe to do something like this
InputStream is = xmlpayload.getInputStream();
// zip data into string
String str = is.toString();
// base64 encode
str = MimeUtility.encodeText(str,"base64");
xmlpayload.setContent(str.getBytes());
// send the base64 encoded data to XI
// that is now at least utf-8 text
return inputModuleData;
What do you recommend?
Best regards
/OttoOtto,
Go through this links which may help you:
Multi Attachments with ZIP or Mail Adapter (Outbound)
Re: How to read ZIP files(having PDFs,Image) using IDoc without XI
---Satish -
JMS receiver to JMS sender Problem
Hi,
Please find the scenario
IDOC 'A' -
> PI -
>JMS(WebSphere) Receiver
IDOC 'B' <-- PI <--
JMS (WebSphere) Sender
now here I need to pass the response to some other IDOC.
I have follwoing 2 questions:
1. Please let me know adapter module to build this async to sync thru JMS receiver and sender.I am using JMS WebSphere.
2. JMS receiver is getting request but its not getting successfully as its missing SOAP envelope and SOAP body.
how to add SOAP envelope and SOAP body in JMS receive? is there any adapter module for this?
Thanks,
BhupeshHello Bhupesh,
This will do it as XSLT (copies all of your payload into an SOAP Envelope):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<xsl:copy-of select="/"/>
</soap:Body>
</soap:Envelope>
</xsl:template>
</xsl:stylesheet>
With best regards
Sebastian -
JMS receiver adapter is red / error?
hi experts,
i have a JMS receiver adapter and the connection to WebSphere MQseries is ok. If i sent message to Receiver JMS adapter i will get following error (red light):
The XI message: 14a8be90-e8fc-11df-9103-0016353eb4a3 was already sucessfully processed as the JMS message with ID: 14a8be90e8fc11df91030016353eb4a3 at the receiver and hence will be ignored.
could someone tell me, what this error message want to tell me?
many thanks
alexHi Alexander,
This could be because of parameter set for Handling of Pending XI Messages in Receiver JMS Comm channel. If this is set to Throw Exception then you cannot retry messages immediately.
You can choose from the following settings:
· Throw Exception (Message Retry Possible Later) (Default)
· Bypass Pending Warning and Send Message to JMS (Duplicates Possible)
A duplicate data record is created if the JMS commit is executed, but not the commit in the database of the Adapter Framework. If you select this option, you must make sure that this message has not yet been received in the JMS environment.
· Mark Message as Delivered (Message Loss Possible)
The message is lost if the JMS commit has not yet been executed. If you select this option, you must make sure that this message has already been received in the JMS environment.
Check the below help page for more information and an example.
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
Regards
Ven
Maybe you are looking for
-
Hello, I am using JDeveloper 3.2.2 to deploy EJBs to an 8.1.7 DB. Could someone point me in the direction of some documentation that would explain the concept of security roles and users for EJB methods? Do the users have to map to real users in the
-
Greetings, In a generated project, created in the RH8, when the user hovers over an image, the file name displays. I checked the image properties and Screen Tip text field is empty. How can I prevent the image file name from displaying in the generat
-
Runtime Error - CONVT_NO_NUMBER
Hi All, I am trying to get data based on time and date input.... In the table the filed is having the value like this: 30.07.2010 11:48:51 so i concatenated the input by user and bought it to same format...... but i am gettin an runtime error as "Err
-
Using NetBeans Matisse to build a form with an array of JButtons
With Matisse I can build a form with a lot of buttons on it, but i want to use a 2-dim array of JButtons so that I can easily access the buttons. How should I do this?
-
How to return to previous page based on record number?
Not sure if the subject of this is how i shoudl have worded it... but here is what i am looking for... which ever is the easiest to accomplish.... currently when someone completes a form they are taken back to there main pool of records... in some ca