Problem in queue prioritization
Hi everybody,
He have an Interfase but we can´t see it in queue prioritiaztion and in transaction sxmb_moni.
Does anybody knows why??
Thanks a lot.
Regards
Hi,
>>He have an Interfase but we can´t see it in queue prioritiaztion and in transaction sxmb_moni.
Are saying that you are not able to Configure Filter for Queue Prioritization? or you are not able to see you interface in Configure Sender/Receiver ID
Regards
Suraj
Similar Messages
-
Filter for queue prioritization ...
Hi guys,
I have a question relating to filters for queue prioritization. I have defined filter for large messages (i.e. messages larger than 2048kB should go into XBTL queue). Is it possible to define another one that would say:
"All messages from Sender Name XXXXX larger than 1024kB should be passed into XBTL queue" ?
I know how to create such filters for other queues but XBTL queue is special case.
Do you know how to do it?
Thanks in advance!
Regards
ZbynekHi,
Please find the link for "How To prioritize XI messages in queues" below.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/59e837d3-0201-0010-c096-dc1869733413.reward me if useful. Let me know if ur issue not resolved.
Thanks,
Ramesh -
Configuration for Queue Prioritization for EOIO Queues
Hi,
Please can anybody help me in configuring the queue prioritization for EOIO Queues.
Regards
Srinivashi,
Check these help..
Eo/EOIO?BE - Queue - ? - /people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
Please go through these links
/people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
For queues in message mapping
/people/venkat.donela/blog/2005/06/09/introduction-to-queues-in-message-mapping
Here are the Queues for Asynchronous Message Processing
http://help.sap.com/saphelp_nw2004s/helpdata/en/7b/94553b4d53273de10000000a114084/frameset.htm
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f078394a-4469-2910-c4bf-853c75674694
Thanks,
Vijaya. -
I am trying to get messages coming into a BPM to use a high priority EOIO queue, without success. I am not really sure I understand why BPM's always use EOIO queues, but I am accepting that and just trying to get a few into a higher priority queue.
The message coming from the adapter always seem to go to an XBQO$PE_WSxxxxxxx queue specific to the adapter. I've made an attempt to set up queue prioritization in SXMSQUEUE, but am really not sure abou the 'message queue' parameter in the in the filter setup.
What value do I need to use here ? Anything I desire to use ? Does it need to match up with a corresponding parameter anywhere else ? No matter what I try they just end up going to XBQO$PE... queue. I do have filters set to influence other steps to go to a high priority EO queue, but can't seem to get a BPM to do so in an EOIO.
Thanks for any help,
TimHi Tim,
Always the queue for a BPM process will be generated with the name XBQ0_WS* where WS* will be the workflow id which you can see thru PFTC_DIS transaction of your ABAP stack...Thats the default design of SAP and all the messages will go in a EOIO manner into this queue and gets assigned into the Process Engine.
There is nothing much we can do explicitly on this queue assignment as we also faced the same issue in case of interfaces with BPM where idocs will be flowing into XI in bulk...
Cheers
JK -
Hi Friends,
I have three receivers x, y, z i have done queue prioritization for the z receiver 1st and this Z receiver has to executive first but it is not executing.
Any solution for this?Hi,
Please verify if you have register the Queues with SMQR then what values set for parameter MAXTIME.
In SMQR, you could monitor the registered queues as well as additional information, for example, the number of messages in each queue or the relative execution time as a percentage.
also refer paramters that have set.
/people/sap.user72/blog/2005/12/12/how-to-prioritize-messages-in-xi
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20bb9649-e86e-2910-7aa9-88ed4972a5f6
Thanks
Swarup
Edited by: Swarup Sawant on Feb 29, 2008 10:30 AM -
Middleware problem -Outbound queue is stuck in SAP R/3 system with message
Hi Middleware gurus ,
We are stuck with a serious issue . We are trying to download Business partners from SAP R/3 4.6c system to SAP CRM 5.2 system using CRM Middleware
Previously we did a successful Initial download of 2 Business partners from SAP R/3 to CRM . Their BP numbers in CRM are 001 and 002 . The Delta load is working fine for the both the BPs which are already downloaded
Now , the real problem is when we are trying to download a new Business partner . When we set the Filter ( BP no 003 ) in MW adaptor object CUSTOMER_MAIN and start the Initial load again , we see that the Outbound queue is getting stuck with message STOP .
There are two queues generated in SAP R/3 system with names MASS_CRM_CUSTOME and R3AD_CUSTOME . The status for both the queues is STOP and when go for details it mentions sapsuck ..SAPMSSY1 -Message no. SR 053.
Even we checked the txn SMW01, the Bdocs message is "Recived ( Intermediate state) " for Bdoc type BUPA_MAIN.
We really dont as to why the Initial load worked fine with 2 BPs and later when want to do more BP Initial Load the Outbound queue is getting stuck
Also , by unlocking the 2nd queue R3AD_CUSTOME we are able to release it , but the first queue MASS_CRM_CUSTOME* is stuck
Please help us urgently
Regards
Dinesh and Ritvij
Email : [email protected]
Mobile -+91=9704933315Hi Praveen and other Middleware gurus,
We checked on this . Actually the RFC is used for connecting to SAP R/3 system.
We also raised an OSS message on this and found a reply that in transaction CRMM_BUPA_MAP, we can map the required BP . But the SAP support guy recived an error received the error:
An RFC link is not maintained in the Middleware
Message no. CRM_BUPA_MAPPING051
We have set the RFC link , but still the problem continues!!!
Please help further..
Regards
Dinesh and Ritvij -
Problem with queue timing out?
Hi all,
I am using a queue to send a cluster between parallel while loops (producer-consumer); however sometimes, but not on all occasions, the enqueue in the producer seems to "freeze" or maybe timesout for no reason (no timeout value is wired to the enqueue or any other element related to that queue process; so I assume it never timesout)...
I have checked this and there is data in the cluster that is being enqueued, but the dequeue in the consumer loop is empty... This does not happen on every execution, just occassionally... If I stop and save the vi, it works fine again but the next occurence of this problem.... If I wire 0ms to the enqueue timeout it also works properly again...
Any suggestions?
Thanks,
JackHi Yamaeda,
Thanks for the input... Please see code attached (a number of subvis are a missing, but these only help with reading the data file and doing basic analysis on the data after the dequeue).... In a nutshell, there are 3 parallel while loops; Loop 1: User Interface; Loop2 : Read, Convert, Plot; and Loop 3: Analyse and Write to File.
The enqueue with the problem is in loop 2 (inside the "Plot" state, then inside the "False" case)... The loop is a rough state machine.
There are no timeouts on the enqueue in loop 2 or corresponding dequeue in loop 3.... The dequeue does not timeout based on a constant "false" from an indicator when the problem occurs.
When the dequeue does not work, memory usuage keep increasing until a "Memory Full Error" and the vi aborts.... This does not happen when it runs properly.
The data being queued can be quite large (upto 1M rows x 7 columns of data and does occur quickly (basically, data in the top graph is min-max decimated based on graph pixel width as I read on the NI white paper for displatying large data sets; the data between the start and stop cursors is then sent as a subarray to the enqueue for a fully display on the bottom graph for closer analysis)... Perhaps the queue is filling? I did not know this was possible (I am using a100ms wait for loop timing).
Any suggestions greatly appreciated.
Thanks,
Jack
Attachments:
Neuro Analysis 2.vi 461 KB -
Problem with Queue Implementation
Hi there !
I can't solve the implementation of an exercize about Queue.My teacher wrote down just the interface Queue and the first part of the class ArrayQueue implementation.They are the following :
public interface Queue<E>
public int size();
public boolean isEmpty();
public E front() throws EmptyQueueException;
public void enqueue (E element);
public E dequeue() throws EmptyQueueException;
public class ArrayQueue<E> implements Queue<E>
public ArrayQueue(int cap)
capacity = cap;
Q = (E[]) new Object[capacity];
public ArrayQueue()
this(CAPACITY);
}So the teacher asked to complete the code. I have tried and retried so many times for 3 days.I know it's so easy and I understood how it should work but when I try to write down the code I can't get the final solutions but only mistakes.
During my attempts my better code was this :
package queue;
public class ArrayQueue<E> implements Queue<E>
@SuppressWarnings("unchecked")
public ArrayQueue(int cap)
capacity = cap;
Q = (E[]) new Object[capacity];
public ArrayQueue()
this(CAPACITY);
public String toString()
int count = 0;
for(E element : Q)
return count +")"+(String)element;
count++;
return null;
public void enqueue(E element)
try
if(element == null)
throw new IllegalArgumentException();
if (size() == capacity)
throw new FullQueueException();
if(Q[rear] == null)
Q[rear] = element;
rear++;
catch (FullQueueException e)
System.out.println("The Queue is Full !");
public E dequeue() throws EmptyQueueException
try
E temp;
if (isEmpty())
Q = (E[]) new Object[capacity];
front = 0;
rear = 0;
throw new EmptyQueueException();
temp = Q[front];
Q[front] = null;
front++;
return temp;
catch(EmptyQueueException e)
System.out.println("The Queue is Empty !");
return null;
public E front() throws EmptyQueueException
try
if(Q[front] == null)
front++;
if (isEmpty())
throw new EmptyQueueException();
return Q[front];
catch(EmptyQueueException e)
System.out.println("The Queue is Full !");
return null;
public int size()
return (front + rear);
public boolean isEmpty()
return (front == rear);
public Object[] getQueue()
return Q;
protected int capacity;
public static final int CAPACITY = 1000;
protected E Q[];
protected int front = 0;
protected int rear = 0;
}But the problems are that I can add the element through the method enqueue() and delete it through dequeue() then,but after deleting it the array size is the same and when I print the array elements I see some null,so if I add a new element I get the message of the class FullQueueException because of the size which it's the same.
Moreover if I delete all the elements and then I print the value returned by the method front() I get the NullPointerExceptionError because the returned value is null,but I think it should print it ! But he doesn't!
How should I fix these problems ?
I also wondered during all my attempts how to repeat this procedure after the array size limit is reached.What I really mean is if I delete the element Q[0] and the index front = 1 and rear = n - 1 for example,how can I add with the method enqueue() a new element in Q[0] again ?
Can you help me courteously ?
I hope my explanation was clear because of my English !
Thanks in Advance !Thanks for all your suggestions men ^^ !
I changed some things in the code :
package queue;
public class ArrayQueue<E> implements Queue<E>
@SuppressWarnings("unchecked")
public ArrayQueue(int cap)
capacity = cap;
Q = (E[]) new Object[capacity];
public ArrayQueue()
this(CAPACITY);
public String toString()
String s = "[";
int count = 0;
for (int i = front; i < rear; i++) {
count++;
s += Q.toString() + (i < rear - 1 ? "," : "");
s += "] (" + count + " elements)";
return s;
public void enqueue(E element)
try
if (size() == capacity - 1)
throw new FullQueueException();
Q[rear] = element;
rear = (rear + 1) % capacity;
catch (FullQueueException e)
System.out.println("The Queue is Full !");
public E dequeue() throws EmptyQueueException
try
E temp;
if(isEmpty())
throw new EmptyQueueException();
temp = Q[front];
Q[front] = null;
front = (front + 1) % capacity;
return temp;
catch(EmptyQueueException e)
System.out.println("The Queue is Empty !");
return null;
public E front() throws EmptyQueueException
try
if (isEmpty())
throw new EmptyQueueException();
return Q[front];
catch(EmptyQueueException e)
System.out.println("The Queue is Empty !");
return null;
public int size()
return (capacity - front + rear) % capacity;
public boolean isEmpty()
return (front == rear);
protected int capacity;
public static final int CAPACITY = 1000;
protected E Q[];
protected int front;
protected int rear;
}Now after I delete an element and I use the method enqueue() to add a new one the algorithm does,but
after I delete all the elements I get an element null when I add the element in the array position n - 1.
I have fixed the method toString() as pgt told me to do and it's really great,but dunno why sometimes when I delete an element it says the array has 0 elements also if the array is almost full !
About my code changements,according to my university friend I should reduce front and rear mod the capacity and that's what marlin314 suggested me to do too and I had to change the expression if(size() == capacity) to if(size() == capacity - 1).But the algorithm doesn't work as it should do ! -
Problem with queue and context change JAVA udf
Hi all,
MY scenorio is from source i get multiple instances and each instance i need to pass to different fields od target
in one source instance i may get multiple values which i have to create multple nodes under one target instance.
my source xml looka like below:
- <CustomFieldsSegment>
- <CustomFields Name="ForeignLanguageonPackaging">
<Value Qualifier="en">English</Value>
<Value Qualifier="fr">French</Value>
</CustomFields>
- <CustomFields Name="LayerHeight">
<Value>5.0</Value>
</CustomFields>
- <CustomFields Name="LayerHeightUOM">
<Value Qualifier="IN">Inches</Value>
</CustomFields>
</CustomFieldsSegment>
</TargetMarketData>
</ItemRegistration>
</Payload>
</ns:MT_TradeItemsExport>
in the above xml the first custom field has qualifier "en' and "fr"
i need to create 2 nodes under one target field.
example:
<AttrMany Name="ForeignLanguageonPackaging">
<Value ="en">en</Value>
<Value ="fr">fr</Value>
</AttrMany>
int eh source node <CustomFields Name="ForeignLanguageonPackaging"> may come in any matter .doesnt come always first
and i wrote udf like below:
public void queue(String[] a,String[] b,String[] c,ResultList result,Container container){
// write your code here
AbstractTrace traceObj = container.getTrace();
int baseArrayIndex = 99;
int ccCount = 0;
boolean isfound = false;
for (int i = 0; i < a.length; i++) {
isfound = false;
if (a<i>.equals(c[0])) {
baseArrayIndex = i;
traceObj.addInfo("initial "+ i);
for (int j = 0; j < b.length; j++) {
if (b[j].equals(ResultList.CC)) {
ccCount++;
} else {
if ( baseArrayIndex == ccCount ) {
result.addValue(b[j]);
traceObj.addInfo("result "+ b[j]);
isfound = true;
break;
if (!isfound)
result.addSuppress();
traceObj.addInfo("final result "+ result);
Please can anyone help me.
Regards,
jyothiHi all,
MY scenorio is from source i get multiple instances and each instance i need to pass to different fields od target
in one source instance i may get multiple values which i have to create multple nodes under one target instance.
my source xml looks like below:each ItemRegistration is one item at target
-<ItemRegistration>
- <CustomFieldsSegment>
- <CustomFields Name="ForeignLanguageonPackaging">
<Value Qualifier="en">English</Value>
<Value Qualifier="fr">French</Value>
</CustomFields>
- <CustomFields Name="LayerHeight">
<Value>5.0</Value>
</CustomFields>
- <CustomFields Name="LayerHeightUOM">
<Value Qualifier="IN">Inches</Value>
</CustomFields>
</CustomFieldsSegment>
</TargetMarketData>
</ItemRegistration>
-<ItemRegistration>
- <CustomFieldsSegment>
- <CustomFields Name="ForeignLanguageonPackaging">
<Value Qualifier="en">English</Value>
<Value Qualifier="fr">French</Value>
</CustomFields>
- <CustomFields Name="LayerHeight">
<Value>5.0</Value>
</CustomFields>
- <CustomFields Name="LayerHeightUOM">
<Value Qualifier="IN">Inches</Value>
</CustomFields>
</CustomFieldsSegment>
</TargetMarketData>
</ItemRegistration>
</Payload>
</ns:MT_TradeItemsExport>
in the above xml the first custom field has qualifier "en' and "fr"
i need to create 2 nodes under one target field.
example:
<AttrMany Name="ForeignLanguageonPackaging">
<Value ="en">en</Value>
<Value ="fr">fr</Value>
</AttrMany>
int eh source node <CustomFields Name="ForeignLanguageonPackaging"> may come in any matter .doesnt come always first
and i wrote udf like below:
public void queue(String] a,String[ b,String[] c,ResultList result,Container container){
// write your code here
AbstractTrace traceObj = container.getTrace();
int baseArrayIndex = 99;
int ccCount = 0;
boolean isfound = false;
for (int i = 0; i < a.length; i++) {
isfound = false;
if (a.equals(c[0])) {
baseArrayIndex = i;
traceObj.addInfo("initial "+ i);
for (int j = 0; j < b.length; j++) {
if (b[j].equals(ResultList.CC)) {
ccCount++;
} else {
if ( baseArrayIndex == ccCount ) {
result.addValue(b[j]);
traceObj.addInfo("result "+ b[j]);
isfound = true;
if (!isfound)
result.addSuppress();
traceObj.addInfo("final result "+ result);
if i have only one item at the source it is working but when 2items are comming from the source my udf is not working.
can anyone help me if you have faced the similar problem or who is fimilar like this kind.
Regards,
jyothi
Edited by: jyothi vonteddu on Oct 21, 2009 9:14 PM
Edited by: jyothi vonteddu on Oct 21, 2009 9:22 PM -
Problem with queues / stacks for a project
I have to code a calculator that turns an infix expression, where the operator is in the middle, to a postfix expression, where the operators are at the end;
so, for instance, 5 + 5 would really be 5 5 +, and 5 + 5 * 5 / 5 would be 5 5 5 5 + * /.
I've gotten the addition and subtraction working fine, the only problem comes when I have to take into account order of operations (so far).
So, that being said, here is the code:
import java.util.*;
public class iCalc {
* @param args
public static void main(String[] args) {
// Scanner scan = new Scanner(System.in);
// System.out.println("Equation:");
// String input = "55+5-10%16."; //might have to store each element in a linked list later
// evalExp(input); //calls evalExp with the input
String input2 = "55 + 5 * 10 + 16";//declare some dummy input
//121
String [] items = input2.split(" ");//split the string's elements into an array
Queue<String> queue = new LinkedList<String>();//the queue
Stack<String> stack = new Stack<String>();//make a new stack to store operators
Stack<String> stackOutput = new Stack<String>();//output stack
for (String s : items) {//scan the array
System.out.println("item : " + s);//print out what's being scanned
if(isNumber(s)) queue.add(s);//add it onto the queue
if(isOperator(s)) stack.push(s);//add it onto the stack
//converts to postfix here
while(!stack.isEmpty()) queue.add(stack.pop());
evalExp(queue, stackOutput);
public static void evalExp(Queue<String> exp, Stack<String> outputStack)
System.out.println("Evaluating the expression...");
int length = exp.size();
int temp;
while(length > 0)
// 55 5 10 16 + * +
// 55
try{
length--;
System.out.println("Trying to see if the element is a number...");
if(isMultiplyOrDivide(exp))//is there a multiply or divide operator
int spot = findMultiplyOrDividePosition(exp);//if yes, finds its position in the operators and stores it as an int
temp = 0;
for(String s : exp)
{//PROBLEM: After the first iteration, it suddenly has an empty stack exception
temp++;//keeps track of how far you are into the queue
outputStack.push(exp.remove());//take the head of the queue, and push it onto the stack
if(temp == spot+1)
break; //(if there were enough elements in the queue popped, end this loop
outputStack.push(performMath(outputStack.pop(), outputStack.pop(), popTheOperator(exp)));
Double MyNum = Double.parseDouble(exp.remove());
String MyStackNum = "" + MyNum;
outputStack.push(MyStackNum);
if(outputStack.size() == 2)
length--;
String operator = popTheOperator(exp);
System.out.println("Two numbers have been popped, time to find the operator...");
outputStack.push(performMath(outputStack.pop(), outputStack.pop(), operator));
for(String s : exp)
if(s.equals(operator))
exp.remove(s);
break;
} catch(Exception ParseException){
outputStack.push(performMath(outputStack.pop(), outputStack.pop(), exp.remove()));
while(!outputStack.isEmpty()) System.out.println("The output stack is:" + outputStack.pop());
public static boolean isNumber(String s1)
char[]arr2 = s1.toCharArray();
for(int i = 0;i<s1.length();i++)
System.out.println("checking...." + s1);
if((!Character.isDigit(arr2))) return false;
return true;
public static boolean isOperator(String s2)
char[]arr3 = s2.toCharArray();
for(int i = 0;i<arr3.length;i++)
System.out.println("checking...." + arr3[i]);
if(findOperator(arr3[i])) return true;
return false;
public static boolean findOperator(char op)
if(op == '+' ||
op == '-' ||
op == '/' ||
op == '*' ||
op == '%' ||
op == '^' ||
op == '&' ||
op == '(' ||
op == ')' ||
op == '|' ||
op == '>' ||
op == '<' ||
op == '=' ||
op == '!' ) return true;
return false;
// 10 16 + + +
public static String popTheOperator(Queue<String> myQueue)
String current = "";
for(String s: myQueue)
if(s.equals("*") || s.equals("/"))
current = s;
break;
if(current == "")
for(String s: myQueue)
if(s.equals("+") || s.equals("-"))
current = s;
break;
return current;
public static String performMath(String operand1, String operand2, String operator)
String myString = "";
double result = 0;
double temp1 = Double.parseDouble(operand1);
double temp2 = Double.parseDouble(operand2);
if(operator.equals("+"))
result = temp1 + temp2;
else if(operator.equals("-"))
result = temp2 - temp1;
else if(operator.equals("/"))
result = temp1 / temp2;
else if(operator.equals("*"))
result = temp1 * temp2;
else if(operator.equals("%"))
result = temp1 % temp2;
else if(operator.equals("^"))
result = Math.pow(temp1, temp2);
else if(operator.equals("&"))
else if(operator.equals("|"))
result = temp1 - temp2;
else if(operator.equals(">"))
if(temp1 > temp2)
result = 1;
else result = 0;
else if(operator.equals("<"))
if(temp1 < temp2)
result = 1;
else result = 0;
else if(operator.equals("="))
if(temp1 == temp2)
result = 1;
else result = 0;
else if(operator.equals("!"))
if(temp1 != temp2) result = 1;
else result = 0;
myString = "" + result;
return myString;
public static boolean isMultiplyOrDivide(Queue<String> myQueue)
for(String s : myQueue)//scan the queue
if(s.equals("*") || s.equals("/"))
return true;//it has found a multiply/divide operator!
return false;
public static int findMultiplyOrDividePosition(Queue<String> myQueue)
int position = 0;
for(String s: myQueue)
if(s.equals("+") ||
s.equals("-") ||
s.equals("%") ||
s.equals("^") ||
s.equals("&") ||
s.equals("|") ||
s.equals(">") ||
s.equals("<") ||
s.equals("=") ||
s.equals("!")) position ++;
return position;
}I think that its trying to remove the head, but because the head was already removed, somehow its not letting it remove it; as if by removing the head, there is no new updated head.if(isMultiplyOrDivide(exp))//is there a multiply or divide operator
int spot = findMultiplyOrDividePosition(exp);//if yes, finds its position in the operators and stores it as an int
temp = 0;
for(String s : exp)
{//PROBLEM: After the first iteration, it suddenly has an empty stack exception
temp++;//keeps track of how far you are into the queue
outputStack.push(exp.remove());//take the head of the queue, and push it onto the stack
if(temp == spot+1)
break; //(if there were enough elements in the queue popped, end this loop
outputStack.push(performMath(outputStack.pop(), outputStack.pop(), popTheOperator(exp)));
}the problem is somewhere in here. -
Dear experts,
we have scenarios with different priority on our SAP PI 7.0 system.
1. Async: File to IDoc (low priority)
2. Async: IDoc to File (high priority)
The scenarios are configured in SXMB_ADM ("Configure Filter for Queue Prioritizazion") and the messages are attached to the correct queues. However, when there are lots of messages in the low priority queue, also high priority messages get delayed. They are still processed much faster than low priority messages, but sometimes there is a delay of some minutes. Please note, that I'm talking about delays in Integration Engine NOT Adapter Engine.
Is it possible to configure a high priority queue, so that messages are always processed directly?
Best regards,
DavidThank you for your answer.
The following queues are configured:
Queue name Type Mode Max. Runtime Attempts Pause
XBQ1* R D 120 30 300
XBQ9* R D 30 30 300
XBQA* R D 120 30 300
XBQB* R D 60 30 300
XBQI* R D 60 30 300
XBQO* R D 60 30 300
XBQX* R D 120 30 300
XBQY* R D 30 30 300
XBQZ* R D 30 30 300
XBT1* R D 120 30 300
XBT9* R D 30 30 300
XBTA* R D 120 30 300
XBTB* R D 60 30 300
XBTI* R D 60 30 300
XBTJ* R D 60 30 300
XBTL* R D 60 30 300
XBTM* R D 60 30 300
XBTO* R D 60 30 300
XBTX* R D 120 30 300
XBTY* R D 30 30 300
XBTZ* R D 30 30 300
High priority messages get processed with Queue XBTA and low priority with XBTZ.
We increased the polling interval, but we still have the problem, as the files are very big.
Do you have any ideas? Thanks in advance. -
Hi,
When XI receive a lot of Idocs (about 8000) of R/3, sometime one has the following error in the queue (SMQ2): "<i>The ABAP/4 Open SQL array insert results in dupl.</i>".
Thus corresponding queue is in error and is blocked. After one has the posssibility to re-execute (in fact Debug LUW), and data are sent.
Have you the same problem?
Is there a solution?
P.S: There is an OSS note (584601 of 08.01.2003), but it's already integrated into our XI 3.0 (SP9).
Regards.
Mickael.Hi,
In the integration engine specific configuration, set the tunning parameter EO_MSG_SIZE_LIMIT (try with 1024) that enables you to process messages of a particular size in serial. If the incoming message is larger than EO_MSG_SIZE_LIMIT, the message will be processed in an extra queue (XBTL).
You can refer to the XI 3.0 tuning guide for more details on integration engine tuning parameters.
Also check the parameter enque/table_size value in rz11. Increasing that value and test.
Thanks,
Sasi -
Queue Prioritization in R3/ECC
Hi,
We have prioritize PI queues already. In PI it is more of interface specific queue allocation. If we go to sxmb_adm of R3/ECC, again we could see similar options of managing queues. Do we have some simitar concept in R3/ECC too? e.g. if there a lot of messages coming to ECC from a low priority PI message, then is there any possibility of sending these messages to specific queues in ECC?
Kind regards,
PrateekOkay ;o)
So transfering IDocs via qRFC between systems might be an option for you. But this just guarantees that for example EOIO messages do not overtake one another even during transfer from one system to another.
IDocs are processed in the ECC system via 2 ways. Either "immidiately" when received, or via "background job" which has to be scheduled. Please see you config per inbound message in ECC in WE20.
So I guess the prioritization as you need it will not be provided by message prioritization as configurated in XI.
Kai -
Problem Inbound Queue SMQR after execute BUPA_DEL
Good Day
Now, we developing a interface for a customer to import Business Partner (BP) from a non-SAP System in our SAP CRM 2007 System. To validate the functionality of the interface we would like to make any test imports. Well, if we finished an import we have to delete the BP's with the transaction BUPA_DEL. The deletion of the BP's in the table BUT000 seems to be ok.
So, when I call the transaction smqr to check the Inbound Queue CSA*, I will found an entry with the state "Retry" for every deleted dataset. I can manually execute the Queue successfully. What could be the reason for this state? How can I automate the execution of these queues?
Many thanks for your support!
Regards
MarcoDear Gerhard
Thank you for your answer.
Well, I had already implement the solution of the note 785046 without success.
The clue is, no Background-Job is scheduled but there are many thousend Entry's with the state RETRY in the Queue...
In the SysLog I couldn't found any messages they indicate to this "problem".
Do you have any idea's.
Can I manually schedule a Job (may be periodically) to process these Queues?
Thank's for your replies!
Best regards,
Marco -
Problem setting queue manager. please help me
hi,
i want to integrate sun java system message queue with XEngine server.
my idea is using Sun Java Message queue i want to read files from a source folder and put them as messages in a queue. from there XEngine reads the messages. for that i need to set queue manager. without that i am getting the following exception.
"Name of queue manager is not defined, JNDI identification will be usedQueueConne
ctionFactory lookup failed: javax.naming.NameNotFoundException: QueueConnectionF
actory not found"
let me know how to configure sun java message queue as per my requirement.
thanks
valiTwo posts for the same problem? Why?
http://forum.java.sun.com/thread.jspa?messageID=10235654
Maybe you are looking for
-
Downloading apps causes safari to quit unexpectedly
Whenever I try to download applications or widgets, Safari quits unexpectedly. Any help would be appreciated.
-
Hi, Can we capture unplanned delivery costs while posting invoice for a purchase order? If yes, please provide steps how to do that. Thanks in advance, Murthy Edited by: Csaba Szommer on Aug 19, 2011 4:43 PM
-
What is the Best Practice for A1000 LUN Configuration
I have a fully populated 12 X 18GB A1000 array, What is the optimal LUN configuration for a A1000 Array running RAID5 in a read intensive oracle financials environment. 1. 1 (10 X 18GB + 2 X 18GB HS ) (Use format to split at OS level) - Current Setti
-
Where did dcd-aug08-3.exe go?
Yesterday, I downloaded dcd-aug08-1.exe from the webpage and started installing my NI device driver 2008.08, then it asked for CD 2, so I downloaded dcd-aug08-2.exe from the webpage and continued installing but couldn't finish yesterday. Today, I ran
-
Macbook pro EFI firmware Update 1.4 won't work, neither will software
I got two probs, not sure how related they are. #1 is that I can't successfully do the macbook pro EFI firmware Update 1.4. My computer was bootcamped and kept restarting in windows - thus the update was not completed - the completion bar would pop u