Problem with rollback transaction with foreign JMS provider

Hello

I created a small test to validate this transaction rollback works correctly with a foreign Jms provider (Sonic). My results seem to show that this isn't, but I have my installation is perhaps incorrect so any help appreciated...

In the example below, I have an MDB that uses the movements of containers managed (Transaction required) and packaging. It receives a message & then sends another message.

I've explicitly forced a rollback and wait for message received and sent message are ignored. However, on my Sonic queues, I see the number of messages on the output queue (where the message is sent) regularly every restitution time is more tempted, implying the sent message is not be restored.

This is my EJB code: -.
@MessageDriven(description = "sample mdb using weblogic resource wrappers", name = "WLPooledSonicJmsTransactionRequiredMessageDrivenBean")
@TransactionManagement(value = TransactionManagementType.CONTAINER)
@Resources( {
          @Resource(name = "connectionFactoryReference", mappedName = "localconnFactoryXA", type = javax.jms.ConnectionFactory.class),
          @Resource(name = "sendDestinationRef", mappedName = "local.out.queue1", type = javax.jms.Queue.class) })
public class WLPooledSonicJmsTransactionRequiredMessageDrivenBean implements
          MessageListener {

     private ConnectionFactory sendingConnectionFactory;

     private Queue sendDestination;

     @Resource
     private MessageDrivenContext mdctx;

     @TransactionAttribute(value = TransactionAttributeType.REQUIRED)
     public void onMessage(Message message) {
          System.out
                    .println("on message called on WLPooledSonicJmsTransactionRequiredMessageDrivenBean!!");

          Connection jmsConnection = null;

          try {
               String deliveryCount = message
                         .getStringProperty("JMSXDeliveryCount");
               
               System.out.println("JMSXDeliveryCount value is: " + deliveryCount);

               if (sendingConnectionFactory == null)
                    System.out.println("sendingConnectionFactory was null!!");
               sendingConnectionFactory = (ConnectionFactory) mdctx
                         .lookup("connectionFactoryReference");

               if (sendDestination == null)
                    System.out.println("sendDestination was null!!");
               sendDestination = (javax.jms.Queue) mdctx
                         .lookup("sendDestinationRef");

               jmsConnection = sendingConnectionFactory.createConnection("xxx",
                         "xxx");
               System.out.println("Sonic version = "
                         + jmsConnection.getMetaData().getProviderVersion());

               Session s = jmsConnection.createSession(false,
                         Session.AUTO_ACKNOWLEDGE);
               System.out.println("Transaction is: "
                         + weblogic.transaction.TransactionHelper
                                   .getTransactionHelper().getTransaction());


               MessageProducer producer = s.createProducer(null);

               Message response = s.createTextMessage("My Reply");

               producer.send(sendDestination, response);
               System.out
                         .println("message sent from WLPooledSonicJmsTransactionRequiredMessageDrivenBean!");

                  // force a rollback for testing purposes
               mdctx.setRollbackOnly();


          } catch (JMSException e) {
               e.printStackTrace();
               // reset our jndi objects
               sendDestination = null;
               sendingConnectionFactory = null;
               throw new EJBException(e);
          } finally {

               // Return JMS resources to the resource reference pool for later
               // re-use.
               // Closing a connection automatically also closes its sessions, etc.

               try {
                    if (jmsConnection != null)
                         jmsConnection.close();
               } catch (JMSException e) {
                    // reset our jndi objects but no need to tell client
                    sendDestination = null;
                    sendingConnectionFactory = null;
               }

          }

     }
}
Here are the weblogic-ejb-jar, which defines the destination of reception
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-ejb-jar xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd"
        xmlns="http://www.bea.com/ns/weblogic/90"
        xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <weblogic-enterprise-bean>
        <ejb-name>WLPooledSonicJmsTransactionRequiredMessageDrivenBean</ejb-name>
        <message-driven-descriptor>
            <pool>
                <max-beans-in-free-pool>4</max-beans-in-free-pool>
                <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
            </pool>
            <destination-jndi-name>localmandytest</destination-jndi-name>
            <connection-factory-jndi-name>localconnFactoryXA</connection-factory-jndi-name>
            <jms-polling-interval-seconds>30</jms-polling-interval-seconds>
        </message-driven-descriptor>
    </weblogic-enterprise-bean>
