MIME Adapter Developed as Module
I created a new adapter as a Module.
The adapter wraps a message in a MIME bodypart and sends this via http. The MIME response is retrieved and converted into an xml message. So this is a synchronous interface. The Module is the last step in the chain.
The code from a high level looks as follows
msg = (Message) inputModuleData.getPrincipalData();
XMLPayload xmlPayload = msg.getDocument();
//Create the MIME
//Send the MIME
//Receive MIME Response
//Create XML Response
UPSResponse response = sendToUPS(completeContent, connectionData);
String xmlResponse = response.getXMLResponse(connectionData.getReceiver());
byte reponseBytes = xmlResponse.getBytes();
When I look at the logging I wrote everything is fine, the request is send and the reponse is retrieved.
However in the audit trail, I get an error :
Success The message was successfully received by the messaging system. Profile: XI URL: http://css02-sap02:51000/MessagingSystem/receive/AFW/XI
Success Using connection AFW. Trying to put the message into the receive queue.
Success The message was successfully retrieved from the receive queue.
Success The message status set to DLNG.
Success Delivering to channel: CC_UPSMime
Success Transform: transforming the payload ...
Success Transform: successufully transformed
Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
Success The asynchronous message was successfully scheduled to be delivered at Mon May 29 15:15:49 CEST 2006.
Success The message status set to WAIT.
In the defaultTrace I find the following error :
com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method onMessage. The transaction is marked for rollback.
Any ideas? Maybe I forgot something in my code. An explicit commit or success?
Ps.: We're working with a decentral adapter engine in a DMZ since a direct connection to internet is not available from the central adapter engine.