Many queues 1 consumer

Is it possible to set a QueueReceiver or a MessageDrivenBean to collect messages from more than one queue? And how?
eg.
I have 3 queues
q1: IncomingCars
q2: IncomingVans
q3: IncomingTrucks
and I have only RepairMessageDrivenBean which onMessage() should be run for every incoming vehicle
Yos

you need three consumers. deploy the bean 3 times.
_sjz.                                                                                                                                                                                                       

Similar Messages

  • JMS queue consumer challenge

    Hi there,
              I have met a pretty challenging problem in JMS queue consumer and
              would like to know if any JMS lovers in the group know about it.
              We have queue receiver listening on queue which contains a number of
              mugs.
              Once a msg is received (onMessage returns), the msg is handed over to
              a worker thread from a thread pool.
              Essentially there are two parts of the problem:
              1. We want kind of flow control - only x number of msg can be
              processed at a given time. This can be resolved by using semaphore.
              However, there might be better solution out there. Anyhow, this is
              less an issue than the second part -
              2. As we know client_acknowledge happens at the session level:
              Acknowledging a consumed message automatically acknowledges the
              receipt of all messages that have been consumed by its session. For
              example, if a message consumer consumes ten messages and then
              acknowledges the fifth message delivered, all ten messages are
              acknowledged. 
              -- this is the problem -- we want to acknowledge each msg
              individually so that only the processed msg is acknowledged although
              there are x number of msg being retrieved. By doing that we won't lost
              any msg in case the JMS client crashes.
              It is a challenge, isn't it? Might well not be one for you, if you
              know the trick. If you do, could you share with us? Thanks a lot.
              Mike
              

    Just to be clear, I favor (2), where each worker thread has its own session and
              consumer.
              This naturally throttles, as there are only as many outstanding messages as
              worker-threads.
              BTW, be aware that it is against spec, and dangerous, to call acknowledge()
              outside of
              onMessage() - as this multi-threads the Session and Session's are not thread
              safe.
              Tom
              Tom Barnes wrote:
              > Actually you both are correct. The ack behavior is configurable on the
              > connection factory via the "AcknowledgePolicy", where the default is
              > what the spec requires (ack-all). Prior to 6.1
              > the behavior was what one would expect (ack-before).
              >
              > As for how to solve the problem at hand. I can think of three approaches:
              >
              > (1) use the current async consumer but set the ack-policy
              > to ack-before, and defer acknowledging a msg until all msgs before
              > it have finished their processing
              >
              > (2) use multiple synchronous consumers, one consumer per defered msg
              >
              > (3) use a single synchronous consumer, but dequeue transactionally,
              > one transaction per msg. suspend the transaction, then have
              > the worker thread resume the transaction once it finishes processing
              > the message and call commit. (Take care that the default
              > tran timeout is 30 seconds.)
              >
              > Shean-Guang Chang wrote:
              >
              > > Just to correct one assumption. Ack the fifth message will not ack message
              > > received after that (e.g. message 6, 7, 8, etc...). At least not WLS JMS.
              > > If this is not true for you please give details of your client code and
              > > version of WLS JMS you have. Thanks!
              > >
              > > "Mike" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > Hi there,
              > > >
              > > > I have met a pretty challenging problem in JMS queue consumer and
              > > > would like to know if any JMS lovers in the group know about it.
              > > >
              > > > We have queue receiver listening on queue which contains a number of
              > > > mugs.
              > > > Once a msg is received (onMessage returns), the msg is handed over to
              > > > a worker thread from a thread pool.
              > > >
              > > > Essentially there are two parts of the problem:
              > > >
              > > > 1. We want kind of flow control - only x number of msg can be
              > > > processed at a given time. This can be resolved by using semaphore.
              > > > However, there might be better solution out there. Anyhow, this is
              > > > less an issue than the second part -
              > > >
              > > > 2. As we know client_acknowledge happens at the session level:
              > > > Acknowledging a consumed message automatically acknowledges the
              > > > receipt of all messages that have been consumed by its session. For
              > > > example, if a message consumer consumes ten messages and then
              > > > acknowledges the fifth message delivered, all ten messages are
              > > > acknowledged.
              > > > -- this is the problem -- we want to acknowledge each msg
              > > > individually so that only the processed msg is acknowledged although
              > > > there are x number of msg being retrieved. By doing that we won't lost
              > > > any msg in case the JMS client crashes.
              > > >
              > > > It is a challenge, isn't it? Might well not be one for you, if you
              > > > know the trick. If you do, could you share with us? Thanks a lot.
              > > >
              > > > Mike
              

  • Many queues in Transactional RFC (SM58)

    Hello,
    There are many queues under transactional RFC(SM58) what should i do?
    Can i delete the Queue's or execute that?
    What is the mean of Execute LUW's and Debug LUW's ,when we wil use it?
    Highly appriciate your immediate replies.
    Thanks in advance.
    Cheers,
    Chinna.

    Hi Chinna
    You have all the details mentioned in this link
    http://help.sap.com/saphelp_nw04/helpdata/en/22/042585488911d189490000e829fbbd/content.htm
    Cheers
    Shaji

  • How many queues need to be create...

    Hi,
    I am implementing streams replication in single database but within diff schemas.
    Froms schema1 to schema2
    schema2 to schema3
    schema2 to schema4.
    So total three times.
    So how many queues need to create. Please help me in this.
    Thx..

    Streams is not an appropriate technology for what you describe. Please provide a version number and explain why you think Streams is a better solution than all of the others that would do what you describe.

  • Queue consumer stops with 100% cpu usage

    I'm trying to use Berkeley DB queue with transactions. When I tested what happens when transactions with DB_APPEND are aborted I found that while it works and DB_CONSUME correctly skips over rolled back records, unfortunately extents that have those records are never deleted, which causes database to always grow. Next I tried DB_CONSUME with database opened using DB_INORDER flag and it seems there's a serious regression in Berkeley DB that causes it to loop indefinitely with 100% cpu usage when it encounters a rolled back record. I tested various versions and found that this bug doesn't happen with 5.1.29, but it is reproducible with 5.2.42, so this regression might have been introduced in 5.2. I have also tested 5.3 and 6.0, and both have this behavior. There may be something wrong with the way queue records are rolled back, one indication of that would be that in 5.1.29 doesn't have neither of the two problems I found with DB_QUEUE: extents are deleted after being consumed, and there are no issues when consuming with DB_INORDER either.
    You can find Python code to reproduce this issue here:
    https://gist.github.com/snaury/027a3c546f5b0a62a440
    Sorry for using Python and not e.g. C++, but it's a lot shorter that way.

    We have looked at the issues and they are valid.   We will roll the fixes out for this in our next release of BDB.   The test case was very useful and really helped to speed the process up.    If you have any questions, please contact me directly at [email protected]  Thanks again for bringing this to our attention.
    thanks
    mike

  • Pending messages in queue consume cache and result slow processing

    Hi All
              I have one stand alone java application which is consumer of one weblogic JMS queue.
              What my application does, it take big messages in to xml format and convert it in to small chunk of xml using XSLT.
              Here I am struggling with one major problem when I sent 10 messages all together all messages went in to pending queue and as application process only one messages at a time, there for other messages waste the cache and processing become slow.
              If I send same 10 messages one by one after completion of last messages total time to process 10 messages is very less then compare to if I sent all together.
              Is there any web logic setting I can do so only one messages goes in to pending queue.

    Ali,
    How about this:
    142# imsimta qm dir | grep '^ *[0-9]' | wc -l
          14I don't know that it's significantly better, but "qm" generates only a single line of output per message whereas "cache" provides like 10/message.
    Bill

  • Queue consumer blocking producer!?!?

    This shouldn't be possible as far as I am aware, but somehow it seems that my consumer's receive call is preventing the producer from connecting to the queue and thus writing the message. Does anyone have any idea why this might be occurring?
    Running in a WAS 5.02 / MQSeries environment, I have a servlet that sends a message to a request queue and then waits to recieve the correlating message message on the response queue (using correlation id). Meanwhile, the request message is picked up by the MDB, processed, and a response message is generated by my session bean. However, the session bean is unable to establish a connection to the response queue and send the response if the web app is already waiting to recieve it (it will successfully post if no recieve call is made). Eventually the reciever will time out waiting for the response, and an exception is thrown by the producer indicating that the connection pool could not allocate a managed connection.
    As I understand, the reciever should only block its own thread of execution, and should not prevent a producer from writing to the queue. Is there some sort of configuration issue that might be causing this? Any possible insight into this problem would be greatly appreciated.
    thanks,
    zeffren

    brilliant!
    I couldn't for the life of me figure out what was going on because to my knowledge nothing in the code or our environement had changed. However, as it turned out, a team member had added some new MDB's which coincidentally had upped the number of connections to one less than the max available in the pool, therefore after my consumer established a recieve connection, there were none left for the producer!
    Thanks for outside perspective, sometimes thats all it takes ;)

  • URGENT PLEASE HELP: Broker only serving one queue consumer at a time

    Hello all,
    I have multiple consumers listening on a queue. The broker sends a message to the first listening consumer. This consumer receives that message and acknowledges it. and does some processing with it.
    All other consumers do not get any message from the broker. They are all listening on the queue for a long time. After i kill the first consumer one of the listening consumer gets a message.
    How can I configure the queue so that it sends multiple (different) messages to all the listening consumers with minimum delay?
    I am using a persistent queue and using 3.5 sp2 on windows.
    Thanks a lot in advance

    Sounds like your number of active consumers is set to 1 which is the default. Use imqcmd to set the maxNumActiveConsumers on your queue. The Platform Edition supports up to two active and one backup consumer. The Enterprise Edition does not have any limits.

  • BI: How many bytes consumes an Infocube or DSO in Database

    Hi Colleagues,
    is there an easy way, to find out, how many MB an Infocube or an DSO consumes actually on DB.
    Thanks ans regards,
    Wolfgang

    Well yes ST14 can take a while to run, but this is largely dependent on data volumes, so while it might be 15 hrs on one BW, it might be 1 hr on another.  There are some parallel processing options on it as well.
    Should look something like this:
    | Table     4579106BTRUMUEWFXNF4F37Z5 / ABW / BASIS / 00012                                                                                |
    | InfoCube  | OBJVERS | OBJSTAT | INFOAREA     | CUBETYPE | Size (KB) | TXTLG                                             | TRANSACT | LASTUSED       | No.of Aggr | Size of all | Total Size  |
    |           |         |         |              |          |           |                                                   |          |                |            | Aggregates  | (Cube+Aggr) |
    | ZSEM_C53  | A       | ACT     | ZSEM_OTHER   | B        |    477184 | HR - Positions Staging Cube                       |          | 20070227190205 |         0  |           0 |      477184 |
    | ZIC_C03   | A       | ACT     | 0MMIC        | B        |    223744 | Material Stocks/Movements (base cube)             |          |              0 |         0  |           0 |      223744 |
    | ZSEM_T72  | A       | ACT     | ZSEM_AGENCY  | B        |    220480 | Complement Planning                               | X        | 20050811134630 |         0  |           0 |      220480 |
    | 0PUR_C04  | A       | ACT     | 0MMPUR       | B        |    188480 | Purchasing groups                                 |          | 20070320125327 |        14  |       10944 |      199424 |
    | 0PUR_C01  | A       | ACT     | 0MMPUR       | B        |    176448 | Purchasing data                                   |          | 20070320131733 |         0  |           0 |      176448 |
    | ZPY_C71   | A       | ACT     | 0PY          | B        |    163200 | Agency Pay File Data                              |          | 20070319134342 |         3  |       36864 |      200064 |
    | 0BBP_C02  | A       | ACT     | 0BBP         | B        |    160896 | e-Procurement Account Assignment - Totals Records |          | 20070301183309 |         0  |           0 |      160896 |
    | 0BBP_C01  | A       | ACT     | 0BBP         | B        |    157440 | Global Spend (Point-to-Point Connect.)            |          | 20070301182545 |         0  |           0 |      157440 |
    | ZAP_CTW1  | A       | ACT     | 0FIAP        | B        |    145600 | Accounts Payable:  Treasury Warrant Cube          |          | 20070316114612 |         0  |           0 |      145600 |
    | ZFM_C31   | A       | ACT     | 0PU_FM       | B        |    113472 | FM Commitments                                    |          | 20060713125055 |         2  |       76032 |      189504 |
    | ZIC_C10   | A       | ACT     | 0PM          | B        |    112000 | PM Material Stocks/Movements                      |          | 20070308184140 |         0  |           0 |      112000 |
    | ZFM_C54   | A       | ACT     | 0PU_FM       | B        |    105088 | FM Revenue Detail                                 |          | 20060912172444 |         0  |           0 |      105088 |
    | ZSEM_T54  | A       | ACT     | ZSEM_CENTRAL | B        |    104704 | HR Information - OB Position Planning             | X        | 20060119152421 |         0  |           0 |      104704 |
    | ZSL_C51   | A       | ACT     | ZFISL        | B        |     93440 | Special Ledger                                    |          | 20070307130939 |         2  |        1344 |       94784 |
    | 0BWTC_C03 | A       | ACT     | 0BWTCT_STA   | B        |     82624 | BW Statistics - OLAP, Detail Navigation           |          | 20050214185737 |         0  |           0 |       82624 |
    | ZFIGL_C05 | A       | ACT     | 0FIGL        | B        |     75968 | FI_GL  General Ledger Summary                     |          | 20060707185959 |         2  |        1344 |       77312 |
    | 0BWTC_C02 | A       | ACT     | 0BWTCT_STA   | B        |     75136 | BW Statistics - OLAP                              |          | 20070124163534 |         0  |           0 |       75136 |
    | 0PACM_C01 | A       | ACT     | 0PACM        | B        |     63296 | Compensation analyses                             |          |              0 |         0  |           0 |       63296 |
    | 0BWTC_C05 | A       | ACT     | 0BWTCT_STA   | B        |     55680 | BW Statistics - WHM                               |          | 20040607184054 |         0  |           0 |       55680 |
    | 0PA_C01   | A       | ACT     | 0PAPA        | B        |     48128 | Headcount and personnel action                    |          | 20060517142649 |         0  |           0 |       48128 |
    | ZFM_C52   | A       | ACT     | 0PU_FM       | B        |     47040 | FM Commitments and Actuals                        |          | 20070117141606 |         2  |       15424 |       62464 |
    | 0BWTC_C07 | A       | ACT     | 0BWTCT_MON   | B        |     37376 | Requests in the InfoCube                          |          | 20060606175259 |         0  |           0 |       37376 |
    | ZSEM_C51  | A       | ACT     | ZSEM_PROJ    | B        |     36864 | Agency Budget Projections - Payroll Staging       |          | 20060310184444 |         0  |           0 |       36864 |
    | ZSEM_T53  | A       | ACT     | ZSEM_PROJ    | B        |     33024 | Pre-closing                                       | X        | 20060804173232 |         0  |           0 |       33024 |
    | ZFIAR_C05 | A       | ACT     | 0FIAR        | B        |     32000 | FI_AR Accounts Receivable - Customer              |          | 20061207190346 |         2  |        1344 |       33344 |
    | ZSEM_T51  | A       | ACT     | ZSEM_CENTRAL | B        |     28032 | OB Budget Preparation                             | X        | 20060726015528 |         0  |           0 |       28032 |
    | ZFM_C53   | A       | ACT     | 0PU_FM       | B        |     25600 | FM Historical Budget and Actuals                  |          | 20060712115320 |         2  |         832 |       26432 |
    | 0SEMBPSPF | A       | ACT     | 0SEM_BPS     | B        |     24832 | SEM BPS techn. Performance                        |          |              0 |         0  |           0 |       24832 |
    | ZSLFM_C51 | A       | ACT     | ZFISL        | B        |     23296 | Expenditure Estimation for GAAP - SL with FM      |          | 20070109164847 |         0  |           0 |       23296 |
    | 0FIAA_C04 | A       | ACT     | 0FIAA        | B        |     22784 | Annual values and transactions                    |          |              0 |         0  |           0 |       22784 |

  • Many processes consumed in  ECC server when executing infopackage in BW

    Hi,
    I know this question was asked many times but I can't figure out why it's not working.
    In fact, when i execute an infopackage, a lot of dialog process are used in the backend , making the system not accessible (windows server)
    I tried to make some changes in SMQS and RSA1_TRFC_OPTION_SET but it has no effect in the system.
    Can someone please, explain step by step what can I do to configure the 2 systems ?
    Thanks a lot,
    Regards,
    Chea-Lie

    HI,
    You can maintain the Control Parameters for Data Load in your ECC system.
    Goto Transaction SBIW
    General Settings->Maintain Control Parameters for Data Transfer
    Refer OSS Note : 417307
    This should help.
    Please check the following documents on Load Performance.
    [Performance Tuning Massive SAP BW Systems - Tips & Tricks|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/ce7fb368-0601-0010-64ba-fadc985a1f94]
    Do go through the checklist in the below document.
    [BW Performance Tuning|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/701382b6-d41c-2a10-5f82-e780e546d3b6]
    Regards,
    Gaurav

  • Queue consumer limit

    Here is the scenario:
    -simple producer app, sending in to a Queue a lot of simple text messages
    -there are 3 MDB's listening to the same (!) queue and dumping message to server.log
    by checking output of glassfish server.log it seems that MQ is using only 2 of those MDB's at a time (2 simultaneous consumers).
    How (w/o switching to Topic) would it be possible to increase simultaneous processing capabilities of glassfish (v2 UR1 Final) bundled MQ ?
    /mareks

    Queue gets a lot of messages sent in by (multiple) clients. The question is why glassfish/mq is processing only 2 consumers only at a time ? Tried playing with maxNumActiveConsumers set to -1 and consumerFlowLimit to 1 - same thing.
    /mareks

  • How to send message to a multi-consumer queue using pl/sql

    How to send message to a multi-consumer queue using pl/sql ? Thanks.
    I tried following, but got an message: no receipient specified.
    DBMS_AQ.ENQUEUE(
    queue_name => 'aqadm.multi_queue',
    enqueue_options => queue_options,
    message_properties => message_properties,
    payload => my_message,
    msgid => message_id);
    COMMIT;
    END;
    /

    Here's two way to enqueue/publish new message into multi-consumer queue.
    (1) Use explicitly declared recipient list
    - Specify "Recipients" by setting recipient_list to messge_properties, before ENQUEUE().
    DECLARE
    recipients DBMS_AQ.aq$_recipient_list_t;
    BEGIN
    recipients(1) := sys.aq$_agent('RECIPIENTNAME',NULL,NULL);
    message_properties.recipient_list := recipients ;
    (2)Or, declare subscriber list permanently. Then you need not to specify recipient list each time you call ENQUEUE().
    begin
    dbms_aqadm.add_subscriber(
    queue_name=>'YOURQUEUE',
    subscriber=> sys.aq$_agent('RECIPIENTNAME', null, null)
    end;
    You can add 1024 local subscriber include maximum 32 remote-queue-consumer to one queue.

  • Queues in READY status

    Dear All,
    This question has been posted many times but never saw a conclusive answer on this forum.
    To repeat, all settings of scheduler being fine (SMQS - Type R), there are large number of queues awaiting to be manually unlocked from READY status to clear them. There are no waiting queues but still entries in say an update of a stock queue are like 70+ in READY status. I am able to clear them manually but that would be stupidity when I am talking of 30K queues build up thus in READY status. Its not that not a single queue is moving. Some are getting processed (RUNNING) on their own but thats insignificant as compared to the queues in READY and also pathetically time consuming.
    I have scheduled the report /SAPAPO/RCIFRESTART that seems to have scheuled something in the background but I cant trace that job.
    Please help.
    Regards,
    Loknath

    Loknath,
    If you have 'many' queues 'RUNNING' for a long period of time, LUWs that are inline behind them will eventually stop trying.  You can restart these queues with the /SAPAPO/RCIFRESTART program mentioned above.
    There are lots of ways to tune queues to meet business requirements.  Speak to your local CIF expert.
    Some people use a job to run /SAPAPO/RCIFRESTART  on a regular schedule.  I have seen a system where this job is scheduled to run hourly.
    30K queues is not really reasonable.  If you always have this backlog, then there is a performance issue that needs to be addressed (SCM is not able to process the data as fast as ECC is sending).  If this is a startup, then you just have to be patient.  Initial loads can sometimes take days to fully clear all queues, especially if the SCM is sized a bit on the small side.  Continue restarting until you have cleared all queues, then see if they begin to build again.
    Best Regards,
    DB49

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there,
    the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
    I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
    In particular the blogs
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
    have caused by attention.
    Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
    In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
    The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
    The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
    The questions I have are as follows.
    1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
    Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
    Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
    My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
    2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
    SOAP fault returned when using SOAP Sender adapter of AF
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    SOAP fault using integrated SOAP adapter of PI IE
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>System Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context/>
                   <code>ABAP.PARSE_APPLICATION_DATA</code>
                   <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
    There may already be a blog or thread and I just missed it.
    Any comments are welcome.
    Thanks. Dieter

    Hi Dieter,
    As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
    Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
    The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
    http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    Kind regards,
    Wojciech
    btw nice thread

  • JMS Messages getting stuck in queues

    Hi,
    I am facing this peculiar issue with queue messages not getting picked up.
    Application Architecture: There is 1 JMS queue ( which resides in WLDomain1 with in a Unix Box) and there are 2 windows boxes having 2 weblogic domains each with 3 instances of MDB deployed on each of the domains. So total of 12 consumers (2 Box * 2 Domain * 3 Instances of MDB) listens to the JMS queue.
    Issue: After bringing everything up I am able to see 12 consumer count listening to the queue. But when I run the application which writes total of 13 messages in the queue only 7 of them are getting processed and 6 messages are always getting stuck in the queues. Interestingly this 7 messages are mostly getting processed by consumers with in the same windows box. And the selection of windows box is completely random. To confirm whether both the windows boxes are configured fine I tried to test them individually and it works fine individually, the problem happens only if I bring up both the boxes together.
    Another observation is, if I bring down the non working domains, the pending messages start getting processed by the working domains. It gives an impression that the non working domains seem to lock the messages for processing but doesn't actually process it. Only when I bring down the domains it releases this lock.
    Below is the JMS Life cycle events I captured from log files :
    1. Start domain1 in WIN Box1
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040304> <783400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040309> <239900> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <> <>
    ####<Nov 24, 2009 7:54:00 PM CST> <> <> <1259114040313> <2100> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <> <>
    2. Start domain2 in WIN Box 1
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095403> <38600> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095407> <335400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <> <>
    ####<Nov 24, 2009 7:54:55 PM CST> <> <> <1259114095410> <997700> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <> <>
    3. Start domain1 in WIN Box 2
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172061> <316500> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172066> <324300> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 7:56:12 PM CST> <> <> <1259114172072> <757000> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    4. Start domain2 in WIN Box 2
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214000> <142800> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214005> <38200> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 7:56:54 PM CST> <> <> <1259114214009> <22400> <> <> <JMSModule!Queue> <ConsumerCreate> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    At this point console shows 12 consumers listening the queue which is absolutely fine.
    5. Run application
    --Message Production
    This produces 13 messages ( I have not pasted the complete log)
    -- Message Consumption ( Only 7 messages are consumed)
    ####<Nov 24, 2009 8:00:05 PM CST> <> <> <1259114405953> <576400> <ID:<1047832.1259114392542.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114392542&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410091> <310100> <ID:<1047832.1259114393181.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393181&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410130> <364600> <ID:<1047832.1259114400626.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400626&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410134> <540700> <ID:<1047832.1259114393125.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393125&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:10 PM CST> <> <> <1259114410137> <632400> <ID:<1047832.1259114393128.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393128&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:12 PM CST> <> <> <1259114412026> <984200> <ID:<1047832.1259114393123.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114393123&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:00:16 PM CST> <> <> <1259114416045> <41800> <ID:<1047832.1259114400005.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400005&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    6. At this point Admin Consol shows 6 messages pending in the queue
    and From consumer numbers it is evident that consumers in WIN Box2 domains have not processed any messages
    Now if I stop server in WIN Box2 Domain1, WIN Box1 picks up the messages instantely
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202343> <897600> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session80.consumer82)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202346> <421900> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session83.consumer85)> <> <>
    ####<Nov 24, 2009 8:13:22 PM CST> <> <> <1259115202379> <582300> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection79.session86.consumer88)> <> <>
    ####<Nov 24, 2009 8:13:24 PM CST> <> <> <1259115204888> <4600> <ID:<1047832.1259114400029.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session76.consumer78)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400029&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:32 PM CST> <> <> <1259115212820> <256700> <ID:<1047832.1259114400258.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session66.consumer68)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400258&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:13:43 PM CST> <> <> <1259115223579> <280600> <ID:<1047832.1259114400032.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session60.consumer62)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400032&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    7. At this poing Admin Consol shows 3 messages pending in the queue
    Now if I stop server in WIN Box2 Domain2, the remaining 3 gets processed
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115368998> <193400> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session90.consumer92)> <> <>
    ####<Nov 24, 2009 8:16:08 PM CST> <> <> <1259115369000> <885500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session93.consumer95)> <> <>
    ####<Nov 24, 2009 8:16:09 PM CST> <> <> <1259115369002> <902500> <> <> <JMSModule!Queue> <ConsumerDestroy> <<anonymous>> <MC:CA(/<IP_BOX2>):OAMI(server.jms.connection89.session96.consumer98)> <> <>
    ####<Nov 24, 2009 8:16:25 PM CST> <> <> <1259115385151> <123700> <ID:<1047832.1259114400324.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session70.consumer72)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400324&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:29 PM CST> <> <> <1259115389660> <836600> <ID:<1047832.1259114400535.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection59.session63.consumer65)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400535&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    ####<Nov 24, 2009 8:16:37 PM CST> <> <> <1259115397823> <610200> <ID:<1047832.1259114400432.0>> <> <JMSModule!Queue> <Consumed> <<anonymous>> <MC:CA(/<IP_BOX1>):OAMI(server.jms.connection69.session73.consumer75)> <&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message"&gt;&lt;mes:Header&gt;&lt;mes:JMSTimestamp&gt;1259114400432&lt;/mes:JMSTimestamp&gt;&lt;mes:Properties/&gt;&lt;/mes:Header&gt;&lt;/mes:WLJMSMessage&gt;> <>
    Kindly throw some light on this issue. Also do let me know if you need any more specific details about this.
    Thanks,
    Abhijeet
    Edited by: user5240164 on Nov 25, 2009 11:35 AM
    Edited by: user5240164 on Nov 28, 2009 1:21 PM

    Hi,
    The problem may be conflicting names in your configuration. To ensure proper operation of WL Security, JMS, JTA, and JDBC, make sure that (A) each domain has a unique name, and (B) no two WebLogic servers have the same name (even if in two different domains).
    To ensure a more even distribution of messages, either simply send more than a token amount messages (eg, a hundred or so, rather than just 12), or configure a custom connection factory on the domain that hosts the queue, reduce MessagesMaximum on the connection factory to 1, and then modify each MDB to refer to the custom connection factory. The MessagesMaximum setting controls the number of messages that can be pre-pushed (pipelined) to a single asynchronous consumer.
    For more information see "Best Practices for JMS Beginners and Advanced Users" in the latest versions of the JMS admin guide, and "JMS Performance & Tuning Check List" in the WebLogic Performance and Tuning guide.
    Tom

Maybe you are looking for

  • Imported songs go to wrong location

    I have changed the location of my iTunes library to an external hard drive plugged into my Airport Extreme. If I rip a CD the files end up in the correct location. However if I import a bunch of pre-ripped files via the file menu they get put into th

  • Import from digital camera no longer works

    iPhoto 6.0.6 I suddenly can't import photos from my Casio digital camera. It worked fine two months ago, with the same computer and the same camera. When I connect the camera to the computer, and turn the camera on, the camera appears on the Desktop,

  • ITunes on iPhone 5 not working

    Ever since updating to IOS 7 I haven't been to access the itunes store on my phone. The App store works perfectly but the itunes store loads and remains blank, not even my purchases are available to see! I was wondering if I'm not the only one who is

  • Will documents and data in iphone increase until storage becomes full?

    iphone documents and data size

  • Resource Adapter deployment on cluster

    Hi, I have a weblogic cluster with 2 nodes and a load balancer. Recently I have deployed a database adapter to connect to a sql server database which is used by a service (OSB proxy service). The deployed was performed with both nodes running and I c