8 Replies Latest reply on Feb 23, 2010 11:04 AM by ducon_lajoie

    mssql JDBC driver 2.0 XAResource.recover won't return in-dou

    dengyong

      Did any one meet the same problem?
      I have posted this in SQL forum but don't receive response yet.
      http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/05a2fba1-8c28-432b-ab17-b7863dae7b17
      If any others meet the same issue, can you share your experience?

        • 1. mssql JDBC driver 2.0 XAResource.recover won't return in-dou
          dengyong

           

          "dengyong" wrote:
          Did any one meet the same problem?
          I have posted this in SQL forum but don't receive response yet.
          http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/05a2fba1-8c28-432b-ab17-b7863dae7b17
          If any others meet the same issue, can you share your experience?


          • 2. Re: mssql JDBC driver 2.0 XAResource.recover won't return in
            jhalliday

            XA spec support in MS JDBC 2.0 driver is hopelessly broken. I opened a support case with MS and got told:

            "... it looks like the v2.0 version our JDBC driver does not support the scenario you are attempting to address... the JDBC Development team does not consider this a bug."

            In short, you need a different driver or database if you want to do recoverable XA.

            • 3. Re: mssql JDBC driver 2.0 XAResource.recover won't return in
              dengyong

               

              "jhalliday" wrote:
              XA spec support in MS JDBC 2.0 driver is hopelessly broken. I opened a support case with MS and got told:

              "... it looks like the v2.0 version our JDBC driver does not support the scenario you are attempting to address... the JDBC Development team does not consider this a bug."

              In short, you need a different driver or database if you want to do recoverable XA.


              Thanks Jhalliday. Your info is really helpful. :)

              • 4. Re: mssql JDBC driver 2.0 XAResource.recover won't return in
                dengyong

                 

                "jhalliday" wrote:
                XA spec support in MS JDBC 2.0 driver is hopelessly broken. I opened a support case with MS and got told:

                "... it looks like the v2.0 version our JDBC driver does not support the scenario you are attempting to address... the JDBC Development team does not consider this a bug."

                In short, you need a different driver or database if you want to do recoverable XA.


                jhalliday, a further question:
                do you know what driver which can connect to SQL server and also can support XA recovery?

                • 5. Re: mssql JDBC driver 2.0 XAResource.recover won't return in
                  mrjazzy

                  The M$ team have since replied to the precise case that ydeng submitted to say that they do now support recovery.

                  I tested ydeng's case and found I did get back the indoubt transactions.

                  However your statement that the XA support in the ms sql JDBC 2.0 driver is not brilliant is worrying.

                  If I am merely using JBossTM/TS to coordinate Transations across an XASession in JMS  and 2 XAResources in SQLServer 2008 ( running under Windows Srever 2008 ), what sort of problems can I expect? I need recovery to work...

                   

                  Has anyone tried any other driver successfully?

                   

                   

                  Thanks

                  • 6. Re: mssql JDBC driver 2.0 XAResource.recover won't return in

                    Hi there,

                     

                    I'm in the same kind of issue here. I think I've also posted on ydeng's thread on msdn (sorry to be chasing after you ).

                     

                    I'm having issues with XA recovery, and I've tried version 2.0, 1.2 of MS driver. I've also given the jTDS a shot and the experimental support for XA shows the same behavior on restarting jboss (ie the transaction stays stuck in-doubt in the DTC and needs to be manually resolved via the DTC console). This was done using the JBoss XA recovery tests. I'm wondering if that means that I'm supposed to write my own recovery manager for MSSQL? I thought this would be natively supported by the XA recovery module shipped with jboss (as in a standard recovery process that all drivers should implement?).

                     

                    Regards,

                     

                    Greg

                     

                    P.S: Otherwise I'm looking for a driver that actually has good XA recovery and supports true XA as well for MSSQL.

                    • 7. Re: mssql JDBC driver 2.0 XAResource.recover won't return in
                      mrjazzy

                      Not sure I can add anything to what you've done already, you seem to be further ahead.  I haven't had the time to see whether the com.arjuna.ats.jdbc.TransactionalDriver is storing info about the M$ JDBC  XAResource for recovery ( see JBoss Transactions API 4.2.3 Programmer's Guide Chap 4, p24 inset note - i assume it was refering to this Driver  ). If its not then I'll have to write a recovery class as specified in Chapter 4. I guess I'd write one to wrap M$ JDBC driver to see what's going on first anyway (see chapter 6 )... It would be nice to know more about how the M$ driver fails in its XA support from a JBoss point of view...

                       

                      You might ask the DataDirect guys if they would confirm that their stuff should works with JBossTM standalone... 

                       

                      Good luck. If/when I get more time for this I'll post again...

                      • 8. Re: mssql JDBC driver 2.0 XAResource.recover won't return in

                        Hi,

                         

                        Yeah I emailed the datadirect guys yesterday already asking for more info but I haven't got any replies yet. Their website does not make much mention of XA recovery.

                         

                        If you do end up writing a recovery class for the MSSQL driver, I'd be interested to either have a look at your code or discuss how you want to implement it. Not that I want to steal your code but it seems that a few of us are hitting a roadblock because of this issue. I'm going to read up on the chapter references you've given. I've already gone through the recovery guide quickly but not to develop my own recovery class. I'll take a look at how this is done and see how I can get it to work.

                         

                        Regards,

                         

                        Greg