Failed to process JMS message

Hi,
While trying to read the message in Queue from my BPEL, Iam getting the following error:
JMSBC-E0713: Failed to process JMS message [com.stc.jmsjca.core.WTextMessageIn@ffae4c] in onMessage: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
Can any one provide some suggestion on how to resolve this error.

No, Iam just storing a simple message say "Hello" in the queue, the message is stored in the queue but it is shown in the below format when I opened that file in Notepad:
UUªª ªªUU ‡ÿãÂ- ‡ 6›4•Z 6›4”öÿ Â
Ô£9™ÿÿ¬h ÎM o „      fÂ6›4”ñ Trial4 com.sun.messaging.BasicQueue Hai ªªUU
and soon Iam getting this error below:
[Fatal Error] :1:1: Content is not allowed in prolog.
JMSBC-E0713: Failed to process JMS message [com.stc.jmsjca.core.WTextMessageIn@1e377d5] in onMessage: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.

Similar Messages

  • Processing JMS messages in sequence one after another

    This is my use case which I wan to implement in OSB.
    1. I have a queue which will receive messages in huge numbers from a single sender.
    2. I have a proxy which will read each message and process the message and send it out.
    In step 1 , I want each message to be read sequentially and when step 2 finishes executing then I want to read the next message from the queue.
    I need to give an acknowledgment to JMS that the message has finished processing and it can make the next message available to the proxy.
    What is the best option to implement this use case ?.
    Regards

    By default Weblogic JMS Queues are FIFO. But that is true only if there is only one consumer of the queue.
    In case of a clustered environment that is not true and in case of OSB even with a single managed server multiple threads are created for a JMS listener Proxy(by default 16). So there will be 16 instances of the Proxy trying to read messages from the Queue and each will be handed out a message and sequential integrity is disturbed.
    There are three ways to overcome this problem:
    1. Unit of Order
    This is suitable only when you want messages of the same group to be processed sequentially while multiple groups can be processed in parallel.
    For e.x. you are getting multiple orders for multiple customers and you want to ensure that the orders of same customer are processed sequentially (in case a customer tries to change the quantity of an order then the latest one should be processed last). In this case you can set UOO as the CustomerID and each customer's order will be processed sequentially but orders of different customers will be still processed in parallel. WLS JMS achieves this by assigning a target queue instance on the cluster for each UOO value. It will assign Q!MS1 to CustID=1, Q!MS2 to CustID=2 and so on. All messages of the same UOO(of the same customer) will go to the same instance on the queue. Furthermore it will ensure that no two messages of the same UOO are released together to the listeners. So if a queue instance has 5 messages each of both Cust=1 and Cust=2, only one message each of Cust1 and Cust2 will be processed by the listeners even if there are 16 listening threads.
    Pros and Cons:
    Overall performance is improved since you can still achieve some parallel processing.
    There will be a slight overhead of processing the UOO headers on the JMS servers.
    Can not ensure sequencing of all the messages. (Although you can achieve that by setting the same UOO on all the messages)
    If the managed server assigned to a UOO is down, if a publisher tried to put the next message for that UOO, it will fail since it will not try to send that message to any other managed server.
    2. Single threaded processing
    If you don't want to process even different groups of messages in parallel and if you want absolute sequencing (i.e. irrespective of the CustomerID you want all the messages to be processed in the sequence they arrive) you will need to process them in a single threaded model. The JMS queue should be deployed on only one managed server of the cluster. The JMS proxy listening to the queue should also be deployed on a single managed server(You will need to change the targeting for the EJB created for this Proxy in the Deployments) and there should be a Work Manager for this Proxy with Maximum Thread Constraint set as 1. In the Connection Factory which the Proxy uses, set the Maximum Messages per session to 1. Another approach for Single threaded could be to set the same value of UOO on all of the messages. This will make all the messages to go to the same Q instance in the cluster and also will make sure that even if Proxy has multiple threads, only one message will be processed at a time.
    Pros and Cons:
    Completely single threaded processing, will take more time since messages will be processed one after the other.
    Load balancing will go awry as all the messages will be processed by only one server.
    3. Using custom implementation
    The most complex way is to create a completely custom implementation. Put all the messages in a DB and then process them one at a time based on timestamp.
    Pros and Cons:
    It will take more effort to implement than the other two approaches.
    It will again need single threaded processing after the messages are put on the DB
    Performance wise there will be more impact because of additional DB calls
    More complex to maintain
    Based on your exact requirements you can choose which approach you want. If you have SOA suite as well them it would be better to move this solution to SOA suite as OESB(Mediator) component of SOA suite has re-sequencing feature.

  • XSLT sender plugin fails to set JMS message properties

    When creating a JMS message to be put on a JMS queue, one of the XSLT for the XSLT automation plugin fails to set JMS string properties like: wlsmimehdrContent_Type
    The content on the xslt are listed below.
    The xslt in CPRLookupRequest.xslt sets:
    wlsmimehdrContent_Type
    SERVICE_SUFFIX
    OSM_EVENT_TYPE
    as expected, but the almost similar plugin NABSCreditEvalPluginRequest.xsl fails to set the same string JMS properties.
    I'm looking for a clue, because I'm clueless. I'm an XSLT newbie, so it might be something simple.
    The core part of the problem is put in bold in the listings below
    h2. CPRLookupRequest.xslt:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns="http://java.sun.com/products/oss/xml/ServiceActivation" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:oms="urn:com:metasolv:oms:xmlapi:1" xmlns:java="http://xml.apache.org/xalan/java" xmlns:xalan="http://xml.apache.org/xalan" xmlns:mslv-sa="http://www.metasolv.com/oss/ServiceActivation/2003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co="http://java.sun.com/products/oss/xml/Common" exclude-result-prefixes="oms java xsl xalan">
         <xsl:param name="automator"/>
         <xsl:param name="log"/>
         <xsl:param name="context"/>
         <xsl:param name="outboundMessage"/>
         <xsl:output method="xml" indent="yes" omit-xml-declaration="no" xalan:indent-amount="5"/>
         <xsl:template match="/">
              <xsl:apply-templates select="oms:GetOrder.Response">
                   <xsl:with-param name="SERVICE_SUFFIX" select="'CprDomain/Cpr'"/>
                   <xsl:with-param name="OSM_EVENT_TYPE" select="'CPR_LOOKUP'"/>
              </xsl:apply-templates>
         </xsl:template>
         <xsl:template match="oms:GetOrder.Response">
              <xsl:param name="SERVICE_SUFFIX" />
              <xsl:param name="OSM_EVENT_TYPE" />
    *<xsl:variable name="void2" select="java:setStringProperty($outboundMessage, '_wls_mimehdrContent_Type', 'text/xml; charset=UTF-8')" />*
    *<xsl:variable name="void3" select="java:setStringProperty($outboundMessage, 'SERVICE_SUFFIX', $SERVICE_SUFFIX)" />*
    *<xsl:variable name="void4" select="java:setStringProperty($outboundMessage, 'OSM_EVENT_TYPE', $OSM_EVENT_TYPE)" />*
              <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                   <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                        <m:getPersonByCPR xmlns:m="/Cpr">
                             <getPersonByCprRequestInfo xmlns:n1="java:dk.tdc.soa.cpr.extern.datatypes" xsi:type="n1:GetPersonByCprRequestInfo">
                                  <applicationId xsi:type="xsd:string"><xsl:text>CPR</xsl:text></applicationId>
                                  <cprNumber xsi:type="xsd:string"><xsl:value-of select="oms:_root/oms:cpr" /></cprNumber>
                             </getPersonByCprRequestInfo>
                        </m:getPersonByCPR>
                   </env:Body>
              </env:Envelope>
         </xsl:template>
    </xsl:stylesheet>
    h2. NABSCreditEvalPluginRequest.xsl
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" exclude-result-prefixes="oms java xsl xalan"
         xmlns="http://java.sun.com/products/oss/xml/ServiceActivation"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:oms="urn:com:metasolv:oms:xmlapi:1"
         xmlns:java="http://xml.apache.org/xalan/java"
         xmlns:xalan="http://xml.apache.org/xalan"
         xmlns:mslv-sa="http://www.metasolv.com/oss/ServiceActivation/2003"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:co="http://java.sun.com/products/oss/xml/Common">
         <xsl:param name="automator"/>
         <xsl:param name="log"/>
         <xsl:param name="context"/>
         <xsl:param name="outboundMessage"/>
         <xsl:template match="/">
              <xsl:apply-templates select="oms:GetOrder.Response">
                   <xsl:with-param name="SERVICE_SUFFIX" select="'/APILink/CreditServices'"/>
                   <xsl:with-param name="OSM_EVENT_TYPE" select="'NABS_CREDIT_EVAL'"/>
              </xsl:apply-templates>
         </xsl:template>
         <xsl:template match="oms:GetOrder.Response">
              <xsl:param name="SERVICE_SUFFIX"/>
              <xsl:param name="OSM_EVENT_TYPE"/>
    *<xsl:variable name="void2" select="java:setStringProperty($outboundMessage, '_wls_mimehdrContent_Type', 'text/xml; charset=UTF-8')"/>*
    *<xsl:variable name="void3" select="java:setStringProperty($outboundMessage, 'SERVICE_SUFFIX', $SERVICE_SUFFIX)"/>*
    *<xsl:variable name="void4" select="java:setStringProperty($outboundMessage, 'OSM_EVENT_TYPE', $OSM_EVENT_TYPE)"/>*
              <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                   <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                        <xsl:choose>
                             <xsl:when test="count(oms:_root/oms:cpr) + count(oms:_root/oms:birthDayPart) >0">
                                  <xsl:call-template name="private" />
                             </xsl:when>
                             <xsl:when test="count(oms:_root/oms:cvr) > 0">
                                  <xsl:call-template name="business" />
                             </xsl:when>
                        </xsl:choose>
                   </env:Body>
              </env:Envelope>
         </xsl:template>
         <xsl:template name="private">
              <m:validatePrivateCustomer xmlns:m="java:dk.tdc.apilink.logic.sessions.interfaces">
                   <validateCustomerCreditInput xsi:type="n1:ValidateCustomerCreditInput" xmlns:n1="java:dk.tdc.apilink.logic.datatypes">
                        <accountCategory xsi:type="java1:char" xmlns:java1="java:language_builtins">
                             <xsl:text>I</xsl:text>
                        </accountCategory>
                        <adrLocation xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:houseNo"/>
                        </adrLocation>
                        <adrStreetName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:streetName"/>
                        </adrStreetName>
                        <adrZip xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:zipCode"/>
                        </adrZip>
                        <xsl:choose>
                             <xsl:when test="count(oms:_root/oms:birthDayPart) > 0">
                                  <birthDate xsi:type="xsd:string">
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,1,4)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,5,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:birthDayPart,7,2)"/>
                                  </birthDate>
                             </xsl:when>
                             <xsl:otherwise>
                                  <birthDate xsi:type="xsd:string">
                                       <xsl:text>19</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,5,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,3,2)"/><xsl:text>.</xsl:text>
                                       <xsl:value-of select="substring(oms:_root/oms:cpr,1,2)"/>
                                  </birthDate>
                             </xsl:otherwise>
                        </xsl:choose>
                        <firstName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:firstName"/>
                        </firstName>
                        <lastBusinessName xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:lastName"/>
                        </lastBusinessName>
                   </validateCustomerCreditInput>
              </m:validatePrivateCustomer>
         </xsl:template>
         <xsl:template name="business">
              <m:validateCompanyCustomer xmlns:m="java:dk.tdc.apilink.logic.sessions.interfaces">
                   <validateCustomerCreditInput xsi:type="n1:ValidateCustomerCreditInput" xmlns:n1="java:dk.tdc.apilink.logic.datatypes">
                        <accountCategory xsi:type="java1:char" xmlns:java1="java:language_builtins">
                             <xsl:text>B</xsl:text>
                        </accountCategory>
                        <cvrNumber xsi:type="xsd:string">
                             <xsl:value-of select="oms:_root/oms:cvr"/>
                        </cvrNumber>
                   </validateCustomerCreditInput>
              </m:validateCompanyCustomer>
         </xsl:template>
    </xsl:stylesheet>

    I have written an UDF to determine the filename dynamicly:
    //write your code here
    String str = "SAPDATA-" + a + "ES" + ".xml";
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
    conf.put(FileName, str);
    return "";

  • Processing JMS messages one at a time

    Hi, I'm on a project where we're trying to synch Siebel and EBS Customer information. However there are certain events that can trigger Customer data being sent twice simultaneously; this produces problematic racing conditions when the Customer data is new to the receiving system.
    We're trying to throttle that by sending the messages to a JMS queue and process them one at a time, ie, we only want one instance of the JMS queue listener activated at any one time (we don't expect continuous load; mainly small bursts). Unfortunately I'm not sure which properties have to be changed to do this. I have created a JMS listener that consumes message, pretty much created by the adapter wizard. Currently the listener is spawning new instances just as fast as the messages come in causing EBS AppAdapter errors (can't create new Customer as it already exists).
    Here's the JMS operation definition:
    <pc:inbound_binding />
    <operation name="Consume_Message">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec"
    DestinationName="jms/CustomerInterface"
    UseMessageListener="false"
    PayloadType="TextMessage"
    OpaqueSchema="false" >
    </jca:operation>
    <input>
    <jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
    </input>
    </operation>
    </binding>
    This is the activation agent:
    <activationAgents>
    <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="ReceiveAccountJmsAdapter">
    <property name="portType">Consume_Message_ptt</property>
    </activationAgent>
    </activationAgents>
    This is the connector-factory:
         <connector-factory location="eis/CustomerInterface" connector-name="Jms Adapter">
              <config-property name="connectionFactoryLocation" value="jms/Queue/CustomerInterface"/>
              <config-property name="factoryProperties" value=""/>
              <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
              <config-property name="isTopic" value="false"/>
              <config-property name="isTransacted" value="false"/>
              <config-property name="username" value="oc4jadmin"/>
              <config-property name="password" value="********"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
    What else will I have to do to get this to work? Or will I be forced to deploy it to it's own BPEL domain where dspMaxThreads and dspMinThreads are set to 1?
    -- Just tried to put it on its own domain and change the dspMaxThreads/dspMinThreads and that didn't work.
    - Dale
    Message was edited by:
    Dale Earnest

    Hi Al,
    Yes - it possible.
    Please read the section Describing Message Ordering of the Adapter Life-Cycle Management of the Application Server Adapter Concepts Guide found here: http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b31005/life_cycle.htm#BABJIFJI
    Best regards
    Christian Damsgaard

  • JMS error - Failed to process message

    Hi everybody,
    I got the following JMS exception during message processing. I do not really understand what the root cause:
    sendMessage(Message) - Exception sending message in thread [0] : Failed to process message: Failed to add message=ID:b8591990-c1ab-1004-8625-3433a788d95f, destination=QueueName3 (5)
    javax.jms.JMSException: Failed to process message: Failed to add message=ID:b8591990-c1ab-1004-8625-3433a788d95f, destination=QueueName3 (5)
    at org.exolab.jms.messagemgr.MessageMgr.add(MessageMgr.java:199)
    at org.exolab.jms.server.ServerSessionImpl.send(ServerSessionImpl.java:205)
    at org.exolab.jms.server.net.RemoteServerSession.send(RemoteServerSession.java:152)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.exolab.jms.net.orb.DefaultORB$Handler.invoke(DefaultORB.java:553)
    at org.exolab.jms.net.orb.DefaultORB$1.run(DefaultORB.java:511)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:595)
    If someone has an idea, I would appreciate a lot!
    Thx!

    No, Iam just storing a simple message say "Hello" in the queue, the message is stored in the queue but it is shown in the below format when I opened that file in Notepad:
    UUªª ªªUU ‡ÿãÂ- ‡ 6›4•Z 6›4”öÿ Â
    Ô£9™ÿÿ¬h ÎM o „      fÂ6›4”ñ Trial4 com.sun.messaging.BasicQueue Hai ªªUU
    and soon Iam getting this error below:
    [Fatal Error] :1:1: Content is not allowed in prolog.
    JMSBC-E0713: Failed to process JMS message [com.stc.jmsjca.core.WTextMessageIn@1e377d5] in onMessage: Content is not allowed in prolog.
    org.xml.sax.SAXParseException: Content is not allowed in prolog.

  • Huge (14K pages) PDF Export to Excel gives "Save As Failed To Process" Message

    Using version 11.0.7.79, running Windows
    I have a massive (33.7MB, 13,900 page) PDF that I am trying to convert to HTML or Excel. When I try to export the file to either of these formats the export process will run for a number of minutes and then bomb out with the "Save As Failed To Process" message. I figured that the issue was with the file size, so I extracted a much smaller subset (200 pages) without a problem.
    Since it appears that file size is the problem, does anyone have a suggestion on how to approach the exporting of this huge file? What causes this error message? Any way to get around it (maybe online conversion of the file)?
    I could manually break it up into smaller files, but I'm hoping that there is 1) an easy way to segment the larger files into smaller files via a 3rd party solution (if needed) or 2) another way to export the huge PDF in one fell swoop. On point 1, I don't know if there is a solution that will automatically segment larger PDF's into 500 page segments per PDF file.
    For context, I am brand new to Acrobat Pro, so there could be a practical solution that I am not aware of yet. Thanks in advance for any help you can offer!

    Yea, this approach is not going to work. Even when I break these down into 1,000 page, 2MB files I get the same "Save As Failed To Process" error message. What causes this message? Not enough memory? How can I resolve it?
    It just doesn't make sense that I can't export basic data to Excel when the actual excel content for 1,000 pages will probably be less that 2MB once it is in Excel. I saved a sample 10 pages and it was 18KB. 100 sample pages was 123KB. I would expect Acrobat to be able to convert these files when I break them down into 1,000 page increments.
    Are there any settings within Acrobat that I should be looking at adjusting? It just seems ridiculous that it is this hard to get Acrobat to do a very basic export for what seems to be a reasonable sized file.

  • JMS - PI - IDoc scenario: possible to disable check for duplicate JMS message ID?

    Dear all,
    we have a scenario JMS - PI - IDoc. We are on 7.4 SP 7 AEX.
    Once and again we get this error in PI Logs
    com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(MessageFilterContext filterCtx)
    Duplicated and already processed JMS message with JMSMessageID ID:414d512053415050523120202020202053f0f4852000fb39 and XI message id b0beffdbcee64c2605779eaacf27b335 detected.
    We are currently investigating the error and it seems that the duplicate message IDs already exist on the JMS (MQ) side. The messages with the same ID reside in the same queue but have different payloads, so really are different messages
    While it's certainly true that we need to get rid of those duplicate IDs in the long run, I'd like to ask if it is possible to tackle the problem from both sides.
    My sender JMS Adapter looks like this:
    Transactional JMS Session = Checked
    Set PI Message ID (MessageID) to = GUID
    Set PI conversation ID (ConversationID) to = No Value
    Enable Duplicate Handling = Unchecked
    Prefix Channel ID = Unchecked
    --> Is there any way to tell PI to just ignore the duplicate JMS ID and continue processing?
    Many thanks
    Kind regards
    Jens

    Hi Jens - Please have a look at the below note if it helps.
    If you want the duplicate messages received from different channels (that is JMS Messages with the same Message ID) to be processed as a distinct JMS messages and not as duplicate messages, select Prefix Channel ID to JMS Message ID
    Reference :
    Configuring the Sender JMS Adapter - Advanced Adapter Engine - SAP Library

  • TransactionRolledbackLocalException in JMS messaging application

    Hi, I have a message driven bean (MDB) that gives the following error and I'm unable to resolve it. Any help would be appreciated. Thanks.
    [1/18/06 15:17:44:977 PST] 7d9913e7 SystemOut O Exception occurred inside AppLogMDBean: java.lang.NullPointerException
    [1/18/06 15:17:44:986 PST] 7d9913e7 ServerSession W WMSG0031E: Exception processing JMS Message for MDB AppLogReceiverMDB, JMS
    Destination jms/appLogQueue : javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJ
    BException
    com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java(Compiled Code))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrat
    egy.java(Compiled Code))
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java(Compiled Code))
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
    javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSIException(LocalExceptionMappingStrategy.java(Compiled Cod
    e))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java(Compiled Code))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrat
    egy.java(Compiled Code))
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java(Compiled Code))
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
    this is the code for the onMessage function of the bean
    public void onMessage(javax.jms.Message msg)
              int executeStatus          = -1;
              Connection con               = null;
              DataSource ds               = null;
              String dataSourceName     = null;
              PreparedStatement stmt     = null;
              MapMessage mapMessage     = null;
              String sqlStatement          = null;
              Properties properties;
              CommonPropertiesHelper propertyHelper;
              try{
                   mapMessage = (MapMessage)msg;
                   propertyHelper = CommonPropertiesHelper.getInstance("EGOVJournal.properties");
                   properties = propertyHelper.getProperties();
                   sqlStatement = properties.getProperty("INSERT_VIRR052U_APP_LOG");
                   dataSourceName = properties.getProperty("DATA_SOURCE");
                   if ( (sqlStatement != null) && (dataSourceName != null)){
                        UserTransaction transaction = fMessageDrivenCtx.getUserTransaction();
                        transaction.begin();
                        javax.naming.InitialContext ctx = new javax.naming.InitialContext();
                        ds = (javax.sql.DataSource) ctx.lookup(dataSourceName);
                        con = ds.getConnection();
                        if (con != null){
                             int x = 1;
                             stmt = con.prepareStatement(sqlStatement);
                             String logId     = mapMessage.getString("LOG_ID");
                             if (logId.length() > 40)
                                  logId = logId.substring(0,39);
                             String jnlId     = mapMessage.getString("JOURNAL_ID");
                             if (jnlId.length() > 40)
                                  jnlId = jnlId.substring(0,39);
                             String appName     = mapMessage.getString("APPLICATION_NAME");
                             if (appName.length() > 30)
                                  appName = appName.substring(0,29);
                             String logLevel     = mapMessage.getString("LOGGING_LEVEL");
                             if (logLevel.length() > 2)
                                  logLevel = logLevel.substring(0,1);
                             String msgName     = mapMessage.getString("MESSAGE_NAME");
                             if(msgName.length() > 100)
                                  msgName = msgName.substring(0,99);
                             String msgDesc     = mapMessage.getString("MESSAGE_DESCRIPTION");
                             if (msgDesc.length() > 1800)
                                  msgDesc = msgDesc.substring(0,1799);
                             stmt.setObject(x,logId);
                             x++;
                             stmt.setObject(x,jnlId);
                             x++;
                             stmt.setObject(x,appName);
                             x++;
                             stmt.setObject(x,logLevel);
                             x++;
                             stmt.setObject(x,msgName);
                             x++;
                             stmt.setObject(x,msgDesc);
                             x++;
                             // Execute the Prepared Statement
                             executeStatus = stmt.executeUpdate();
                             stmt.close();
                             con.close();
                             transaction.commit();
                        else{
                             System.out.println("Connection is null inside AppLogMDBean");
                   else{
                        System.out.println("Either sql or dataSource is null inside AppLogMDBean. Can't continue.");
              catch(NamingException e){
                   System.out.println("NamingException occurred inside AppLogMDBean: " + e);
              catch(JMSException e){
                   System.out.println("JMSException occurred inside AppLogMDBean: " + e);
              catch(Exception e){
                   System.out.println("Exception occurred inside AppLogMDBean: " + e);
              finally{
                   try{
                        if(stmt!=null){
                             stmt.close();
                             stmt = null;
                        if(con != null){
                             con.close();
                             con = null;
                   catch(Exception e){
                        System.out.println("Exception occurred inside AppLogMDBean in finally block : " + e);
         }

    Hi, I have a message driven bean (MDB) that gives the following error and I'm unable to resolve it. Any help would be appreciated. Thanks.
    [1/18/06 15:17:44:977 PST] 7d9913e7 SystemOut O Exception occurred inside AppLogMDBean: java.lang.NullPointerException
    [1/18/06 15:17:44:986 PST] 7d9913e7 ServerSession W WMSG0031E: Exception processing JMS Message for MDB AppLogReceiverMDB, JMS
    Destination jms/appLogQueue : javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJ
    BException
    com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java(Compiled Code))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrat
    egy.java(Compiled Code))
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java(Compiled Code))
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
    javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSIException(LocalExceptionMappingStrategy.java(Compiled Cod
    e))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java(Compiled Code))
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrat
    egy.java(Compiled Code))
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java(Compiled Code))
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java(Compiled Code))
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
    this is the code for the onMessage function of the bean
    public void onMessage(javax.jms.Message msg)
              int executeStatus          = -1;
              Connection con               = null;
              DataSource ds               = null;
              String dataSourceName     = null;
              PreparedStatement stmt     = null;
              MapMessage mapMessage     = null;
              String sqlStatement          = null;
              Properties properties;
              CommonPropertiesHelper propertyHelper;
              try{
                   mapMessage = (MapMessage)msg;
                   propertyHelper = CommonPropertiesHelper.getInstance("EGOVJournal.properties");
                   properties = propertyHelper.getProperties();
                   sqlStatement = properties.getProperty("INSERT_VIRR052U_APP_LOG");
                   dataSourceName = properties.getProperty("DATA_SOURCE");
                   if ( (sqlStatement != null) && (dataSourceName != null)){
                        UserTransaction transaction = fMessageDrivenCtx.getUserTransaction();
                        transaction.begin();
                        javax.naming.InitialContext ctx = new javax.naming.InitialContext();
                        ds = (javax.sql.DataSource) ctx.lookup(dataSourceName);
                        con = ds.getConnection();
                        if (con != null){
                             int x = 1;
                             stmt = con.prepareStatement(sqlStatement);
                             String logId     = mapMessage.getString("LOG_ID");
                             if (logId.length() > 40)
                                  logId = logId.substring(0,39);
                             String jnlId     = mapMessage.getString("JOURNAL_ID");
                             if (jnlId.length() > 40)
                                  jnlId = jnlId.substring(0,39);
                             String appName     = mapMessage.getString("APPLICATION_NAME");
                             if (appName.length() > 30)
                                  appName = appName.substring(0,29);
                             String logLevel     = mapMessage.getString("LOGGING_LEVEL");
                             if (logLevel.length() > 2)
                                  logLevel = logLevel.substring(0,1);
                             String msgName     = mapMessage.getString("MESSAGE_NAME");
                             if(msgName.length() > 100)
                                  msgName = msgName.substring(0,99);
                             String msgDesc     = mapMessage.getString("MESSAGE_DESCRIPTION");
                             if (msgDesc.length() > 1800)
                                  msgDesc = msgDesc.substring(0,1799);
                             stmt.setObject(x,logId);
                             x++;
                             stmt.setObject(x,jnlId);
                             x++;
                             stmt.setObject(x,appName);
                             x++;
                             stmt.setObject(x,logLevel);
                             x++;
                             stmt.setObject(x,msgName);
                             x++;
                             stmt.setObject(x,msgDesc);
                             x++;
                             // Execute the Prepared Statement
                             executeStatus = stmt.executeUpdate();
                             stmt.close();
                             con.close();
                             transaction.commit();
                        else{
                             System.out.println("Connection is null inside AppLogMDBean");
                   else{
                        System.out.println("Either sql or dataSource is null inside AppLogMDBean. Can't continue.");
              catch(NamingException e){
                   System.out.println("NamingException occurred inside AppLogMDBean: " + e);
              catch(JMSException e){
                   System.out.println("JMSException occurred inside AppLogMDBean: " + e);
              catch(Exception e){
                   System.out.println("Exception occurred inside AppLogMDBean: " + e);
              finally{
                   try{
                        if(stmt!=null){
                             stmt.close();
                             stmt = null;
                        if(con != null){
                             con.close();
                             con = null;
                   catch(Exception e){
                        System.out.println("Exception occurred inside AppLogMDBean in finally block : " + e);
         }

  • How to test BPEL Process that starts with a pick consuming a JMS message

    Hi,
    We are using App Server v 10.1.3.3.0 and attempting to test a BPEL process which starts with a pick operation which is awaiting a JMS message on a specific queue.
    We are using the Oracle JMS adapter to achieve this.
    Is there any way in which this particular configuration can be easily tested using the BPEL testing framework? I have problems when I write the first initiate XML statement in my test case (stack trace below)
    <2011-01-27 10:23:47,028> <ERROR> <ProvisioningInterface.collaxa.cube.bpeltest> test run failed!
    ORABPEL-20011
    Instance initiation error.
    An error occurred while launching an instance for suite "BasicTest", test "baseline.xml".
    Please examine the log file for details or contact the system administrator.
    at com.collaxa.cube.engine.test.BPELTestRunManager.initiate(BPELTestRunManager.java:218)
    at com.collaxa.cube.ejb.impl.BPELTestBean.runSuites(BPELTestBean.java:625)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Unfortunately, there are no further details or any example I can see which simulate the kind of setup I have for my test.
    Any help much appreciated,
    Kind Regards,
    Colin.

    Hi,
    I assume you mean the JMS example under the $OH BPEL examples area. Unfortunately, this only shows how to get a BPEL process kicked off by awaiting a JMS message - but there is no test code there! There are specific examples which show off the testing framework facilities but it appears that all the examples which use async type of interactions are in the middle of a process which is kicked off by a normal synchronous client interaction.
    Any further help much appreciated.
    Colin.

  • Oracle 10G JMS error : Failed to handle dispatch message ... exception ORABPEL-05002

    Hi All,
    We are using a JMS adapter as partner link in a BPEL process to produce messages to JMS Queue.
    We are getting an error while producing a message to a JMS Queue.
    The error comes for 1 or 2 instances among 5 to10 intsances. (all these instances ran with in 1 or 2 seconds).
    We are using Oracle 10G SOA suite.
    This error is getting in the Production environment.
    The error is as follows (took error from server log).
    Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{summary=file:/sw/appaia/product/SOA/bpel/domains/default/tmp/.bpel_CurrencyExchangeListEbizJMSProducer_1.0_4ec528ec93a8a6ff0278fab9701dcc71.tmp/CurrencyExchangeListEbizJMSProducerV1.wsdl [ Produce_Message_ptt::Produce_Message(OutputParameters) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: Adapter Framework unable to create outbound JCA connection.
    file:/sw/appaia/product/SOA/bpel/domains/default/tmp/.bpel_CurrencyExchangeListEbizJMSProducer_1.0_4ec528ec93a8a6ff0278fab9701dcc71.tmp/CurrencyExchangeListEbizJMSProducerV1.wsdl [ Produce_Message_ptt::Produce_Message(OutputParameters) ] - : The Adapter Framework was unable to establish an outbound JCA connection due to the following issue: oracle.j2ee.connector.proxy.ProxyInterceptException: javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback: null [Caused by: RollbackException: Transaction has been marked for rollback: null]
    ; nested exception is:
    ORABPEL-12511
    Adapter Framework unable to create outbound JCA connection.
    I tried the below JMS tunings with differnt combination, but no improvement.
                <property name="useJCAConnectionPool">true</property>
                <property name="maxSizeJCAConnectionPool">500</property>
                <property name="retryMaxCount">10</property>
                <property name="retryInterval">60</property>
    Please let me know if any other logs or any other information is required.
    Thanks,
    Pershad

    sorry, I forgot the below things which I tried to tune the JMS.
    <property name="retryMaxCount">10</property>
    <property name="retryInterval">60</property>
    <property name="useJCAConnectionPool">true</property>
    <property name="maxSizeJCAConnectionPool">500</property>
    Thanks.

  • How to read JMS message properties from BPEL or BPMN process

    Hi all,
    I have a JMS Adapter that consumes messages from a remote ActiveMQ queue and I don't find the way the get the properties of the JMS message as I would like to map them in BPEL or BPMN process variable. I only manage to get the content of the message.
    I've also read that if using a MapMessage, one of the map entry can be mapped directly and that the other map entries go to jca.jms.Map.xxxx where xxxx is key of the map entry.
    But how can I map those "jca.jms.Map.xxxx" properties on process variables ? and how to map JMS Properties (that seem to be mapped on jca.jms.JMSProperty.xxxx) to process variables ?
    I use SOA Suite version : 11.1.1.4.0
    Thanks for your help

    SOA Suite 11g - how to set/get JMS headers ?

  • SMS_DISCOVERY_DATA_MANAGER Message ID 2636 and 620. Discovery Data Manager failed to process the discovery data record (DDR)

    Hi
    I'm seeing this critical error on my primary.
    SMS_DISCOVERY_DATA_MANAGER Message ID 2636 and 620. 
    Discovery data manager failed to process the discovery data record (DDR)"D:\Prog.....\inboxes\auth\ddm.box\userddrsonly\adu650dh.DDR", because it cannot update the data source.
    Where these ddr's are actually under ddm.box\userddrsonly\BAD_DDRS folder
    I see a ton of DDR files in that folder. Not sure if I can delete them, so I moved them to a temp folder. AD User discovery keeps generating them.
    Any help ?
    Thanks
    UK
    

    Check the ddm.log file for more information.
    My Blog: http://www.petervanderwoude.nl/
    Follow me on twitter: pvanderwoude

  • Sender jms adapter-archiving before processing the message

    Hi,
    Do we have any option in Sender JMS adapter to archive the message before processing the message?
    I have searched in sender JMS adapter (XI7.0) settings, but couldn't find any option.
    My assumption is whether any option provided in configuration setting of adapter engine or any other alternatives.
    Thanks,
    Srini.

    Hi Srini.
    Here is the code. But you may prefer the EAR module, just for deploy. I need your email to send it to you.
    If you want to create it yourself follow the steps in this guide and paste the code:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b918e
    When you configure the module in the JMS sender communication channel you have to spedify 2 parameter for the log file location:
    "file.path" (XI server file system path) and "file.name"
    CODE:
    package com.bfa.af.modules;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    import javax.ejb.CreateException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import com.sap.aii.af.mp.module.Module;
    import com.sap.aii.af.mp.module.ModuleContext;
    import com.sap.aii.af.mp.module.ModuleData;
    import com.sap.aii.af.mp.module.ModuleException;
    import com.sap.aii.af.ra.ms.api.Message;
    @author ibermatica
    public class BFATraceModule implements SessionBean, Module {
         private SessionContext myContext;
         public void ejbRemove() {
         public void ejbActivate() {
         public void ejbPassivate() {
         public void setSessionContext(SessionContext context) {
              myContext = context;
         public void ejbCreate() throws CreateException {
         public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException
              FileWriter outFile;
              try
                   Date date = new Date();
                   String filePath = moduleContext.getContextData("file.path");
                   String fileName = moduleContext.getContextData("file.name");
                   outFile = new FileWriter(filePath + System.getProperty("file.separator") + fileName, true);
              catch (IOException e)
                   e.printStackTrace();
                   throw new ModuleException(e);
              PrintWriter out = new PrintWriter(outFile, true);
              try
                   out.println("--- Start of message ---");
                   //Get message content.
                   Message data = (Message)inputModuleData.getPrincipalData();
                   if(data.getDocument() != null)
                        out.println(data.getDocument().getText());
                   else
                        out.println("Empty message.");
                   out.println("--- End of message ---");
                   out.println("Total characters: " + data.getDocument().getText().length());
              catch(Exception exc)
                   out.println(exc.toString());
              finally
                   if(out != null)
                        out.close();     
                   if(outFile != null)
                        try {
                             outFile.close();
                        } catch (IOException e1) {
                             throw new ModuleException(e1);
              return inputModuleData;

  • How to send JMS Message from a BPM Process

    Hi All
    I have small query regarding sending JMS Message from a bpm process. Is it possible to send JMS message from one bpm process to another bpm process.
    I have a scenario in which I need to send a JMS message to a queue where another process is listening on that queue and as soon as the message is received on the queue the process instance is created.
    I know how to listen for the JMS message on the queue, but I don't how to send a JMS message from a process.
    Also Can I create process by sending the Notification to the process instead of a JMS message. But the process to be created is not a subprocess i.e. Can notification be send accross different processes.
    Any information or example in this regard would be helpful.
    Thanks in advance
    Edited by: user9945154 on Apr 22, 2009 7:46 PM

    Hi,
    Here's one approach to sending JMS messages from an Oracle BPM process. If you're doing this just to send a message into another process, do not take this approach. It's far easier and quicker if you do this using the OOTB "send notification" logic.
    These steps describe how to do this using WebLogic. The steps would be different if you're using another ap server / JMS provider.
    1. Guessing you've already done this, but first expose the two required WebLogic jar files for JMS messaging as Java components in the External Resources. The two files for WebLogic are weblogic.jar and wljmsclient.jar” (located in the < WebLogic home directory > /weblogic/server/lib” directory).
    AquaLogic BPM JMS Queue Listener for WebLogic 8.1
    2. You've probably already done this, but add an External Resource to represent the J2EE container:
    • Name: “weblogicJ2EE” - this is important and will be used in the next step
    • Supported Type: “GENERIC_J2EE”
    • Initial Context Factory: “weblogic.jndi.WLInitialContextFactory”
    • URL: “t3://localhost:7001”
    • Principal: and Credentials: whatever userid and password you defined to access theWebLogic administrative console.
    3. Create the External Resource that represents the send queue configuration. In this example, I'm calling it “WebLogic Send Queue”. This is important - remember what you named it because you will use this name in the logic that sends the JMS message. This new External Resource is configured as:
    • J2EE: “weblogicJ2EE” (same name as the second External Resource you created)
    • Destination Type: “QUEUE”
    • Lookup Name: “weblogic.examples.jms.exampleQueue”
    • Connection Factory Lookup Name: “weblogic.examples.jms.QueueConnectionFactory”
    4. Here's the logic to send a Message to the Queue
    <pre class="jive-pre"><p />msg as String = "Hello World"
    jmsMsg as Fuego.Msg.JmsMessage
    msg = "<?xml version=\"1.0\"?><Msg>" + msg + "</Msg></xml>"
    jmsMsg = JmsMessage(type : JmsMessageType.TEXT)
    jmsMsg.textValue = msg
    sendMessage DynamicJMS
    using configuration = "WebLogic Send Queue",
    message = jmsMsg</pre>
    Note that the “sendMessage” method uses the configuration parameter “WebLogic Send Queue”. You previously created a JMS messaging service External Resource with this name in the third step.
    Again, please don't go this route if you're just using it to send notifications between processes,
    Dan

  • Failed to create a user with Mac Mini Server, the message "Failed to process the command writesettings" in the module "servermgr_sharing"

    Failed to create a user with Mac Mini Server, the message "Failed to process the command writesettings" in the module "servermgr_sharing"

    I have a Mac Mini with OS X Server 10.8.5 and Server 2.2.1 and have a problem to share the public folder.
    When I enter the Server application to indicate that I want to share the public folder on the network and assign user I get the following message appears
    And I can not share the folder.
    If I go from my i-mac get mac mini server view and access the public folder, but I can not open any of the files there.
    That I can do to fix this?
    thank you very much

Maybe you are looking for

  • LR broken: can't uninstall or reinstall because of 'missing Adobe_Lightroom.msi"

    LR2.1 has failed shortly after installation (ie it worked a few times) with a C++ Runtime error-- "Runtime Error. This application has requested the Runtime terminate it in an unusual way. Please contact the applications support team for further info

  • UME using SAP R/3 as Data Source

    Hi, We are trying to set User authentication to SAP R/3 system, not load balanced system, on the User Management Configuration values: Client=501, Userid=sapjsf, Password=pwd, sys id=RS1, Group and Message server= blank, Application server= server.co

  • Extend WPA Enterprise

    Does anyone know if there is any way I can connect my Time Capsule to my University wireless network? I live right opposite my university and if I put my laptop on my window sill I can connect to the wireless, but can't connect from my desk... I was

  • Where did the iPod shortcut button go when you double click the home button and scroll to the left?

    After upgrading to iOS 4.3.2 I have noticed that when I double click the home button the multitasking tray pops up when you scroll to the left the ipod shortcut is no longer there, it has been replaced by a safari shortcut. Is this right??

  • Cannot print PO created by deleted User ID

    Hi Gurus, May i know if there's a way how to print a PO if the User ID create the PO already deleted because he/she leave in the organization? We change the PO created by the deleted User ID and after that we can't print the PO, please suggest possib