Problem in JMS RollBack

Hi,
Our scenario is to En-queue all the request if the service is unavailable. We have defined the quota size for the JMS Queue as 100. After the Quota size is reached the Weblogic will throw a error to about the queue full to the invoking application. The problem currently we are facing is after the queue size has reached its full capacity the weblogic sends the invoking application the response in case of service down. But after the service is up and running the messages in the queue are not consumed by the service.
Below are the Logged details:
<Aug 8, 2011 5:24:05 AM EDT> <Info> <EJB> <ussbsoadev01> <osb_server1> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <6f1df4530fc51bf1:-2f212fa5:131a870c228:-7ffd-000000000000012a> <1312795445639> <BEA-010213> <Message-Driven EJB: RequestEJB-3648719559143300741--42d05813.1319974a3a5.-7fd1's transaction was rolled back. The transaction details are: Xid=BEA1-08A8CD91E97316C33200(51290702),Status=Rolled back. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException: setRollbackOnly called on transaction],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=122,seconds left=60,XAServerResourceInfo[WLStore_cog_osb_domain_FileStore]=(ServerResourceInfo[WLStore_cog_osb_domain_FileStore]=(state=rolledback,assigned=osb_server1),xar=WLStore_cog_osb_domain_FileStore115319941,re-Registered = false),SCInfo[cog_osb_domain+osb_server1]=(state=rolledback),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=osb_server1+156.70.10
We dont know what is exact reason why the messages are not picked even though the service is up and running fine.
Help me in this.
Thanks

Commit and rollback only work for transactions that add, change, and delete records. You can't commit or rollback a Drop Table. And from what you say, it appears that as soon as you try, everything up to the non-committable statement is committed.