</weblogic-ejb-jar>
and it has been part of the weblogic log output (this message is repeated that the container attempts to deliver the message)...
on message called on WLPooledSonicJmsTransactionRequiredMessageDrivenBean!!
Session transacted? = false
message sent from WLPooledSonicJmsTransactionRequiredMessageDrivenBean!
<07-Oct-2010 13:09:45 o'clock BST> <Info> <EJB> <BEA-010213> <Message-Driven EJB: WLPooledSonicJmsTransactionRequiredMessageDrivenBean's transaction was rolled back. The transaction details are: 
......
Published by: MandyWarren on October 7, 2010 07:05 added weblogic-ejb-jar. XML

Published by: MandyWarren on October 14, 2010 14:53 in order to take account of the last changes of the code

Published by: MandyWarren on October 14, 2010 15:30 - code removed for only if rollback count == 1 because it does not work

Published by: MandyWarren on October 21, 2010 22:36 deleted info specific environment

Just a quick update...

I raised this issue to the support of Oracle who confirmed that it was a bug see their response below...

>
I just got an update of JMS engineering.

They Bug 81388508142162 is the best candidate: 8138850 is for WLS 9.2.x, while 8142162 is for WLS 10.0.x.
The fix is included in 9.2.3 WLS and WLS 10.0.2
>

I upgraded to 10.0 MP2 as no new patches are now provided for 10.0 MP1 and the problem was solved.

A big thank you to everyone for their help on this.

Tags: Fusion Middleware

