JMS/MDB : message synch problem

We have a WL 8.1 FIFO based queue to which are attached a bunch of MDBs. These MDBs pull messages out of the queue, does some processing and put messages in another queue.
We would like to get the messages in the second queue in the same order in which they were picked up from the first queue.
But because the processing time is slightly different for each type of messages, sometimes some messages jump ahead of another one that was picked up earlier.
We are free to introduce other queues, or to use bridges etc. Can somebody suggest a solution.
( something like using destination key )
Thanks
--sony                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Hi,
if possible, try with "max-bean-in-free-pool=1".
note: it would be performance impact, as there would be single bean instance.
Thanks,
Qumar Hussain

Similar Messages

  • JMS - MDB, jboss deployment problem

    Hi everybody,
    I'm new to JMS/MDB and have following problem while deploying MDB under JBOSS:
    22:58:47,735 INFO [EjbModule] Deploying MyPublisher
    22:58:47,745 INFO [EjbModule] Deploying topicMessageBean
    22:58:47,795 WARN [StatelessSessionContainer] message-destination 'PhysicalTopic' has no jndi-name in jboss.xml
    22:58:47,845 INFO [ProxyFactory] Bound EJB Home 'MyPublisher' to jndi 'ejb/MyEj
    bReference'
    22:58:47,865 INFO [EJBDeployer] Deployed: file:/D:/DownLoads/ejb/JBoss/jboss-4.
    0.3/jboss-4.0.3/server/default/deploy/simplemessage.jar
    jboss.xml
    <jboss>
    <enterprise-beans>
    <message-driven>
    <ejb-name>topicMessageBean</ejb-name>
    <destination-jndi-name>topic/MyMDBTopic</destination-jndi-name>
    <mdb-connection-factory>
    <jndi-name>jms/MyTopicConnectionFactory</jndi-name>
    </mdb-connection-factory>
    </message-driven>
    <message-destination>
    <message-destination-name>PhysicalTopic</message-destination-name>
    <jndi-name>topic/MyMDBTopic</jndi-name>
    </message-destination>
    <session>
    <ejb-name>MyPublisher</ejb-name>
    <jndi-name>ejb/MyEjbReference</jndi-name>
    <resource-ref>
    <res-ref-name>jms/MyTopicConnectionFactory</res-ref-name>
    <jndi-name>jms/TopicConnectionFactory</jndi-name>
    <default-resource-principal>
    <name>guest</name>
    <password>guest</password>
    </default-resource-principal>
    </resource-ref>
    </session>
    </enterprise-beans>
    </jboss>
    ejb-jar.xml
    <ejb-jar>
    <display-name>MessageJAR</display-name>
    <enterprise-beans>
    <message-driven>
    <display-name>Topic Message Bean</display-name>
    <ejb-name>topicMessageBean</ejb-name>
    <ejb-class>MessageBean</ejb-class>
    <messaging-type>javax.jms.MessageListener</messaging-type>
    <message-selector></message-selector>
    <transaction-type>Container</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Topic</destination-type>
    <message-destination-link>PhysicalTopic</message-destination-link>
    </message-driven-destination>
    <activation-config>
    <activation-config-property>
    <activation-config-property-name>messageSelector</activation-config-property-name>
    <activation-config-property-value>NewsType = 'Sports' OR NewsType = 'Opinion'</activation-config-property-value>
    </activation-config-property>
    <activation-config-property>
    <activation-config-property-name>subscriptionDurability</activation-config-property-name>
    <activation-config-property-value>NonDurable</activation-config-property-value>
    </activation-config-property>
    </activation-config>
    </message-driven>
    <session>
    <display-name>MyPublisher</display-name>
    <ejb-name>MyPublisher</ejb-name>
    <home>PublisherHome</home>
    <remote>Publisher</remote>
    <ejb-class>PublisherBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jms/MyTopicConnectionFactory</res-ref-name>
    <res-type>javax.jms.TopicConnectionFactory</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    <message-destination-ref>
    <!--message-destination-ref-name>topic/TopicName</message-destination-ref-name-->
    <message-destination-ref-name>topic/MyMDBTopic</message-destination-ref-name>
    <message-destination-type>javax.jms.Topic</message-destination-type>
    <message-destination-usage>Produces</message-destination-usage>
    <message-destination-link>PhysicalTopic</message-destination-link>
    </message-destination-ref>
    <security-identity>
    <use-caller-identity/>
    </security-identity>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>topicMessageBean</ejb-name>
    <method-name>onMessage</method-name>
    <method-params>
    <method-param>javax.jms.Message</method-param>
    </method-params>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>MyPublisher</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>publishNews</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <message-destination>
    <message-destination-name>PhysicalTopic</message-destination-name>
    </message-destination>
    </assembly-descriptor>
    </ejb-jar>
    can somebody help???
    Zahid

    Hi,
    if possible, try with "max-bean-in-free-pool=1".
    note: it would be performance impact, as there would be single bean instance.
    Thanks,
    Qumar Hussain

  • JMS Adapter Message Selector Problem...

    Hi
    I have set the following in the invoke before producing the message and dropping on the queue
    <invoke name="Invoke_1" partnerLink="adapt"
    portType="ns1:Produce_Message_ptt"
    operation="Produce_Message"
    inputVariable="Invoke_1_Produce_Message_InputVariable"
    bpelx:inputHeaderVariable="Sender"/>
    On the receive side I have the message selector configured for the adapter as follows:
    <jca:operation
    ActivationSpec="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec"
    DestinationName="dattjndi"
    UseMessageListener="false"
    MessageSelector="Sender=AdaptationRequest"PayloadType="TextMessage"
    OpaqueSchema="false" >
    </jca:operation>
    Where AdaptationRequest is the value for the Sender variable which will be used to filter the message. But this does not work. the messages are still not consumed. What could be the problem?
    Thanks,
    Anil

    did you check the message selector section on
    http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/Message.html
    explains all the operators you can use and the correct syntax. Make a note of the case sensitivity.

  • Gmail and deleted messages synch problem

    First of all, sorry for my english
    I have few gmail accounts on my Bold. Imap is enabled on ALL gmail accounts of course.
    If i delete a message from web/pc(imap) this message is deleted on my bold ONLY if the account was set *MANUALLY*.
    By "manually" i mean enter a wrong email address in the email address field (with this BIS new version you cannot set manually a gmail address any more) and then modify it filling all fields with the correct settings, email address, imap server etc etc.
    If i setup a gmail address automatically, when i delete a message from web, it won't be deleted from my bold.
    Tried with and without gmail plugin. It seems that this happens only with old accounts, removed and restored but not 100% sure about that... i used to have all my gmail accounts set manually.
    Of course i tried to reset, wipe, send book services thousand of times etc etc. No way... only gmail accounts with manual settings are synch.
    Any solution if i want to use gmail plugin and i want my deleted messages to be synch?
    Thanks a lot, i really don't know what to do....
    Message Edited by Danielem on 09-23-2009 03:16 PM
    Message Edited by Danielem on 09-23-2009 03:16 PM

    hi, did you try pop3 gmail account ?
    and ıf you have problem yet ? you should your gsm operator support and you should want auto sync delete about your gmail account?.. because this is a sync problem and they manage your account only some matter, ı hope that they can help you, and can you tell us thnks lot of;=)
    best regard
    Blackberry support teams in linkedin ...join
    http://www.linkedin.com/groups?home=&gid=2785187&trk=anet_ug_hm
    For Russian
    http://www.linkedin.com/groups?gid=3183812&trk=anetsrch_name&goback=.gdr_1278482273982_1

  • Nokia Messaging Synch Problems

    About 7 days ago NM stopped synching my 4 email accounts (2x Gmail, 1x Yahoo 1x Hotmail). I reinstalled the NM software and made sure I had the latest firmware. Eventually after about 2 days NM started synching again. (sent email to Nokia support and it miraculously started within 30 minutes, even though they never responded to the email) However despite having the "remove older than" set at 1 month it only displays the current day and 3 previous days messages.  I have repeatedly reinstalled the the software but with no success.
    Have Nokia restricted us to 3 days of emails only ?
    Can anyone help with this issue ?
    Solved!
    Go to Solution.

    Messaging is a hit and miss product that is still very much Beta.  It has frequent downtimes.  You probably want a backup plan for getting and sending email.  My plan was to switch to a non Nokia product.

  • MDB / AQ / RA problem: message not dequeued when put by PL/SQL to AQ

    I’m facing the following problem: I have a setup a J2CA Resource Adapter for AQ (OEMS) and a MDB listener. As polling configuration I use the following:
    <config-property>
    <config-property-name>ListenerThreadMaxPollInterval</config-property-name>
    <config-property-value>250</config-property-value>
    </config-property>
    According to the spec, this configuration should make sure that the underlying the JMS implementation polls the queue (AQ) every 250 ms in order to check whether there are available message.
    When I send a message to the AQ using JMS, the message is dequeued within an acceptable time range.
    However, when PL/SQL code enqueues messages directly to the AQ things do not work well:
    1. When PL/SQL posts a message > 4096 kb (according to the spec messages > 4096 kb have to be posted in a different way, since a CLOB column is used) for the first time it takes about 4 minutes until the MDB picks it up. All subsequent messages are picked up immediately, which is not surprisingly since the documentation mentions that an adaptive strategy is used. 4 minutes is not acceptable for me.
    2. When PL/SQL posts a message < 4096 kb the message expires on the AQ-queue (even though it is a non-expirable message), without being picked up by the MDB.
    What do I do wrong? Help is needed and appreciated!

    With great pleasure I can announce 'a' solution for the problem stated. Apparently the JMS implementation expects certain JMS headers in the Oracle AQ message in order to fetch it from the AQ properly. The PL/SQL code, which caused the problem described in this post, looked like this:
    declare
    enqueue_options SYS.DBMS_AQ.enqueue_options_t;
    message_properties SYS.DBMS_AQ.message_properties_t;
    message_handle RAW (16);
    user_prop_array SYS.aq$_jms_userproparray;
    AGENT SYS.aq$_agent;
    header SYS.aq$_jms_header;
    MESSAGE SYS.aq$_jms_text_message;
    p_xml_intern_bericht                          varchar2(8000);
    p_len_message                                    number;
    begin
    --p_xml_intern_bericht :='bla';
    p_xml_intern_bericht :='test';
    p_len_message := LENGTH (p_xml_intern_bericht);
    dbms_output.put_line('->' ||p_len_message);
    IF p_len_message > 4000
    THEN
    MESSAGE := SYS.aq$_jms_text_message (header,p_len_message,NULL,p_xml_intern_bericht);
    ELSE
    MESSAGE :=SYS.aq$_jms_text_message (header,p_len_message,p_xml_intern_bericht,NULL);
         END IF;                                        
    DBMS_AQ.enqueue (queue_name => 'MY_AQ' ,
    enqueue_options => enqueue_options,
    message_properties => message_properties,
    payload => MESSAGE,
    msgid => message_handle
    COMMIT;
    end;
    After adding the required JMS headers as in the snipped below, the message was picked up immediately from the AQ:
    declare
    msg SYS.AQ$_JMS_TEXT_MESSAGE;
    msg_hdr SYS.AQ$_JMS_HEADER;
    msg_agent SYS.AQ$_AGENT;
    msg_proparray SYS.AQ$_JMS_USERPROPARRAY;
    msg_property SYS.AQ$_JMS_USERPROPERTY;
    queue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
    msg_props DBMS_AQ.MESSAGE_PROPERTIES_T;
    msg_id RAW(16);
    dummy VARCHAR2(4000);
    begin
    msg_agent := SYS.AQ$_AGENT('', null, 0);
    msg_proparray := SYS.AQ$_JMS_USERPROPARRAY();
    msg_proparray.EXTEND(1);
    msg_property := SYS.AQ$_JMS_USERPROPERTY('JMS_OracleDeliveryMode', 100, '2', NULL, 27);
    msg_proparray(1) := msg_property;
    msg_hdr := SYS.AQ$_JMS_HEADER(msg_agent,null,'MY_SCHEMA',null,null,null,msg_proparray);
    msg := SYS.AQ$_JMS_TEXT_MESSAGE(msg_hdr,null,null,null);
    msg.text_vc := 'test';
    msg.text_len := length(msg.text_vc);
    DBMS_AQ.ENQUEUE( queue_name => 'MY_AQ'
    , enqueue_options => queue_options
    , message_properties => msg_props
    , payload => msg
    , msgid => msg_id);     
    commit;
    end;     
    This solution was posted in the following blog: http://technology.amis.nl/blog/?p=2384. The environment in this blog is a Oracle XE database. The writer gets an ERROR when posting a message without adding the described JMS headers (see first pl/sql code snippet). Therefore he was forced to provide them in order to make AQ work for him.
    The remarkable thing is that in our environment (Oracle 10.2.0.x) posting messages without the necessary JMS headers do not result in errors. The AQ accepts them but the JMS listener remains silent or receives them after an unacceptable amount of time.
    This must definitely be a bug. Hope this information can help you to solve your PL/SQL AQ JMS problem.

  • Re: Constant Message Redelivery Problem

    You can get redelivery for other reasons as well. Redelivery occurs if the message is
              participating in a transaction, and the transaction fails for any reason.
              For example, if the MDB in turn calls an EJB which in
              turn calls JDBC then the tx becomes two-phase. If the JDBC call fails then the tx
              will roll back. Or if the tx times-out: the default tx timeout is 30 seconds, so if
              the MDB takes longer than 30 seconds then the tx will roll-back and message the will
              get redelivered.
              Even if the tx succeeds, in some cases you may have error states that re-enqueue the
              received message but let the transaction commit (WLI, BEA's integration product, can do
              this).
              This looks like the redelivery of a failed message, but is actually the delivery of a new
              version.
              Duplicates occur if a Queue MDB's descriptor actually points at a topic destination.
              Check for this one by comparing the JNDI name in config.xml against the
              descriptor destination type field...
              Tom
              sunshine wrote:
              > I encountered the same problem of repeat message delivery. In our situation, we are
              > using JMS JDBC Store and when the database goes down and comes back up, the MDB starts
              > processing messages but the messages keep recycling in the JMS Store.
              >
              > The MDB code tried catching all possible exceptions like RuntimeException and Exception.
              > None of these exceptions are logged. When we re-start the WL managed servers, those
              > messages in the JMS Store were flushed off.
              >
              > Any idea what caused the repeat message redelivery?? Thanks.
              >
              > Tom Barnes <[email protected]> wrote:
              > >Your MDB may be throwing a RuntimeException, which forces message
              > >redelivery. Put a try/catch/Throwable in the outermost scope of your
              > >onMessage() code to see if this is case.
              > >
              > >Note that in 6.1 and up you can configure redelivery delays, max redelivery
              > >counts and error destinations to alleviate this problem...
              > >
              > >Tom
              > >
              > >Toad wrote:
              > >
              > >> I have a message-driven bean listening on a message queue and everything
              > >> appears to work the first time the message is sent. The message is processed
              > >> and the OnMessage method returns without incident. There are no errors
              > >and
              > >> no exceptions are thrown by the JMS client or in the MDB itself. PROBLEM:
              > >> Message continually redelivered pegging the CPU at 100%. Inspection of
              > >the
              > >> JMSSTORE and JMSSTATE reveals messages still queued. Any ideas?
              > >
              

    And make sure that your MDB is not throwing Errors or RuntimeExceptions,
              as these don't necessarily get logged, but they cause rollbacks.
              Put a "try {} catch (RuntimeException re)
              { log; throw re; } catch (Error er) { log; throw er; }"
              around all the code within the MDB's "onMessage()" callback
              to see if this is happening.
              Manikyala Peddi wrote:
              > Hi,
              >
              > I have a MDB which is calling an EJB. The redelivery override period was set at 60 sec.
              >
              > Before completing the first message the same message is redelivered.The processing time in onMessage in MDB takes more than the Redelivery Override Period. Is there a way to prevent the delivery of the duplicate message before completing the first message.Iam using Weblogic 7.1
              >
              > Thanks
              >
              > Manikyala
              

  • JMS MDB manual rollback possible ?

    Hi,
    I want to know if it's possible to manually roll back a message if something goes wrong ?
    I have a Message Driven Bean that receives a message and sends it over http to another component. Now I want to make sure that my message isn't lost. So in case of an http timeout I want the message to be put back on the queue in front of following messages.
    As I read before, a message is removed from its JMS Queue in case the onMessage method of the bean completes, so in my code
    public void onMessage(Message message){
    try{
    //send message over http
    }catch(Exception e){
    //this is where I want the message to be roll-backed
    As it is now, if there is an http timeout, an axception will be catched, but the onmessage method will still be executed successfully, and the message will be removed from the queue, result, a loss of the message.
    is this possible with standard jms ?
    kind regards
    Bert

    It is certainly possible, but it depends on how your application is working.
    if you are working with beans: No problem, just set the MessageDrivenContext.SetRollBackOnly() -> rolls back the transaction! (in case of Container managed transaction), if you are using your own transactions, simply roll them back your self.
    If you are not using beans, you simply do not acknowledge your message, for JMS a message needs to be acknowledged before it assumes that it is delivered. So set your ACK_MODE to CLIENT_ACKNOWLEDGE and in case of an exception do not acknowledge it, otherwise, do acknowledge it.
    Since you are using a MDB the first solution should be used in your case.

  • JMS - MDB

    Hi everybody,
    I'm new to JMS/MDB and have following problem while deploying MDB under JBOSS:
    22:58:47,735 INFO [EjbModule] Deploying MyPublisher
    22:58:47,745 INFO [EjbModule] Deploying topicMessageBean
    22:58:47,795 WARN [StatelessSessionContainer] message-destination 'PhysicalTopic' has no jndi-name in jboss.xml
    22:58:47,845 INFO [ProxyFactory] Bound EJB Home 'MyPublisher' to jndi 'ejb/MyEj
    bReference'
    22:58:47,865 INFO [EJBDeployer] Deployed: file:/D:/DownLoads/ejb/JBoss/jboss-4.
    0.3/jboss-4.0.3/server/default/deploy/simplemessage.jar
    jboss.xml
    <jboss>
    <enterprise-beans>
    <message-driven>
    <ejb-name>topicMessageBean</ejb-name>
    <destination-jndi-name>topic/MyMDBTopic</destination-jndi-name>
    <mdb-connection-factory>
    <jndi-name>jms/MyTopicConnectionFactory</jndi-name>
    </mdb-connection-factory>
    </message-driven>
    <message-destination>
    <message-destination-name>PhysicalTopic</message-destination-name>
    <jndi-name>topic/MyMDBTopic</jndi-name>
    </message-destination>
    <session>
    <ejb-name>MyPublisher</ejb-name>
    <jndi-name>ejb/MyEjbReference</jndi-name>
    <resource-ref>
    <res-ref-name>jms/MyTopicConnectionFactory</res-ref-name>
    <jndi-name>jms/TopicConnectionFactory</jndi-name>
    <default-resource-principal>
    <name>guest</name>
    <password>guest</password>
    </default-resource-principal>
    </resource-ref>
    </session>
    </enterprise-beans>
    </jboss>
    ejb-jar.xml
    <ejb-jar>
    <display-name>MessageJAR</display-name>
    <enterprise-beans>
    <message-driven>
    <display-name>Topic Message Bean</display-name>
    <ejb-name>topicMessageBean</ejb-name>
    <ejb-class>MessageBean</ejb-class>
    <messaging-type>javax.jms.MessageListener</messaging-type>
    <message-selector></message-selector>
    <transaction-type>Container</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Topic</destination-type>
    <message-destination-link>PhysicalTopic</message-destination-link>
    </message-driven-destination>
    <activation-config>
                        <activation-config-property>
                        <activation-config-property-name>messageSelector</activation-config-property-name>
                        <activation-config-property-value>NewsType = 'Sports' OR NewsType = 'Opinion'</activation-config-property-value>
                        </activation-config-property>
                        <activation-config-property>
                        <activation-config-property-name>subscriptionDurability</activation-config-property-name>
                        <activation-config-property-value>NonDurable</activation-config-property-value>
                        </activation-config-property>
                   </activation-config>
    </message-driven>
    <session>
    <display-name>MyPublisher</display-name>
    <ejb-name>MyPublisher</ejb-name>
    <home>PublisherHome</home>
    <remote>Publisher</remote>
    <ejb-class>PublisherBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
         <res-ref-name>jms/MyTopicConnectionFactory</res-ref-name>
              <res-type>javax.jms.TopicConnectionFactory</res-type>
              <res-auth>Container</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
         </resource-ref>
         <message-destination-ref>
         <!--message-destination-ref-name>topic/TopicName</message-destination-ref-name-->
              <message-destination-ref-name>topic/MyMDBTopic</message-destination-ref-name>
              <message-destination-type>javax.jms.Topic</message-destination-type>
              <message-destination-usage>Produces</message-destination-usage>
              <message-destination-link>PhysicalTopic</message-destination-link>
         </message-destination-ref>
         <security-identity>
    <use-caller-identity/>
    </security-identity>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
         <container-transaction>
         <method>
              <ejb-name>topicMessageBean</ejb-name>
              <method-name>onMessage</method-name>
              <method-params>
              <method-param>javax.jms.Message</method-param>
              </method-params>
         </method>
         <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
         <method>
              <ejb-name>MyPublisher</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>publishNews</method-name>
         </method>
         <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <message-destination>
         <message-destination-name>PhysicalTopic</message-destination-name>
         </message-destination>
    </assembly-descriptor>
    </ejb-jar>
    can somebody help???
    Zahid

    Thanks for the reply.
    I'm not getting any errors. The MDB doesn't get invoked when a message is sent on the Topic its listening on.
    The deployment descriptors are given below:
    ejb-jar.xml
    <message-driven>
    <ejb-name>PkgMDB</ejb-name>
    <ejb-class>com.pkg.jms.PkgMDB</ejb-class>
    <transaction-type>Container</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Topic</destination-type>
    </message-driven-destination>
    </message-driven>
    orion-ejb-jar.xml
    <message-driven-deployment name="PkgMDB"
    destination-location="jms/PkgTopic"
    connection-factory-location="jms/PkgConFactory">
    <resource-ref-mapping name="jms/PkgTopic" />
    <resource-ref-mapping name="jms/PkgConFactory" />
    </message-driven-deployment>
    jms.xml
    <topic name="jms/PkgTopic" location="jms/PkgTopic">
    </topic>
    <topic-connection-factory name="jms/PkgConFactory" location="jms/PkgConFactory">
    </topic-connection-factory>
    web.xml
    <resource-ref>
    <res-ref-name>jms/PkgTopic</res-ref-name>
    <res-type>javax.jms.Topic</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    <resource-ref>
    <res-ref-name>jms/PkgConFactory</res-ref-name>
    <res-type>javax.jms.TopicConnectionFactory</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    Regards
    Ranga

  • Message Listener Problem (iDoc)

    I am receiving an iDoc successfully in the Message Listener within Mii.  I have created a Processing Rule for the Message Type and tied it to a simple BLS.  The BLS has an XML input parameter which is selected in the Processing Rule.
    The BLS simply maps the XML input parameter to an XML output parameter and that's it as I want to make sure communication is working before creating any BLS logic.
    The iDoc Message goes into failure status and this is what I get in the log:
    Unable to process request com.sap.jms.client.message.JMSObjectMessage@431f1d25
    [EXCEPTION]
    com.sap.xmii.bls.exceptions.TransactionLoadException: Unable to create transaction instance
    Any ideas why this is happening?

    After much searching and trial and error, I was able to locate the source of this problem.  While I was modifying the "Log Level" in the Processing Rule, someone else changed the Transaction Security to include the "SAP XMII Developer" role.  Once I remove this role from the BLS, the same symptom occurs. 
    It seems this is the only role that allows the Processing Rule to trigger the BLS's.  Is this hard coded somewhere in Mii that this role is required?  If so where can I find these types of requirements so I can avoid going through this for other Mii functionality in the future?
    Thanks

  • Error :- while accessing JMS topic messages in Design Studio

    Hi,
    Am getting this error while clicking update button in Design Studio to populate a dataobject using JMS Topic messages sent by oracle Bpel manager.
    IMessageSourceReceiver->messageReceive: javax.naming.NoInitialContextException: Cannot instantiate class: oracle.j2ee.rmi.RMIInitialContextFactory. Root exception is java.lang.ClassNotFoundException: oracle.j2ee.rmi.RMIInitialContextFactory
    Can you tell me where to find the class and how to use it to resolve the problem?
    P.S:-
    If you can provide any document how oracle BPEL process manager use JMS topic to send message to Oracle BAM and display in reports.
    Thanks in advance
    Cheers,
    Praveen G
    iSOFT R& D Pvt Ltd.
    [email protected]

    Hi,
    We are using BAM 10.1.3 against BPEL 10.1.2 and we cannot get it to work.
    We are also getting the error "javax.naming.NoInitialContextException: Cannot instantiate class: oracle.j2ee.rmi.RMIInitialContextFactory...." .
    Our startup paramters for Enterprise Source “Oracle (AS JMS and OJMS) looks like this:
    JMS*".;C:\OracleBAM\OC4J\j2ee\home\lib\jms.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jndi.jar;C:\OracleBAM\OC4J\j2ee\home\oc4j.jar;C:\OracleBAM\OC4J\j2ee\home\oc4jclient.jar;C:\OracleBAM\OC4J\j2ee\home\lib\oc4j-internal.jar;C:\OracleBAM\OC4J\j2ee\home\lib\ejb.jar;C:\OracleBAM\OC4J\j2ee\home\lib\servlet.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jta.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jms.jar;C:\OracleBAM\OC4J\j2ee\home\lib\javax88.jar;C:\OracleBAM\OC4J\j2ee\home\lib\javax77.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jmxri.jar;C:\OracleBAM\OC4J\j2ee\home\lib\jmx_remote_api.jar;C:\OracleBAM\OC4J\j2ee\home\lib\adminclient.jar;C:\OracleBAM\OC4J\j2ee\home\ojspc.jar;C:\OracleBAM\OC4J\j2ee\home\jazn.jar;C:\OracleBAM\OC4J\opmn\lib\optic.jar;C:\OracleBAM\OC4J\rdbms\jlib\aqapi.jar;"".;c:\TIBCO\JMS\clients\java\tibjms.jar;c:\TIBCO\JMS\clients\java\jms.jar;c:\TIBCO\JMS\clients\java\jndi.jar;c:\TIBCO\JMS\clients\java\jta-spec1_0_1.jar;c:\TIBCO\JMS\clients\java\jcert.jar;c:\TIBCO\JMS\clients\java\jnet.jar;c:\TIBCO\JMS\clients\java\jsse.jar;c:\TIBCO\JMS\clients\java\tibcrypt.jar;"".;C:\Program Files\IBM\WebSphere MQ\Java\lib\com.ibm.mq.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\com.ibm.mqjms.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\connector.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jms.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jndi.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\jta.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\providerutil.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\fscontext.jar;C:\Program Files\IBM\WebSphere MQ\Java\lib\ldap.jar;"".;C:\Program Files\SonicSoftware\SonicMQ\lib\sonic_Client.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\gnu-regexp-1.0.6.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\jaxp.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\xerces.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\tools.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\providerutil.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\fscontext.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\sslj.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\jsafe.jar;C:\Program Files\SonicSoftware\SonicMQ\lib\certj.jar;"".;C:\bea\weblogic700\server\lib\weblogic.jar;"".;C:\eGate\client\classes\stcjms.jar;C:\eGate\client\JRE\1.3\lib\ext\fscontext.jar;C:\eGate\client\JRE\1.3\lib\ext\providerutil.jar;C:\eGate\client\ThirdParty\sun\jms.jar;C:\eGate\client\ThirdParty\sun\jndi.jar;C:\eGate\client\ThirdParty\sun\jta.jar;"".;C:\JNDI-Directory_WebMethods\fscontext.jar;C:\JNDI-Directory_WebMethods\providerutil.jar;C:\JNDI-Directory_WebMethods\javax.jms.jar;C:\Program Files\webMethods6\Broker\lib\BrokerJMS60.jar;C:\Program Files\webMethods6\common\lib\client60.jar;C:\Program Files\webMethods6\Broker\lib\xerces.jar;"
    We are trying to get to our oc4j container on our BPEL server. We have the following settings on our created message sourcein BAM architect:
    Initial Context Factory: oracle.j2ee.rmi.RMIInitialContextFactory
    JNDI Service Provider URL: opmn:ormi://hostname:6003:OC4J_BPEL
    TopicConnectionFactory Name: java:comp/resource/ojms_ipl/TopicConnectionFactories/iplerror
    Topic Name: java:comp/resource/ojms_ipl/Topics/iplerror
    ojms_ipl refers to the datasource on our BPEL server that is defined in application.xml.
    Where is the class located?
    Best regards

  • TransactionRolledbackLocalException in JMS Embedded Messaging...

    We"re using two Message Driven Beans (say MDB1 and MDB2) and two EJBs (say EJB1 and EJB2) in a module in our project to implement JMS Embedded messaging on WAS5.1 (using WSAD5.1.2 environment)
    The MDB2"s onMessage() listens to a queue written by EJB1 and MDB1"s onMessage() also listens to a queue written by EJB1.
    Flow:-
    EJB1 starts first and writes a queue to the MDB2, which asynchronously invokes the EJB2 and this EJB2, after calls to a few utility classes invokes EJB1. Then, EJB1, with the Vector input from EJB2 writes a queue to be captured by MDB1.
    The first flow of EJB1 --> MDB2 works fine, but the second part (EJB1 --> MDB1) is failing and the MDB2 is also getting shut down because of this. The cause of this is a <b>javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException</b>
    Can someone who"s already faced such a challege kindly help?
    This is the stack trace:- (for sake of clarity, MSSPriceChangeAlertMDB in the below trace is the MDB2)
    [8/9/05 19:55:11:951 EDT] 234d1b6e RegisteredRes E WTRN0063E: An illegal attempt to commit a one phase capable resource with existing two phase capable resources has occurred.
    [8/9/05 19:55:14:467 EDT] 2a50db6e JMSExceptionL E WMSG0018E: Error on JMSConnection for MDB MSSPriceChangeAlertMDB , JMSDestination jms/MarketDataQueue : javax.jms.JMSException: MQJMS1016: an internal error has occurred. Please contact your system administrator. Detail: {0}
    at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:540)
    at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1583)
    at java.lang.Thread.run(Thread.java:568)
    ---- Begin backtrace for Nested Throwables
    java.lang.NullPointerException
    at com.ibm.mq.jms.MQQueueAgentThread.processMessage(MQQueueAgentThread.java:368)
    at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1557)
    at java.lang.Thread.run(Thread.java:568)
    [8/9/05 19:55:14:576 EDT] 2a50db6e JMSExceptionL E WMSG0057E: Error on JMSConnection for MDB MSSPriceChangeAlertMDB , JMSDestination jms/MarketDataQueue , JMS Linked Exception : java.lang.NullPointerException
    at com.ibm.mq.jms.MQQueueAgentThread.processMessage(MQQueueAgentThread.java:368)
    at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1557)
    at java.lang.Thread.run(Thread.java:568)
    [8/9/05 19:55:14:654 EDT] 2a50db6e MDBListenerIm I WMSG0043I: MDB Listener MarketDataAlertListener stopped for JMSDestination jms/MarketDataQueue
    [8/9/05 19:55:14:982 EDT] 234d1b6e ServerSession W WMSG0031E: Exception processing JMS Message for MDB MSSPriceChangeAlertMDB, JMSDestination jms/MarketDataQueue : javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
    com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:159)
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrategy.java:293)
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3128)
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
    javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSIException(LocalExceptionMappingStrategy.java:96)
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:165)
    at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrategy.java:293)
    at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3128)
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
    at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
    at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
    Thanks a ton in advance!

    hi
    I am using two MDb nad about 5 Ejb's..thw transaction attribute for the MDB are set to Required..and for the EjB it is set to Not Supported.Moreover i am using a CLi datasource...but i am getting this error:::::
    ServerSession W WMSG0031E: Exception processing JMS Message for MDB AggregatedMT598PosnSwiftReader, JMSDestination jms/accounting/ACCT.MT598_535.CORR.OUT.QUEUE : javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
    com.ibm.ws.exception.WsEJBException
         at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:159)
         at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrategy.java:293)
         at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3159)
         at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
         at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
         at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:375)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:936)
    javax.ejb.TransactionRolledbackLocalException: ; nested exception is: com.ibm.ws.exception.WsEJBException
         at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSIException(LocalExceptionMappingStrategy.java:96)
         at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:165)
         at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapCSITransactionRolledBackException(LocalExceptionMappingStrategy.java:293)
         at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3159)
         at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
         at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
         at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:375)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:936)
    PLz help..its kind of urgent

  • 6230i Synch problems

    Nokia 6230i
    Windows XP (Service packs 1 & 2)
    PC suite 6.0 (from CD) attempted download of 6.81 from website.
    I've been having some synch problems. Occasionally I found that after a synch all my contacts would appear twice in Outlook. Happened again last night. I deleted all the repetitions in Outlook & deleted all the contacts on the phone thinking to start afresh. Disaster. When I synchronised again, all that appeared on the phone was a random selection of contacts - about 20 - rather than all the 400 in Outlook.
    So... I deleted PC suite & decided to reinstall from the CD. I got this error message. "The synchroniser is unable to load the interface() required to support sychnonising with Outlook 2." Deleted again & tried downloading 6.81 from the website. Got this error message. "Error 1335. The cabinet file 'Data1.cab' required for this installation is corrupt & cannot be used." When I tried ignoring that I got "Internet error 2350" & could proceed no further.
    The data1.cab file seems to be something to do with Adobe Acrobat reader so I tried re-installing that - but same error messages. I also get the same error message if I try to download the latest version as an upgrade to the old version.
    Can anyone out there help?
    Chris

    I listed just folders (and one of the folders is "username" and that is of course if you have a username, if not, then skip that level).
    just open windows explorer and scroll step by step to
    My computer -
    C:Local Disk)-
    \Documents and Settings
    (\username\)
    Application Data
    \Nokia
    \PCSync
    \SynchData
    \your phone IMEI nr
    And under that you should find files with extension
    .SML
    .lml
    delete those. Then try syncing againMessage Edited by manta on 07-Sep-2006
    05:12 PM

  • Asynchronous - JMS, MDB design

    Hi,
    I am writing a portion of a J2EE application and would like to perform asynchronous processing. Im new to JMS. Following are some questions i have:
    - How does JMS process message, queue and MDB? I mean when a message is send to a queue, how does it know which MDB should be receiving the message?
    - Im using JBoss which has JMS support. Under normal circumtances, is it all right to use the default queue that comes with the JMSProvider (i.e. the application server in this case)? Or should we write some other codes for create queue?
    - In terms of design, should one MDB only performs a single function? The reason for this is that a MDB seems to only have a single 'onMessage' method?
    Thanks much.
    Veny

    - How does JMS process message, queue and MDB? I mean when a message is send to a queue, how does it know which MDB should be receiving the message?
    Beans are randomly selected from pool, very much similar to 'stateless session bean'.
    - I'm using JBoss which has JMS support. Under normal circumstances, is it all right to use the default queue that comes with the JMSProvider (i.e. the application server in this case)? Or should we write some other codes for create queue?
    You may want to create your own app specific queue(s) unless you are writing 'Hello MDB' application.
    - In terms of design, should one MDB only perform a single function? The reason for this is that a MDB seems to only have a single 'onMessage' method?
    MDBs are never invoked by client directly and can not maintain conversational state for any specific client. When container receives any message it simply calls 'onMessage' on a randomly picked MDB and pass the message. There is no need and use of any other methods - isn't it?
    Cheers,
    Sudhaker Raj
    http://thej2ee.com

  • JMS Server Message Buffer Size & Thresholds and Quotas settings

    On WLS10MP1,
    For persistent messages:
    1.Does "JMS Server Message Buffer" setting serve the same purpose as "Bytes Threshold High" under Threshold ?
    2.If no, can someone explain the difference pls.
    Many thanx,

    Message Buffer Size relates to the number of message the JMS server keeps in the memory. The value of this determines when the server should start paging the message out of memory to a persistence store. So this is directly related with the memory/storage issue and the size of messages.
    Bytes Threshold High relates to the performance of the JMS server. When this limit is reached JMS server starts logging the message and may even instruct he producer to slow down the message input.
    So the if you get Bytes Threshold High messages that means you should check on your consumer (MDB who is picking up messages from the que), and try to increase its performance.
    However if your Message Buffer Size is crossing limits then you should think of increasing the momory so that more messages can be kept in memory and disck IO can be reduce.
    Anyone wants to add something more to it?

Maybe you are looking for