on 03-04-2010 3:27 PM
Hi Experts,
We are facing a critical issue in our productive environment.
The output after mapping in XI has the character '#' filled up completely meaning the entire payload is filled with '#'
We have a multicluster server environment and this might be happening in few server nodes.
Any inputs on this would be highly appreciated.
Regards,
Varun.
The issues are below.
1. All receivers with enhanced receiver determination could not be determined and XI is processing #### values to all subscribing systems.
2.. #### are being filled just after mapping.
3. We are not sure if this is the case on one server node or with all server nodes.
4. On recommendation, we recently upgraded JVM of our system to resolve this particular issue but the issue stil persists.
Edited by: Varun on Mar 4, 2010 5:07 PM
Hello,
Just to update the thread.... issue is fixed after ABAPJ2EEDB restart. Please note that we did not do OS level restart.
But we are still looking root cause for it.
Thanks
Sachin
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What was in the element before mapping?
Maybe a codepage issue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi All,
I dont think so your are able to understand exactly what the error is
The payload which is converted normally by mapping is converted to ####
For eg:
<Name>######</Name>
In cases where the recv is a JDBC we have an error in adapter engine since the attribute action cannot have ##### but in other cases corrupted data is sent the downstream system
Rgds
Aditya
Hi Stepan,
Even i think so its a codepage issue but could you tell me in what cases does this happen
Because everything was working fine till now and suddenly we have this issue
Its something to do with mapping since the messages is converted into ### format only after the mapping, let it be enchanced receiver determination or interface determination
Please let me know the cases where such data can be converted to ### values? I am trying to write a small java code that can reproduce this error
Rgds
Aditya
> Its something to do with mapping since the messages is converted into ### format only after the mapping, let it be enchanced receiver determination or interface determination
This can happen, the source message has values which do not exist in codepage.
This can also happen when Java mapping or UDF writes binary arrays without concerning the correct codepage.
But on the other side it might be a problem of the display of the content. So the content of the message is correct, but when you view it, it is displayed wrong.
A lot of possibilities
So the best approach here is checking source and target message with a hex editor and compare the values.
Hi Stefan,
i am trying to simulate this by writing a java code and changing the code page but in XI why do you think this can happen.your interface is running fine for the past 2-3 months suddenly all the interfaces start behaving like this
Quite strange please let me know your thoughts on this
rgds
aditya
Hi Varun,
Can you plesae let me know that # you are getting in the Receiver payload ? if it so then you can use java mapping for this.
use this java code only any edit ur logic for ur req
package com.agr.test.replacechar;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import java.util.HashMap;
import com.sap.aii.mapping.api.AbstractTrace;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.MappingTrace;
import com.sap.aii.mapping.api.StreamTransformationException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
*
*/
public class ReplaceAmpersnd implements StreamTransformation {
private Map param = null;
private AbstractTrace trace = null;
public void setParameter (Map param)
{
this.param = param;
if (param == null)
{
this.param = new HashMap();
}
else
{
trace =(AbstractTrace) param.get(StreamTransformationConstants.MAPPING_TRACE);
}
}
public void execute(InputStream in, OutputStream out) {
try {
int read_data;
while ((read_data = in.read())!=-1)
{
if (read_data != '&')
{
out.write(read_data);
}
else
{
out.write("".getBytes());
}
}
out.flush();
}
catch (Exception e)
{
trace.addWarning("Error " + e.getMessage());
}
}
}
Regards
Abhay
Edited by: Abahy Aggarwal on Mar 5, 2010 1:48 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
81 | |
24 | |
11 | |
9 | |
7 | |
5 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.