Similar Messages

  • Problems with JMS: Error JMS BEA-040368

    Hi,
    I have run into a problem using JMS on BEA. It appears to happen when we run huge amounts of messages through the queue (100 000+).
    Once this error occurs, we cant get rid of it. Restarting server, re-dployment, nothing works. Every subsequent message sent to the JMS produces this error.
    According to the error message, we have exceeded the maximum allowed transactions for the server, but how do we reset the transactions? And what is causing the error to appear in the first place? Somthing I forget to close or flush?
    I have QueueConnection, QueueSession and QueueRecevier objects open for all transactions, and close them when the bean is destroyed. Should I rather create and close them for each transaction?
    Here is the exception:
    <15.jun.2005 kl 14.55 CEST> <Error> <JMS> <BEA-040368> <The following exception has occurred:
    java.lang.RuntimeException: [EJB:010166]Error occurred while starting transaction: javax.transaction.SystemException: Exceeded maximum allowed transactions on server 'myserver'.
    at weblogic.ejb20.internal.MDListener.perhapsBeginTransaction()V(MDListener.java:325)
    at weblogic.ejb20.internal.MDListener.execute(Lweblogic.kernel.ExecuteThread; )V(MDListener.java:339)
    at weblogic.ejb20.internal.MDListener.onMessage(Ljavax.jms.Message; )V(MDListener.java:262)
    at weblogic.jms.client.JMSSession.onMessage(Ljavax.jms.MessageListener;Lweblogic.jms.common.MessageImpl; )V(JMSSession.java:2678)
    at weblogic.jms.client.JMSSession.execute(Lweblogic.kernel.ExecuteThread; )V(JMSSession.java:2598)
    at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest; )V(ExecuteThread.java:219)
    at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
    at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread; )V(Unknown Source)
    >

    Developments
    It turned out that my "client" used: this.queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    While the "server" used: this.queueSession = queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
    Now changing both sessions to use transactions (createQueueSession(true, Session.AUTO_ACKNOWLEDGE)) and fortifying the use of QueueSession.commit() when sending and receiving messages seemed to solve the problem... for a while.
    After a few new tests the problem appeared again, this time on the "client" side. It is obvious that transaction are somehow not commited correctly even though Session.commit() is called after each and every message is sent and received.
    Btw. To make the app "clean up" hanging transactions faster you can change the value in the console at:
    Mydomain --> Services --> JTA --> Abandon Timeout Seconds
    weblogic.jms.common.TransactionRolledBackException: Exceeded maximum allowed transactions on server 'myserver':error beginning transacted session's internal transaction
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:137)
    at weblogic.jms.dispatcher.DispatcherImpl_814_WLStub.dispatchSyncNoTranFuture(Unknown Source)
    at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:472)
    at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:391)
    at weblogic.jms.client.JMSProducer.send(JMSProducer.java:186)
    at no.nrk.returia.test.TestSMSInAdapter.send(TestSMSInAdapter.java:133)
    at no.nrk.returia.test.TestSMSInAdapter.main(TestSMSInAdapter.java:206)

  • Send JMS rollbacked message to del letter queue

              Hi,
              I have one MDB, which calls an EJB Stateless. This EJB belongs to a container
              managed transaction and it can make a Rollback (setRollbackOnly()).
              My problem is that if the MDB belongs to the container-managed transaction, when
              a rollback is sent, the received JMS message is put back in the JMS queue. But,
              I want to send it in a del letter queue.
              And if the MDB does not belong to the transaction, I could not know that the transaction
              is rollbacked!
              Do you know how can I resolve this problem?
              Thanks
              Charles
              

    Charles,
              Search the JMS newsgroup with Google and you should find the answer.
              There is a setting (I know it exists but I've never used it and don't
              know the exact details on how to use it) that you can change and after a
              few tries the message is put into another queue.
              --dejan
              Charles Desmoulins wrote:
              >Hi,
              >
              >I have one MDB, which calls an EJB Stateless. This EJB belongs to a container
              >managed transaction and it can make a Rollback (setRollbackOnly()).
              >
              >My problem is that if the MDB belongs to the container-managed transaction, when
              >a rollback is sent, the received JMS message is put back in the JMS queue. But,
              >I want to send it in a del letter queue.
              >
              >And if the MDB does not belong to the transaction, I could not know that the transaction
              >is rollbacked!
              >
              >Do you know how can I resolve this problem?
              >
              >Thanks
              >Charles
              >
              >
              >
              

  • Resolving connection problems with JMS

    Hi,
    we are two students. We're studying JMS and we have some dubts.
    If we want to manage connection problems(i.e.: server crashes), how can we manage data recovery?
    JMS functionalities are sufficient to fight this problem or not?
    Thanks a lot!!!
    Help us, please!!!

    Hi
    Depending on the implementation you use (your JMS provider), JMS is more than sufficient. JMS provides several mechanisms for what is known as "guaranteed messaging". One of these is Store-and-Forward, which makes persistent the messages until they are delivered. This can be done using flat files, a database, etc...., up to the JMS provider.
    Another mechanism is the message acknowledgments, that are use to know wether a message has been delivered or not.
    There is capacity for transactions, too, that if not completed successfully, can be rolled-back. If everything goes OK, they are committed.
    For example, if you receive a message in a transaction, and some process of it fails, a rollback makes that the message is never lost (it remains in the queue).
    Finally, some vendors implement Dead Letter Queues (DLQ), for storing messages that have beeb underiverable due to some reason.
    These mechanism are usually customizable and optional, either in your JMS code, or in the admnistration tools of your JMS provider.

  • Problem with JMS migration when using Ctrl+C to stop the managed server in cluster

              Hi,
              I am having a clustered weblogic application running on Weblogic 7.0 SP5. My application
              uses JMS as a asynchrous communication. We have MDB which listens to these JMS
              messages.
              If something is being processed on Managed Server 1 and while the request is in
              process, i am stopping the the MAnaged SErver 1 using Ctrl+C.
              After this, i go to admin console and migrate teh JTA and JMS. After this, i am
              expecting other running Managed Server should restart the incomplete transaction.
              But this is not happening. The Managed Serve2 doesn't process the requst.
              But when i restart teh MAnaged SErver 1 again, it takes up the same request and
              processes it.
              Is this a known problem with Weblogic that it doesn't support Ctlr+C case?
              Please note that the same thing is working fine when i stop the server using Admin
              console(Normal shutdown OR forced shutdown).
              Any comments in this regards are apprecciated.
              Thanks,
              Naresh
              

              Hi,
              I am having a clustered weblogic application running on Weblogic 7.0 SP5. My application
              uses JMS as a asynchrous communication. We have MDB which listens to these JMS
              messages.
              If something is being processed on Managed Server 1 and while the request is in
              process, i am stopping the the MAnaged SErver 1 using Ctrl+C.
              After this, i go to admin console and migrate teh JTA and JMS. After this, i am
              expecting other running Managed Server should restart the incomplete transaction.
              But this is not happening. The Managed Serve2 doesn't process the requst.
              But when i restart teh MAnaged SErver 1 again, it takes up the same request and
              processes it.
              Is this a known problem with Weblogic that it doesn't support Ctlr+C case?
              Please note that the same thing is working fine when i stop the server using Admin
              console(Normal shutdown OR forced shutdown).
              Any comments in this regards are apprecciated.
              Thanks,
              Naresh
              

  • Problem with JMS in a Cluster

    In summary I am having a problem with my application when it is running on the server that does not contain the JMS.
              Setup:
              2 machines:- Server 1 with the Admin Server and a Managed Server with JMS and a Distributed Queue. Second machine (Server 2) with a managed server. The two managed servers are in a Cluster.
              The connection factory has xa enabled.
              The queue is a distributed queue, with one member queue - on server 1.
              Scenario 1 (works):
              Deploy my application on Server 1 only
              Scenario 2 (works):
              Deploy my application on Server 1 and Server 2
              When the application puts messages on the JMS queue, the messages are processed round robin by the MDB on both Server 1 and Server 2 - as expected.
              Scenario 3 - Does not work
              Deploy my application on Server 2 only
              The application successfully sends a message to the queue - I can see it in queue through the console.
              However the MDB never processes the message. On the queue, I can see 0 consumers.
              Essentially the MDB appears to deploy correctly from the server log but never appears as a consumer on the queue.
              I know the above information is very brief, however I can provide more configuration details and detailed logging if required.

    On a further look through the logs, I have found the following Warning message which may point to the reason why my MDB is not receiving messages from JMS:
              <25-Apr-2005 17:26:01 o'clock IST> <Warning> <EJB> <BEA-010220> <The jms destination 'AsyncMessageQueue' is a distributed destination and it has no physical destination(s) on the current weblogic server. As per distributed destination co-location rules, no pool was creted for the MDB 'AsyncMessage(Application: m3-j2ee_Weblogic21apr_2, EJBComponent: ejb_framework.jar)' on this weblogic server. Hence the MDB 'AsyncMessage(Application: m3-j2ee_Weblogic21apr_2, EJBComponent: ejb_framework.jar)' cannot receive any messages on this server.>
              I have created a Destination on the JMS Server ("Replicate JNDI Name In Cluster" is set), and I have created a Distributed Destination, which has as its member the Destination associated with the JMS Server.
              If the JMS is not on the same server as the deployed application, how do I get the MDB to connect to the physical destination?
              Do I always need a Physical Destination on the the same server as my deployed application? If so, how do I create a Physical Destination on the server that does not have the JMS?
              Any help appreciated.

  • Weblogic: problem with JMS foreign server and Transaction

    Hello everyone,
    I am working with an enterprise application with Web Application Server Logic 10.3. L 'application uses the following components:
    1) MDB 2.0
    2) FOREIGN JMS SERVER -> WebSpereMQ
    3) EJB SESSION
    L 'MDB calls the session bean which uses in its ejb-jar.xml using a Wrapper for JMS QueueConnectionFactory with res-ref:
    <resource- ref>
    <res-ref-name> jms / iss / QCFIXP </ res-ref-name>
    <res-auth> Container </ res-auth>
    <res-sharing -scope> Shareable </ res-sharing-scope>
    <resource- ref>
    The MDB is CMT
    <transaction-type> Container </ transaction-type>
    while the session bean is BMT
    <transaction-type> Bean </ transaction-type>
    to call the QCFIXP in its transaction.
    The QCFIXP ii an XA resource
    When there is a rollback operation in SessionBean also in 'MDB
    There 'an operation setRollbackOnly:
    getMessageDrivenContext (). setRollbackOnly ();
    After this operation on the MDB I do a JNDI look up the QueueConnectionFactory but sending the message on a queue I get the following exception:
    javax.jms.JMSException: [JMSPool: 169809] An error occurred while registering the JMS connection with JTA:
    But if not using the "wrapper jms" in the session bean I did not take any exception and the application don' t have any error.
    My doubt is :
    Why if I use the JMS wrapper I get an error javax.jms.JMSException: [JMSPool: 169809] An error occurred while registering the JMS connection with JTA?
    Thanks in advance.
    Michele
    Edited by: user3501731 on 11-mag-2011 3.16

    Hi Tom,
    Thanks very much for your responses and careful analysis you've done.
    Following the source code of the MDB where error occurs.
    Marked In bold the line where the exception is thrown.
         public void onMessage(Message msg) {
    //          Utility.logger(AP.DEBUG, "Partito MDB 2");
              processa(msg);
              protected void processa(Message msg) {
              Utility.logger(
                   AP.DEBUG,
                   "IXPReceiverMDB7.processa(Message msg) partito");
              try {
                   long start = System.currentTimeMillis();
    /*               Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB.processa(Message msg) effettuo lookup");*/
                   ejb = myEjbLocalHome.create();
                   // individuo l'identificativo del messaggio in ricezione
                   String msgid = msg.getJMSMessageID();
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa(Message msg) elaboro messaggio:"
                             + msgid);
                   String charset = msg.getStringProperty("JMS_IBM_Character_Set");
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa Charset:" + charset );
                   // invoco il processo di ricezione
                   boolean commitRequested = ejb.processa(ctlReq, encoding, msg);
                   // il valore di ritorno del processo di ricezione identifica o meno
                   // la necessita' di effettuare il rollback dell'intero processo
                   if (!commitRequested) {
                        getMessageDrivenContext().setRollbackOnly();
                   if (ctlReq) {
                        Utility.logger(
                             AP.INFO,
                             "IXPReceiverMDB7.processa(Message msg) spedisco il messaggio pilota del 'cleaning' con JMSCorrelationID = '"
                                  + msgid
                                  + "'");
                        msg.setJMSCorrelationID(msgid);
                        // Viene creata la QueueConnection
                        QueueConnectionFactory factory =
                             JmsFactoryDispenser.getSingleton().getFactory();
                        QueueConnection connection = factory.createQueueConnection();
                        // Viene ottenuta la 'session'
                        QueueSession session =
                             connection.createQueueSession(
                                  false,
                                  Session.AUTO_ACKNOWLEDGE);
                        // spedisco il messaggio sulla coda abbinata al processo di 'cleaning'
                        // della coda di controllo
                        IXPMessageManager msgManager = new IXPMessageManager(session);
                        msgManager.spedisci(msg, AP.PILOTQUEUE, "J", AP.STD_MESSAGE);                    session.close();
                        connection.close();
                   long end = System.currentTimeMillis();
                   Long durata = new Long (end - start);
                   Utility.logger(
                        AP.INFO,
                        "IXPReceiverMDB7 Tempo totale elaborazione messaggio: " +
                        msgid + " " +
                        durata.toString() + " mill" );
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa(Message msg) terminato");
              } catch (Throwable e) {
                   getMessageDrivenContext().setRollbackOnly();
                   try {
                        Utility.myExceptionHandler(
                             "E",
                             "1",
                             "4028",
                             "IXPReceiverMDB.onMessage()",
                             e);
                   } catch (Throwable ex) {
                        ex.printStackTrace();
    Thanks in advance.
    Edited by: serpichetto on 16-mag-2011 1.24

  • Problem with JMS Adapter after upgrade to 7.1

    Hi All,
    After an upgrade the JMS adapter connecting IBM Websphere MQ gives the following error:
    Error connecting due to missing class: com.ibm.mq.jms.MQQueueConnectionFactory. Ensure that all resources required are present in the JMS provider library: aii_af_jmsproviderlib.sda
    Since we are now on PI 7.1, the directory the JMS adapter should be looking for the libraries should be com.sap.aii.adapter.lib.sda. Has anyone else come across this problem after an upgrade? Should we remove the old aii_af_jmsproviderlib.sda?
    Edited by: Luqman on Oct 31, 2008 5:39 PM

    does following JAR files in place in aii_af_jmsproviderlib.sda.
    ●      com.ibm.mq.jar
    ●      com.ibm.mqbind.jar
    ●      com.ibm.mqjms.jar
    ●      connector.jar (use the JAR file from the J2EE client directory)
    can u check n confirm.
    i hopw u have followed the proper deployement process.
    chirag

  • Problem creating JMS Error Destination via Ant in WLS 8.1

    We've got several JMS queues in our application. We create the server via Ant (using the wlconfig task).
    All is well, the queues have been working fine, until we try to add an error destination queue (after several attempts to handle the message, it'll be sent to the error queue for later troubleshooting).
    Here's an example of what we've got now:
    <create type="JMSQueue" name="batchQueue" property="jmsqueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
    </create>We create another queue to handle the errors, and then add an attribute to the first to point to the second:
    <create type="JMSQueue" name="batchErrorQueue" property="batchErrorQueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchErrorQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
    </create>
    <create type="JMSQueue" name="batchQueue" property="jmsqueue">
        <set attribute="JNDIName" value="net.nike.cdm.batchQueue"/>
        <set attribute="RedeliveryLimit" value="5"/>
        <set attribute="ErrorDestination" value="${batchErrorQueue}"/>
    </create>This seems logical, because if we do this same exact operation via the console, the config.xml goes from this:
    <JMSQueue JNDIName="net.nike.cdm.batchQueue"
                Name="batchQueue" RedeliveryLimit="5"/>to this:
    <JMSQueue ErrorDestination="batchErrorQueue"
                JNDIName="net.nike.cdm.batchQueue"
                Name="batchQueue" RedeliveryLimit="5"/>
    <JMSQueue JNDIName="net.nike.cdm.batchErrorQueue" Name="batchErrorQueue"/>The error we get when trying to do this via Ant is:
    [wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue" on JMS server "cdmdomain"). Also, an ErrorDestination can not be null if the ExpirationPolicy for a destination is "redirect" and a destination can not specify itself as its ErrorDestination.Flipping on -verbose in Ant, the actual exception is:
    [wlconfig] SET -mbean cdmdomain:Name=batchQueue,Type=JMSQueue -property ErrorDestination cdmdomain:Name=batchErrorQueue,Type=JMSQue
    [wlconfig] A destination and its ErrorDestination must both be on the same JMS server. (The problematic destination is "batchQueue"
    s its ErrorDestination.
          [if] Error in class net.sf.antcontrib.logic.IfTask
    BUILD FAILED
    file:C:/viewstore/CDM_R6.5_Development/B2B_CDM/dev/build.xml:1399: Error invoking MBean command: java.lang.NullPointerException
           at weblogic.ant.taskdefs.management.WLConfig.handleException(WLConfig.java:567)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCommand(WLConfig.java:381)
           at weblogic.ant.taskdefs.management.WLConfig.invokeSetCommand(WLConfig.java:235)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:163)
           at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
           at weblogic.ant.taskdefs.management.WLConfig.invokeCreateCommand(WLConfig.java:167)
           at weblogic.ant.taskdefs.management.WLConfig.executeCommands(WLConfig.java:106)
           at weblogic.ant.taskdefs.management.WLConfig.execute(WLConfig.java:89)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:117)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
           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:324)
           at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:147)
           at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
           at org.apache.tools.ant.Task.perform(Task.java:341)
           at org.apache.tools.ant.Target.execute(Target.java:309)
           at org.apache.tools.ant.Target.performTasks(Target.java:336)
           at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
           at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
           at org.apache.tools.ant.Main.runBuild(Main.java:609)
           at org.apache.tools.ant.Main.start(Main.java:196)
           at org.apache.tools.ant.Main.main(Main.java:235)So, my question is, what are we doing wrong? What IS the syntax to set an error destination for a JMS queue via Ant for WLS 8.1?
    Any help would be greatly appreciated
    Thanks,
    Douglas Bullard

    I get exactly the same problem - was a resolution to this issue found?
    Thanks,
    Richard Marriott
    [email protected]

  • Problem in JMS-Adapter with CharacterSet Websphere MQ

    Hi,
    we have the following scenario:
    JMS -> PI -> File
    We have a local Websphere MQ Queue Manager and the follwoing configuration in our sender adapter:
    Transport-Protocol: WebSphere MQ (non JMS)
    Message-Protocol: JMS 1.x
    ConnectionFactory: com.ibm.mq.jms.MQQueueConnectionFactory
    Java-class Queue: com.ibm.mq.jms.MQQueue
    CCSID: 819
    Transport: TCP/IP
    JMS-conform: WebSphere MQ (non JMS)
    In the local queue manager the messages (XML-Messages with header <?xml version="1.0" encoding="ISO-8859-1"?>) have characterSet 819 (ISO-8859-1). That's correct. You can open the files with XMLSpy and it works.
    When we receive the messages by our JMS Sender Adapter all the character seems to be in UTF-8 and I don't know why. All the special characters are wrong cause the header of the XML-message shows ISO-8859-1 but all the signs are decoded in UTF-8.
    In the other direction (JMS Receiver adapter, File -> PI - JMS) we have the same problem.
    We create a ISO-8859-1 message in mapping (and it is really ISO-8859-1) and send it via JMS Receiver Adapter to the local message queue. But there the message arrives in UTF-8 encoding. I don't understand this.
    Does anybody know what could be the cause for this?
    Does the JMS adapter convert the messages from ISO-8859-1 into UTF-8?
    Are there any parameters we have to set?
    I hope anybody has an idea what's wrong.
    Regards
    Thorsten
    Edited by: Thorsten Hautz on Oct 12, 2010 5:42 PM

    Hi,
    thanks a lot for your replies.
    our driver settings are correct (as I can see).
    I removed value 819 from CCSID, but we have the same effect.
    The messages in the local queue manager are TextMessages in XML.
    Does anybody know, if we need the standard modules (ConvertJMSMessageToBinary and ConvertBinaryToXMBMessage) in this case?
    Is it possible to set the CCSID for the message payload anywhere in the configuration?
    The CCSID in the Source tab doesn't have any influence to the encoding of the payload message, only to the header data.
    Regards
    Thorsten

  • Problem Reading JMS queue

    I have written a jms client to read a queue in weblogic. Specifically the wlai
    event queue. However, I have tried to read other not-wli specific queues with
    the same error. I get an access denied error even trying the system user!
    I have even played with the ACL for the queue.
    Anyone have any ideas?
    Thanks

    You need to add a 'browse' permission for your user to the ACL for that queue (or
    the weblogic.jms ACL). It worked for me.
    If you look in the stack, it mentions that your user was denied for the action
    'browse'.
    "Ryan Richards" <[email protected]> wrote:
    >
    Thanks for the help. I am not dequeueing any messages when I read them.
    I have
    also verified that there are messages on the queue. Here is the access
    denied
    message I am receiving.
    Start server side stack trace: weblogic.jms.common.JMSSecurityException:
    Access
    denied to resource: type=<jms>, application=, destinationType=queue,
    resource=RyanTestQueue,
    action=browse at weblogic.jms.JMSService.checkPermission(JMSService.java:1065)
    at weblogic.jms.JMSService.checkBrowsePermission(JMSService.java:1081)
    at weblogic.jms.frontend.FESession.browserCreate(FESession.java:1100)
    at weblogic.jms.frontend.FESession.invoke(FESession.java:2254) at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:602)
    at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:152)
    at weblogic.jms.dispatcher.DispatcherImpl.dispatchSyncFuture(DispatcherImpl.java:303)
    at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    End server side stack trace
    at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:127)
    at weblogic.jms.dispatcher.DispatcherImpl_WLStub.dispatchSyncFuture(Unknown
    Source) at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:282)
    at weblogic.jms.client.JMSSession.createBackEndBrowser(JMSSession.java:1749)
    at
    weblogic.jms.client.JMSQueueBrowser.<init>(JMSQueueBrowser.java:46) at
    weblogic.jms.client.JMSSession.createBrowser(JMSSession.java:1344)
    at weblogic.jms.client.JMSSession.createBrowser(JMSSession.java:1324)
    at Test.init(Test.java:41)
    at Test.main(Test.java:115) Exception in thread "main"
    Thanks for any help Ryan
    "Karthik V" <[email protected]> wrote:
    Check if you have selected the running server as target for your connection
    factory and JMS server config (from admin console).
    If still problem exists, can you post the exception and portion of your
    client code causing the problem?
    Remember one thing when trying to listen on any wli specific queues:
    there
    might be MDBs that consumes the message before your client code canread
    from the queue. So avoid creating listeners on wli specific queues.(topic
    is not a problem)
    /k
    "Ryan Richards" <[email protected]> wrote in message
    news:[email protected]...
    I have written a jms client to read a queue in weblogic. Specificallythe
    wlai
    event queue. However, I have tried to read other not-wli specific
    queues
    with
    the same error. I get an access denied error even trying the systemuser!
    I have even played with the ACL for the queue.
    Anyone have any ideas?
    Thanks

  • Problem with JMS from session bean

     

    My guess is that in your effort to work around the
    clustering/ejb/jndi problems, you have a producer
    sending on one topic, and a consumer listening on
    another topic. You can check to see if they are the
    same destination using the (uncompiled) code snippets
    below at both the producer and consumer ends.
    import weblogic.jms.common.DestinationImpl;
    Topic topic;
    DestinationImpl destination = (DestinationImpl) topic;
    System.out.println("name = " + destination.getServerName() + "/" +
    destination.getName());
    System.out.println("back-end id = " + destination.getBackEndId());
    System.out.println("destination id = " + destination.getDestinationId());
    _sjz.
    "Malcolm Robbins" <[email protected]> wrote in message
    news:[email protected]...
    >
    This was also posted to the EJB newsgroup and was asked to post the secondissue
    here. Please focus on the second issue, but the first providesbackground.
    >
    >
    I have discovered two significant problems in WLS6.0 with JNDi and JMSthat do
    not occur in the Sun Reference implementation (1.3 Beta).
    Attached is some code you can try to see the problem.
    I have developed a JmsClient that simply looks up a session bean andpasses it
    a string to publish. The session bean is meant to publish to a JMS topic.
    However I have discovered two problems:
    1) In teh ejbCreate() method I look up the topic connection factory andtopic
    in JNDI. These are referenced as "java:comp/env/jms/JmsConnectionFactory"and
    "java:comp/env/jms/JmsTopic" respectively. Here's a fragment of theejb-jar
    descriptor
    <resource-ref>
    <description>The (probably durable) Topic Connection Factory to connectto</description>
    <res-ref-name>jms/JmsConnectionFactory</res-ref-name>
    <res-type>javax.jms.TopicConnectionFactory</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    <resource-env-ref>
    <description>The Jms Source Topic to publish to</description>
    <resource-env-ref-name>jms/JmsTopic</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
    </resource-env-ref>
    As you can see they are resource references and resoruce environmentreferences
    respectively. The weblogic-ejb-jar maps these to the real JNDI names"TopicConnectionFactory"
    amd "SchemaTopic" respectively as shown below by the fragment:
    <weblogic-ejb-jar>
    ...etc...
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jms/JmsConnectionFactory</res-ref-name>
    <jndi-name>TopicConnectionFactory</jndi-name>
    </resource-description>
    <resource-env-description>
    <res-env-ref-name>jms/JmsTopic</res-env-ref-name>
    <jndi-name>SchemaTopic</jndi-name>
    </resource-env-description>
    </reference-descriptor>
    Now here's the first problem. When this is deployed the resourceenvironment
    "logical" name (JNDI linkref) for the topic is not defined. The code willhappily
    find the connection factory (presuming you've set these administeredobjects at
    the console).
    2) The second problem now arises. In the code I have ahcked it so thatwhen
    the JNDI lookup fails it tries looking up the real topic in JNDI(SchemaTopic)
    directly.
    This works and teh bean now appears to work, albeit with a directlyhardcoded
    JNDI reference in it. However, if you hook up a standard JMS consumer tothat
    topic it will not consuem the message that is published!!! While thestats clock
    up at the console the message appears to go into a black hole. I canprovdie
    a stadnard consumer if you need one.
    I have the code working fine as-is in teh Sun Reference implementation soI presume
    these are bugs with WL6.0.
    Can anyone advise workarounds and/or fix the problem?

  • Problem in database rollback

    hello everybody,
    Here's my problem. Can anyone help me to solve it.
    In this program i am going to delete some information from a database table and also trying to drop a table.
    The table i am going to drop does not exist in the database, so the statement throws an SQL exception.
    Now in the catch block of the program I have rolledback the delete opration which was done since an exception has occured.
    The problem here is that the data is not rolled back, i am losing all the information.
    pl can anyone help me out with this.
    import java.sql.*;
    public class QueryExecuter {
    public void fireQuery(String query)     throws Exception {
    Connection connect = null;
    try{
    System.out.println("inside firequery");
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    connect = DriverManager.getConnection("jdbc:oracle:thin:@160.40.30.187:1521:ORCL","scott","tiger");
    connect.setAutoCommit(false);
    System.out.println("connection obtained");
    int index=0;
    int next_index=-1;
    int previous_index=0;
    Statement stmt = connect.createStatement();
    while ( (index=(query.indexOf(";",next_index+1)))!=-1 ){
    System.out.println("inside while");
    previous_index = next_index+1;
    next_index = index;
    stmt.addBatch(query.substring(previous_index,next_index));
    }//end of while
    int batchCount[]=stmt.executeBatch();
    //commits the transaction
         connect.commit();
    if(stmt != null)
    stmt.close();
              }catch (Exception e){
              try{
                   connect.rollback();
    /* System.out.println("rollback called");
    Statement rollback = connect.createStatement();
    rollback.execute("rollback to savepoint roll");
    System.out.println("rollback successfull");
    if (rollback!=null)
    rollback.close();*/
              }catch(Exception ex){ex.printStackTrace();}
    throw e;
              }//end of catch
         finally     {
    try{
    connect.close();
    }catch(Exception ex){ex.printStackTrace();}
    }//end of finally
         }//end of fireQuery
    public static void main(String args[]){
    System.out.println("inside main");
    ChilkaQueryExecuter1 cqe = new ChilkaQueryExecuter1();
    StringBuffer buf = new StringBuffer();
    buf.append("savepoint roll;");
    buf.append("delete from parent;");
    // this table by name child does not exist so as to //create an exception so that the deleted table can //be rolled back
    buf.append("drop table child;");
    System.out.println("query is="+buf.toString());
    try{ 
    cqe.fireQuery(buf.toString().trim());
    }catch(Exception exp){exp.printStackTrace();}
    }//end of class

    Commit and rollback only work for transactions that add, change, and delete records. You can't commit or rollback a Drop Table. And from what you say, it appears that as soon as you try, everything up to the non-committable statement is committed.

  • Problem in JMS congiuration in cluster

    Hi,
    I am facing a big problem in cluster.
    I am using weblogic server8.1 with SP5.
    Created a cluster with 2 managed servers. Two JMS servers and deployed them on managed servers i.e. JMSServers1 is deployed on ManagedServer1 (migratable) and JMSServer2 is deployed on ManagedServer2 (migratable). There are 4 distributed JMS Topics are created for each server. My program uses these JMS topics and picks up the data and inserts them into the Database. The problem here is it is inserting 2 times each record. If I use single server without cluster it is inserting one time. Some times it is not JMS clients not at all invoked when even a message is published into the topic.
    What might be the problem? I am very new to this clustering. Its very urgent please.

    Hi,
    thanks a lot for your replies.
    our driver settings are correct (as I can see).
    I removed value 819 from CCSID, but we have the same effect.
    The messages in the local queue manager are TextMessages in XML.
    Does anybody know, if we need the standard modules (ConvertJMSMessageToBinary and ConvertBinaryToXMBMessage) in this case?
    Is it possible to set the CCSID for the message payload anywhere in the configuration?
    The CCSID in the Source tab doesn't have any influence to the encoding of the payload message, only to the header data.
    Regards
    Thorsten

  • Problem with JMS Dispatcher in 10.1.3

    When we try to set up the JMS Dispatcher in Oracle SES 10.1.3, we always get an error while starting the SES:
    Missing class: oracle.edge.impl.dispatcher.JMSEventDispatcher
    Any ideas how to make JMS Dispatcher working under 10.1.3? It is quite urgent...
    Thank you!!!
    DM

    Hi DM,
    We had some problems with the new JMS framework.
    We are working on it.
    I'll post any news once we have them.
    Regards,
    Ron

Maybe you are looking for

  • E72 - my thoughts and help required

    I've had this phone for a week or more on a brilliant deal from TMobile in the Uk Brilliant phone, everything I need, a bit of a learning curve but as a business alternative to the Blackberry and Iphone I cant think of much else I'd need, and at £10-

  • Select a region in plot

    I may need to select a region in a plot as the attached screenshot. When selecting it, a yellow or other color frame may appear. It can be rectangular or circle. After the selection, the frame may disappear. And I may get the frame's position paramet

  • Please help me solve my kernel panics

    I have been having kernel panics almost daily for about 2 weeks and I can't figure out what to do. I have tried repair disk, repair permissions and no luck. I ran software update and everything is updated. Here is my latest panic report. Any help wou

  • Howdy, and some questions

    I have been building my own system with Linux From Scratch for five years, but after two weeks of struggling with the latest Gnome I decided I'm gettin' too old for this stuff.  Arch looks like the perfect next step - plenty of control over what gets

  • Serializing works but deserializing is missing data.

    I am exposing a POST method in a wcf service for a given set of nested classes. Everything works fine, even serializing, except when I post the *same* xml I create through serializing an instance, the Umber.Amethysts property is empty. [XmlRoot("MyRo