Similar Questions

  • Problem with the winsock provider catalog error wireless online?

    I have an aspireone by Acer with Windows XP Edition version 2002 service Pack 3 family. When I try to go on wireless internet with internet Explorer 7, I get the error 'problem with winsock provider catalog '. I did the reset thing and it still gets the same error. Anyone has a suggestion to get this pc online?

    I have an aspireone by Acer with Windows XP Edition version 2002 service Pack 3 family. When I try to go on wireless internet with internet Explorer 7, I get the error 'problem with winsock provider catalog '. I did the reset thing and it still gets the same error. Anyone has a suggestion to get this pc online?

    Note the devices installed in the machine.  Use this information to download the latest version of the drivers and software for the manufacturer's Web site features (on another machine and store on an external support, I suppose, would be the only way for you to do.)

    Uninstall the software/drivers for network devices.  Turn it back on.  Even if pilots are found/installed automatically, manually update the drivers & software using the files you downloaded earlier.

    Open a command prompt and run the commands following one at a time (after each ENTRY) without leaving the part through if somehting started working...  Note all errors and post them here.

    netsh winsock reset catalog
    ipconfig / renew
    ipconfig/flushdns
    ARP d *.
    nbtstat - RR

  • setClientId equivalent to the foreign JMS provider?

    Hello

    I use an MDB, a foreign JMS server and a durable subscription. I need something equivalent to setClientId(String clientID) to set the client for the connection id, preferably using deployment descriptors. All I could find was jms - login id that appears to set the id for the topic, not the connection. I don't see a way to set the ID of the customer on the foreign JMS server makes connections.

    Thank you.

    Strategy customer ID to subject WebLogic = restricted

    The strategy of customer ID does not apply unless you use WebLogic JMS provider. If you use WebLogic JMS, then I recommend using one of the new "one copy" by app modes.

    Is it possible to configure the subscription name or is controlled by the container as implied by the B-1 of the Table?

    I don't think that there is a way to define the subscription directly - name only indirectly, according to the B-1, where it can be the same as the customer id or the same as the ejb-name, depending on the use case...

  • Satellite M30X-102: problems with foreign settings

    I just bought the laptop M30X-102 of the Germany, but I am from Greece. So everything is in German (which I don't understand), the recovery disk, documentation... So I ask if I can find the revovery disk in English language. How can I re - configure my system with windows English? (I think format...) Thank you...

    Hello

    It is a shame. I know the problem, if you have lost a Toshiba Recovery CD, then you go to a Service partner and sign a solemn declaration (it is a restriction of M$) and you will get a new recovery CD.

    You could ask a Greek Service partner if it is possible to do?

    Hans Bye

  • problem with packages oralce provided and views

    Hi all


    How to manage packages suppiled oracle DBMS_SCHEDULER, DBMS_PIPE, dbms_application_info inTimesten.
    I procedures using packages of procedures thease and displays specific oracle v $ instance and v$ database etc.

    How do thease Timesten-compatible pL/SQL blocks


    Kindly help me

    Many of these things do not exist in TimesTen. In some cases, you may be able to work around this problem by implementing this functionality yourself, but in some cases, it is not negligible.

    I think it is worth noting at this point that TimesTen is in no way a technology to 'plug in' transparent. In general, do a work of existing Oracle application with TimesTen will involve significant code changes and will involve probably also some re-Pro-Design/re-architecture.

    In reality, in order to take advantage of the value of TimesTen must be "designed in" to the application from the beginning. This ex-post to an existing application installation is a generally a major undertaking.

    Chris

  • Firefox has the critical problem with foreign languages for example Russian in the address bar! How to solve this problem?

    When I put the address in the address in Russian bar I see Google instead of my site. I don't want to not Google.
    Help please.

    When there is a space in the URL, the address bar search can kick.

    Don't know if you've changed, it's used everywhere else. Another way to disable the address bar search is:

    (1) in a new tab, type or paste Subject: config in the address bar and press ENTER. Click on the button promising to be careful.

    (2) in the filter box, type or paste the keywords and make a pause so that the list is filtered

    (3) double-click the keyword.enabled from true to false.

  • Internet Explorer cannot display the Web page: diagnose says: problem with winsock provider catalog

    I am unable to access any internet site. I get a page that says Internet Explorer can not display the webpage with an option to diagnose connection problems button. When I run that a window is titled "for windows XP Network Diagnostics. He says that windows has detected a problem with the winsock provider catalog on this computer. It offers to reset the catalog to the default configuration and restart. When I do this it does not correct the problem. What other +.

    Hello verncan,

    Since you are getting the error Windows has detected a problem with the catalogue of the Winsock provider on your computer, follow the instructions below to reset the Winsock.
    Click on "Start" and type "CMD" in the search box. Press the 'Ctrl', 'Shift', and 'Enter' keys simultaneously. This action opens a Windows command with administrative privileges prompt.
    Click 'Yes' to dialogue permission screen and opens the Windows command prompt. You should also see 'Administrator' at the top of the window.
    Type "netsh winsock reset" next "C:\Windows\System32" and press the Enter"" key.
    Restart your computer after you see the message "Winsock catalog reset successfully."

    I hope this helps.

    Sincerely,

    Marilyn
    Microsoft Answers Support Engineer
    Visit our Microsoft answers feedback Forum and let us know what you think

  • NEW PAP2T-NA: having problems with call with a VOIP provider, but not another

    What I discovered, that's the problem, if the incoming call is answered, then after the end of the call, she can immediately accept a new call; Otherwise, if the incoming call is not answered, and then after the caller hangs up, the ring on the phone to the ATA will continue for a few seconds, and even after the stop of the ring, dial the number will get a busy signal. This State (gettting busy tone) will last more than a few minutes, before it can accept another call again.

    I tested the same line with another VOIP provider and no problem with this provider.

    Is that mean that the problem is with the first VOIP provider? What could be the cause?

    Thanks in advance.

    Finally confirmed that there is a problem with the VOIP provider. The problem has been solved now. This solution requires some setting side PennyTel (VOIP provider).

  • Strange problem with LAN on Satellite P10 connection

    Since yesterday I get really annoying balloon popup (it appears at intervals a decade or less seconds:(qui dit: câble débranché, mais le réseau fonctionne très bien (avec quelques retards quand il montre)))
    I wonder is this a hardware in my laptop problem or a problem with the internet provider. I have Realtek RTL8139/810 x LAN card. I checked another cable and of the ToolTip always shows :(
    Help, please

    Post edited by: motomadness

    Hello Adam

    On this path, it is not easy to say anything. I recommend you test somewhere else to make sure if this problem occurs due to material.

  • Problem with WNDR4500v3: Intermittent WiFi connection

    Switching internet providers twice (last return to the original supplier), my wifi connection for intermittent at least 3 to 5 times a day, if not more. I went through my ISP which has bypassed the router and it is not on their end. I had no such problem with the previous provider, or until I went back. I have reset the router and still the same issue. I've only had it since November/December last year, is out of warranty tech support. I don't know what else is wrong. I hope someone can help me! I am tech savvy except when it comes to troubleshooting.

    You can follow the procedure here.

  • BlackBerry Q5 big problem with BB Q5 data - IP ADDRESS REJECTED. :( :(

    Hi all!! I have a blackberry Q5, the version of the 10.2.1.2102 software... It is the best blackberry smartphone I've ever had! but since one week, I have a very big problem with my BB Q5: if I want to surf the internet, with data from my phone (not in WIFI mode but with the data of the phone (4G, 3 g +)), I can not go on any website, but the only thing I watch is a white screen with this message "ERROR HTTP 403.6 ": the IP address of the client has been rejected"...! What can I do? I'm really desperate! I called my provider (SFR), they told me that my connection is ok, I'm not a problem with them, and this is my phone... HELP ME PLEASE!  

    Hello!!! Just to say that finally, after several attempts, I have solved my problem: there was a problem with my service provider SFR with my phone! I regret bringing this up on the forum, but when you call the customer service you think they know their work... but fortunately for us if we have the blackberry is because we are not so ignorant on the connections, network and telephone line! : D have a nice day blackberry users!   

  • Problems with the server of Cirrus cause this

    Hello

    We are have developed an application that uses the Cirrus server for two months now and today, we have difficulty with the Netconnection.call method we use to call the OnRelay method on the other peer. When a peer calls the calling method on the netconnection OnRelay on the peer is called from time to time (so it's really not reliable).

    We are curious to know if this could be related to recent problems with the Cirrus Server? If this isn't the case, which could be a reason the calls work only part of the time?

    Kind regards

    Kevin

    While the problems with our hosting provider are not yet resolved, the cluster must operate in a nominal way. which should include the correct and relatively reliable relay/onRelay function operation.

    Note that relay/onRelay is rate limited to approximately 1 relay 2 seconds (approximation with a sliding window and about 10 relay every 20 seconds). This speed limit is in place, because the function of relay/onRelay is expensive to provide and a developer he abused. the limit is implemented by dropping applications for relay for a while if the rate exceeds the limit point. the ceiling is by sender NetConnection.

  • Foreign JMS connection factory object bound error

    Configure a foreign JMS provider, pointing to a V8 of IBM MQ on a separate server.

    Version 10.3 WebLogic & jdk 1.7.0_80.

    The steps I used were:

    1. create a JMS Module - AppNameIBMFSContextModule

    2. create a new resource in the JMS Module of type foreign server - AppNameIBMFSContext

    3 configure the foreign server:

    1. Define a JNDI factory context: com.sun.jndi.fscontext.RefFSContextFactory
    2. Define a JNDI connection URL (where the.bindings file resides): file:///datlib/appName/deploy/jndi-definitions/bindings/AppNameIBMFSContext

    4. define connection factories and destinations:

    a. the foreign factories connection

    Name JNDI Local Remote JNDI name

    JMS, jms/AppNameConnFac/AppNameConnFac AppNameIBMCF

    The remote JNDI name is the name of the connection factory set in the .bindings file:

    DEF CF (AppNameIBMCF) TRANSPORT (CLIENT) CHANNEL (APPNAME.11111.SVC) QMANAGER (QMgrName1) HOSTNAME (mqhostname.com) PORT (00000)

    The .bindings file has been created on the server IBM MQ V8 using JMSAdmin.

    Whenever I run the managed servers, the deployed EJB will get the following error:

    # < 9 October 2015 1:47:32 PM GMT > < WARNING > < JMSPool > < servername > <>< ExecuteThread [ASSET]: '0' for the queue: '(self-adjusting) weblogic.kernel.Default' > < < < > anonymous > > <>< 1444398452545 > < BEA-169808 > < there was an error while making the initial connection to the JMS resource named app-router-app-router-retry-jms/AppNameConnFac to the "app-router-retry" EJB inside the application "app-router". The server will try connecting later. The error was javax.jms.JMSException: named connection JMS [JMSPool:169818], "app-router-app-router-retry-jms/AppNameConnFac" pool has a configured connection factory JNDI name "jms/AppNameConnFac. However, an object that is not a javax.jms.ConnectionFactory is related to this JNDI name. The object bound to JNDI name has type 'javax.naming.Reference. >

    I tried to change my connections several times factory names.

    Any ideas would be appreciated.

    Thank you.

    Yes, I found it too when I did a search on google before I put the question. That's why I changed the name of the connection factory, which changes the name of the pool. This did not help and I have not found another object related to the connection factory JNDI name.

    Found the problem - IBM MQ V8 pots were not being picked up in the Weblogic CLASSPATH at startup.

    The error message was a bit misleading (for me anyway).

    Thanks to everyone who took a peek at this.

  • Problem with JMS via the SSL protocol in clustered environment

    Hello

    We run Weblogic 11 g Cluster (area) which consists of admin server and two managed server MS1, MS2.
    LIKE and run it on the computer 1, MS1 MS2 runs on machine 2. Both machines have two network interfaces, a public used for client connections and an intern for cluster communication, monitoring etc. The default channel of each Weblogic Server is listening on the internal network interface, and Moreover we have two channels (for http and t3 Protocol) configured to the public interface.
    The two managed servers are JMS provider and there is a JMS Module myModule in the field with the following JMS resources: custom connection factory myConnFactory (Load Balancing active = true = false server affinity, target: entire cluster JMS) and myQueue, which is a uniform distributed queue (targets: MS1, MS2). The queue is accessed by its logical JNDI name, but she is stuck on each managed server.

    JMS communication flows normally through t3 dedicated listening on the public interface. However, a new external client will send messages to myQueue and communication must be encrypted for security reasons. For this reason, we have implemented SSL. Instead activate a DefaultSecure channel, we left 'SSL listen Port active' = false (as the default channel would be linked to the internal network interface) and created a new channel T3SChannel t3s Protocol on the public interface for incoming client connections.

    The customer creates a t3s connection to the cluster (through T3SChannel) and gets the factory connections and the queue, use the JNDI ( source) search. The JMS connection is in real-time with MS1. If we want to create two consumers for this queue, the consumer of fist is created the MS1 and the second will be created on MS2 (thanks to active balancing). However, the creation of the second consumer fails with an exception (it is thrown on the client):

    java.rmi.ConnectException: no valid port known for: "DefaultSecure [t3s]: t3s (t3s): mserver1 - internal .company .com: 56213:null:-1 ';" No router available at destination
    at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:464)
    at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:396)
    at weblogic.rjvm.RJVMImpl.ensureConnectionEstablished(RJVMImpl.java:303)
    at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:347)
    at weblogic.rjvm.RJVMImpl.getRequestStreamInternal(RJVMImpl.java:610)
    ... 18 more

    We were told that the exception can be avoided with t3s < default protocol > - < / default protocol > element (default is t3) added to the config.XML in the Weblogic domain. If we configure t3s as default protocol, we also need to activate the DefaultSecure channel on each server and then everything works and the customer is able to correctly create consumers.

    However, as a side effect, the entire cluster on weblogic.rjvm communication layer and then by t3s. We do not want that because internal cluster communications are set enough with other methods and it will have impact on the notable performance in the production environment. In principle, it should be possible to enable the external client to connect to the JMS provider via the channel new, safe, without affecting the existing internal communication in the cluster (which should be a black box for the customer).

    My question: is it possible to run the example described without defining the default protocol to t3s?

    Thanks for the reply.

    My question: is it possible to run the example described without defining the default protocol to t3s?

    Thanks for the very clear problem description. I checked with our customer support guru and I'm sure that the answer to your question is no, I think you have encountered a known problem and have already struck with the recommended workaround.

    That said, you can be able to avoid at least partially the problem by setting "server-affinity = true" on your CF. as you probably well know, affinity = false encourages consumer and producer traffic to route customer, on its server host connection, then possibly on a "second leap" to another server in the cluster. It looks like the attempt of an implicit downgrade of a secure request origin SSL in the first bond on a channel not secure in this second jump is to throw the exception.

    HTH,

    Tom

  • + 011 phone calls indicating that I have serious problems with my computer and that they provide a service of Microsoft solve problems

    original title: + 011 phone calls

    I just got a phone call from + 011 indicating that I have serious problems with my computer and they provide a Microsoft service problems. It sounds like a crowded call center and they can tell me their name and they tried to set up a remote entry on my computer. That's when I hung up. Is - this legitimate because what it really looked like a trick.

    Not legitimate... do not answer the call... Mike Hall MVP - Windows Expert: consumer http://msmvps.com/blogs/mikehall/

Maybe you are looking for

  • Should what battery I buy for Satellite C660?

    I find a lot of batteries online, but my main concern is that. My laptop is Satellite C660 - 1 M 0 (ps1ge-02901fgs). I find that the batteries that claim is for c660 but they reffer to as (PA3634U-1BAS), some reffer to as c660d and some reffer to as

  • M57 - help me please I can't find drivers for my lenovo product

    Hello I have a lenovo System Model 9174AF9 motherboard and I can't find official support Lenovo drivers. Please can you help me I need your help... I am waiting for your response to suggestion, sorry for my English Thank you Comment to Moderator: The

  • error at startup of xp

    error in c:/windows/systems32/nvmctray.dll missing entry nvtaskbarinit error in c:/windows/systems32/nvcpl.dll missing nvstartup I'm new to the Forum, not too sure on Protocol can someone please explain this error for me. Thanks Choomlee

  • Printer with Windows Vista installation issues?

    I recently had the hard drive on my Compaq CQ50 replaced.  I am running Vista Home Premium.  I went to the respective websites of the manufacturers of my printers and downloaded the drivers for them.  Printers have been installed according to the "As

  • purpleshadow appears on the photo prints

    Change cartridges